ChatGPT 프롬프트 엔지니어링 전략 그 6번째 시간인 “체계적으로 변경 사항 테스트하기”에 대해 설명해보겠습니다.

프롬프트 엔지니어링 전략 시리즈
체계적으로 변경 사항 테스트하기
새로운 지침이나 새로운 디자인 등의 변경으로 인해 시스템이 더 좋아졌는지 나빠졌는지 구분하기 어려울 때가 있습니다. 몇 가지 예를 보면 어떤 것이 더 나은지 힌트를 얻을 수 있지만, 샘플 크기가 작으면 진정한 개선인지 무작위적인 운인지 구분하기 어려울 수 있습니다. 변경 사항이 일부 입력의 성능에는 도움이 되지만 다른 입력의 성능에는 악영향을 미칠 수도 있습니다.
평가 절차(또는 “평가”)는 시스템 설계를 최적화하는 데 유용합니다. 좋은 평가는 다음과 같습니다:
실제 사용을 대표하거나 적어도 다양해야 합니다.
– 통계적 힘을 높이기 위해 많은 테스트 사례를 포함해야 합니다(가이드라인은 아래 표 참조).
– 자동화 또는 반복하기 쉬움
– 95% 신뢰도에 필요한 표본 크기를 감지하는 데 필요한 차이
30% ~10
10% ~100
3% ~1,000
1% ~10,000
결과물의 평가는 컴퓨터, 사람 또는 두 가지를 혼합하여 수행할 수 있습니다. 컴퓨터는 객관적인 기준(예: 정답이 하나뿐인 문제)으로 평가를 자동화할 수 있을 뿐만 아니라 다른 모델 쿼리에 의해 모델 출력이 평가되는 주관적 또는 퍼지 기준도 자동화할 수 있습니다. OpenAI 평가는 자동화된 평가를 만들기 위한 도구를 제공하는 오픈 소스 소프트웨어 프레임워크입니다.
모델 기반 평가는 품질이 똑같이 높은 것으로 간주되는 다양한 가능한 결과가 있을 때 유용할 수 있습니다(예: 답변이 긴 질문의 경우). 모델 기반 평가로 현실적으로 평가할 수 있는 것과 사람이 평가해야 하는 것 사이의 경계는 모호하며, 모델의 기능이 향상됨에 따라 지속적으로 변화하고 있습니다. 모델 기반 평가가 사용 사례에 얼마나 효과적인지 알아내기 위해 실험을 해보는 것이 좋습니다.
전략 1 : 모범 답안을 참조하여 모델 결과물 평가하기
질문에 대한 정답이 알려진 특정 사실 집합을 참조해야 한다는 것이 알려져 있다고 가정해 보겠습니다. 그런 다음 모델 쿼리를 사용하여 답변에 필요한 사실 중 몇 개가 포함되어 있는지 계산할 수 있습니다.
예를 들어 다음 시스템 메시지를 사용합니다:
시스템 :
질문에 대한 답변으로 추정되는 큰따옴표로 구분된 텍스트가 제공될 것입니다. 다음 정보가 답에 직접 포함되어 있는지 확인합니다:– 닐 암스트롱은 달에 최초로 발을 디딘 사람이다.
– 닐 암스트롱이 달에 처음 발을 디딘 날짜는 1969년 7월 21일입니다.각 요점에 대해 다음 단계를 수행하십시오:
1 – 요점을 다시 서술합니다.
2 – 이 요점에 가장 근접한 답안에서 인용문을 제시합니다.
3 – 주제를 모르는 사람이 인용문을 읽으면 요점을 직접 유추할 수 있는지 고려합니다. 결정을 내리기 전에 그 이유 또는 그렇지 않은 이유를 설명합니다.
4 – 3번의 답변이 ‘예’라면 ‘예’라고 쓰고, 그렇지 않으면 ‘아니오’라고 씁니다.마지막으로, “예” 답변이 몇 개 있는지 세어봅니다. 이 개수를 {“카운트”: <여기에 개수 삽입>}로 입력합니다.
다음은 두 가지 요건이 모두 충족되는 입력 예시입니다:
시스템 :
<위에 시스템 메시지 삽입>
유저 :
“””닐 암스트롱은 인류 최초로 달에 발을 디딘 것으로 유명합니다. 이 역사적인 사건은 1969년 7월 21일 아폴로 11호 임무 중에 일어났습니다.”””
다음은 하나의 점만 만족하는 입력 예제입니다:
시스템 :
<위에 시스템 메시지 삽입>
유저 :
“””닐 암스트롱은 달 모듈에서 내려 최초로 달 위를 걷는 사람이 되어 역사를 새로 썼습니다.”””
다음은 만족하는 입력이 없는 예제 입력입니다:
시스템 :
<위에 시스템 메시지 삽입>
유저 :
“””69년 여름, 웅장한 항해,
전설의 손길처럼 대담한 아폴로 11호.
암스트롱이 한 걸음을 내딛자 역사가 펼쳐졌습니다,
“새로운 세상을 향한 작은 한 걸음”””이라고 그는 말했습니다.”””
이러한 유형의 모델 기반 평가에는 여러 가지 변형이 가능합니다. 후보 답안과 표준 답안 간의 겹치는 부분을 추적하고 후보 답안이 표준 답안의 어떤 부분과 모순되는지 추적하는 다음 변형을 고려해 보겠습니다.
시스템 :
다음 단계를 사용하여 사용자 입력에 응답합니다. 계속하기 전에 각 단계를 완전히 다시 설명합니다(예: “1단계: 이유…”).1단계: 제출된 답변의 정보가 전문가 답변과 비교하여 불일치, 동일, 하위 집합, 상위 집합 또는 중복(예: 일부 교차하지만 하위 집합/초과 집합이 아님) 중 어느 것인지에 대해 단계별로 이유를 설명합니다.
2단계: 제출한 답변이 전문가 답변의 어떤 측면과 모순되는지 단계별로 이유를 설명합니다.
3단계: 다음과 같은 구조의 JSON 객체를 출력합니다: {“type_of_overlap”: “불일치” 또는 “동일” 또는 “부분 집합” 또는 “상위 집합” 또는 “겹침”, “모순”: true 또는 false}
다음은 전문가 답변과 모순되지 않는 표준 이하의 답변이 포함된 입력 예제입니다:
시스템 :
<위에 시스템 메시지 삽입>
유저 :
Question: “””닐 암스트롱이 가장 유명한 사건은 무엇이며 언제 발생했습니까?””? UTC 시간으로 가정합니다.”””제출된 답변: “””그가 달 위를 걷지 않았나요?”””라고 가정합니다.”””라고 답했습니다.
전문가 답변: “””닐 암스트롱은 달에 최초로 발을 디딘 사람으로 가장 유명합니다. 이 역사적인 사건은 1969년 7월 21일에 일어났어요.”””
다음은 전문가 답변과 직접적으로 모순되는 답변이 포함된 입력 예제입니다:
시스템 :
<위에 시스템 메시지 삽입>
유저 :
Question: “””닐 암스트롱이 가장 유명한 사건은 무엇이며 언제 발생했나요?””? UTC 시간으로 가정합니다.”””제출된 답변: “””1969년 7월 21일, 닐 암스트롱은 버즈 올드린에 이어 두 번째로 달 위를 걸은 사람이 되었습니다.”””
전문가 답변: “””닐 암스트롱은 달에 최초로 발을 디딘 사람으로 가장 유명합니다. 이 역사적인 사건은 1969년 7월 21일에 일어났습니다.”””
다음은 정답과 함께 필요한 것보다 조금 더 자세한 정보를 제공하는 입력 예시입니다:
시스템 :
<위에 시스템 메시지 삽입>
유저 :
Question: “””닐 암스트롱이 가장 유명한 사건은 무엇이며 언제 발생했나요?””? UTC 시간으로 가정합니다.”””제출된 답변: “””1969년 7월 21일 02:56경, 닐 암스트롱은 인류 최초로 달 표면에 발을 디디며 인류 역사에 기념비적인 업적을 남겼습니다.”””
전문가 답변: “””닐 암스트롱은 달에 최초로 발을 디딘 사람으로 가장 유명합니다. 이 역사적인 사건은 1969년 7월 21일에 일어났습니다.”””