728x90
반응형
Prompting 원칙
- 명확한 지침을 내릴 것
- 입력에서 특정 부분을 명확히 강조하기 위해 ```, """, <>, <tag></tag>, : 등의 delimiter (구분자) 사용할 것
- 출력 형식을 JSON, HTML, 혹은 그 외 직접 설정한 structured ouput 형태로 요청할 것
- 최대한 명확하고 자세하게 설명할 것
- 짧은 프롬프트보다 긴 프롬프트가 더 효과적
- 조건을 만족하면 어떠한 답변을, 만족하지 않으면 어떠한 답변을 주라는 식으로 명확히 지침
- 모델이 생각할 시간을 줄 것
- 작업을 완료하는 데 필요한 절차를 하나하나 명확하게 설명할 것
- 모델이 스스로 생각하게끔 지시하기
여러가지 팁
- 잘못된 공백, 들여쓰기 등이 성능에 큰 영향을 미치지 않을 수 있으나 여전히 고려하기
- 테스트를 해보며 프롬프트 계속해서 수정해보기
고급 프롬프팅 기술
- Few-shot prompting
- LLM 이 예시 패턴을 잘 보고 일반화할 수 있도록 제공하는 방법
- user 메시지 안에 예시를 모두 넣든 user - assistant - user - assistant - user ... 방식으로 대화의 흐름을 보여주던 혹은 다른 방법을 사용하던 모두 상관 없음
- Chain-of-Thought Prompting (CoT)
- 사고의 흐름의 방법을 LLM 에게 제시해주는 방법
정리
- user 건 assistant 건 system 이건 모든것들이 prompt 임. 즉, 전부 입력 메시지 토큰 사용량에 합산됨
- 꼭 마지막 메시지가 user 일 필요는 없음. 마지막 메시지에 assistant 로 혼자 생각하는 듯한 메시지를 주면 거기에 맞게 또 답변을 이어나감
- messages 배열에 계속해서 대화 기록을 append 해주고 그것을 LLM 에게 전달해주면 그 자체가 prompt 이고 LLM 에게 대화 문맥 이해를 도와줄 수 있음
- messages 배열이 너무 커서 context limit 에 도달하면 오류 발생 가능. 개발자가 직접 앞 부분 메시지를 삭제하거나 메시지들을 요약해서 system 또는 user 에게 하나의 메시지로 전달해서 토큰 사용량을 줄인다던가 하는 로직을 만들어줘야 함
- OpenAI API 만 사용하면 이러한 처리 작업들을 직접 일일이 구현해야하는데 LangChain, LlamaIndex 같은 프레임워크 쓰면 훨씬 쉽고 간단하게 구현 가능
728x90
반응형
'AI > LLM' 카테고리의 다른 글
[LangChain] PromptTemplate & ChatPromptTemplate (2) | 2025.10.07 |
---|---|
[LangChain] 개요 (2) | 2025.10.02 |
OpenAI API (5) | 2025.08.19 |
LangChain (3) | 2025.05.08 |
LLM Agent (2) | 2025.04.24 |