Study/자연언어처리 NLP

LLM 기반 Prompt Engineering 연구

김 도경 2025. 2. 5. 12:05
Prompt Engineering
  • Prompt Engineering
    - 요구하는 작업을 지시하기 위한 작업! 요약? 분류? 추출?
    - LLM 시대로 넘어오면서 Task 수행을 위한 Template, Task Example, Answer Engineering 등의 Hard Prompt를 구성하는 방법을 주로 칭함

  • Prompt Engineering의 종류

  • LLM의 In-Context Learning (ICL) 능력을 활용하기 위함: Prompt Engineering

  • LLM Prompt의 구성 요소
    - Task Instruction, Demonstrations (Examples), Query

  • LLM Prompting Example
    - 수학적 추론, 데이터 추론, 상식 추론 등, 수행하고자 하는 작업에 맞는 특성을 고려해야 함

  • Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
    - 수학적 추론에 특히 약한 LLMs → 단계적 사고를 하도록 유도
    - Diverse tasks에 대한 Human-crafted examples를 LLMs에 제공
    - 수학적 추론, 상식 추론 등 다양한 tasks에서 standard prompting보다 큰 개선

  • Least-to-Most Prompting Enables Complex Reasoning in Large Language Models
    - CoT Prompting의 More complex problems에 대한 한계점: 복잡한 문제를 하위 문제로 분해 및 순차적 해결
    - Least-to-Most Prompting 는 특히 compositional generalization task인 SCAN에서 CoT 대비 큰 개선

  • Automatic Chain of Thought Prompting in Large Language Models
    - CoT는 Manually-crafted CoT Examples에 의해서 고품질 추론을 유도 ⇒ Human effort가 많이 듦
    - Query와의 Similarity 기반 Example Retriever를 활용이 Random Retriever보다 낮은 성능!?? → Diversity 문제
    - 유사도로 Clusters 구축한 뒤, 각 Cluster에서 예제 선정 -> Cluster를 문제 해결에 대한 다양성의 척도로 활용

  • Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models
    - CoT 기반의 대수 연산에서 빈번한 Error..!
    - Planning First and Solving
    - Zero-Shot 에서도 Few-shot Manual-CoT와 유사한 성능!

  • Self-Instruct: Aligning Language Models with Self-Generated Instructions
    - “Instruction-tuned” LLM의 높은 일반화 성능 ⇒ 고품질의 human-crafted Instruction에 의존적
    - LM을 활용하여 고품질의 Instruction dataset을 자동으로 구축하는 방법론 제안
    - Self-Instruct 방법론 적용시 성능 GPT-3의 성능을 크게 개선

  • Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity
    - ICL로 주어지는 입력 예제의 순서에 따라 성능의 편차 발생!
    - Entropy-based Probing Metrics 제안

  • Unified Demonstration Retriever for In-Context Learning
    - Task-Specific Demonstration Retriever 구축의 비효율성 지적
    - 여러 tasks의 데이터를 활용, retriever 스스로 high-quality candidates를 찾아내도록 학습
    - 다양한 Knowledge-intensive tasks에서 큰 개선

  • Self-Consistency Improves Chain of Thought Reasoning in Language Models
    - Zero-shot Chain-of-Thought Reasoning을 활용한 a new decoding strategy인 Self-Consistency 제안
    - Arithmetic tasks (Left), Commonsense/Symbolic reasoning tasks (Right) 에서 큰 개선 (Zero-shot)

  • Deductive Verification of Chain-of-Thought Reasoning
    - Intermediate reasoning steps가 잘못된 경우 overall reasoning에 누적된 오류가 발생하는 CoT의 치명적 단점

  • Verify-and-Edit: A Knowledge-Enhanced Chain-of-Thought Framework
    - Self-Consistency 기반 Majority voting을 Verification 수행 판단에 대한 척도로 활용
    - Knowledge-Intensive tasks의 성능 대폭 개선

  • Promptbreeder: Self-Referential Self-Improvement Via Prompt Evolution
    - Self-referential, Self-improvement Prompting strategy 제안: Prompt Evolution !?
    - Evolution by Prompt Mutation
    - 매우 높은 성능, 그러나 Training set에 기반한 fitness score 그리고 이 score에 기반한 정제 과정 포함.. 과연 fair?

 

LLM Tools
  • LangChain
    - 단 코드 몇 줄로 LLM 사용
    - 임베딩, 문서 검색, Prompt Engineering, Chains, Agent 등의 다양한 기능 지원

  • LangChain Components
    - LangChain Components는 다음과 같이 모듈화되어 있으며, Chains를 활용하여 조합하여 활용
    - Model I/O: 프롬프트 관리, 프롬프트 최적화, 모든 LLM에 대한 일반적인 인터페이스 및 LLM과 작업하기 위한 유틸리티 포함
    - Retrieval:외부 데이터 소스와 상호 작용하여 생성 단계에서 사용할 데이터를 가져와서 활용할 수 있도록 하는 기능 포함
    - Agents: LLM이 어떤 작업을 수행할지 결정하고 해당 작업을 수행하도록 하는 요소

  • AutoGPT
    - 사용자가 설정한 목표를 GPT끼리의 상호작용을 통해 자율적으로 달성하도록 하는 Open-source project.

  • Scikit-LLM
    - LLMs을 Scikit learn 방식으로 활용할 수 있는 인터페이스 제공

'Study > 자연언어처리 NLP' 카테고리의 다른 글

Multimodal LLM  (0) 2025.02.05
Multilingual LLM  (2) 2025.02.05
LLM 기반 Application 연구  (0) 2025.02.05
LLM 기반 Evaluation-Centric NLP 연구  (2) 2025.02.04
LLM 기반 Model-Centric NLP 연구  (0) 2025.02.04