이 문서에서는 기본 사용 사례를 포함하여 .NET에서 프롬프트 엔지니어링을 위한 제로샷 학습 및 몇 번의 학습에 대해 설명합니다.
GPT 모델 성능은 프롬프트 엔지니어링, 출력을 구체화하기 위해 모델에 지침 및 예제를 제공하는 방법의 이점을 활용합니다. 제로샷 학습과 몇 번의 학습은 예제를 제공할 때 사용할 수 있는 기술입니다.
제로샷 학습
제로샷 학습은 축자 완성과 쌍을 이루지 않는 프롬프트를 사용하는 방식으로, 대신 힌트를 포함할 수 있습니다. 이러한 학습은 전적으로 모델의 기존 지식에 의존하여 응답을 생성하므로, 생성되는 토큰 수를 줄이고 비용을 절감하는 데 도움이 됩니다. 그러나 제로샷 학습은 모델의 지식이나 컨텍스트에 추가되지 않습니다.
다음은 사용자 입력을 평가하여 입력이 나타내는 네 가지 가능한 의도 중 어느 것이 있는지 확인한 다음 응답 앞에 "의도: "를 표시하도록 모델에 지시하는 예제 제로샷 프롬프트입니다.
prompt = $"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: {request}
Intent:
""";
제로샷 학습에 대한 두 가지 기본 사용 사례가 있습니다.
- 최적화된 LLM과 협력 - 모델의 기존 지식에 의존하기 때문에 제로샷 학습은 몇 개의 샘플로 학습하는 방법만큼 리소스를 많이 사용하지 않으며, 이미 명령 데이터 세트로 최적화된 LLM과 잘 작동합니다. 제로샷 학습에만 의존하여 비용을 상대적으로 낮게 유지할 수 있습니다.
- 성능 기준 설정 - 제로샷 학습은 앱이 실제 사용자에 대해 수행하는 방식을 시뮬레이션하는 데 도움이 될 수 있습니다. 이를 통해 정확도 또는 정밀도와 같은 모델의 현재 성능에 대한 다양한 측면을 평가할 수 있습니다. 이 경우 일반적으로 제로샷 학습을 사용하여 성능 기준을 설정한 다음 몇 번의 학습을 실험하여 성능을 향상시킵니다.
소량의 데이터로 학습
퓨샷 러닝은 그대로 완료와 쌍을 이루는 프롬프트(퓨샷 프롬프트)를 모델에 전달하여 응답 방식을 보여주는 방법입니다. 즉, 제로샷 학습에 비해 몇 번의 학습이 더 많은 토큰을 생성하고 모델이 지식을 업데이트하게 되므로 몇 번의 학습을 리소스 집약적으로 만들 수 있습니다. 그러나 몇 번의 학습은 모델이 더 관련성이 큰 응답을 생성하는 데도 도움이 됩니다.
prompt = $"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: Can you send a very quick approval to the marketing team?
Intent: SendMessage
User Input: Can you send the full update to the marketing team?
Intent: SendEmail
User Input: {request}
Intent:
""";
소수샷 학습에는 두 가지 주요 사용 사례가 있습니다.
- LLM 튜닝 - 모델의 지식에 추가할 수 있으므로 몇 번의 학습으로 모델의 성능을 향상시킬 수 있습니다. 또한 모델이 제로샷 학습보다 더 많은 토큰을 생성하게 되므로 결국에는 비용이 엄청나게 비싸거나 심지어 불가능해질 수 있습니다. 그러나 LLM이 아직 미세 조정되지 않은 경우 제로샷 프롬프트로 항상 좋은 성능을 얻을 수 없으며, 몇 샷 학습이 필요합니다.
- 성능 문제 해결 - 몇 번의 학습을 제로샷 학습의 후속 작업으로 사용할 수 있습니다. 이 경우 제로샷 학습을 사용하여 성능 기준을 설정한 다음 사용한 제로샷 프롬프트를 기반으로 몇 번의 학습을 실험합니다. 이렇게 하면 현재 응답하는 방식을 본 후 모델의 지식에 추가할 수 있으므로 도입된 토큰 수를 최소화하면서 성능을 반복하고 개선할 수 있습니다.
제한 사항
- 예제 기반 학습은 복잡한 추론 작업에 적합하지 않습니다. 그러나 지침을 추가하면 이 문제를 해결하는 데 도움이 될 수 있습니다.
- 소량 샘플 학습에서는 긴 프롬프트를 만들어야 합니다. 토큰 수가 많은 프롬프트는 계산 및 대기 시간을 증가시킬 수 있습니다. 이는 일반적으로 비용 증가를 의미합니다. 프롬프트 길이도 제한됩니다.
- 여러 예제를 사용하는 경우 모델은 "감정은 음수보다 양수일 확률이 두 배"와 같은 거짓 패턴을 학습할 수 있습니다.
관련 콘텐츠
.NET