고급 프롬프트 엔지니어링 태크닉
Last updated
Last updated
비용을 아끼기 위해 GptPlayGround에서 실습.
TOT는 문제를 해결하는 과정에서 여러가지 사고 경로(Branch)를 확장하고 탐색해 나가면서 최적의 응답을 생성하도록 유도하는 기법입니다.
AI가 하나의 문제에 대하여 여러 개의 논리적인 추론 경로를 동시에 고려하면서 가장 일관성 있는 답변을 점진적으로 찾아나가는 구조라고 할 수 있습니다.
선형적인 방식으로 응답결과를 생성하는 COT와 비교하면 TOT는 응답을 추론하는 과정에서 더 적절한 응답을 위해 회귀를 한다.
생각 분해하기(Thought Decomposition) - 하나의 문제를 여러개의 작은 하위 문제로 나눈다.
생각 생성하기(Thought Generator) - 가능한 모든 추론 경로(Branch)를 생성
생각 평가하기(Thought Evaluator) - 각 Branch가 논리적으로 맞는지 검증
최적의 응답 평가(Search Algorithm) - 가장 적절한 응답을 선택
한계
응답을 반환하는데 많은 연산과정이 필요하므로 수행시간과 비용이 많이 발생한다.
복잡한 하나의 문제를 작은 문제로 분할하여 해결하기 위한 방법이다
하나의 프롬프트에서 생성된 응답을 다음 프롬프트의 입력으로 사용하여 , 점진적으로 응답내용을 고도화 시키는 방법.
각 단계에서 AI가 생성한 출력을 활용하여 더 정교한 답을 도출할 수 있다.
첫번째 prompt를 바탕으로 ai에게 요청
ai는 응답데이터1을 반환
두번째 프롬프트는 응답데이터1과 두번째 prompt 내용을 합쳐서 ai에게 요청
ai는 응답데이터2를 반환
세번째 프롬프트는 응답데이터1,2와 프롬프트 내용을 합쳐서 ai에게 요청
ai는 최종 응답 반환.
복잡한 이슈 상황 가정
사용자가 투자 성향을 입력하면, AI가 적절한 투자전략을 추천하는 시스템을 만든다고 가정
투자성향 입력용 프롬프트와, 투자전략 추천 프롬프트 작성
투자성향 입력용 프롬프트 실행
투자성향 입력용 프롬프트의 결과를 바탕으로 투자전략 프롬프트 실행
여러 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 프롬프트가 최종 선택된다.
실제 구현 시에는 여러 개의 LLM을 Prompt Chaing시켜주어야 하지만, 실습단계에서는 1개의 LLM로 작업한다.
평가기준은 Likelihood에 에 기반하여 점수를 부여
Meta Prompting은 AI가 스스로 프롬프트를 개선하도록 유도하는 기법으로 , 특정 응답을 얻는데 초점을 맞추는 것이 아닌 더 명확한 프롬프트를 생성 하는 것에 초첨을 맞춘 기법이다.
재귀적인 자기 피드백을 통해 점진적으로 프롬프트를 개선해 나간다.
Few-Shot Prompting과 비교하면 구체적인 예시 없이 AI가 더 응답하기 쉬운 구조의 프롬프트를 설계 할 수 있다.
초기 프롬프트 제공 (Initial Prompt)
사용자가 ai에게 특정작업을 수행하도록 초기 프롬프트를 제공
합성 데이터 생성 (Synthetic Data Generation)
ai가 프롬프트를 테스트하기 위해 합성데이터를 생성함.
주석 달기 (Minimalist Tagging)
사용자 혹은 ai가 생성된 데이터에 주석을 달아 성능을 평가함
프롬프트 최적화 (Prompt Optimization)
ai가 프롬프트의 성능을 평가한 후 더 나음 프롬프트를 생성하도록 성능 최적화
기존 프롬프트를 개선하는 과정에서 LLM이 새로운 프롬프트를 추천
재귀학습 (Iterative Process)
1-4번 과정을 정지기준을 만족할 때 까지 반복
즉, 프롬프트 성능이 개선되면서 최적의 프롬프트를 찾을 때 까지 계속 진행된다.
최적화된 프롬프트 반환 (Calibrated Prompt)
AI가 최적화된 프롬프트를 생성하여 제공
초기 프롬프트 제공 (Initial Prompt)
재귀학습 (Iterative Process)
최적화된 프롬프트 반환 (Calibrated Prompt)
AI가 사전 학습된 데이터 외에 주어진 문제 해결을 위한 지식을 스스로 생성(Generate Knowlnage)하여 답변하도록 유도하는 기법
AI의 추론 능력을 향상 시키기 위한 방법으로 환각 현상을 완화하고자 사용한다.
지식 생성(knowledge Generation)
사용자가 ai에게 질문(Question)을 입력하면 AI는 해당 질문을 기반으로 PLM(Pretrained Language Model)이 관련된 지식을 여러 개 생성(Knowledge1, Knowledge2)한다.
PLM이 적절한 지식을 생성하기 위해서는 프롬프트에 예제 및 시연이 포함되어 있는 것이 좋다.
지식 통합(knowledge Integration)
생성된 여러 개의 지식을 평가하고 통합(Integration)한다.
답변 생성(Answer Generation)
통합된 지식을 바탕으로 최종 답변을 생성한다.
미래 경제 예측
과학 이론 생성
질문과 연관 있는 최신 논문 데이터 및 연구 결과를 추가하면 더욱 유용한 응답 결과를 반환 받을 수 있음.
테크닉을 3단계로 구분하고나서 부터, 테크닉을 배우는 순서에 대해서 다시한번 고민해봐야 할것 같음
동장방식에 숫자 추가하기.
최종 정리 추가하기