LLM prompt engineering

who_am_I·2024년 9월 13일

[Upstage AI Lab]

목록 보기
18/19

대화 요약 경진대회에서 LLM을 써보는 시도를 했다.
gpt-4.0 API를 쓰다보니 좋은 결과를 위해 prompt engineeering 필요성을 느끼게 되었다. 기왕 유료로 쓰는거 최선의 결과를 얻어야 하기에 prompt engineering을 정리하였다.

Chain-of-thought

few shot prompting 할때, 답만 넣는 것이 아니라 풀이과정까지 함께 제시하면
성능을 높일 수 있다.

문제: 어떤 학교에서 5명의 학생들이 각각 85, 90, 88, 92, 95점의 시험 점수를 받았습니다. 이 학생들의 평균 점수는 몇 점인가?

풀이: 각 학생의 점수는 85, 90, 88, 92, 95이다. 이를 모두 더하면 85 + 90 + 88 + 92 + 95 = 450이다. 5명의 학생이므로 평균 점수는 450 ÷ 5 = 90점이다.

답: 90점

Least-to-Most Prompting

  1. 어려운 문제를 간단한 문제들로 쪼개도록 시킨다.
  2. 간단한 문제들을 해결한다.
  3. 최종답을 구한다.

Devide and conquer 처럼 어려운 task를 쉬운 task로 나누어서 진행한다

문제: 어떤 공장에서 3개의 기계가 각각 5시간, 7시간, 9시간 동안 작동하면서 각각 시간당 10, 8, 12개의 부품을 생산했다. 이 공장에서 총 몇 개의 부품이 생산되었나?

1단계: 어려운 문제를 간단한 문제로 분할하라.
먼저, 각각의 기계가 총 몇 개의 부품을 생산했는지를 계산해야 한다.
그 후, 세 기계가 생산한 부품의 총합을 계산하면 된다.

2단계: 간단한 문제들을 해결하라.
첫 번째 기계는 5시간 동안 작동하면서 시간당 10개의 부품을 생산했다. 그러므로 첫 번째 기계가 생산한 부품 수는 5 10 = 50개이다.
두 번째 기계는 7시간 동안 작동하면서 시간당 8개의 부품을 생산했다. 그러므로 두 번째 기계가 생산한 부품 수는 7
8 = 56개이다.
세 번째 기계는 9시간 동안 작동하면서 시간당 12개의 부품을 생산했다. 그러므로 세 번째 기계가 생산한 부품 수는 9 * 12 = 108개이다.

3단계: 분할된 문제들을 모두 해결한 후, 최종 답을 구하라.
응답: 이제 세 기계가 생산한 부품 수를 모두 더한다.
첫 번째 기계: 50개
두 번째 기계: 56개
세 번째 기계: 108개 따라서 총 생산된 부품 수는 50 + 56 + 108 = 214개이다.

답: 214개

Self-Ask Prompting

Chain-of-thought 방식인데, 풀이과정을 꼬리질문 형태로 진행한다.

문제: 한 기차가 3시간 동안 시속 80km로 이동했다. 그 기차가 이동한 총 거리는 얼마인가?

질문 1: 이 문제를 풀기 위해서는 무엇을 알아야 할까?
응답: 우리는 총 이동 거리를 구하려고 한다. 이동 거리는 속력에 시간을 곱해서 구할 수 있다.

질문 2: 속력과 시간은 무엇인가?
응답: 속력은 80km/h이고, 시간은 3시간이다.

질문 3: 이제 어떻게 이동 거리를 계산할 수 있을까?
응답: 이동 거리는 속력에 시간을 곱하면 된다. 그러므로 80km/h * 3시간 = 240km이다.

질문 4: 최종 답은 무엇인가?
응답: 기차는 총 240km를 이동했다.

답: 240km

Metalearning, React 같은 복잡한 방법들도 있지만 위의 정도만 해도 충분히 좋은 성능이 나오는 것 같다

profile
Data, AI

0개의 댓글