대화 요약 경진대회에서 LLM을 써보는 시도를 했다.
gpt-4.0 API를 쓰다보니 좋은 결과를 위해 prompt engineeering 필요성을 느끼게 되었다. 기왕 유료로 쓰는거 최선의 결과를 얻어야 하기에 prompt engineering을 정리하였다.
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점
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개
Chain-of-thought 방식인데, 풀이과정을 꼬리질문 형태로 진행한다.
문제: 한 기차가 3시간 동안 시속 80km로 이동했다. 그 기차가 이동한 총 거리는 얼마인가?
질문 1: 이 문제를 풀기 위해서는 무엇을 알아야 할까?
응답: 우리는 총 이동 거리를 구하려고 한다. 이동 거리는 속력에 시간을 곱해서 구할 수 있다.
질문 2: 속력과 시간은 무엇인가?
응답: 속력은 80km/h이고, 시간은 3시간이다.
질문 3: 이제 어떻게 이동 거리를 계산할 수 있을까?
응답: 이동 거리는 속력에 시간을 곱하면 된다. 그러므로 80km/h * 3시간 = 240km이다.
질문 4: 최종 답은 무엇인가?
응답: 기차는 총 240km를 이동했다.
답: 240km
Metalearning, React 같은 복잡한 방법들도 있지만 위의 정도만 해도 충분히 좋은 성능이 나오는 것 같다