Поделиться через


Обучение без примеров (zero-shot) и на малом количестве примеров (few-shot)

В этой статье объясняется обучение без учителя и обучение с малым количеством примеров для проектирования подсказок в .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 еще не настроен, вы не всегда получите хорошую производительность на основе нулевых подсказок, и обучение с использованием нескольких примеров будет оправданным.
  • Исправление проблем с производительностью. Можно использовать обучение с небольшим количеством примеров в качестве продолжения обучения без примеров. В этом случае вы используете обучение без участия человека, чтобы установить базовые показатели производительности, а затем экспериментируете с обучением с небольшим количеством примеров на основе использованных подсказок для обучения без участия человека. Это позволяет вам добавлять к знаниям модели после наблюдения за её текущими ответами, чтобы вы могли итеративно улучшать производительность, минимизируя количество вводимых токенов.

Предупреждения

  • Обучение на основе примеров плохо подходит для сложных задач, требующих рассуждений. Однако добавление инструкций может помочь решить эту проблему.
  • Для обучения с малым количеством примеров требуется создать длинные подсказки. Запросы с большим количеством маркеров могут увеличить вычисления и задержку. Обычно это означает увеличение затрат. Существует также ограничение на длину запросов.
  • При использовании нескольких примеров модель может узнать ложные шаблоны, такие как "Тональности в два раза чаще будут положительными, чем отрицательные".