Coding/TIL & 배운것들
Prompt Development Cycle
코딩짜는 머글
2024. 11. 16. 21:30
Prompt Development Cycle이란?
Prompt Engineering 프로세스를 테스트 기반 방법론으로 체계화하여 최상의 성능을 달성하는 방법론
▼ Prompt Development Cycle 6단계
- 명확한 평가 기준 설정
- 평가를 진행 할 테스트 케이스 선정 (엣지 케이스 포함 ex: 입력 텍스트가 너무 길거나, 특정 정보가 빠져있거나 등등)
- Baseline Prompt 선정 (Simple) -> 고도화 과정 후에 비교를 위한 대조군 설정
- (반복) 테스트 케이스에 대해 평가 진행
- (반복) Prompt 수정
- Prompt 완성 -> Baseline 대비 어떤 지표에서 얼마나 개선되었는지
▼ 명확한 평가 기준 설정
태스크 정의
요약, Q&A, 코드 생성, 글쓰기 등등. 각 태스크 별로 사용되는 평가 기준 및 지표들이 다를 수 있다.
어떤 문제를 풀어야하는지 태스크를 구체적으로 명확하게 정의하는 것이 첫 단계!
▶ 동일한 요약 안에서도 대화 요약, 문서 요약 등이 존재. Q&A도 In-Domain(도메인 내의 지식만을 요구), Out-of-Domain(도메인 외의 지식도 요구, ex: ChatGPT 등)으로 나뉠 수도 있음
평가 기준 설정
▶ 성능 : 태스크에서 정확히 어느 정도의 풀질이 필요한 지를 정의하는 객관적인 기준. 태스크마다 평가 기준이 다를 수 있고 여러 개의 평가 지표들이 있을 수 있다.
예시1 : 객관식 질문에 대답하는 태스크 -> 정확도(Accuracy)
예시2 : 요약 태스크 -> 정답과 모델 출력값 간의 문자열 비교 (Exact Match or Partial Match)
▶ 응답 속도 (Latency) : LLM에서 Latency정의 -> Prompt 입력 후 응답 완료 까지 걸리는 시간 (주요 용어)
응답 시간. 실시간 및 비실시간 여부에 따라 기준치가 높아지거나 낮아질 수 있다.
▶ 비용 : 모델 가격, 사용되는 평균 입력 및 출력 토큰 수, 호출 수 등을 고려한 예상 비용
우선순위는 서비스마다 다를 수 있지만 아무래도 품질이 부족하면 서비스 가능성이 없기 때문에 위 순서대로 우선순위를 보는것이 좋을것 같다.
▼ 평가를 진행할 테스트 케이스 선정
테스트 케이스 확보
▶ 예시 시나리오 : 숙소 리뷰 요약
▶ 사람이 직접 제작한 N개 정도의 Golden Reference(약 100개 정도?)
Golden Reference 예제
▶ 리뷰 내용 : '숙소는 깨끗한 편이었지만 직원이 불친절했어요. 재방문 의사는 없어요.'
▶ 요약 예시 : '숙소는 깨끗했으나 직원의 친절도가 부족함.'
비용 이슈로 ChatGPT 3.5를 써야한다고 했을 때 더 상위 레벨의 모델 출력 값(ex: GPT-4)
GPT-4 생성 예제
▶ 리뷰 내용 : '친구들과 좋은 추억을 쌓기 좋은 곳이에요! 스태프들도 친절하고 침대도 편안해서 잘 쉬다 갔습니다.'
▶ GPT-4 생성 요약 : '친절한 스태프와 편안한 침대 덕분에 좋은 경험을 함.'
▶ 또는 이미 시중에 존재하는 레이블링 된 데이터 등등
엣지 케이스
예시 1
▶ 입력이 매우 길거나 매우 짧은 케이스들
매우 긴 리뷰 : 500자 이상의 상세 리뷰 -> 요약 기대치 : 긴 리뷰에서도 중복된 내용 없이 핵심만 요약될 것
매우 짧은 리뷰 : 리뷰 내용 '좋아요!' -> 요약 기대치 : 요약 시 의미 없는 단어는 제외될 것 (ex: '좋았음')
예시 2
▶ 토막글이나 실제 숙소에 대한 정보가 별로 없는 리뷰 등의 저품질 리뷰들로만 이루어진 케이스들
리뷰 내용 : '여기 좀 별로에요' -> 요약 기대치 : 내용이 부족해 요약 결과가 유의미하지 않게 나올 가능성 (ex: '상세 정보 부족')
예시 3.
▶ 입력으로 숙소 리뷰가 N개 이하 들어왔을 때는 요약 결과가 아닌 충분하지 않은 케이스
리뷰 내용 : 리뷰가 2개 이하일 때 -> 요약 기대치 : '정보 부족으로 요약 불가능'
이런 케이스는 후처리 또는 전처리로 해결하는게 나을 수도 있음
▼ Baseline Prompt 선정
▶ 고도화 과정을 확인 하기 위한 용도의 Baseline Prompt 선정
▶ 정말 단순하고 Naive 한 Prompt
특별히 노력을 거치지 않은 Prompt, Prompt Library 중에 하나로 선정
▼ 이후 고도화 과정
4. (반복) 테스트 케이스에 대해 평가 진행
5. (반복) Prompt 수정
6. Prompt 완성
- 최종 Prompt 공유
- Baseline Prompt와 Baseline 대비 어떤 지표에서 얼마나 개선되었는지도 공유