Web3 так не смог переделать экосистему разработчиков, но появляющийся стек больших языковых моделей (LLM) способен адаптировать нативно-облачную разработку к эре ИИ, сообщает портал The New Stack, проанализировавший структуру стека LLM.

Экосистема разработчиков приложений с поддержкой искусственного интеллекта начинает созревать после появления за последний год таких инструментов, как LangChain и LlamaIndex. Появился даже термин для разработчиков, ориентированных на ИИ: «AI engineer» («ИИ-инженер»), который, по словам его проповедника Шона @swyx Ванга (Shawn @swyx Wang), является следующей ступенью по сравнению с «prompt engineer» («инженер по подсказкам»). Он создал интересную диаграмму, показывающую, как ИИ-инженеры вписываются в более широкую экосистему ИИ и разработки:

Источник: swyx

Основной технологией для ИИ-инженера является LLM. LangChain и LlamaIndex не случайно являются инструментами, расширяющими и дополняющими LLM. Но какие еще инструменты доступны этому новому классу разработчиков?

Интересную схему стека LLM предлагает венчурный фонд Andreessen-Horowitz (a16z):

Источник: a16z

Важнейший слой данных

Нет необходимости говорить о том, что самое важное в LLM-стеке — это данные. На диаграмме a16z это верхний слой. «Встраивание модели» («embedding model») — это место, где находится LLM. Вы можете выбрать OpenAI, Cohere, HuggingFace или один из нескольких десятков других вариантов LLM, включая все более популярные LLM с открытым исходным кодом.

Но еще до того, как вы перейдете к LLM, a16z подразумевает, что вам необходимо создать «конвейер данных» («data pipeline») — в качестве двух примеров он приводит Databricks и Airflow, или же какой-то инструмент для «неструктурированных» данных. Хотя a16z об этом не упоминает, но в эту часть цикла обработки данных вписываются инструменты, которые помогают предприятиям «очищать» или просто обрабатывать данные перед тем, как они попадут в пользовательскую LLM. Их называют «аналитикой данных» («data intelligence») — это двоюродный брат более известной категории инструментов «бизнес-аналитики» в корпоративном ИТ-стеке.

Последняя часть слоя данных представляет собой класс инструментов, в которых можно хранить и обрабатывать данные LLM, — векторная база данных. Согласно определению Microsoft, это «тип базы данных, в которой данные хранятся в виде многомерных векторов, являющихся математическими представлениями характеристик или атрибутов». Данные хранятся в виде вектора с помощью техники, называемой «встраиванием» («embedding»).

Как рассказывает ведущий поставщик векторных баз данных Pinecone, их инструмент часто используется вместе с инструментами конвейерной обработки данных, такими как Databricks. В таких случаях данные обычно хранятся в другом месте (например, в озере данных), а затем преобразуются в представления (embeddings) путем прогона их через модель машинного обучения. После обработки и разбивки данных полученные векторы отправляются в Pinecone.

Подсказки и запросы

Следующие два уровня можно кратко охарактеризовать как «подсказки» (prompts) и «запросы» (queries) — именно здесь происходит взаимодействие ИИ-приложения с LLM и (опционально) другими инструментами работы с данными.

A16z позиционирует LangChain и LlamaIndex как «оркестровочные фреймворки», то есть инструменты, которые разработчики смогут применить, как только узнают, какую LLM они используют.

Согласно a16z, оркестровочные фреймворки «абстрагируют многие детали цепочки подсказок», что означает запрос и управление данными между приложением и LLM(ами). В процесс оркестровки входит взаимодействие с внешними API, получение контекстных данных из векторных баз данных, а также запоминание при нескольких вызовах LLM.

Наиболее интригующей ячейкой на диаграмме a16z является «игровая площадка» («playground»), которую представляют OpenAI, nat.dev и Humanloop. A16z не дает определения, что это такое, но мы можем сделать вывод, что инструменты «игровой площадки» помогают разработчику заниматься тем, что a16z называет «джиу-джитсу с подсказками». Это место, где разработчики могут опробовать различные техники подсказок.

Одной из особенностей платформы Humanloop является «совместное рабочее пространство подсказок». Она описывает себя как «полный набор инструментов разработчика для создания ваших функций LLM». То есть, по сути, она позволяет опробовать LLM-функции и затем внедрить их в приложение, если они работают

Операционные блоки LLM

Справа от блока оркестровки расположено множество операционных блоков, включая LLM-кэш и Validation. Здесь же находится множество облачных и API-сервисов, связанных с LLM, включая открытые API-репозитории, такие как HuggingFace, и проприетарные API-провайдеры, такие как OpenAI.

Пожалуй, именно здесь этот стек больше всего напоминает стек разработчика, к которому мы привыкли в нативно-облачную эпоху, и не случайно ряд DevOps-компаний добавили ИИ в список своих предложений. Так, Джиоти Бансал, генеральный директор компании Harness, предоставляющей платформу доставки ПО, утверждает, что ИИ может облегчить утомительные и повторяющиеся задачи, связанные с жизненным циклом доставки ПО, начиная с создания спецификаций на основе существующих функций и заканчивая написанием кода. Также, по его словам, ИИ может автоматизировать проверку кода, тестирование уязвимостей, исправление ошибок и даже создание конвейеров CI/CD для сборки и развертывания.

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

Web3 мертв, да здравствует стек ИИ

В формирующемся стеке LLM мы видим множество новых типов продуктов, таких как фреймворки оркестровки, векторные базы данных и «игровые платформы». Все они расширяют и/или дополняют базовую технологию этой эпохи — большие языковые модели.

Но мы также наблюдаем, как почти все компании из нативно-облачной эпохи адаптируют свои инструменты к эре ИИ-инженерии. Это является хорошим предзнаменованием будущей эволюции стека LLM. Как известно, лучшие инновации в компьютерных технологиях неизменно опираются на то, что было сделано раньше. Возможно, именно это и стало причиной провала революции Web3, которая не столько опиралась на предыдущее поколение, сколько пыталась его узурпировать.

Новый прикладной стек LLM — совсем другое дело, это мост от эпохи облачных разработок к новой экосистеме разработчиков, основанной на ИИ.