Создание и извлечение намерений с использованием больших языковых моделей

В предыдущей статье я утверждал, что при разработке обучающих данных NLU следует использовать подход, ориентированный на данные. В этой статье я рассматриваю создание и использование намерений в контексте моделей больших языков (LLM).

Введение
В более ранней статье я рассуждал, что, как и в случае с ИИ в целом, модели NLU также требуют ориентированного на данные подхода к проектированию NLU . Повышение производительности NLU требует, чтобы акцент сместился с модели NLU на обучающие данные.
Необходимо придерживаться передовой практики проектирования NLU , когда существующие разговорные неструктурированные данные преобразуются в структурированные обучающие данные NLU.
В идеале NLU Design должен использовать не синтетические или сгенерированные данные, а реальные разговоры с клиентами.
На изображении ниже показан процесс, которому можно следовать для ориентированного на данные подхода к обнаружению, созданию и использованию намерений. Глядя с Embeddings …

1️⃣ Вложения
Первый шаг — использовать разговорные или пользовательские данные для создания вложений, по сути, кластеров семантически схожих предложений.
Каждая из этих групп представляет собой намерение, каждой группе необходимо присвоить ярлык, который является «именем намерения».
Прочитайте статью ниже для подробного описания первого шага. ⬇️
Внедрение ориентированного на данные ИИ для моделей NLU⭐️ Следите за мной в LinkedIn , чтобы быть в курсе обновлений разговорного ИИ ⭐️
2️⃣ Создание классификаций
Когда у нас есть группы/кластеры обучающих данных, мы можем начать процесс создания классификаций или намерений. Термины «классы» и «намерения» будут использоваться взаимозаменяемо.
Для целей этой статьи я буду использовать Cohere LLM.
Классификацию можно выполнить с помощью конечной точки поста классификации Cohere:
https://api.cohere.ai/classify
Учебная часть текста классифицируется по одному из нескольких классов/намерений. Конечной точке нужно всего несколько примеров, чтобы создать классификатор, использующий генеративную модель.
Фрагмент блокнота Colab ниже показывает, как установить Cohere SDK и как создать клиент. Вам понадобится ключ API, который вы можете получить бесплатно, создав логин на сайте Cohere .

Из соображений оптимизации и скорости лучше всего использовать небольшую модель.
После того, как вы установили SDK и создали свой клиент, запустите этот код ⬇️, чтобы создать намерения.
Каждый с обучающими примерами…
from cohere.classify import Example
examples = [
Example("Do you offer same day shipping?", "Shipping and handling policy"),
Example("Can you ship to Italy?", "Shipping and handling policy"),
Example("How long does shipping take?", "Shipping and handling policy"),
Example("Can I buy online and pick up in store?", "Shipping and handling policy"),
Example("What are your shipping options?", "Shipping and handling policy"),
Example("My order arrived damaged, can I get a refund?", "Start return or exchange"),
Example("You sent me the wrong item", "Start return or exchange"),
Example("I want to exchange my item for another colour", "Start return or exchange"),
Example("I ordered something and it wasn't what I expected. Can I return it?", "Start return or exchange"),
Example("What's your return policy?", "Start return or exchange"),
Example("Where's my package?", "Track order"),
Example("When will my order arrive?", "Track order"),
Example("What's my shipping number?", "Track order"),
Example("Which carrier is my package with?", "Track order"),
Example("Is my package delayed?", "Track order")
]
Shipping and handling policy
Start return or exchange
Track order
⭐️ Следите за мной в LinkedIn , чтобы быть в курсе обновлений разговорного ИИ ⭐️
3️⃣ Извлечь классификацию
В приведенном ниже тексте показаны запросы, аналогичные пользовательским высказываниям, отправленным диалоговому агенту…
inputs=[" Am I still able to return my order?",
"When can I expect my package?",
"Do you ship overseas?",
]
( 1 ) Входные данные или высказывания запроса могут быть отправлены
( 2 ) Классификации извлечены
( 3 ) результаты распечатаны
Фрагмент блокнота Colab, показывающий шаги 1, 2 и 3 ⬇️

Результаты:
[
"Classification<prediction":"Start return or exchange",
"confidence":0.9900205>,
"Classification<prediction":"Track order",
"confidence":0.99867964>,
"Classification<prediction":"Shipping and handling policy",
"confidence":0.9982495>
]
Намерениями часто пренебрегают и рассматривают их как незначительный шаг в создании диалогового агента. Такие платформы, как Amelia, Oracle Digital Assistant и Yellow AI, предлагают синтетически сгенерированные обучающие фразы. Такой подход может привести к упрощению процесса создания намерения.
Синтетических обучающих данных может быть достаточно в качестве начальной меры, но они не будут хорошо служить для создания долгосрочного устойчивого решения. С самого начала следует придерживаться передовой практики проектирования и данных NLU.
Кроме того, эти синтетические обучающие фразы основаны на часто «придуманных» намерениях и именах намерений , которые, скорее всего, не соответствуют существующим намерениям пользователя. И определенно не обращаясь к длинному хвосту распределения намерений .
Пришло время начать рассматривать намерения как классификацию существующих разговоров с клиентами; для успешного развертывания цифрового помощника требуется процесс целенаправленной разработки.

⭐️ Следите за мной в LinkedIn , чтобы быть в курсе обновлений разговорного ИИ ⭐️

В настоящее время я главный евангелист @ HumanFirst . Я исследую и пишу обо всем на стыке ИИ и языка; начиная от LLM , чат-ботов , голосовых ботов , платформ разработки, скрытых пространств, ориентированных на данные, и многого другого.




