Как LLM и векторный поиск произвели революцию в создании приложений ИИ
14 июня 2023 г.Генеративный ИИ и большие языковые модели (LLM) вызывают большой интерес. Они пробудили воображение широкой публики из-за того, насколько полезными они могут быть, когда их просят помочь с написанием текста. Но для разработчиков они еще более революционны, потому что они значительно упростили способ создания приложений ИИ. Давайте разберемся, почему.
Почему ИИ был сложным до недавнего времени
Традиционно процесс создания приложения ИИ состоял из четырех этапов:
- Закодируйте наиболее релевантные фрагменты данных в виде векторов. Понимание того, что является «наиболее релевантными частями», является сложной проблемой и часто требует создания отдельной модели только для того, чтобы выяснить это, вместо того, чтобы делать обоснованные предположения. Извлечение соответствующих фрагментов из необработанных данных — еще одна сложная проблема. (Это важные проблемы, поэтому мы создали Kaskada для их решения.)
- Обучите модель, используя эти векторы, чтобы достичь своей цели. Например, одна из самых важных целей Netflix — предсказать, «что Джонатан захочет посмотреть, когда войдет в систему». Если у вас есть общая проблема, такая как распознавание изображений, вы можете «тонко настроить» существующую модель вместо того, чтобы начинать с нуля, но это часто требует много GPU для часов или дней.
- Разверните модель и предоставьте ее как API.
- Чтобы запустить его в рабочей среде, запустите данные в реальном времени с помощью того же кодирования, что и на шаге 1, а затем отправьте их через созданную и развернутую модель, чтобы сделать ее прогноз ("вывод"). п
Шаг 3 обычно прост (хотя не без проблем ); шаги 1, 2 и 4 включают в себя индивидуальные решения, которые могут потребовать навыков, которые сложно найти.
Неудивительно, что, когда для успешного решения проблемной области требуется команда докторов наук, это будет непомерно дорого и требует навыков для всех, кроме нескольких компаний.
Почему ИИ стал проще благодаря LLM
Причина, по которой все так в восторге от генеративного ИИ с LLM, заключается в том, что вы часто можете решить проблему "достаточно хорошо" без каких-либо шагов, описанных выше. С генеративным ИИ ваша задача заключается в следующем:
- Узнайте, как передать данные в GPT в виде текста.
- Сформулируйте запросы об этих данных на английском языке.
Вот именно. Все остальное — детали.
Самая важная деталь: какие данные вы даете GPT на шаге 1? Вы не можете бросить все на это; он может обрабатывать токены только 4 КБ в GPT-3.5 или до 32 КБ в GPT-4, что намного медленнее и дороже.
Векторный поиск позволяет вам взять точный запрос, который вы уже создали, для отправки в GPT и добавить его в свою базу данных, где вы размещаете все, что знаете о клиенте. Векторный поиск буквально отвечает на вопрос «какие данные наиболее релевантны для этого запроса» без каких-либо дополнительных усилий с вашей стороны — это почти волшебство. n n (я твердо верю, что векторный поиск должен быть функцией вашей основной базы данных приложения, а не отдельной системой, поэтому __мы добавили его в Apache Cassandra и DataStax Astra DB__.)
Когда у вас есть наиболее релевантные данные и ваш запрос, вы объединяете их вместе и звоните в OpenAI, получаете ответ, и все готово. (Я умалчиваю о некоторых проблемах, таких как «как заставить LLM отвечать в строго определенном формате, чтобы вы могли получить ответ и включить его в свое приложение», но это те проблемы, которые инженеры-программисты уже умеют решать.)
Таким образом, поставщик потокового контента будет использовать такие данные, как: каждый сеанс, когда-либо проведенный Джонатаном, с названием, актерами и категорией; как долго он смотрел его; плюс все метаданные, которые мы можем придумать, а затем просто денормализовать все это в один текстовый блок и запустить его через кодировщик, чтобы получить вектор.
И если бы это был Netflix, это было бы очень просто, потому что Netflix уже хранит свои данные в Cassandra< /strong>, так что не нужно будет раскручивать новую систему или нанимать докторов наук. Вам просто нужно, чтобы ваши разработчики написали запрос, чтобы объединить эти метаданные в одну таблицу и отправить каждую строку в PaLM Google. или Ada API OpenAI для преобразования их в векторы (называемые встраивания).
Как только это будет сделано, вы можете получить соответствующие строки из Cassandra с помощью такого запроса, где ? — это переменная связывания для вашего вектора запроса, которую вы получаете из того же API встраивания:
SELECT original_data_text
FROM user_recommendation_data
WHERE user_id = ‘jonathan’
ORDER BY embedding ANN OF ?
LIMIT 20
n Затем вы добавляете эти результаты в приглашение LLM и… все. Теперь у вас есть рекомендательная система, которую вы построили за неделю без докторской степени, просто __Astra DB__ и ваш LLM выбор.
Полезна ли традиционная модель?
Трэвис Фишер прав, когда говорит, что нужно рассматривать только точную настройку или пользовательские модели. как только вы исчерпали более простые подходы с LLM. Однако LLM медленнее и дороже, чем модели, созданные по индивидуальному заказу, с меньшими и/или более тщательно настроенными векторами признаков. Кроме того, в таких случаях использования, как в случае с Netflix, когда вы хотите получать машиночитаемые входные данные и получать машиночитаемые выходные данные, вы обычно можете получить более точные результаты с помощью пользовательской модели, чем при двустороннем обходе текста и английского языка.< /p>
Но даже если вам нужно создать пользовательскую модель, LLM могут помочь с созданием данных, меток и функций для этого. Впрочем, это тема для другой статьи!
Как я могу попробовать это?
Я рекомендую прочитать статью Towards Data Science< /strong> раскрывая следующий уровень того, как все это работает. Затем зарегистрируйтесь в базе данных Astra с поддержкой векторного поиска и зарегистрируйтесь на наш вебинар 15 июня по векторному поиску для LLM. Приготовьтесь: будет весело!
Джонатан Эллис, DataStax
Оригинал