Prompt Engineering이란?

Jenny·2023년 8월 24일
0

etc

목록 보기
4/4

Prompt란?

프롬프트는 사용자가 원하는 출력을 생성하고자 할 때 LLM을 안내하기 위해 특정 입력 텍스트 및 질문 텍스트, 긴 기사를 요약하고 싶다면 LLM(Large Language Model)에 “Summarize the above in one sentence”와 같은 프롬프트와 기사 텍스트를 입력할 수 있다.

Prompt Engineering의 목적과 이유

Prompt Engineering의 주요 목표는 사용자의 의도와 원하는 결과를 전달하는 프롬프트를 만들어 모델의 성능, 정확성, 유용성을 극대화하는 것이다.
프롬프트 엔지니어링이 필요한 이유는 현재 LLM의 동작 방식의 한계와 인간과 컴퓨터의 상호작용을 위해 자연어를 사용하고 있기 때문이다.

1. Auto-Regression LLM의 한계

LLM은 단어의 순서, 작은 변화에도 응답의 품질이 상당히 달라질 수 있다. 대표적인 LLM인 GPT 모델도 Auto-Regression 모델이다. uto-Regression LLM은 이전 단어를 보고 가장 높은 확률의 단어를 다음 단어로 예측하므로 단어의 순서에 따라 얼마든지 다른 답변을 출력할 수 있는 것이다.

2. 인간-컴퓨터간의 인터페이스로 자연어 사용

자연어는 인간에게는 편리하지만, 컴퓨터에게는 불친절하다. 자연어는 매우 모호하고, 부정확하고, Context에 매우 의존적이며, 사람마다 해석이 다를 수 있다.

3. LLM의 한계

현재의 LLM은 장기 기억을 갖지 못하고, 자기 주위의 컨텍스트를 이해할 수 없다.

Prompt Engineering vs Prompt Tuning

프롬프트 엔지니어링

프롬프트 엔지니어링은 Pre-training된 LLM을 별도의 학습없이 사용자가 원하는 답변을 생성하도록 입력 프롬프트를 효과적으로 설계하는 기술

프롬프트 튜닝

LLM을 fine-tuning하는 기술로, 주어진 입력 프롬프트에 대해 원하는 답변을 생성하는 LLM을 만들기 위함이다. 프롬프트 튜닝을 통해 LLM은 내부 표현에 대한 미묘한 조정을 배우며 LLM을 광범위하게 재학습하거나 수정하지 않고도 특정 작업이나 프롬프트을 더 잘 수행할 수 있다.

프롬프트 엔지니어링과 프롬프트 튜닝의 장단점

프롬프트 엔지니어링

  • 장점: 프롬프트 엔지니어링은 출력을 더 많이 제어할 수 있다. 또한 LLM을 원하는 출력으로 안내하도록 프롬프트를 신중하게 만들 수 있다.
  • 단점: 프롬프트 엔지니어링은 사람의 입력이 더 많이 필요하기 때문에 프롬프트 튜닝보다 더 많은 시간이 소요된다. 프롬프트는 신중하게 작성해야 하며 효과적인 프롬프트를 찾기 위해 시행 착오가 필요하다.

프롬프트 튜닝

  • 장점: 프롬프트 튜닝은 더 자동화되어 있기 때문에 프롬프트 엔지니어링보다 빠르고 쉽다. 프롬프트는 모델에 의해 자동으로 생성되며 사람의 입력이 필요하지 않는다.
  • 단점: 프롬프트 튜닝은 출력에 대한 많은 제어를 허용하지 않기 때문에 프롬프트 엔지니어링보다 덜 효과적이다. 프롬프트는 모델에 의해 생성되며 사람이 세심하게 만든 프롬프트만큼 효과적이지 않을 수 있다.

프롬프트 작성을 위한 기본 가이드라인

1)미사여구를 최소화한 쉽고 간결한 표현

👎 혹시 가능하다면 인공지능 분야에서 트랜스포머가 어떤 개념인지 파이썬이나 C++ 같은 프로그래밍 언어들을 한 번도 활용해본적 없는 모든 사람들을 대상으로 알아듣기 쉽게 글로 설명해 줄 수 있어?

👍 비개발자들을 대상으로 트랜스포머의 개념을 이해하기 쉽게 설명해줘.

2)열린 질문보다 닫힌 지시문

👎 프롬프트 엔지니어라는 직업이 미래에도 지속될 수 있을까?

👍 프롬프트 엔지니어가 미래에도 지속될 수 직업인지에 대한 보고서를 써줘.

3)Instruction과 Context를 구체적으로 명시

예제를 함께 제공

올바른 질문과 답변 예제를 한 개 또는 다수 제공하는 기법을 활용

One-Shot Prompting

하나의 예제 또는 템플릿를 기반으로 답변을 생성하게 하는 기법, Dialogue management, 또는 context modeling과 같은 기타 NLP 기법들과 조합되어 보다 정확한 답변을 유도할 수 있음

Few-Shot Prompting

두개에서 다섯개의 예제를 바탕으로 답변을 생성하게 하는 기법으로, 프롬프트 앞단에 One-Shot Prompting 기법 보다 조금 더 AI에게 직접적으로 원하는 답변에 도달할 수 있도록 유도할 수 있음

CoT (Chain-of-Thought)

단지 답변을 내놓기 위한 것이 아닌, 답변에 도달하는 과정을 학습시키는 것을 목적으로 본 질문 전에 미리 태스크와 추론 과정을 포함한 답변 예제를 AI에게 제공하는 프레임워크

Zero-Shot CoT (Chain of Thought)

조금 더 최근에 등장한 트리거 문장 "Let's think step by step (단계별로 생각해보자)"을 프롬프트에 추가하여 거대 언어 모델이 단계에 따라 결과에 도달하게 하는 프레임워크

참고
The Art of Prompt Engneering

프롬프트 엔지니어링, AI라는 도구를 잘 사용하는 방법

profile
Developer로의 여정

0개의 댓글