고급 프롬프트 엔지니어링 태크닉
비용을 아끼기 위해 GptPlayGround에서 실습.
1) Tree Of Thought(TOT)
TOT는 문제를 해결하는 과정에서 여러가지 사고 경로(Branch)를 확장하고 탐색해 나가면서 최적의 응답을 생성하도록 유도하는 기법입니다.
AI가 하나의 문제에 대하여 여러 개의 논리적인 추론 경로를 동시에 고려하면서 가장 일관성 있는 답변을 점진적으로 찾아나가는 구조라고 할 수 있습니다.
선형적인 방식으로 응답결과를 생성하는 COT와 비교하면 TOT는 응답을 추론하는 과정에서 더 적절한 응답을 위해 회귀를 한다.
TOT의 사고과정
생각 분해하기(Thought Decomposition) - 하나의 문제를 여러개의 작은 하위 문제로 나눈다.
생각 생성하기(Thought Generator) - 가능한 모든 추론 경로(Branch)를 생성
생각 평가하기(Thought Evaluator) - 각 Branch가 논리적으로 맞는지 검증
최적의 응답 평가(Search Algorithm) - 가장 적절한 응답을 선택
예시 프롬프트
당신은 논리 퍼즐을 해결하는 AI입니다.
아래의 문제를 단계적으로 분석하세요.
### 문제 ###
A, B, C, D 네 명이 있습니다. 이들 중 단 한 명만이 거짓말쟁이이며, 나머지는 항상 진실을 말합니다.
각 사람의 발언은 다음과 같습니다.
A: "B 또는 C가 거짓말쟁이입니다."
B: "나는 거짓말쟁이가 아닙니다."
C: "A가 거짓말쟁이입니다."
D: "A 또는 B가 거짓말쟁이입니다."
### 해결 방식 ###
1. **Step 1: 생각 분해하기 (Thought Decomposition)**
- 문제를 해결하기 위해 필요한 주요 단계를 나누고, 어떤 정보가 필요한지 정리하세요.
2. **Step 2: 생각 생성하기 (Thought Generator)**
- 가능한 모든 사고 경로(Branch)를 생성하세요.
- 즉, A가 거짓말쟁이일 경우, B가 거짓말쟁이일 경우, C가 거짓말쟁이일 경우, D가 거짓말쟁이일 경우를 각각 고려하여 분석하세요.
3. **Step 3: 생각 평가하기 (State Evaluator)**
- 각 사고 경로에서 모순이 발생하는지 검토하세요.
- 만약 어떤 경우에서 논리적 모순이 발생한다면, 해당 경우를 제거하세요.
4. **Step 4: 검색 알고리즘 (Search Algorithm)**
- 가장 논리적으로 일관된 결과를 선택하고, 최종 답을 도출하세요.
- 선택한 답을 단계별로 설명하세요.
모든 과정을 자세히 서술하고, 논리적인 추론 과정을 명확히 표현하세요.
한계
응답을 반환하는데 많은 연산과정이 필요하므로 수행시간과 비용이 많이 발생한다.
2) Prompt Chaing

복잡한 하나의 문제를 작은 문제로 분할하여 해결하기 위한 방법이다
하나의 프롬프트에서 생성된 응답을 다음 프롬프트의 입력으로 사용하여 , 점진적으로 응답내용을 고도화 시키는 방법.
각 단계에서 AI가 생성한 출력을 활용하여 더 정교한 답을 도출할 수 있다.
Prompt Chaing 동작방식
첫번째 prompt를 바탕으로 ai에게 요청
ai는 응답데이터1을 반환
두번째 프롬프트는 응답데이터1과 두번째 prompt 내용을 합쳐서 ai에게 요청
ai는 응답데이터2를 반환
세번째 프롬프트는 응답데이터1,2와 프롬프트 내용을 합쳐서 ai에게 요청
ai는 최종 응답 반환.
Prompt Chaing 실습
복잡한 이슈 상황 가정
사용자가 투자 성향을 입력하면, AI가 적절한 투자전략을 추천하는 시스템을 만든다고 가정
투자성향 입력용 프롬프트와, 투자전략 추천 프롬프트 작성
System
당신은 투자 전문가이며, 사용자의 투자 성향을 분석하고 최적의 투자 전략을 추천하는 AI입니다.
투자자의 성향을 기반으로 논리적으로 분석하여, 맞춤형 포트폴리오를 설계하세요.
------------------------------------------------------------------------------------
USER :
사용자의 투자 성향을 분석하세요.
사용자의 입력:
- 투자 기간: 장기 (5년 이상)
- 리스크 선호도: 중간
- 관심 자산: 주식, 암호화폐
- 투자 목표: 안정적인 성장
이 정보를 바탕으로, 사용자의 투자 스타일을 한 문장으로 요약하세요.
-------------------------------------------------------------------------------------
예상 응답 결과 :
사용자는 '중위험 장기 투자자'이며, 주식과 암호화폐를 통한 안정적인 성장을 추구합니다.
USER :
다음 투자 스타일을 기반으로, 적절한 투자 전략을 추천하세요.
투자 스타일: 1번 예상 응답 결과
이에 적합한 투자 전략을 설명하고, 포트폴리오 예시를 제시하세요.
투자성향 입력용 프롬프트 실행
투자성향 입력용 프롬프트의 결과를 바탕으로 투자전략 프롬프트 실행
3) Automatic Prompt Enginner(APE)

여러 LLM을 통해 AI가 자동으로 프롬프트를 생성하고 최적화하여 , 효과적인 응답을 제공하는 기법.
여태까지의 Prompt Engineering은 사람이 직접 프롬프트를 설계하고 최적화하였지만, APE는 AI가 직접 최적화한 프롬프트를 설계하고 최적화 합니다.
ZCOT방식보다 정확도가 높은 응답을 생성한다.
APE 동작방식
Proposal(제안)
Inference Models LLM에 다양한 응답을 제공한다.
Scoring(점수매기기)
Scoring Models LLM에 의해 각 프롬프트가 적절한지 평가한다.
Log(기록)
프롬프트마다 점수를 기록한다.
High Score Canidates(후보군 추출)
프롬프트들중 점수가 높은 프롬프트는 유지하고, 낮은 점수를 받은 프롬프트는 제거된다.
Similar Candiates(비슷한 후보군 추출)
Resampling Models LLM에 의해 전달받은 프롬프트의 문맥을 유지하면서 다른 단어로 이루어진 프롬프트들을 생성한다.
write the antonym(반의어) of the word --> write the opposite(반대) of the word
Resampling Models이 응답한 프롬프트는 Scoring Models에 의해 다시한번 평가를 받는다.
Similar Candiates은 APE과정에 있어서 필수는 아니기 때문에 생략이 가능하다.
최종 프롬프트 선택
최종적으로 점수가 가장 높은 write the opposite of the word given 프롬프트가 최종 선택된다.
APE 실습
실제 구현 시에는 여러 개의 LLM을 Prompt Chaing시켜주어야 하지만, 실습단계에서는 1개의 LLM로 작업한다.
1. Inference Models LLM 구현
system :
당신은 Automatic Prompt Engineering(APE)의 Inference Model입니다.
사용자의 질문을 분석하고, 동일한 의미를 가지면서 다양한 표현을 사용하는 대체 프롬프트를 생성하세요.
최소 5개 이상의 대체 프롬프트를 제시하세요.
2. Scoring Models LLM 구현
평가기준은 Likelihood에 에 기반하여 점수를 부여
system :
당신은 Automatic Prompt Engineering(APE)의 Scoring Model입니다.
사용자가 제공한 여러 개의 프롬프트를 분석하고, 각 프롬프트의 품질을 평가하세요.
각 프롬프트에 Log Likelihood 점수를 부여하고, 가장 높은 점수를 받은 프롬프트를 선택하세요.
3. Resampling Models LLM 구현
system :
당신은 Automatic Prompt Engineering(APE)의 Resampling Model입니다.
사용자가 제공한 프롬프트의 의미를 유지하면서, 다양한 형태로 변형된 새로운 프롬프트를 생성하세요.
최소 3개 이상의 변형된 프롬프트를 제공하세요.
4) Meta Prompting
Meta Prompting은 AI가 스스로 프롬프트를 개선하도록 유도하는 기법으로 , 특정 응답을 얻는데 초점을 맞추는 것이 아닌 더 명확한 프롬프트를 생성 하는 것에 초첨을 맞춘 기법이다.
재귀적인 자기 피드백을 통해 점진적으로 프롬프트를 개선해 나간다.
Few-Shot Prompting과 비교하면 구체적인 예시 없이 AI가 더 응답하기 쉬운 구조의 프롬프트를 설계 할 수 있다.
Meta Prompting 동작방식
초기 프롬프트 제공 (Initial Prompt)
사용자가 ai에게 특정작업을 수행하도록 초기 프롬프트를 제공
합성 데이터 생성 (Synthetic Data Generation)
ai가 프롬프트를 테스트하기 위해 합성데이터를 생성함.
주석 달기 (Minimalist Tagging)
사용자 혹은 ai가 생성된 데이터에 주석을 달아 성능을 평가함
프롬프트 최적화 (Prompt Optimization)
ai가 프롬프트의 성능을 평가한 후 더 나음 프롬프트를 생성하도록 성능 최적화
기존 프롬프트를 개선하는 과정에서 LLM이 새로운 프롬프트를 추천
재귀학습 (Iterative Process)
1-4번 과정을 정지기준을 만족할 때 까지 반복
즉, 프롬프트 성능이 개선되면서 최적의 프롬프트를 찾을 때 까지 계속 진행된다.
최적화된 프롬프트 반환 (Calibrated Prompt)
AI가 최적화된 프롬프트를 생성하여 제공
Meta Prompting 실습
초기 프롬프트 제공 (Initial Prompt)
system:
사용자의 프롬프트를 분석하고, **더 명확하고 효과적인 프롬프트로 변형하는 과정**을 수행하세요.
각 단계에서 개선된 프롬프트를 제안하고, 이를 최적화하여 반복적인 개선을 진행하세요.
user:
"기술 블로그 글을 써줘."
재귀학습 (Iterative Process)
이전 프롬프트를 분석하고, 더 명확하고 최적화된 프롬프트를 다시 생성해줘.
최적화된 프롬프트 반환 (Calibrated Prompt)
위 프롬프트들의 품질을 평가하고, 최적의 프롬프트를 선택해줘.
5) Generate Knowledge
AI가 사전 학습된 데이터 외에 주어진 문제 해결을 위한 지식을 스스로 생성(Generate Knowlnage)하여 답변하도록 유도하는 기법
AI의 추론 능력을 향상 시키기 위한 방법으로 환각 현상을 완화하고자 사용한다.
Generate Knowlnage 동작방식
지식 생성(knowledge Generation)
사용자가 ai에게 질문(Question)을 입력하면 AI는 해당 질문을 기반으로 PLM(Pretrained Language Model)이 관련된 지식을 여러 개 생성(Knowledge1, Knowledge2)한다.
PLM이 적절한 지식을 생성하기 위해서는 프롬프트에 예제 및 시연이 포함되어 있는 것이 좋다.
지식 통합(knowledge Integration)
생성된 여러 개의 지식을 평가하고 통합(Integration)한다.
답변 생성(Answer Generation)
통합된 지식을 바탕으로 최종 답변을 생성한다.
Generate Knowlnage 실습
미래 경제 예측
현재 글로벌 경제 상황을 고려할 때, 2040년까지 가장 유망한 산업 3가지를 예측하세요.
각 산업이 성장할 이유와, 현재 존재하는 경제적 신호를 기반으로 논리적으로 분석하세요.
과학 이론 생성
당신은 미래의 과학자로서 새로운 물리학 이론을 제안해야 합니다.
현재의 물리학 이론을 기반으로, 빛보다 빠르게 이동할 수 있는 새로운 방법을 가설적으로 생성하세요.
이 이론이 왜 논리적으로 가능한지 설명하고, 실험적 검증 방법도 제안하세요
질문과 연관 있는 최신 논문 데이터 및 연구 결과를 추가하면 더욱 유용한 응답 결과를 반환 받을 수 있음.
테크닉을 3단계로 구분하고나서 부터, 테크닉을 배우는 순서에 대해서 다시한번 고민해봐야 할것 같음
동장방식에 숫자 추가하기.
최종 정리 추가하기
Last updated