LLM 프롬프트 설계
프롬프트 설계(Prompt engineering)는 모델이 원하는 작업을 수행하도록 입력을 구성하고, 결과를 평가하면서 개선하는 과정입니다. 작업의 명확성, 관련 맥락과 예시, 응답 범위가 결과의 관련성, 정확성과 일관성에 영향을 줍니다.
같은 방법도 모델에 따라 효과가 다르므로 실제 사용할 모델과 대표적인 입력으로 시험하고 수정해야 합니다. 아래 프롬프트는 작성 방식을 설명하기 위한 가상 예시입니다.
작업과 맥락을 구체적으로 지정
모델이 수행할 작업을 직접적인 언어로 설명하고, 필요한 결과물과 설명 대상을 지정합니다.
| 모호한 요청 | 구체화한 요청 |
|---|---|
| “웹 개발에 대해 알려줘.” | “데이터 조회용 웹 애플리케이션을 만들 때 선택할 수 있는 프레임워크의 장단점을 요약해줘.” |
| “추상화를 설명해줘.” | “코드 유지보수를 담당하는 개발자에게 추상화가 변경 범위를 줄이는 이유를 설명해줘.” |
결과를 보고 반복해서 개선
프롬프트 구조를 바꾸어 시험하고 결과가 너무 넓거나 의도를 잘못 이해했다면 표현을 수정합니다.
예를 들어 “웹 애플리케이션의 장점을 정리해줘”라는 요청이 원하는 범위보다 넓다면 다음처럼 바꿀 수 있습니다.
네이티브 애플리케이션과 비교하여 웹 애플리케이션의 배포와 유지보수상 장점만 정리해줘.
수정 전후의 결과를 비교하고 응답의 문제를 다음 프롬프트 수정에 반영합니다. 좋은 응답 한 건으로 전체 입력에서의 동작을 판정하지 않습니다.
예시로 형식과 패턴 전달
원하는 답의 형식과 내용이 분명하다면 예시를 함께 제공합니다.
내용의 기준 제시
다음 인사말을 프랑스어로 번역해줘. 예: “안녕하세요” → “Bonjour”. 번역할 문장: “좋은 저녁입니다.”
반복되는 출력 패턴 제시
각 문의를
분류 - 핵심 요청형식으로 정리해줘. 예: “배송 - 도착 예정일 확인”. 같은 형식을 모든 문의에 적용해줘.
예시에 포함한 규칙은 원하는 응답의 형식과 일치해야 합니다.
길이와 복잡성 관리
필요한 정보는 충분히 제공하되 서로 다른 작업을 한 요청에 과도하게 넣지 않습니다.
“로봇의 역사, 현재 기술, 산업별 적용, 향후 전망을 모두 설명해줘”처럼 범위가 넓다면 먼저 “산업용 로봇의 주요 발전 과정을 짧게 설명해줘”로 좁힐 수 있습니다.
복잡한 작업은 단계로 나눕니다.
먼저 반도체 제조의 주요 공정을 목록으로 정리해줘. 그다음 각 공정의 역할을 하나씩 설명해줘.
작업에 필요한 맥락은 유지하면서 모델이 동시에 처리해야 할 요구를 나눕니다.
제약과 제외할 내용을 명시
결과의 길이, 범위와 포함하지 않을 내용을 지정합니다.
- 길이 제한: “제공한 기사를 세 문장 이내로 요약해줘.”
- 내용 제한: “원격 근무의 장단점을 정리하되 개인적인 선호나 의견은 넣지 마.”
- 피할 형식의 예: “근거 없이 ‘가장 좋은 방식’이라고 단정하지 말고, 각 선택의 조건과 단점을 구분해줘.”
제외할 내용과 함께 원하는 결과도 명시합니다.
모델의 능력과 지식에 맞는 맥락 제공
모델의 강점과 한계를 고려하여 작업을 구성합니다. 특정 분야에 맞게 학습된 모델에는 해당 전문성과 관련된 작업을 맡기는 편이 적절합니다. 모델이 사용할 수 있는 지식과 입력 자료도 작업에 맞아야 합니다.
예를 들어 코드 분석에 적합한 모델에는 자료형 오류나 함수 동작을 설명하도록 요청할 수 있습니다. 최신 변화가 중요한 주제라면 분석할 자료와 기준 시점을 함께 제공합니다. 프롬프트에 “최신”이라고 적는 것만으로 모델의 학습 이후 지식이 자동으로 추가되는 것은 아닙니다.
역할과 연속 질문 활용
역할을 지정하면 설명의 관점과 깊이를 조정하는 데 도움이 됩니다.
중장비 설비를 담당하는 기계 엔지니어의 관점에서, 상태 모니터링에 필요한 주요 센서와 각각의 용도를 설명해줘.
복잡한 결과는 여러 차례의 질문으로 나누어 만들 수도 있습니다.
- “반도체 제조 공정의 전체 흐름을 설명해줘.”
- “이제 서로 다른 반도체 세 종류를 고르고, 제조상 차이를 비교해줘.”
한 프롬프트 안에서 작업을 단계로 나누는 방법과 대화를 여러 요청으로 이어 가는 방법은 구분합니다. 후자는 앞선 응답을 보고 다음 질문의 범위를 조정할 수 있습니다.
평가와 연결
모델이나 업무가 바뀌면 프롬프트를 다시 검토해야 합니다. AIP에서 반복 가능한 평가 사례를 관리할 때는 AIP Evals를 활용할 수 있습니다.