콘텐츠로 이동

06. 프롬프트 엔지니어링 실습

프롬프트 엔지니어링

  • 모델의 응답 결과의 품질을 향상 시키지 위한 각종 기술 및 기법

In-Context

  • 모델의 입력 앞단 프롬프트에 (사용자가 모르게) 문맥 정보를 포함
  • 예: 지침, 예시, 데이터 등

N-Shot

  • 예시의 개수를 의미
  • 3-Shot은 3개의 예시를 담은 프롬프트라는 의미

CoT (Chain of Thought)

프롬프트 엔지니어링의 한계

  • 프롬프트가 길어질 수록 매 요청마다 토큰 수가 많아져 기본 비용이 증가할 수 있음
  • 또한 프롬프트가 길어질 수록 모델의 답변 품질이 저하되는 일이 발생함

프롬프트 엔지니어링의 한계 극복 방안

  1. Fine Tuning (미세조정)

    • Fine Tuning은 모델에게 데이터를 학습(암기) 하는 것.
    • 자주 반복되는 프롬프트의 경우 프롬프트를 Fine Tuning하면 입력 앞단에 프롬프트를 붙이는 양을 줄일 수 있음.
    • N-Shot 및 소규모의 데이터는 잘 학습이 되는 편이지만 정보성의 대규모의 데이터는 Fine Tuning이 잘 안됨
  2. RAG (Retrieval-Augmented Generation)

    • RAG는 대용량의 문서에서 필요한 내용을 검색하여 필요한 텍스트만 LLM 모델의 In-Context로 붙여주는 기법
    • 대용량 문서를 통째로 In-Context로 붙이면 과도한 기본 비용이 발생할 수 있는데 이것을 방지하는 방법 중 하나.
    • 문서 전체가 아닌 일부만 참고하기 때문에 전체적인 맥락 및 흩어져있는 정보에 대해서는 답변 품질이 좋지 않음.
  3. MAS (Multi-Agent System)

    • MAS는 하나의 에이전트가 아닌 여러 에이전트를 두고 워크플로우를 만들어 최종 답변을 이끌어 내는 것.
    • 하나의 에이전트에 여러가지 역할 및 기능을 부여하면 많은 프롬프트 엔지니어링 및 In-Context로 인하여 과도한 기본 비용이 발생할 수 있음.
    • 여러 에이전트를 특정 작업에 특화되게 만든 후 워크플로우를 생성하여 역할을 분담하게 하면 성능 향상 및 과도한 기본 비용을 방지할 수 있음.