티스토리 뷰

728x90

Title: A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications

링크: https://arxiv.org/abs/2402.07927

Figure 1

프롬프트 엔지니어링 구성 요소의 시각적 분석: 프롬프트를 형성하는 중추 요소인 광범위한 데이터, 지침 및 컨텍스트와 사용자 입력 인터페이스에 대해 교육받은 LLM이다.

 

  • 대규모 언어 모델(Large Language Models, LLM) 및 시각-언어 모델(Vision-Language Model VLMs) 내의 프롬프트 엔지니어링 분야의 발전에 대한 개요
  • 각 기술의 방법론, 응용, 관련 모델, 사용된 데이터셋에 대한 설명과 장점 및 한계 논의

 

2.1 New Tasks Without Extensive Traning

Zero-Shot Prompting

Language models are unsupervised multitask learners. 2019

  • 추가적인 학습 없이도 이전에 보지 못한 데이터에 대한 예측을 하는 기법
  • instruction tuning - finetuning langague models on a clollection of datasets described via instructions

 

Few-Shot Prompting

  • 아직은 복잡한 작업에서 개선이 필요함
  • 따라서 프롬프트에서 데모를 제공하여 모델이 더 나은 성능을 발휘하도록 유도하는 문맥 내 학습을 가능하게 하는 기술

 

  • 추론 문제에 대해 신뢰할 수 있는 답변을 얻으려면 몇 번의 프롬프트만으로는 충분하지 않음
  • 문제를 여러 단계로 나누고 이를 모델에 시연하면 도움이 됨
  • 더 복잡한 산술, 상식, 상징적 추론 작업을 처리하기 위해 CoT(Chain-of-thought) 프롬프팅이 나옴

 

2.2 Reasoning and logic

Chain-of-Thought (CoT) Prompting

  • 중간 추론 단계를 통해 복잡한 추론을 유도
  • 단답형 프롬프트와 결합하면 응답하기 전에 추론이 필요한 복잡한 작업에서 더 나은 결과를 얻을 수 있음

 

Automatic Chain-of-Thought (Auto-CoT) Prompting

  • "Let's think step by step."
  • 데모를 자동으로 구성하는 데 다양성이 중요하다는 점
  • 자동으로 구성된 데모 품질을 향상시키는 것을 목표로 함

  • 주어진 데이터 세트의 질문을 8개의 클러스터로 분할
  • Sentence-BERT를 이용하여 질문을 인코딩한 다음 코사인 유사성을 기반으로 클러스터 형성
  • 각 클러스터에서 대표 질문을 선택하고 간단한 휴리스틱을 사용하여 Zero-Shot CoT 사용하여 추론 체인 생성
  • (휴리스틱에는 60개 이상의 토큰이 있는 질문이나 5개 이상의 추론 단계가 있는 합리성을 선택하지 않는 것이 포함됨)
  • 각 클러스터의 하나의 데모({질문, 자동 생성된 합리적, 자동 생성된 답변})가 프롬프트에 추가됨

 

Self-Consistency

하나의 답변이 아니라 여러 개의 사고 과정을 생성하고 그 중 다수결로 최종 답변을 결정하는 방식

  • 생각의 사슬 프롬프팅에 사용되는 일반적인 탐욕 알고리즘 디코딩을 대체하는 것을 목표로 함
  • 하나의 답변이 아니라 여러 개의 사고 과정을 생성하고 그중 다수결로 최종 답변을 결정하는 방식
  • few-shot CoT를 통해 여러 가지 다양한 추론 경로를 샘플링하고, 여러 번의 프롬프트 생성 과정을 거쳐 가장 일관된 답을 선택하는 것
  • majority vote

 

1) 언어 모델의 CoT prompting을 사용하여 프롬프트

2) CoT 프롬프팅에서 탐욕적 디코딩을 대체하여 언어 모델의 디코더에서 샘플링하여 다양한 추론 경로를 생성

3) 추론 경로를 합산하고 최종 답변 집합에서 가장 일관된 답변을 선택하여 집계

 

Logical Chain-of-Thought (LogiCoT) Prompting

  • CoT의 경우, 연역의 실패가 나머지 연역을 신뢰할 수 없게 만들어 전체적인 성공을 방해함
  • 반면 LoT는 생각-검증-수정을 디자인 원칙으로 삼아서 검정을 통과한 것을 채탁하고 그렇지 않은 것을 수정함으로써 전반적인 추론 능력을 효과적으로 개선

 

두 개의 확대된 상자가 있는데 각각 생각이 검증을 통과할 때(왼쪽 상단), 실패할 때(아래)의 과정을 보여줌

검증을 통과한 생각은 추론 트레이스에 유지되며 ,검증에 실패한 생각은 수정되고, 수정을 바탕으로 생각의 연쇄가 생성됨

그 수정을 바탕으로 새로운 생각의 연쇄가 생성됨.

 

  • A new instruction-tuning dataset for Logical Chain-of-Thought reasoning
  • 복잡한 다단계 문제를 해결하는 데 있어 언어 모델의 논리적 추론 능력을 가르치기 위한 instruction set 역할
  • 프롬프팅 모델이 새성한 각 추론 단계를 검증하고, 필요한 경우 수정하는 "think-verify-revise" loop 적용
  • reductio ad absurdum(귀류법) 원리를 적용하여, 모델이 제시한 추론이 모순되는지 확인하여 논리적 오류를 줄임

 

 

Chain-of-Symbol (CoS) Prompting

  • 모호성과 편향으로 한계를 가짐
  • Symbol을 사용하여 명확성과 간결함을 통해 언어 모델의 공간적 추론 능력을 향상
  • 사람이 해석하기 쉬운 방식으로 추론 과정을 제시

 

 

Tree-of-Thoughts (ToT) Prompting

각각의 직사각형 상자는 문제 해결을 향한 중간 단계로서 기능하는 일관된 언어 시퀀스인 생각을 나타냄

 

  • CoT 프롬프팅 기법을 일반화하여 언어 모델을 사용해 일반적 문제 해결을 위한 중간 단계 역할을 하는 생각에 대한 탐색을 촉진
  • ToT는 신중한 추론 과정을 거쳐 문제를 해결하기 위한 중간 생각들이 문제를 해결해나가는 과정을 자체적으로 평가할 수 있음
  • 언어 모델이 생각을 생성하고 평가하는 탐색 알고리즘(DFS)와 결합되어 선제적 탐색과 백트래킹이 가능한 생각의 체계적인 탐색을 함

 

무작위로 선택된 창의적 글쓰기 과제에서의 신중한 검색 단계. 입력이 주어진 후, LM은 5개의 다른 계획을 샘플링한 다음, 어떤 계획이 최선인지 결정하기 위해 5번 투표함

다수결로 선택된 계획은 같은 샘플-투표 절차를 사용하여 결과적으로 출력문을 작성하는데 사용

 

Graph-of-Thoughts (GoT) Prompting

GoT의 reasoning

인간 사고 과정의 본질적인 비선형성(non-linear)는 프롬프팅의 전통적인 순차적 접근 방식에 도전함

추론 과정을 Directed graph로 모델링하고, 다양한 변환 연산을 제공하는 모듈식 아키텍처를 포함

*Directed graph는 노드와 노드를 연결하는 화살표가 있는 edge로 구성된 그래프. 한 방향으로만 흐름을 나타내며 정보의 흐름, 상태 전이, 의존성 관계 등 다양한 현상을 모델링하는데 사용

 

Graph-of-Thought framework overview

  • 그래프 구조 데이터 구축에 중점을 둔 방법
  • 담화 및 행동 그래프를 통한 구조 인식 추상 대화 요약
  • 앞의 맥락을 사용하여 이론적 근거를 그래프 형식으로 변환하는 것

 

 

System 2 Attention (S2A) Prompting - System 2 Attention (is something you might need too)

Transformer 기반 LLM(대형 언어 모델)의 Soft attention은 컨텍스트의 관련 없는 정보를 잠재 표현에 통합하여 다음 토큰 생성에 부정적인 영향을 미치기 쉽습니다. 이러한 문제를 해결하는 데 도움이 되도록 우리는 LLM의 능력을 활용하여 자연어로 추론하고 지시에 따라 무엇을 주의해야 할지 결정하는 S2A(System 2 Attention)를 도입합니다.

S2A는 최종 응답을 도출하기 위해 재생성된 컨텍스트에 참여하기 전에 관련 부분만 포함하도록 입력 컨텍스트를 재생성합니다. 실험에서 S2A는 의견이나 관련 없는 정보, QA, 수학 단어 문제 및 긴 형식 생성을 포함하는 세 가지 작업에서 표준 주의 기반 LLM보다 성능이 뛰어났습니다. 여기서 S2A는 사실성과 객관성을 높이고 아첨을 줄였습니다.

 

논문 출처: https://arxiv.org/pdf/2311.11829.pdf

출처: https://gonzoml.substack.com/p/system-2-attention-is-something-you

 

  • 추론을 왜곡할 수 잇는 관련 정보가 제거된 컨섹스트를 생성하는 작업이 포함
  • 오류가 발생하기 쉬운 시스템 1 추론이 충분하지 않을 때 사용
  • 2단계 방법 사용 1) 출력에 부정적인 영향을 미칠 수 있는 요소를 제거하여 지정된 컨텍스트(x)를 개선된 버전 (x')으로 재구성. 이는 x'~S2A(x)로 표현
  • LLM은 원본 대신 y~LLM(x')로 기호화된 수정된 컨텍스트를 사용하여 최종 응답(y) 생성
  • 제로샷 프롬프트 (2A(x) = LLM(PS2A(x)로 표시)를 생성하는 작업이 포함되며 PS2A는 프롬프트를 생성하는 함수

 

 

Thread of Thought (ThoT) Prompting

  • 혼란스러운 상황에서 어려움을 겪으며 정보 누락으로 이루어지는데, 생각의 스레드 프롬프트를 사용하면, 대규모 언어 모델이 혼란스러운 상황 문제를 겪을 때 해결할 수 있다고 함
  • 표시된 출력에서 녹색 텍스트가 정답을 나타내고, 빨간 텍스트는 잘못된 예측을 나타냄
  • 그러면 기존의 CoT와 무엇이 다른가?

 

  • 복잡한 문맥을 관리 가능한 여러 부분으로 나누고, 각 부분을 순차적으로 분석하여 최종적으로 정제된 정보를 바탕으로 답변 생성
  • 언어 모델이 처음에 각 문맥 조각을 요약하고 검토한 다음, 이 정보를 종합하여 최종 응답을 도출하는 두 단계 프로세스로 구성
  • 정보가 풍부하거나 복잡한 문맥에서 모델의 추론 능력을 향상 시키는데 유용

 

  • ThoT 프롬프트 예시: "관리 가능한 부분에서 이 맥락을 단계별로 안내하고 요약하고 분석합니다."
  • 모델의 응답
    1. "검색된 Passage 2에 따르면 Anton Philipp Reclam은 Carlsbad에 자신의 출판사를 설립했습니다…"
    2. “검색된 4번 항목에는 라이프치히에 있는 레클람 출판사가…
    3. "마지막으로 검색된 7항에는 독일의 분할 이후에…"라고 나와 있습니다.
    4. 결론: “그러므로 Reclam은 원래 독일 라이프치히에서 설립되었다가 나중에 본사를 슈투트가르트로 옮겼습니다.”

 

CoT와 다른 점을 정리해두었다

 

 

출처: https://praveengovindaraj.com/thread-of-thought-thot-a-new-prompting-approach-to-complex-contexts-f6827e1aec1f

 

 

Chain-of-Table Prompting

출처: https://arxiv.org/html/2401.04398v1

그림 1: (a) 일반 추론, (b) 프로그램 지원 추론, (c) 제안된 Chain-of-Table 간의 비교 그림.

자전거 타는 사람의 국적과 이름이 같은 셀에 있는 복잡한 테이블이 있는 경우

  • (a) 복잡성으로 인해 다단계 추론을 통해 정답을 제공할 수 없다.
  • (b) 답변을 전달하기 위한 프로그램(예: SQL 쿼리)을 생성하고 실행하지만, 테이블의 이름과 국적을 정확하게 파싱하는 것 역시 부족하다.
  • (c) Chain-of-Table은 복잡한 테이블을 질문에 특별히 맞춤화된 버전으로 효과적으로 변환하는 작업 체인을 반복적으로 샘플링한다. Chain-of-Table의 도움으로 LLM은 정답에 도달할 수 있다.

 

  • 테이블 데이터를 이해하고 처리하는 과정에서 사용하는 프롬프팅 기법
  • 테이블 형태의 정보를 단계별로 추론하고 해석하는데 초점을 맞춤

 

2.3 Reduce Hallucination

언어 모델에서 생성된 텍스트의 정확성과 신뢰성을 향상 시키기 위한 연구 분야로 직역하면 "환상 감소"로 "가짜 정보 감소"로 번역한다.

모델이 사실과 일치하지 않거나 관련 없는 정보를 환상(hallucination)이라고 함

이러한 환상은 모델이 훈련 데이터에 직접적인 정보가 없거나 불분명한 상황에서 추론을 시도할 때 발생할 수 있음

즉, 모델이 허위 정보를 생성하는 것을 줄이고 실제 데이터나 사실에 기반한 정확하고 신뢰할 수 있는 출력을 생성하도록 도움

 

Retrieval Augmented Generation (RAG)

출처: https://jeonsworld.github.io/NLP/rag/

RAG의 주요 기능은 현재 task에 대한 관련 정보를 검색하는 방법을 배우는 것이다. Retrieval mechanism의 효과를 평가하기 위해 RAG에서 gradient가 retriever로 전파되는 것을 제거한다고 한다.

 

  • 검증 증강 생성으로 외부 데이터 베이스나 정보 소스에서 실제 정보를 검색하여 모델의 답변을 보완하고 정확도를 높이는 방법

 

ReAct Prompting

  • 추론과 행동을 동시에 고려하는 접근 방식
  • 모델이 추론 과정에서 생성한 추론 경로와 실제 작업을 수행하는데 필요한 행동을 연동
  • 대화형 AI나 의사결정 지원 시스템에 유용

 

Chain-of-Verification (CoVe) Prompting

  • 모델이 생성한 답변의 정확성을 검증하는 과정을 추가하는 기술
  • 모델은 초기 답변 생성한 후, 스스로 질문을 생성하여 답변의 정확성을 검증하고, 이를 통해 최종 답변을 수정하거나 확정
  • 모델이 보다 신뢰할 수 있는 정보를 제공

 

Chain-of-Note (CoN) Prompting

  • 검색된 정보의 관련성과 정확성을 평가하여 모델이 잘못된 정보에 기반한 답변을 생성하는 것을 방지하는 기술
  • 검색된 문서를 분석하여 중요하고 신뢰할 수 있는 정보만 선택하여 답변 생성에 활용

 

Chain-of-Knowledge (CoK) Prompting

(a) chain-of-thought with self-consistency

(b) verify-and-edit

(c) chain-of-knowledge or CoK (this work)

  • 모델이 다양한 지식 소스로부터 동적으로 정보를 수집하고, 이를 바탕으로 복잡한 문제를 해결하거나 질문에 답변하는 과정
  • 모델의 기존 지식이 제한적인 경우나 최신 정보가 필요한 경우에 유용하며, 보다 폭넓은 지식을 활용하여 답변을 생성함

 

2.4 User Interface

  • 사람과 기계 간의 상호작용을 가능하게 하는 공간
  • 사용자 인터페이스는 일반적으로 그래픽, 명령줄, 자연어 처리 등 다양한 형태로 존재
  • 목적은 사용자의 요구를 정확하게 이해하고 적절한 반응을 제공하여 사용자 경험을 최적화하는 것

 

Active Prompting

(1) 불확실성 추정: 몇 개의 인간이 작성한 사고의 연쇄 유무에 관계없이, 우리는 대규모 언어 모델에게 학습 질문 세트에 대해 중간 단계를 포함한 가능한 답변을 생성하도록 k(k = 5 이 그림에서)번 쿼리함

     그런 다음 우리는 불확실성 지표(이 그림에서는 불일치를 사용함)을 통해 k개의 답변을 기반으로 불확실성 u를 계산

(2) 선택: 불확실성에 따라, 우리는 주석을 달기 위해 가장 불확실한 질문을 선

(3) 주석: 우리는 선택된 질문에 대해 인간이 주석을 닮

(4) 추론: 새로 주석된 예시들로 각 질문을 추론함

  • 대규모 언어 모델과의 상호작용에 초점을 맞춘 인터페이스의 한 형태
  • 시스템이 단순히 사용자의 질문에 답변만 하는 것이 아니라, 더 나은 답변을 생성하기 위해 추가 정보를 요청하거나 질문을 명확히 하기 위한 질문을 할 수 있음
  • 사용자와 대화를 이어 나가며, 초기 프롬프트에 기반한 답변의 정확도와 관련성을 높이는 데 도움을 줄 수 있음
  • 정보가 부족하거나 질문이 모호할 때 유용하며, 더 정확한 정보를 제공받을 수 있도록 함
  • 대화형 AI, 고객 지원 시스템, 교육용 애플리케이션 등 분야

 

2.5 Fine-Tuning and Optimization

 

Automatic Prompt Engineer (APE)

  • 언어 모델을 위한 프롬프트를 자동으로 생성하고 최적화하는 과정
  • 특정 작업에 대해 가장 효과적인 프롬프트를 동적으로 설계하고 선택하여 모델의 성능을 향상시키는 것을 목표로 함
  • 수동으로 프롬프트를 작성하고 테스트하는 번거로움 없이, 모델이 더 높은 정확도와 일관성을 가진 답변을 생성할 수 있게 도움

 

2.6 Knowledge-Based Reasoning and Generation Automatic Reasoning and Tool-use (ART)

  • 요약: ART는 작업 라이브러리 (A)에서 관련 작업의 분해를 선택하고 LMM 생성(B)과 함께 도구 라이브러리에서 도구를 선택 및 사용하여 새로운 작업에 대한 자동 다단계 분해를 생성, 인간은 선택적으로 분해를 편집하여 성능을 향상 시킬 수 있음(c)
  • 작업 선택: 다양한 작업에 대한 데모를 포함한 작업 라이브러리에서 관련 작업을 선택
  • 도구 통합: 필요할 때마다 외부 도구를 호출하고, 도구의 출력을 통합하여 추론 프로세스를 재개
  • 제로샷 일반화: 데모를 통해 새로운 작업을 분해하고 도구를 적절히 사용하는 방법을 학습
  • 인간 피드백: 사용자는 작업 라이브러리를 수정하거나 새 도구를 추가하여 ART의 성능을 향상 시킬 수 있음

 

예시: "Hector가 수평선 위로 35도 각도로 72.0 N 힘으로 체인을 당깁니다. 이 힘의 수평 구성 요소를 결정하십시오."

 

프롬프트 처리 과정:

  1. 검색: "수평 구성 요소의 공식은 무엇인가요?"에 대한 검색을 수행
  2. 코드 생성: "Fx = Ftens * cosine(θ)" 공식을 사용하여 문제 해결을 위한 파이썬 코드 생성
  3. 코드 실행: 생성된 코드를 실행하여 "Fx" 값 도출
  4. 결과: "Fx" 값이 58.9789로 계산됨

 

ART의 적용 및 사용 방법

  • 작업 라이브러리: ART는 다양한 작업에 대한 데모 프로그램을 포함한 작업 라이브러리를 사용합니다.
  • 도구 라이브러리: 필요한 외부 도구(예: 검색, 코드 생성 및 실행)를 호출하여 결과를 프로그램에 통합합니다.
  • 프롬프트 구성: ART는 관련 작업의 데모를 사용하여 새 작업에 대한 프롬프트를 구성합니다.
  • 자동화된 추론: ART는 작업을 여러 단계로 분해하고, 필요한 도구를 사용하여 각 단계에서 정보를 수집하고 추론합니다.
  • 인간 피드백: 사용자는 작업 라이브러리를 수정하거나 새 도구를 추가하여 ART의 성능을 향상시킬 수 있습니다.

 

CoT(Chain of Thought)와의 비교:

CoT: CoT는 복잡한 추론을 위해 자연어로 단계별 추론 과정을 생성하는 방법

ART: ART는 CoT의 접근 방식을 확장하여, 필요한 경우 외부 도구(예: 검색, 코드 실행)의 사용을 포함. 이를 통해 추론 과정에 추가적인 정보와 계산 능력을 제공

 

2.7 Improving Consistency and Coherence

CoT 예시

비교 예시

 

Contrastive Chain-of-Thought (CCoT) Prompting

  • CCoT 프롬프팅은 정확하고 일관된 답변 생성을 위해, 올바른 추론과 잘못된 추론 사례를 모두 제시함으로써 언어 모델의 추론 과정을 가이드하는 방식
  • 기존의 CoT가 종종 놓치는 중요한 실수를 대비적 사고의 연쇄 프롬프팅을 통해 원래의 프롬프트와 함께 올바른 및 잘못된 추론 시연을 제공

 

 

2.8 Managing Emotions and Tone

Emotion Prompting

  • 텍스트의 감정적 톤을 관리하고, 모델이 사용자의 감정 상태를 인식하고 반응할 수 있도록 하는 프롬프팅 기법
  • 이를 통해 사용자와의 상호작용이 더 자연스럽고 인간적으로 이루어질 수 있음

 

 

2.9 Code Generation and Execution Scratchpad Prompting

Scratchpad Prompting

  • 모델이 복잡한 계산이나 프로그래밍 문제를 해결할 때 중간 단계를 기록할 수 있는 공간(스크래치패드)을 제공

Program of Thoughts (PoT) Prompting

  • 모델이 수학적 또는 논리적 문제를 해결하기 위해 중간 계산 과정을 프로그램 코드 형태로 표현

Structured Chain-of-Thought (SCoT) Prompting

  • 구조화된 추론 과정을 통해 코드 생성 문제를 해결하도록 모델을 가이드하는 기법

 

2.10 Optimization and Efficiency

메타-프롬프트를 입력으로 주어지면, LLM은 목표 함수에 대한 새로운 해결책을 생성하고, 그 다음 최적화 단계를 위해 새로운 해결책과 그들의 점수가 메타-프롬프트에 추가됨

메타-프롬프트는 최적화 과정을 통해 얻은 해결책-점수 쌍 뿐만 아니라, 작업의 자연어 설명과 (프롬프트 최적화에서) 작업의 몇 가지 예시를 포함함

 

메타-프롬프트 최적화 과정 예시

 

Optimization by Prompting (OPRO) - Large language models as optimizers.

  • 언어 모델을 이용해 특정 작업에 대한 최적의 프롬프트를 도출하고, 이를 통해 모델의 성능을 향상시키는 접근 방식
  • 프롬프트 최적화를 통해 모델의 출력 품질과 효율성을 개선

 

2.11 Understanding User Intent

motivation

여러 가지 모호성을 관찰할 수 있음

짝수 월을 짝수일의 수를 가진 달로 해석할 수 있는데, 인간의 원래 의도와 다름

독립적 쿼리마다 다른 출력을 생성

 

 

Rephrase and Respond (RaR) Prompting

  • 모델이 사용자의 질문을 재구성하고, 이를 통해 더 명확하게 의도를 이해한 후 적절하게 반응하는 방식.
  • 모델의 이해력과 응답 품질을 향상시킴

 

2.12 Metacognition and Self-Reflection Take a Step Back Prompting

두 단계 추상화 및 이론 추론을 개념 및 원칙에 의해 안내하는 일러스트레이션

 

  • 위쪽: MMLU 고등학교 물리학(Hendrycks et al., 2020)의 예시로, 첫 번째 이상 기체 법칙의 원칙이 추상화를 통해 검색됨.
  • 아래쪽: TimeQA(Chen et al., 2021)에서 교육 역사의 고급 개념이 추상화의 결과로 나타난 예시.
  • 왼쪽: PaLM-2L(Anil et al., 2023)은 원래 질문에 대답하는 데 실패함
    사고의 연쇄 프롬프팅(Wei et al., 2022b; Kojima et al., 2022)은 중간 추론 단계에서 오류에 직면함(빨간색으로 강조 표시됨).
  • 오른쪽: PaLM-2L(Anil et al., 2023)은 STEP-BACK PROMPTING을 통해 질문에 성공적으로 답함

 

Take a Step Back Prompting

  • 복잡한 문제에 대해 모델이 한 걸음 물러나서 전체적인 문제를 재평가하고, 더 높은 수준의 추론을 수행할 수 있도록 하는 기술

 

3 Conclusion

  • 29가지의 프롬프팅 엔지니어링 기술을 분류하였음
  • 편향, 사실적 부정확성, 해석 가능성의 도전과제는 계속 지속되고 있음
  • 메타 학습과 하이브리드 프롬프팅 아키텍처와 같은 트렌드

 

728x90
댓글