1) 프롬프트 결과 설정
2) 프롬프트 평가 설계
3) 그라운딩 설계 및 평가
4) 프롬프트 디자인
5) 모니터링 및 개선
답변에 대한 배경지식을 가지고 답변함
당신은 농구선수입니다. 농구 규칙에 관하여 답변하시오.
답변의 대상이 되는 사람
농구 초보자를 위한 연습방법을 제공해주세요
답변에 참고할 정보(DB, API, 검색엔진 등) 삽입
수행하는 특정작업이나 목표
이 내용을 요약해줘
따라야할 규칙
<긍정적인 부분>으로만 <논문어투>로 <1000토큰 미만으로> 작성해줘
응답의 형식적인 구조 설정
파이썬의 리스트 형태로 출력해줘
원하는 응답의 예시를 추가로 제공
다음과 같은 형태로 출력해주세요
{"greetings" : ["hi", "bye"]}
이 7가지 구성요소를 다 써놓고 이거를 기반으로 내가 작성하고자 하는 프롬프트를 한파트씩 작성한다.
추가적으로 프롬프트를 구조적으로 작성하면 LLM이 이를 더 쉽게 이해할 수 있다.(구분자 표기 등)
프롬프트는 실무에서도 상당히 길다.(긴것이 당연함)
1) zero shot
2) one shot
3) few shot
모델에 몇가지 예시를 제공한다.(2, 3개 정도 주면 상당히 성능이 높아진다.)
그러나
1) 충분히 큰 모델에서만 작동한다.
2) 산술 추론 문제에는 적합하지 않음
3) 정답을 정확하게 주지 말고 샘플의 레이블을 랜덤하게 준다.
<정답을 정확하게 준 경우>
사자: 동물
능구렁이:동물
개:동물
도마뱀:동물
<샘플의 레이블을 랜덤하게 준 경우>
사자: 동물
딸기: 과일
선인장: 식물
도마뱀: 파충류
LLM에게 이유에 대해서 설명하도록 만들어서 답을 정확하게 생성하도록 만드는 기술이다.
즉 중간추론 단계를 거친다. 이렇게 하면 복잡한 사고가 필요한 작업에서 정확도가 향상된다.
즉 예시에 대한 "답을 내는 과정"을 설명해준다.

*Zero shot CoT
단계별로 생각해봐 이런거를 통해 CoT의 성격을 띄게함
Q: ~~가 있습니다. ~~면 그 결과는 무엇일까. 단계별로 생각해봐!
그러나 CoT가 성능을 떨어뜨릴수도 있음, 여러 샘플들로 확인작업이 필요함
여러방식의 CoT를 거치고 그중에 가장많이 나온 일관된 답을 선택함
논문에 따르면 Self Consistency는 20개정도의 CoT 샘플을 주는 것이 가장 효과적이다.
추론 경로를 최대한 다양하게 제공해야 하므로 토큰수를 많이 사용하고, 결과 취합을 위한 후처리가 필요하다. 따라서 아주 정확한 결과가 필요한 경우에만 사용한다.
복잡한 문제 해결위해 여러 추론단계 연결함 선택과 추론을 번갈아가면서 최종단계를 이끌어냄
하나의 문제를 여러개의 하위 작업으로 분할하는 것임
주어진 문제 풀려면 이거부터 풀여야해 하고 답을 가지고 또 다른 단계를 거쳐서 마지막 답까지 풀어냄
즉 CoT와 Selection-Inference를 결합한 방법이다.
Task를 분할하여 작은 문제로 나누어 해결하는 분할정복 방법..
실행계획을 유도하고 추적하여 작업별로 실행할 액션을 선택하고 실행(ex> 외부 API 이용해서 계산기 사용)
LLM이 생성한 결과를 LLM이 평가하게 해서 오류를 잡거나 결과를 향상시키는 방법
Self Critique, Constitutional AI등 다양한 응용방식이 존재
장기적으로 AI가 스스로를 평가하고 향상시킨다는 방법은 중요한 방법론이 될것으로 보고 있음, 다만 GPT-4정도의 성능은 되어야 의미있는 평가가 가능함
ex>
1) ~~을 계산하시오.
-> 답변1
2) 답변을 맞게 했는지 단계적으로 생각해보세요.
만약 답변(답변1)이 틀렸다면 틀린 이유를 서술하시오.
->답변2
3) 당신의 설명(답변2)을 토대로 다시 처음 질문을 계산하시오.
->답변3