open ai 가 쏘아올린 chat gpt 열풍으로.. 프롬프트 엔지니어이라는 새롭게 창직?된 직업군이 있다.
생성형 인공 지능(생성형 AI) 솔루션을 안내하여 원하는 결과를 생성하는 프롬프트 엔지니어링 프로세스를 담당하는 새로운 직업이다. 생성형 AI가 고품질의 관련성 높은 결과물을 생성할 수 있도록 보다 자세한 지침 설계하는 일을 담당한다.
그래서인지 서점에 가면 관련 프롬프트 엔지니어나 챗GPT관련 서적들도 상당히 많고 계속 늘어나는 추세인 것 같다.
프롬프트 엔지니어링은 생성형 AI 모델이 특정 작업을 수행하도록 안내하는 프롬프트를 디자인하고 최적화하는 작업입니다. 이를 통해 모델의 성능과 정확성을 향상시킬 수 있습니다. 여러 가지 프롬프트 기법이 있으며, 아래에서 몇 가지를 설명해드리겠습니다:
1. Instruction(지시사항) : 언어 모델이 실행해야 하는 특정 작업이나 명령을 명확하게 설명합니다.
2. Context(맥락) : 외부 정보나 추가적인 맥락을 제공하여 언어 모델이 명령을 정확히 이해하고 응답할 수 있도록 돕습니다.
3. Input data(입력 데이터) : 모델이 출력을 생성하는 기반이 되는 정보를 제공합니다. 사용자가 제공한 내용이나 질문을 포함할 수 있습니다.
4. Output specification(출력 명세) : 원하는 출력 유형이나 형식을 명시합니다.
출처: Bing과의 대화
(1) 프롬프트 엔지니어링(Prompt Engineering)이란? 정의, 기법, 구성 요소 .... https://kr.appen.com/blog/prompt-engineering/.
(2) 프롬프트 엔지니어링 방법 예시 꿀팁 대방출 (feat. 앤드류 응 .... https://modulabs.co.kr/blog/prompt-engineering/.
(3) 국내 유일 프롬프트 엔지니어링 전문 브랜드 - Prompt Engineer. https://www.promptengineer.kr/.
이러한 요소를 조합하여 프롬프트를 설계하고 모델의 행동을 안내할 수 있다. 그래서 아래에 몇 가지 프롬프트 기법을 코파일럿에게 더 질문해봤다.
- Zero-shot Prompting(제로샷 프롬프팅) :
특정 예시를 제공하지 않고 내용과 기대되는 결과를 설명합니다. 대형 모델이 제로샷 프롬프팅을 효과적으로 처리할 수 있지만 결과가 기대에 미치지 않는 경우가 있습니다.
- Few-shot Prompting(퓨샷 프롬프팅) :
몇 가지 예시를 제공하여 대형 모델이 더 정확한 결과를 생성할 수 있도록 하는 기법입니다. 특히 산술 및 논리 추론과 같은 문제에 유용합니다.
- Chain of Thoughts Prompting(사고의 사슬 프롬프팅) :
중간 추론 단계를 도입하여 복잡한 추론을 수행하는 능력을 향상시키는 기법입니다. 이는 중간 추론 단계의 일련의 과정을 설명하고 추론 프로세스를 수동으로 구성하는 것을 포함합니다.
- Active-Prompt (액티브 프롬프트):
Active-Prompt는 모델이 원하는 출력을 생성하도록 안내하는 프롬프트를 디자인하는 고급 기술입니다. 이 기법은 모델이 목표 결과를 더 정확하게 생성하도록 도와줍니다. Chain-of-Thought (CoT)와 함께 사용하여 중간 추론 단계를 활성화시키는 방식으로 작동합니다.
- Directional Stimulus Prompting (방향성 자극 프롬프팅):
Directional Stimulus Prompting은 모델이 특정 방향으로 진행하도록 유도하는 프롬프트를 설계하는 기법입니다. 예를 들어, 특정 주제에 대한 질문을 할 때 모델이 해당 주제에 집중하도록 유도할 수 있습니다.
- ReAct (리액트):
ReAct는 큰 언어 모델을 다양한 작업에 적응시키기 위한 프롬프트 접근 방법입니다. 이 기법은 사람이 디자인한 CoT 추론과 함께 작업별 예시 프롬프트를 활용하여 모델을 조정합니다.
- Multimodal CoT (다중 모달 CoT):
Multimodal CoT는 여러 가지 모달리티 (예: 텍스트, 이미지)를 결합하여 프롬프트를 설계하는 방법입니다. 예를 들어, 법학 학생이 이미지와 텍스트를 함께 사용하여 추론 프로세스를 구성할 수 있습니다.
출처: Bing과의 대화,
(1) How to talk to AIs: Advanced Prompt Engineering. https://etc.cuit.columbia.edu/news/how-talk-ais-advanced-prompt-engineering.
(2) Miscellaneous Topics - GitHub. https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/guides/prompts-miscellaneous.md.
(3) GitHub - shizhediao/active-prompt: Source code for the paper "Active Prompting with .... https://github.com/shizhediao/active-prompt.
프롬프트 엔지니어링은 연구자들이 생성형 AI 모델의 능력을 높이고 다양한 작업 및 응용 프로그램 도메인에 잘 적응하도록 하는 데 도움이 된다. 이는 프롬프트 엔지니어링을 통해 대형 모델이 더 정확한 결과를 출력하고 다양한 작업에 적합하도록 유연하게 조정할 수 있기 때문이다.
결론적으로.. 프롬프트 엔지니어링을 활용하면 모델을 업데이트하지 않고도 예상된 결과를 얻을 수 있다.
그렇다.
..
그랬다
…
그랬었었다.. ?
?!
최근, 구글에서 발표한 논문으로 인해 프롬프트 엔지니어(링) 분야가 재평가 되지 않을까 조심스럽게 예측해본다. 논문의 내용은 언어 모델이 복잡한 문제를 해결하기 위한 추론 구조를 스스로 발견하게 하는 SELF-DISCOVER에 대한 연구 결과로 구성되어 있다.
스스로 추론 구조를 발견함으로써 기존의 직접 대답 방식과 위 그림과 같은 CoT(Chain-of-Thought) 방법론과 같은 프롬프팅 방식을 뛰어넘어, 언어 모델이 다단계 추론 과정을 자동으로 구성한다. 이러한 과정을 통해 각 모델의 특성에 맞춰 사용자가 일일이 프롬프트 엔지니어링하지 않아도 모델이 자가 학습을 통해 문제 자체를 스스로 해석, 추론하여 최적의 프롬프트로 재가공하는 과정을 수행한다.
한마디로 “개떡같이 말해도 찰떡같이 답해준다“ ;)
Self-Discover: Large Language Models Self-Compose Reasoning Structures
일반적인 프롬프트 방법으로는 어려운 복잡한 추론 문제를 해결하기 위해 LLM이 작업 내재적 추론 구조를 자체 발견하기 위한 일반 프레임워크인 SELF-DISCOVER를 소개합니다. 프레임워크의 핵심은 LLM이 비판적 사고 및 단계별 사고와 같은 여러 원자적 추론 모듈을 선택하고 LLM이 디코딩 중에 따라야 할 명시적인 추론 구조로 구성하는 자체 발견 프로세스입니다. SELF-DISCOVER는 BigBench-Hard, 근거 에이전트 추론 및 MATH와 같은 까다로운 추론 벤치마크에서 GPT-4 및 PaLM 2의 성능을 CoT(Chain of Thought)에 비해 최대 32%까지 크게 향상시킵니다. 또한 SELF-DISCOVER는 CoT-Self-Consistency와 같은 추론 집약적 방법보다 20% 이상 성능이 뛰어나며 필요한 추론 컴퓨팅은 10~40배 더 적습니다. 마지막으로 우리는 자체 발견된 추론 구조가 PaLM 2-L에서 GPT-4, GPT-4에서 Llama2까지 모델 계열 전체에 보편적으로 적용 가능하며 인간 추론 패턴과 공통점을 공유한다는 것을 보여줍니다.
프로세스
셀프 디스커버리를 문제 해결에 사용하는 그림. 생성 LM, 작업 및 시드 추론 모듈 설명이 주어지면, LM이 작업을 해결하기 위해 키-값 형식의 추론 구조를 생성하도록 안내합니다. 마지막으로 모델은 스스로 발견한 구조를 따라 단계별로 JSON에 값을 입력하여 태스크의 모든 인스턴스를 해결할 수 있습니다.
적용 예
BBH-기하 도형 과제에서 CoT, 계획 후 해결, 자기 발견을 통해 생성된 추론 과정의 비교. CoT와 Plan-and-Solve 모두 경로가 닫힌 경로가 아니므로 규칙적인 도형을 형성하지 않는다고 잘못 판단하여(빨간색으로 강조 표시) 오답에 도달합니다. Self-Discover의 추론 구조(파란색 Courier 글꼴)는 먼저 각 선분을 세분화하고 좌표를 면밀히 분석한 다음 논리적 추론을 활용하여 경로가 같은 좌표에서 끝나므로 닫힌 도형을 형성한다고 결론을 내리고(보라색과 주황색으로 강조 표시), 최종 추론을 통해 정답을 선택하게 됩니다.
출처 : 논문 원본
https://arxiv.org/abs/2402.03620
'새로워지기 > 마흔의 생활코딩' 카테고리의 다른 글
LLM | ollama 4부. 검색증강 RAG 적용하기 (0) | 2024.02.25 |
---|---|
LLM | ollama 2부. 로컬 브라우저에서 실행하기 (0) | 2024.02.25 |
LLM | ollama 1부 - 로컬 터미널에서 실행하기 + 버전 업데이트하기 (0) | 2024.02.20 |
LLM | Langchain - 02 유형/단계별 RAG 실습 (0) | 2023.12.17 |
LLM | Langchain - 01 개요 (0) | 2023.12.17 |
댓글