Опубликовано: 13 января 2024 г.
Это первая серия из трех частей, посвященная LLM и чат-ботам. Часть 2, посвященная созданию чат-бота с помощью WebLLM , и часть 3, посвященная использованию Prompt API, уже доступны.
Большие языковые модели (LLM) становятся важным строительным блоком в разработке программного обеспечения: LLM хорошо подходят для генерации и обработки текста на естественном языке, открывая такие варианты использования, как извлечение данных, обобщение или облегчение диалога с пользовательскими данными.
В этой серии я обсуждаю преимущества и недостатки LLM на устройстве и помогаю вам добавить возможности чат-бота в существующее приложение, используя два локальных и автономных подхода: веб-среду выполнения LLM WebLLM и экспериментальный Chrome Prompt API .
Возможные варианты использования
Мы создадим чат-бота на основе классического приложения со списком дел. Исходный код каждого шага доступен на GitHub . Пользователи могут добавлять новые задачи, отмечать их как выполненные и удалять.
Возможно, вы захотите добавить возможность, позволяющую пользователям узнать больше о данных списка дел или выполнить дополнительные функции. Функция чат-бота может позволить пользователям:
- Поинтересуйтесь количеством открытых задач.
- Выявляйте дубликаты или очень похожие задачи.
- Разделите дела на группы.
- Получайте рекомендации по новым задачам на основе выполненных.
- Переводите задачи на разные языки.
- Экспортируйте список дел в формате XML.
Это всего лишь несколько примеров задач, с которыми могут справиться LLM.
Что такое большие языковые модели?
LLM — это искусственные нейронные сети, которые обрабатывают и генерируют текст на естественном языке. Большинство современных LLM основаны на архитектуре Transformer , разработанной в Google. Примеры включают модели Google Gemini и Gemma, серию моделей GPT OpenAI и модели с открытым исходным кодом, такие как LLaMa от Meta AI и Mistral от Mistral AI.
Благодаря обучению работе с огромными объемами данных, LLM обладают впечатляющим спектром возможностей. Они понимают множество языков, обладают простыми знаниями, могут переводить между языками или создавать программный код. Объем этих возможностей может значительно варьироваться в зависимости от размера модели, как описано в разделе «Понимание размеров LLM» .
LLM приводят к смене парадигмы в архитектуре программного обеспечения, поскольку естественный язык теперь становится основной особенностью разработки программного обеспечения. Вместо вызова API с использованием четко определенных интерфейсов достаточно выразить намерение на естественном языке в так называемой подсказке.
Ограничения LLM
LLM также имеет определенные ограничения:
- Недетерминированное поведение : LLM могут давать разные, а иногда даже противоречивые ответы на одну и ту же подсказку, поскольку их результаты зависят от вероятностных моделей, а не от фиксированных правил.
- Галлюцинации . Эти модели иногда могут генерировать неверную или бессмысленную информацию, полагаясь на изученные закономерности, а не на фактическую точность.
- Оперативные внедрения : LLM могут быть подвержены атакам с быстрым внедрением, когда пользователи создают подсказки ввода, которые манипулируют моделью, заставляя ее отклоняться от намеченной функции или приводить к нежелательным результатам.
Поэтому пользователи должны проверить результаты, полученные с помощью LLM, прежде чем предпринимать какие-либо последующие действия.
При работе с LLM на устройстве необходимо учитывать их размер. Размер файлов достигает нескольких гигабайт, и перед первым использованием их необходимо загрузить на устройство пользователя. Меньшие модели, как правило, дают ответы более низкого качества, особенно по сравнению с облачными моделями.
Выбирайте локальные решения
Вашим первым желанием интегрировать LLM в ваше веб-приложение может быть использование облачного провайдера. Многочисленные провайдеры предлагают высококачественные LLM, некоторые из которых являются эксклюзивными для конкретных провайдеров. Облачные LLM обеспечивают быструю скорость вывода по разумной цене, которая обычно рассчитывается на каждый обработанный токен.
Напротив, местные решения представляют собой убедительные преимущества. Работая непосредственно на устройстве пользователя, локально размещенные LLM обеспечивают более надежное время отклика, остаются доступными, даже когда пользователь находится в автономном режиме, и не требуют от разработчиков оплаты абонентской платы или других текущих затрат. Примечательно, что они могут существенно повысить безопасность пользователей. Сохраняя все действия на устройстве, вы можете избежать передачи личной информации (PII) внешним поставщикам или регионам.
Демо
Вы можете взглянуть на готовые демо-версии с возможностями чат-бота, прежде чем научиться создавать их самостоятельно.
- Оригинальное приложение для дел
- Приложение To-do с WebLLM
- Приложение To-do с Prompt API
- Источник на GitHub
Далее вы воспользуетесь WebLLM, чтобы добавить чат-бота в приложение списка дел .