AI 엔지니어링 노트
모델이 마음대로 판단하지 않게 쓰는 법
프롬프트를 잘 쓰겠다고 마음먹었을 때, 처음에는 모델을 더 잘 다루는 방법을 생각했습니다. 그런데 반복해서 보니 문제가 항상 모델 쪽에만 있지는 않았습니다. 모델이 마음대로 판단한 것처럼 보였던 구간 중 일부는, 제가 애초에 판단할 여지를 많이 남긴 문장을 썼기 때문에 생겼습니다.
사람에게는 자연스러운데 모델에게는 모호한 문장
GPT가 처음 나왔을 때부터 저는 AI에게 사람처럼 말하지 않으려고 했습니다. 그런데 실제로 입력한 문장을 보면 사람에게 이야기하듯 쓰고 있었습니다. 한국어 대화에서는 이 방식이 자연스럽습니다.
- 주어를 생략합니다.
- 대명사를 자주 씁니다.
- 문장을 길게 이어갑니다.
- 요청과 제안을 부드럽게 섞습니다.
- 맥락상 알 것 같은 부분은 굳이 다시 말하지 않습니다.
사람 사이에서는 대부분 통합니다. 상대가 표정, 상황, 앞뒤 맥락을 같이 보고 해석하기 때문입니다. 하지만 모델에게는 다르게 작동했습니다. 모델은 모호한 지점에서 멈추지 않고, 그럴듯한 방향으로 채워 넣었습니다. 그 방향이 제 의도와 다를 때 결과물이 틀어졌습니다.
반복해서 틀어지는 지점
특히 자주 보였던 문제는 두 가지였습니다.
첫째, 문장이 끊기지 않는 것이었습니다. 한 문장 안에 요구사항이 여러 개 들어가면 모델이 우선순위를 스스로 정했습니다. 저는 A와 B를 모두 중요하게 생각했지만, 모델은 A를 중심으로 보고 B를 부가 조건처럼 처리하기도 했습니다.
둘째, 액션 지시가 모호했습니다. 예를 들면 이런 표현입니다.
- "이렇게 하면 좋을 것 같아"
- "이 방향이 낫지 않을까?"
- "조금 더 정리되면 좋겠어"
- "이 부분을 봐야 할 것 같은데"
사람에게는 자연스러운 표현입니다. 하지만 모델 입장에서는 요청인지, 의견인지, 참고사항인지 판단해야 합니다. 그 판단이 계속 맞을 거라고 기대하기는 어렵습니다.
그래서 교정 에이전트를 만들었다
문제는 알아도 습관은 잘 바뀌지 않습니다. 특히 보이스 메모로 말하거나, 생각이 길어진 상태에서 빠르게 입력하면 원래 말버릇이 그대로 나옵니다. 그래서 한국어 프롬프트를 교정하는 에이전트를 만들었습니다. 목적은 단순히 더 예쁜 문장으로 바꾸는 것이 아니었습니다.
모델이 임의로 판단할 구간을 줄이는 것이 목적이었습니다. 교정 에이전트는 입력을 보고 이런 지점을 잡습니다.
- 주어가 빠진 곳
- "이것", "그거", "저 부분"처럼 대상이 흐린 곳
- 한 문장 안에 요구사항이 여러 개 들어간 곳
- 요청인지 제안인지 모호한 표현
- 우선순위가 드러나지 않는 문장
- 모델이 알아서 해석해야 하는 조건
그리고 교정된 문장과 함께 왜 그렇게 고쳤는지를 돌려줍니다.
mwroh-dev/korean-prompt-corrector
구조는 단순하게 둔다
현재 흐름은 복잡하지 않습니다.
입력
- 보이스 메모
- 타이핑
↓
교정 에이전트
- 주어/대명사 생략 감지
- 긴 문장 분리
- 모호한 액션 지시 명확화
- 출력 형식 보강
↓
교정된 문장
교정 이유
↓
검토 후 사용하거나 다시 수정
이 과정에서 중요한 것은 자동 교체가 아닙니다. 교정된 문장을 무조건 그대로 쓰면 다시 도구에 의존하게 됩니다. 제가 원한 것은 습관을 보는 일이었습니다. 어떤 표현이 반복해서 문제를 만드는지 확인하고, 다음 입력에서 조금씩 줄이는 것입니다.
모델을 바꾸기 전에 문장을 바꾸는 쪽
AI 결과물이 원하는 방향과 다를 때, 모델이나 도구를 먼저 의심하기 쉽습니다. 실제로 모델 문제가 있을 때도 있습니다.
하지만 제가 반복해서 겪은 문제 중 일부는 입력 문장에서 시작됐습니다. 모델이 마음대로 판단한 것이 아니라, 제가 판단할 여지를 너무 많이 남긴 경우가 있었습니다.
지금은 프롬프트를 잘 쓴다는 말을 조금 다르게 봅니다. 멋있는 템플릿을 많이 아는 것보다, 모델이 임의로 채워야 하는 구간을 줄이는 것이 먼저입니다. 그리고 그 출발점은 대체로 문장을 짧게 끊고, 대상을 분명히 하고, 요청을 요청답게 쓰는 데 있었습니다.
프롬프트 교정 도구를 만들었지만, 궁극적으로 더 변화가 되어야하는것은 저의 프롬프트 작성 습관이라고 생각합니다.