프롬프트 엔지니어링1

Sirius·2023년 9월 30일

1) 프롬프트 디자이닝

  • 3원칙
    1) 적절한 답변을 얻기위한 컨텍스트를 제공
    2) 원하는 결과를 얻기 위한 프롬프트 작성
    3) 원하는 포맷형식의 출력을 위한 프롬프트 작성

1> 프롬프트 엔지니어링 5단계

1) 프롬프트 결과 설정
2) 프롬프트 평가 설계
3) 그라운딩 설계 및 평가
4) 프롬프트 디자인
5) 모니터링 및 개선

2> 프롬프트 프레임워크 7가지 구성요소

1) Role

답변에 대한 배경지식을 가지고 답변함

당신은 농구선수입니다. 농구 규칙에 관하여 답변하시오.

2) Audience

답변의 대상이 되는 사람

농구 초보자를 위한 연습방법을 제공해주세요

3) Knowledge

답변에 참고할 정보(DB, API, 검색엔진 등) 삽입

4) Task

수행하는 특정작업이나 목표

이 내용을 요약해줘

5) Policy

따라야할 규칙

<긍정적인 부분>으로만 <논문어투>로 <1000토큰 미만으로> 작성해줘

6) Format

응답의 형식적인 구조 설정

파이썬의 리스트 형태로 출력해줘

7) Examples

원하는 응답의 예시를 추가로 제공

다음과 같은 형태로 출력해주세요
{"greetings" : ["hi", "bye"]}

이 7가지 구성요소를 다 써놓고 이거를 기반으로 내가 작성하고자 하는 프롬프트를 한파트씩 작성한다.

추가적으로 프롬프트를 구조적으로 작성하면 LLM이 이를 더 쉽게 이해할 수 있다.(구분자 표기 등)

프롬프트는 실무에서도 상당히 길다.(긴것이 당연함)

2) 프롬프트 엔지니어링 스킬 7가지

1> Few Shot Examples

1) zero shot
2) one shot
3) few shot

모델에 몇가지 예시를 제공한다.(2, 3개 정도 주면 상당히 성능이 높아진다.)

그러나
1) 충분히 큰 모델에서만 작동한다.
2) 산술 추론 문제에는 적합하지 않음
3) 정답을 정확하게 주지 말고 샘플의 레이블을 랜덤하게 준다.

<정답을 정확하게  경우>
사자: 동물
능구렁이:동물			 
개:동물				
도마뱀:동물					

<샘플의 레이블을 랜덤하게  경우>
사자: 동물 
딸기: 과일
선인장: 식물
도마뱀: 파충류

2> CoT(Chain of Thought)

LLM에게 이유에 대해서 설명하도록 만들어서 답을 정확하게 생성하도록 만드는 기술이다.
즉 중간추론 단계를 거친다. 이렇게 하면 복잡한 사고가 필요한 작업에서 정확도가 향상된다.

즉 예시에 대한 "답을 내는 과정"을 설명해준다.

*Zero shot CoT
단계별로 생각해봐 이런거를 통해 CoT의 성격을 띄게함

Q: ~~가 있습니다. ~~면 그 결과는 무엇일까. 단계별로 생각해봐!

그러나 CoT가 성능을 떨어뜨릴수도 있음, 여러 샘플들로 확인작업이 필요함

3> Self Consistency

여러방식의 CoT를 거치고 그중에 가장많이 나온 일관된 답을 선택함

논문에 따르면 Self Consistency는 20개정도의 CoT 샘플을 주는 것이 가장 효과적이다.

추론 경로를 최대한 다양하게 제공해야 하므로 토큰수를 많이 사용하고, 결과 취합을 위한 후처리가 필요하다. 따라서 아주 정확한 결과가 필요한 경우에만 사용한다.

4> Selection Inference

복잡한 문제 해결위해 여러 추론단계 연결함 선택과 추론을 번갈아가면서 최종단계를 이끌어냄

5> Least-to-Most

하나의 문제를 여러개의 하위 작업으로 분할하는 것임
주어진 문제 풀려면 이거부터 풀여야해 하고 답을 가지고 또 다른 단계를 거쳐서 마지막 답까지 풀어냄

즉 CoT와 Selection-Inference를 결합한 방법이다.
Task를 분할하여 작은 문제로 나누어 해결하는 분할정복 방법..

6> ReAct

실행계획을 유도하고 추적하여 작업별로 실행할 액션을 선택하고 실행(ex> 외부 API 이용해서 계산기 사용)

7> Self Evaluation

LLM이 생성한 결과를 LLM이 평가하게 해서 오류를 잡거나 결과를 향상시키는 방법

Self Critique, Constitutional AI등 다양한 응용방식이 존재

장기적으로 AI가 스스로를 평가하고 향상시킨다는 방법은 중요한 방법론이 될것으로 보고 있음, 다만 GPT-4정도의 성능은 되어야 의미있는 평가가 가능함

ex>
1) ~~을 계산하시오.
-> 답변1
2) 답변을 맞게 했는지 단계적으로 생각해보세요.
만약 답변(답변1)이 틀렸다면 틀린 이유를 서술하시오.
->답변2
3) 당신의 설명(답변2)을 토대로 다시 처음 질문을 계산하시오.
->답변3

0개의 댓글