본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 21. 08:49

AI(언어 모델) 이용 기술 조사: 프롬프트 엔지니어링 관련 기술 (2020~2022년경)

요약

파인튜닝의 한계를 극복하기 위해 등장한 프롬프트 엔지니어링과 인컨텍스트 러닝(In-Context Learning) 기술을 정리합니다. 제로샷 및 퓨샷 프롬프팅의 성능 향상을 위한 다양한 연구 사례와 자동화 기법을 다룹니다.

핵심 포인트

  • 파인튜닝 대비 데이터 효율성이 높은 인컨텍스트 러닝의 부상
  • 제로샷 및 퓨샷 프롬프팅 성능을 결정하는 예시 선택 및 순서의 중요성
  • SBERT 및 kNN 방식을 활용한 최적의 프롬프트 예시 자동 선택 기술
  • 지시어(Instruction) 기반 학습을 통한 모델의 제로샷 성능 향상

2021년경까지는 기반 모델(Foundation Model)을 준비하여 태스크에 맞춰 AI 모델(의 가중치)을 수정하는 파인튜닝(Fine-tuning) 접근 방식이 주류였다1. 그러나 아래와 같은 이유로 Fine-tuning의 한계가 지적되기 시작했다2.

  • 태스크마다 대량의 학습 데이터(教師データ)가 필요하다는 점
  • 미세 조정을 하면 특정 태스크에는 강해지지만, 범용적인 능력(OOD: Out-of-distribution)이 상실된다는 점
  • 인간은 새로운 태스크를 배울 때 수천 개의 예제로 뇌의 구조(가중치)를 다시 쓰지 않는다 (AI도 단 몇 개의 지시만으로 이해해야 한다)

이에 따라 AI 모델에 맞춰 태스크(프롬프트) 쪽을 수정하는 접근 방식이 등장했다. 본 기사에서는 이 프롬프트 엔지니어링(Prompt Engineering)에 관한 기술을 정리했다.

모델 가중치를 업데이트하지 않고, 입력 컨텍스트(Input Context) 중에 주어진 자연어 지시나 소수의 예시로부터 추론 시의 순전파(Forward Pass)만으로 태스크를 인식·적응하는 메커니즘으로서 인컨텍스트 러닝(In-Context Learning)이 제안되었다2.

만약 아래와 같은 상황을 가정할 수 있다면,

  • 사전 학습 분포가 여러 잠재 개념의 혼합(mixture of concepts)으로 구성되어 개념 간을 충분히 구별할 수 있다
  • 언어 모델이 문서 내의 문장 전체에서 공유되는 잠재 개념을 추측하는 방법을 암묵적으로 학습하고 있다
  • 잠재 개념의 예: wiki 약력. 통상적으로 이름 (알베르트 아인슈타인) → 국적 (독일인) → 직업 (물리학자) → ...)

언어 모델은 몇 가지 예시를 보여주는 것만으로도 베이즈 추론(Bayesian Inference)을 통해 올바른 개념을 선택할 수 있다고 생각하는 연구도 있다3.

왜 언어 모델이 공통 개념을 추정할 수 있는지는 완전히 설명되지 않았다.

In-Context Learning이 제안되었을 무렵, 제로샷 프롬프팅(Zero-shot Prompting)이나 퓨샷 프롬프팅(Few-shot Prompting)의 성능을 향상시키기 위한 수많은 기법이 제안되었다.

사전 학습 시에 데이터셋을 지시(Instruction) 형식으로 만들어 언어 모델을 학습시키면, Zero-shot 학습의 정밀도가 올라간다는 연구4.

  • Input:
    Translate this sentence to Spanish: The new office building was built in less than three

months. - Output:
El nuevo edificio de oficinas se construyó en tres meses.

Few-shot Prompting에서는 「어떤 예시를 선택할 것인가」뿐만 아니라 「어떤 순서로 제시할 것인가」도 성능을 결정하는 중요한 요인이며, 프롬프트 엔지니어링이 매우 섬세하고 어려운 문제임을 밝혀낸 연구5.

좋은 프롬프트를 자동 생성하거나, 좋은 Few-shot 예시를 자동 선택하는 수법에 관한 연구6.

먼저 소수의 훈련 데이터로 Fine-tuning을 수행한 후, 개발 데이터상의 정밀도가 높은 템플릿을 좋은 템플릿으로 정의하고, T5를 사용하여 템플릿 후보를 대량 생성한다.

SBERT로 문장 임베딩(Embedding)을 생성하고, 훈련 예시와의 코사인 유사도(Cosine Similarity)를 계산하여 각 클래스별로 입력 문장과 가장 유사한 상위 50%의 예시에서 샘플링한다.

(c)LM-BFF6

Few-shot 성능을 높이기 위해, 미리 문장 인코더(Sentence Encoder)를 사용하여 데이터를 벡터화해 두고, 테스트 입력과 임베딩 공간상에서 의미적으로 유사한(거리가 가까운) 사례를 k-최근접 이웃(kNN) 방식으로 검색·선택하여 제시하는 수법에 관한 연구9.

기존의 무작위로 예시를 고르는 방법과 달리, 테스트 문장에 가장 가까운 유익한 지식이나 문맥을 모델에 제공할 수 있기 때문에 GPT-3의 성능을 효과적으로 끌어낼 수 있다.

기존의 프롬프트에서는 몇 가지 「문제와 답(결론만)」의 쌍을 예시(Few-shot)로 보여주며 모델에 직접 답변을 요구했으나, 복잡한 추론 문제에서는 이것만으로 높은 정답률을 얻을 수 없었다. 이에 예시 안에 「결론에 도달하기까지의 자연어로 된 단계별(step-by-step) 추론 프로세스(사고 과정)」를 포함하는 생각의 사슬(Chain-of-Thought, CoT) 프롬프팅이 제안되었으며, 모델의 추론 능력이 극적으로 향상됨이 나타났다10.

또한, 예시(Few-shot)를 사용하지 않더라도 프롬프트 끝에 「Let's think step by step(단계적으로 생각해 봅시다)」라고 덧붙이는 것만으로도 LLM의 추론 능력이 극적으로 향상된다는 발견도 있었다11.

CoT를 포함한 일직선상의 사고에서는 한 번 사고의 궤도를 벗어나면 마지막까지 계속 틀린다는 한계에 대해, AI에게 여러 개의 궤도를 생각하게 하는(숙고하게 하는) 프롬프트 수법이 제안되어 왔다.

기존의 CoT (Chain-of-Thought) 프롬프트에서 사용되던 「탐욕법 (Greedy Decoding, 항상 가장 확률이 높은 단어 하나만을 선택하는 디코딩)」을 대체하는 새로운 접근 방식12. 「복잡한 추론 문제에는 여러 가지 사고 방식이 존재할 수 있지만, 올바른 논리 전개라면 하나의 유일한 정답에 도달할 것이다」라는 인간의 사고 경험을 모방하여 설계되었다.

처리 프로세스는 다음의 3가지 단계로 구성된다.

  • 언어 모델에 사고 프로세스의 예시를 제시하여 질문
  • 확률적 샘플링 (Sampling)을 사용하여, 모델로부터 다양한 「사고 프로세스와 최종 답변의 쌍」을 여러 개 동시에 생성

(탐욕법에서는 하나의 답변만 출력) - 이러한 여러 추론 결과로부터 최종적인 답변만을 추출하여, 다수결로 가장 많이 등장한 답변을 최종 정답으로 채택

Self-Consistency와 같은 「왼쪽에서 오른쪽으로 토큰 단위의 선형적인 추론」을 대체하는 새로운 추론 프레임워크13. 「사고 (Thought)」라고 불리는 텍스트 덩어리를 중간 단계로 정의하고, 트리 구조 (Tree)를 구축하며 탐색 및 시행착오를 수행하는, 인간의 의도적인 (deliberate) 문제 해결 프로세스를 모방하여 설계되었다.

처리 프로세스는 다음의 4가지 단계 (메타 스텝)로 구성된다.

  • 문제의 사고 단위 분해: 과제를 해결하기 위한 중간 단계 (사고)를 정의하고, 다음 단계의 후보를 여러 개 생성
  • 사고의 평가 (Self-Evolution): 각 단계 (노드)가 목표에 대해 얼마나 유망한지, 모델 스스로 점수를 매기거나 판단 (Good/Fair/Bad 등)하게 하여 평가
  • 탐색 알고리즘 적용: 「너비 우선 탐색 (BFS)」이나 「깊이 우선 탐색 (DFS)」 등의 알고리즘을 도입하여, 유망한 경로를 좁히거나 막혔을 경우 이전 단계로 「백트래킹 (Backtracking, 되돌아가기)」을 하며 트리 구조를 탐색
  • 최종 답변 결정: 탐색을 통해 찾아낸, 전체적으로 가장 글로벌하게 최적이며 일관성 있는 추론 경로로부터 최종적인 정답을 도출

CoT나 ToT와 같은 「선형적 또는 계층적인 일방향 추론」을 대체하는, 더욱 유연한 새로운 추론 프레임워크14. 「사고 (Thought)」를 정점 (노드), 사고 간의 의존 관계를 변 (에지)으로 하는 임의의 그래프 구조로서 정보를 모델링하며, 여러 추론을 조합하거나 루프를 통해 사고를 정교화하는, 보다 다각적이고 비선형적인 인간의 사고 네트워크를 모방하여 설계되었다.

처리 프로세스는 다음의 4가지 모듈 (단계)의 상호작용으로 구성된다.

  • 그래프 구축 및 제어 (Controller): 부여된 태스크에 따른 정적인 실행 계획 (사고의 생성·집약 등의 규칙)에 기반하여, 동적인 추론 이력으로서의 그래프 구조를 구축 및 관리한다.
  • 사고의 변환 및 생성 (Prompter): 하나의 사고로부터 다음 수를 분기시키는 「생성 (Generation)」뿐만 아니라, 여러 가지 서로 다른 추론을 하나로 통합하는 「집약 (Aggregation)」, 동일한 사고를 다듬는 「정교화 (Refining)」와 같은 그래프 특유의 변환을 LLM을 위한 프롬프트로 구축하고 실행한다.
  • 사고의 스코어링 (Scoring & Validation): 생성된 각 사고의 타당성이나 정확성을 모델 스스로 (또는 특정 평가 함수) 점수를 매기게 하여, 다음 추론 단계로 진행할지 여부를 판단하는 재료로 삼는다.
  • 최종 답변 추출 (Parser): 구축된 사고 그래프 전체를 분석하여, 가장 점수가 높고 일관성 있는 추론 경로 (Path)나 집약된 결과로부터 최종적인 정답을 추출하여 출력한다.

인간이 수동으로 프롬프트를 시행착오하는 것이 아니라, 알고리즘이나 LLM 자체를 사용하여 자동으로 최적의 프롬프트를 찾아내는 기술

인간이 수작업으로 수행하던 「프롬프트 (지시문) 설계·최적화」를 LLM 스스로 자동 수행하게 하는 새로운 최적화 프레임워크15. 프롬프트를 일종의 「프로그램」으로 간주하고, 지시문 후보 생성과 점수 평가의 루프를 반복함으로써, 대상 태스크에 대해 최대의 성능을 발휘하는 최적의 프롬프트를 자동으로 선택 및 생성하도록 설계되었다.

처리 프로세스는 다음의 3가지 단계로 구성된다.

  • 지시문 후보 생성 (Prompt Generation): 제시된 소수의 입력·출력 예시(데이터셋)를 기반으로, LLM (모델 A)에게 "이러한 출력을 유도하기 위한 공통의 지시문 (프롬프트)"를 여러 개 동시에 생성하도록 한다.
  • 스코어 함수를 통한 평가 (Prompt Evaluation): 생성된 각 프롬프트 후보의 품질을 검증하기 위해, 별도의 LLM (모델 B)에게 해당 프롬프트를 부여하여 태스크를 실행하게 하고, 기대한 대로의 출력을 얻을 수 있는지 평가 함수 (정확도나 로그 가능도 (Log-likelihood) 등)를 통해 점수를 매긴다.
  • 반복적인 최적화 및 채택 (Optimization & Selection): 점수가 높은 우수한 프롬프트 후보를 바탕으로, 더욱 정교한 프롬프트를 반복적으로 탐색 (몬테카를로 탐색 (Monte Carlo Search) 등)하며, 최종적으로 가장 높은 성능을 보인 프롬프트를 최적의 정답 (지시문)으로 채택한다.

위와 같은 프롬프트 중심 접근 방식에서는 "Context Window (문맥 창)의 한계"나 "환각 (Hallucination)" 문제가 지적되었다. 프롬프트에 아무리 많은 외부 지식을 채워 넣더라도, 컨텍스트 처리 능력의 상한선이나 비용, 나아가 모델의 근본적인 취약성이나 지식의 풍화(Knowledge Decay)와 같은 과제를 완전히 해결하는 것은 어렵다는 점이 밝혀졌으며[^16,17[^18]], 이는 RAG (Retrieval-Augmented Generation, 검색 증강 생성)와 같은 검색 증강 기술에 주목하게 되는 계기가 되었다.

An Explanation of In-context Learning as Implicit Bayesian Inference ↩

Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity ↩

Making Pre-trained Language Models Better Few-shot Learners ↩ ↩

2 -
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer ↩

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks ↩

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models ↩

Self-Consistency Improves Chain of Thought Reasoning in Language Models ↩ ↩

2 -
Tree of Thoughts: Deliberate Problem Solving with Large Language Models ↩ ↩

2 -
Graph of Thoughts: Solving Elaborate Problems with Large Language Models ↩ ↩

2 -
Ignore This Title and HackAPrompt: Exposing Systemic Vulnerabilities of LLMs through a Global Scale Prompt Hacking Competition ↩

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0