우잉's Development

[LLM 기초] 프롬프트 엔지니어링 기초2 본문

Deep learning/LLM

[LLM 기초] 프롬프트 엔지니어링 기초2

우잉이 2023. 8. 31. 21:23
728x90
반응형
  1. Expert Prompting
    - LLM에게 전문가로서 응답하도록 요청하는 방법
    - 배경지식을 암시적으로 이해하고 답변함으로써 성능이 향상됨
    - LLM에게 프롬프트/질문과 관련된 특정 분야의  전문가를 찾아달라고 요청하고, 제시 받은 전문가인 것
    처럼 질문에 응답하도록 하여 도메인이 정해지지 않은 서비스에도 제너럴하게 활용할 수 있음.
    - 논란의 여지가 있었으나 MIT 수학 및 EECS 커리큘럼 탐색에 매우 뛰어난 성능을 얻었다고함.

  2.  According to Wikipedia
    - 단순히 "위키피디아를 참조해서 답하세요"라고 하는 것 만으로 높은 성능을 얻을 수 있었음.
    - LLM이 학습한 지식 베이스가 있다면, 해당 내용을 참조하라고 하는 것 만으로 더 정화한 답변을 할 수 있음

  3. Generated Knowledge Prompting
    - 최근에 많이 언급되는 방법.
    - 답변에 해당하는 지식을 먼저 생성하라고 하고, 그 뒤 생성한 지식을 바탕으로 답변을 생성하는 기법
    - "According to Wikipedia"등의 기법과 마찬가지로 구체적인 지식을 바탕으로 답하게 함.
    - 단, 그렇다고 하더라도 생성 AI의 특성상 아주 정확한 지식을 생성할 것이라는 보장이 없으므로, 생성 결과를
    주의 깊게 평가 할 필요가 있음.

  4. Retrieval Augmented Generation
    - 생성하기 전에 사용자의 요청과 관련된 지식을 검색 컴포넌트에서 검색해와서, 해당 내용을 프롬프트에 컨텍스트로 제공하여 결과를 생성하는 기법
    - 답변의 정확도를 극도로 높이기 위한 가장 좋고 확실한 방법으로, RAG는 프롬프트 엔지니어링의 필수적인 구성 요소가 되었고, 이에 따라 Vector Search가 매우 중요한 구성 요소로 자리잡음.
    - 단순한 검색 뿐 아니라 복잡한 수식을 계산하는 수학 문제 풀이 엔진을 통해 결과를 생성해서 가져오는 등의 방법 또한 RAG라고 할 수 잇음.
    - ChatGPT Plugin이 RAG의 극의라고 할 수 있음.

  5. Tree-of-Thought
    - Tree구조로 답변을 생성해내면서, 중간 단계에서 진행 상황을 스스로 평가하여 생각 트리를 확장하고 조정하는 방법
    - 생성한 결과와 평가를 통해 앞뒤로 생각을 체계적으로 탐색하여 매우 높은 수준의 사고를 할 수 있도록 함.
    - 매우 많은 생성 단계를 거치게 되므로 일반적으로 사용하기는 어렵지만, 고도의 생성 전략이 필요한 경우 다른 PE(Prompt Engineering) 기법들과 혼합해 사용하면 극도로 높은 성능을 기대할 수 있음.

  6. Plan-and-Solve Prompting
    - CoT, SC 등의 기법을 사용했을 때 답변이 잘못되는 중 가장 큰 문제는 중간 문제 풀이 단계가 누락되는 경우임.
       이러한 단계 누락의 오류를 해결하기 위한 기법으로, 전체 작업을 더 작은 하위작업으로 계획을 세우고, 그 계획에
       때라 하위 작엄을 수행하거나 평가하면서 전체 문제를 해결하는 기법
    - Least-to-Most가 풀어야 할 문제를 단계적으로 생성해가면서 문제를 푼다면, PS는 미리 풀어야 할 하위 문제를 모두 생성해두고 문제를 푼다는 것이 다른점.

  7. Auto Prompt Engineer
    - LLM으로 프롬프트를 자동생성하는 기법.
    - 프롬프트에 <INSERT>라는 빈 칸을 만들고, 생성 결과를 함께 주면서 모델에게  <INSERT>부분을 채우도록 하는 방법을 반복하는 기법.
    - <INSERT>부분을 채울 만한 답변을 여러개 생성하고, 생성한 답변으로 완성한 프롬프로 최종 결과를 생성한 뒤, 최종결과를 채점하여 가장 높은 점수를 받은 프롬프트를 사용
    - 아직 완전한 프롬프트를 처음부터 만들어내는 것은 한계가 있고, 기본 프롬프트를 작성하고 성능을 올리기 위한 파인튜닝의 개념으로 사용

Key Point 
1. 예시를 제공한다.
2. 생각을 많이하게 만든다.
3. 문제풀이 전략을 세우게 한다.

4. 스스로 평가한다.

728x90
반응형
Comments