프롬프트 엔지니어링

최신 프롬프트 엔지니어링의 최신 발전: 종합 가이드

mm
Unite.AI를 Google의 선호 소스에 추가

프롬프트 엔지니어링, LLM으로부터 원하는 반응을 얻기 위한 프롬프트를 설계하는 예술과 과학은 중요한 연구 및 개발 분야가 되었습니다.

이外 도구와 프로그램과의 무결한 통합을 가능하게 하는 것에서부터 추론 능력을 향상시키는 것까지, 프롬프트 엔지니어링의 최신 발전은 인공 지능의 새로운 전선을 열어줍니다. 아래에서 우리는 프롬프트 엔지니어링의 미래를 형성하는 최신 기술과 전략에 대해 논의합니다.

프롬프트 엔지니어링

프롬프트 엔지니어링

복잡한 문제 해결을 위한 고급 프롬프트 전략

CoT 프롬프팅이 많은 추론 작업에서 효과적임을 입증했지만, 연구자들은 더 복잡한 문제를 해결하기 위한 더 고급 프롬프트 전략을 탐구했습니다. 이러한 접근 방식 중 하나는 Least-to-Most 프롬프팅으로, 복잡한 문제를 더 작은 하위 문제로 나누고, 독립적으로 해결한 후, 최종 해결책에 도달하기 위해 결합합니다.

또 다른 혁신적인 기술은 Tree of Thoughts (ToT) 프롬프팅으로, LLM이 여러 라인에 대한 추론 또는 “생각”을 병렬로 생성하고, 자신의 진행 상황을 평가하고, 필요에 따라 백트래킹 또는 대체 경로를 탐색할 수 있도록 합니다. 이 접근 방식은 너비 우선 탐색 또는 깊이 우선 탐색과 같은 검색 알고리즘을 사용하여, LLM이 문제 해결 과정에서 미리 보거나 백트래킹할 수 있도록 합니다.

외부 도구 및 프로그램과의 통합

LLM은 매우 강력하지만, 최신 정보에 액세스할 수 없거나 정확한 수학적 추론을 수행할 수 있는 등의 내재된 제한이 있습니다. 이러한 약점을 해결하기 위해, 연구자들은 LLM이 외부 도구 및 프로그램과 무결한 통합을 가능하게 하는 기술을 개발했습니다.

주목할만한 예는 Toolformer로, LLM이 시나리오를 식별하고, 사용할 도구를 지정하고, 관련 입력을 제공하고, 도구의 출력을 최종 응답에 통합할 수 있도록 합니다. 이 접근 방식은 다양한 텍스트-텍스트 API의 올바른 사용을 보여주는 합성 훈련 데이터셋을 구성하는 것을 포함합니다.

또 다른 혁신적인 프레임워크인 Chameleon은 “플러그 앤 플레이” 접근 방식을 사용하여, 중앙 LLM 기반 컨트롤러가 자연어 프로그램을 생성하고, 다양한 도구를 구성 및 실행할 수 있도록 합니다. 이 모듈식 접근 방식은 Chameleon이 여러 도구와 모델의 강점을 활용하여 복잡한 다중 모드 추론 작업을 수행할 수 있도록 합니다.

기본 프롬프트 전략

제로샷 프롬프팅

제로샷 프롬프팅은 작업을 설명하고, 모델이 예를 필요로하지 않고 해결하도록 요청하는 것을 포함합니다. 예를 들어, “cheese”를 프랑스어로 번역하려면, 제로샷 프롬프트는 다음과 같을 수 있습니다:

영어 단어를 프랑스어로 번역하세요: cheese.

이 접근 방식은 직접적이지만, 작업 설명의 모호성으로 인해 제한될 수 있습니다.

페어샷 프롬프팅

페어샷 프롬프팅은 작업의 여러 예를 포함하여, 제로샷 프롬프팅을 개선합니다. 예를 들어:

영어 단어를 프랑스어로 번역하세요:
1. apple => pomme
2. house => maison
3. cheese => fromage

이 방법은 모호성을 줄이고, 모델에 대한 명확한 지침을 제공하며, LLM의 상황 학습 능력을 활용합니다.

지시 프롬프팅

지시 프롬프팅은 원하는 출력을 명시적으로 설명합니다. 이는 지시를 따르는 모델과 특히 효과적입니다. 예를 들어:

단어 "cheese"를 프랑스어로 번역하세요. 올바른 번역은 "fromage"입니다.

GPT-4와 같은 모델은 이러한 지시에 정확하게 따라합니다.

고급 프롬프트 기술

체인 오브 사고 프롬프팅으로 추론 능력 향상

프롬프트 엔지니어링에서 가장 중요한 발전 중 하나는 체인 오브 사고 (CoT) 프롬프팅의 개발입니다. 이 기술은 LLM이 단계별 사고 과정을 생성하고, 최종 답변을 제공하기 전에, 추론 능력을 향상시키는 것을 목표로 합니다.

Left: 전통적인 방법은 일반 입력 (0샷 CoT) 또는 레이블이 있는 예제 (페어샷 CoT)가 필요합니다. Right: 새로운 접근 방식은 LLM이 문제 해결 전에 관련 예제를 스스로 생성하도록 합니다.

Left: 전통적인 방법은 일반 입력 (0샷 CoT) 또는 레이블이 있는 예제 (페어샷 CoT)가 필요합니다. Right: 새로운 접근 방식은 LLM이 문제 해결 전에 관련 예제를 스스로 생성하도록 합니다.

CoT 프롬프팅은 LLM에 예제를 제공하는 것으로 작동하며, 입력과 출력뿐만 아니라, 중간 추론 단계 또는 “사고의 연쇄”도 포함합니다. 이러한 예제에서 학습한 LLM은 새로운 문제에 대해 자신의 사고의 연쇄를 생성할 수 있습니다. 이는 복잡한 추론 작업을 해결하는 능력을 향상시킵니다.

예:

입력: 나탈리는 3개의 사과를 가지고 있으며, 2명의 친구와 공유하고 싶습니다. 각 사람이 받을 사과의 수는 얼마입니까? 사고의 연쇄: 좋습니다, 이를 단계별로 나눕시다:

  1. 나탈리는 3개의 사과를 가지고 있습니다
  2. 그녀는 2명의 친구와 공유하고 싶습니다
  3. 총 3명의 사람이 있습니다 (나탈리와 그녀의 2명의 친구)
  4. 사과를 공평하게 공유하기 위해, 총 사과 수 (3)를 사람 수 (3)로 나눕니다
  5. 3을 3으로 나누면 1이 됩니다
  6. 따라서 각 사람은 1개의 사과를 받습니다. 출력: 각 사람은 1개의 사과를 받습니다.

명시적으로 추론 과정을 생성함으로써, GPT-3와 Codex와 같은 LLM은 산술, 상식, 기호적 추론 작업에서 상당한 개선을 보여주었습니다.

자기 일관성

자기 일관성은 CoT 프롬프팅의 신뢰성을 향상시키는 것으로, 여러 사고의 연쇄를 생성하고, 최종 답변에 대한 다수결 투표를 진행합니다. 이 방법은 단일 잘못된 추론 경로의 영향을 완화합니다.

최소에서 최대 프롬프팅

최소에서 최대 프롬프팅은 복잡한 문제를 더 단순한 하위 문제로 나누고, 각 하위 문제를 순차적으로 해결하며, 이전 해결의 맥락을 사용하여 이후 단계를 안내합니다. 이 접근 방식은 다단계 추론 작업에 유용합니다.

프롬프트 엔지니어링의 최근 발전

프롬프트 엔지니어링은 빠르게 발전하고 있으며, LLM의 성능을 개선하기 위한 여러 혁신적인 기술이 등장했습니다. 이러한 최신 방법에 대해 자세히 살펴보겠습니다:

자동 체인 오브 사고 프롬프팅 (Auto-CoT)

무엇인가: Auto-CoT는 LLM에 대한 추론 연쇄를 자동으로 생성하는 방법으로, 수동으로 제작된 예제가 필요하지 않습니다. 이 기술은 0샷 체인 오브 사고 프롬프팅을 사용하여, 모델이 단계별로 생각하도록 지시합니다.
작동 방식:

  1. 0샷 CoT 프롬프팅: 모델에 간단한 프롬프트를 제공하여, 자세한 추론을 유도합니다.
  2. 예제의 다양성: Auto-CoT는 다양한 질문을 선택하고, 이 질문에 대한 추론 연쇄를 생성하여, 다양한 문제 유형과 추론 패턴을 다룹니다.

장점:

  • 자동화: 수동으로 예제를 제작하는 노력을 줄입니다.
  • 성능: 다양한 추론 벤치마크 작업에서, Auto-CoT는 수동 CoT 프롬프팅의 성능과 일치하거나 이를 초과했습니다.

복잡성 기반 프롬프팅

무엇인가: 이 기술은 가장 복잡한 예제 (즉, 가장 많은 추론 단계를 포함하는 예제)를 선택하여 프롬프트에 포함합니다. 이는 모델의 다단계 추론 작업 성능을 향상시키는 것을 목표로 합니다.
작동 방식:

  1. 예제 선택: 프롬프트에 포함할 예제를 추론 단계의 수에 따라 선택합니다.
  2. 복잡성 기반 일관성: 디코딩 중에, 여러 추론 연쇄를 샘플링하고, 가장 복잡한 연쇄에서 다수결 투표를 진행합니다.

장점:

  • 성능 향상: 다단계 추론 작업에서 정확도가 크게 향상됩니다.
  • 로버스트성: 다양한 프롬프트 분포와 노이즈가 있는 데이터에서도 효과적입니다.

프로그레시브 힌트 프롬프팅 (PHP)

무엇인가: PHP는 이전에 생성된 추론을 힌트로 사용하여 모델의 답변을 반복적으로 개선합니다. 이 방법은 모델의 이전 응답을 사용하여, 최종 답변에 도달하기까지 여러 반복을 거칩니다.
작동 방식:

  1. 초기 답변: 모델은 표준 프롬프트를 사용하여 기본 답변을 생성합니다.
  2. 힌트 및 개선: 이 기본 답변은 이후 프롬프트에서 힌트로 사용되어, 답변을 개선합니다.
  3. 반복 과정: 이 과정은 답변을 반복적으로 개선하여, 최종적으로 안정된 답변을 얻을 때까지 지속됩니다.

장점:

  • 정확도: 추론 정확도가 크게 향상됩니다.
  • 효율성: 샘플 경로의 수를 줄여, 계산 효율성을 향상시킵니다.

디컴포즈드 프롬프팅 (DecomP)

무엇인가: DecomP는 복잡한 작업을 더 단순한 하위 작업으로 나누고, 각 하위 작업을専用 모델이나 프롬프트로 처리합니다. 이 모듈식 접근 방식은 복잡한 문제를 더 효과적으로 다룰 수 있도록 합니다.
작동 방식:

  1. 작업 분해: 주요 문제를 더 단순한 하위 작업으로 나눕니다.
  2. 하위 작업 처리: 각 하위 작업을専用 모델이나 프롬프트로 처리합니다.
  3. 모듈식 통합: 이러한 처리기는 개별적으로 최적화, 대체 또는 결합되어, 복잡한 작업을 해결할 수 있습니다.

장점:

  • 유연성: 개별 하위 작업을 쉽게 디버깅하고 개선할 수 있습니다.
  • 확장성: 긴 컨텍스트와 복잡한 하위 작업을 포함하는 작업을 효과적으로 다룹니다.

가설에서 이론으로 프롬프팅 (HtT)

무엇인가: HtT는 과학적 발견 과정에서 모델이 가설을 생성하고 검증하여, 복잡한 문제를 해결합니다. 이 방법은 검증된 가설에서 규칙 라이브러리를 생성하여, 모델이 추론에 사용할 수 있도록 합니다.
작동 방식:

  1. 유도 단계: 모델은 잠재적인 규칙을 생성하고, 훈련 예제에 대해 검증합니다.
  2. 규칙 라이브러리 생성: 검증된 규칙은 규칙 라이브러리를 형성하기 위해 수집됩니다.
  3. 추론 단계: 모델은 이러한 규칙을 새로운 문제에 적용하여, 규칙 라이브러리를 사용하여 추론합니다.

장점:

  • 정확도: 오류 가능성을 줄임으로써, 정확도가 향상됩니다.
  • 이전 가능성: 학습된 규칙은 다른 모델과 문제 형태에 이전할 수 있습니다.

도구 강화 프롬프팅 기술

Toolformer

Toolformer는 LLM을 외부 도구와 통합하여, 모델이 이러한 도구를 사용하여 해결할 수 없는 문제를 해결할 수 있도록 합니다. 예를 들어, LLM은 계산기를 호출하여 산술 연산을 수행할 수 있습니다.

Chameleon

Chameleon은 중앙 LLM 기반 컨트롤러가 다양한 도구를 구성하여, 복잡한 추론 작업을 해결할 수 있도록 합니다. 이 접근 방식은 비전 모델, 웹 검색 엔진 및 Python 함수를 포함한 다양한 도구와 모델의 강점을 활용합니다.

GPT4Tools

GPT4Tools는 오픈 소스 LLM을 다중 모드 도구와 통합하여, 이러한 도구를 사용하여 성능을 향상시킵니다. 이는 자체 지시 접근 방식을 사용하여, 모델이 외부 도구를 사용하여 문제를 해결하도록 합니다.

Gorilla와 HuggingGPT

Gorilla와 HuggingGPT는 LLM을 온라인에서 사용할 수 있는 전문 심층 학습 모델과 통합합니다. 이러한 시스템은 검색을 인식하는 미세 조정을 사용하거나, 계획 및 조정 접근 방식을 사용하여, 여러 모델을 포함하는 복잡한 작업을 해결합니다.

프로그램 지원 언어 모델 (PAL) 및 사고 프로그램 (PoT)

외부 도구와의 통합 외에도, 연구자들은 프로그래밍 구성을 사용하여 LLM의 문제 해결 능력을 향상시키는 방법을 탐구했습니다. PAL과 PoT는 이러한 접근 방식 중 두 가지로, 코드를 사용하여 LLM의 추론 과정을 보완합니다.

PAL은 LLM이 자연어와 코드 (예: Python)를 교차하여, 최종 해결책을 생성할 수 있도록 합니다. 이 접근 방식은 LLM이 올바른 추론을 생성하지만, 잘못된 최종 답변을 생성하는 일반적인 실패 사례를 해결합니다.

비슷하게, PoT는 SymPy와 같은 기호적 수학 라이브러리를 사용하여, LLM이 수학적 기호와 식을 정의하고, SymPy의 해결 함수를 사용하여 평가할 수 있도록 합니다. 계산을 코드 인터프리터에게 위임함으로써, 이러한 기술은 추론과 계산을 분리하여, LLM이 더 복잡한 문제를 해결할 수 있도록 합니다.

컨텍스트 윈도우 이해 및 활용

LLM의 성능은 제공된 컨텍스트를 처리하고 활용하는 능력에 크게 의존합니다. 연구자들은 LLM이 긴 컨텍스트를 처리하는 방식과, 관련이 없는 정보가 출력에 미치는 영향을 조사했습니다.

컨텍스트의 “중간에迷失” 현상은 LLM이 컨텍스트의 시작과 끝에 더 많은 주의를 기울이고, 중간의 정보는 종종 무시되거나 “迷失”된다는 것을 강조합니다. 이는 프롬프트 엔지니어링에 중요한 의미를 가지며, 관련 정보를 컨텍스트 내에서 신중하게 배치하면 성능을 크게 향상시킬 수 있습니다.

또 다른 연구 분야는 관련이 없는 컨텍스트의 해로운 영향을 완화하는 데 중점을 둡니다. 자기 일관성, 관련이 없는 정보를 무시하도록 명시적인 지시, 관련이 없는 컨텍스트에서 문제를 해결하는 예제를 포함하는 것과 같은 기술은 LLM이 가장 관련이 있는 정보에 집중하도록 도와줍니다.

프롬프팅 전략을 사용한 작성 능력 향상

LLM은 인간과 같은 텍스트를 생성하는 데 탁월하지만, 작성 능력을 향상시키기 위한 전문 프롬프팅 전략을 사용하여, 더 나은 성능을 달성할 수 있습니다. 이러한 기술 중 하나는 스켈레톤 오브 사고 (SoT) 프롬프팅으로, 순차적 디코딩의 대기 시간을 줄이기 위해, 인간의 작성 과정을 모방합니다.

SoT 프롬프팅은 LLM이 먼저 답변의 스켈레톤 또는 개요를 생성한 다음, 각 요소를 자세히 채우기 위해 병렬 API 호출을 수행하도록 합니다. 이 접근 방식은 추론 대기 시간을 개선할 뿐만 아니라, LLM이 출력을 더 효과적으로 계획하고 구조화하도록 함으로써, 작성 품질을 향상시킵니다.

또 다른 프롬프팅 전략인 체인 오브 덴시티 (CoD) 프롬프팅은 LLM이 생성한 요약의 정보 밀도를 향상시키는 데 중점을 둡니다. 요약의 길이를 고정한 채로, 요약에 엔티티를 반복적으로 추가하여, 사용자가 요약의 간결성과 완전성 사이의 트레이드오프를 탐색할 수 있도록 합니다.

새로운 방향과 미래 전망

ChatGPT & 고급 프롬프트 엔지니어링

고급 프롬프트 엔지니어링

프롬프트 엔지니어링 분야는 빠르게 발전하고 있으며, 연구자들은 지속적으로 새로운 전선을 개척하고, LLM의 가능성을 확장하고 있습니다. 일부 새로운 방향에는:

  1. 액티브 프롬프팅: 특정 추론 문제를 해결하기 위한 가장 유용한 예제를 식별하고 주석을 달기 위한 불확실성 기반 액티브 러닝 원리를 활용하는 기술입니다.
  2. 다중 모드 프롬프팅: 텍스트, 이미지 및 기타 데이터 모달리티의 조합과 같은 다중 모드 입력을 처리하기 위한 프롬프팅 전략을 확장합니다.
  3. 자동 프롬프트 생성: 특정 작업 또는 도메인에 최적화된 효과적인 프롬프트를 자동으로 생성하기 위한 최적화 기술을 개발합니다.
  4. 해석 가능성 및 설명 가능성: LLM 출력의 해석 가능성과 설명 가능성을 향상시키기 위한 프롬프팅 방법을 탐구합니다. 이는 투명성과 신뢰성을 높여, 의사 결정 과정에 대한 이해를 개선합니다.

LLM이 다양한 도메인에서 적용되면서, 프롬프트 엔지니어링은 그들의 전체 잠재력을 발휘하는 데 중요한 역할을 할 것입니다. 최신 프롬프팅 기술과 전략을 활용하여, 연구자와 실무자는 더 강력하고, 신뢰할 수 있고, 작업별로 최적화된 AI 솔루션을 개발하여, 자연어 처리의 가능성을 확장할 수 있습니다.

결론

LLM을 위한 프롬프트 엔지니어링 분야는 빠르게 발전하고 있으며, 연구자들은 지속적으로 새로운 전선을 개척하고 있습니다. 체인 오브 사고 프롬프팅을 사용한 추론 능력 향상부터 Toolformer와 Chameleon과 같은 외부 도구와의 통합까지, 프롬프트 엔지니어링의 최신 발전은 인공 지능의 새로운 전선을 열어줍니다.

지난 5년 동안私は Machine Learning과 Deep Learning의 매혹적인 세계에 몰두해 왔습니다.私の熱情と専門知識は私を50以上의多様한 소프트웨어 엔지니어링 프로젝트에 기여하게 했으며, 특히 AI/ML에 중점을 두었습니다.私の継続的な 호기심은 또한私를自然어 처리로 끌어들였습니다.私は이 분야를さらに 탐구하기를熱望합니다.