Эссе о разработке игр, мышлении и книгах

Топовые LLM фреймворки могут быть не так надёжны, как вы думаете

Месяц назад решил добавить поддержку Gemini в Feeds Fun и под это дело изучал топовые LLM фреймворки — писать свой велосипед не хотелось.

В итоге нашёл стыдный баг в интеграции с Gemini в LLamaIndex. Судя по коду, он есть и в Haystack и в плагине для LangChain. А корень проблемы вообще в SDK Google для Python.

При инициализации нового клиента для Gemini код фреймворка перетирает/подменяет API ключи во всех клиентах, созданных до этого. Потому что API ключ, по-умолчанию, хранится в синглетоне.

Смерти подобно, если у вас multi-tenant приложение, и незаметно во всех остальных случаях. Multi-tenant — это когда ваше приложение работает с несколькими пользователями.

Например, в моём случае, в Feeds Fun пользователь может ввести свой API ключ, чтобы улучшить качество сервиса. Представьте какой забавный казус мог бы случиться: пользователь ввёл API ключ для обработки своих рассылок, а потратил токенов (заплатил) за всех пользователей сервиса.

Репортил только в LLamaIndex как security issue и уже 3 недели ноль реакции, для Haystack и LangChain лень воспроизводить. Так что это ваш шанс зарепортить багу в топовый репозиторий. Под катом будет вся инфа, воспроизвести не сложно.

Ошибка примечательна многим:

  1. Оценка критичности ошибки очень зависит от вкусовщины, опыта и контекста. Для меня, в проектах в которых я работал, — это критическая ошибка безопасности. Но, похоже, для большинства актуальных проектов, которые используют LLM, это вообще не принципиально. Что навевает некоторые мысли о мейнстрим около-LLM разработках.
  2. Это хороший индикатор низкого уровня контроля качества кода: код ревью, тестов — всех процессов. Всё-таки это интеграция с одним из топовых провайдеров API, найти проблему можно было кучей разных способов, но ни один не сработал.
  3. Это хорошая иллюстрация порочного подхода к разработке: «копипастим из туториала и льём на прод». Чтобы допустить эту ошибку нужно было проигнорить одновременно и базовую архитектуру твоего проекта и логику вызова кода, который ты копипастишь.

В итоге я забил на эти фреймворки и впилил свой костыль, благо HTTP API для Gemini есть.

Мой вывод из этого безобразия такой: доверять коду, который под капотом у современных LLM фреймворков нельзя. Надо перепроверять, вычитывать. То, что у них написано «production ready», не значит, что они действительно production ready.

Далее расскажу подробнее про сам баг.

Далее

Мои GPT-шки и prompt engineering

Понечки занимаются prompt engineering (c) DALL-E

Понечки занимаются prompt engineering (c) DALL-E

Я пользуюсь ChatGPT практически с момента выхода её четвёртой версии (то есть уже больше года). За это время хорошо набил руку в написании запросов к этой штуке.

В какой-то момент, OpenAI разрешили настраивать свой чат с помощью собственных текстовых инструкций (ищите Customize ChatGPT в меню). Я постепенно дописывал туда команды и вот на днях размер инструкций превысил разрешённый максимум :-)

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

Поэтому покумекав, я решил вместо кастомизации своего чата, вынести инструкции в GPT ботов. OpenAI называют их GPTs, по-русски буду называть их GPT-шками. По-сути, это такие же чаты, в которых больше лимит на кастомизированные инструкции и в них можно залить дополнительные тексты как базу знаниий.

Когда-нибудь, я сделаю GPT-шку для этого блога, а пока расскажу про двух рабочих лошадок, которыми пользуюсь каждый день.

  • Expert — ответы на вопросы.
  • Abstractor — краткое изложение текста.

Для каждой будет описание базового промпта с моими комментариями.

OpenAI недавно открыла магазин GPT-шек, буду благодарен если пролайкаете мои. Конечно, только если они вам полезны.

Далее

Про увольнение Sam Altman и регуляцию ИИ

ChatGPT: Draw an image: "Skynet writes regulations for the AI industry" in the style of "Reply of the Zaporozhian Cossacks".

ChatGPT: Draw an image: "Skynet writes regulations for the AI industry" in the style of "Reply of the Zaporozhian Cossacks".

Последние дни идут новости, что Sam Altman — CEO OpenAI — уволен советом директоров и вслед за ним уходит много сотрудников компании.

Точных причин не названо, формулировка борды в духе «утратил доверие».

На сколько я понимаю, основная гипотеза интернетов на текущий момент — разногласия между фракциями прогрессоров и регуляторов.

  • Регуляторы хотят притормозить эксперименты до момента, очевидно, их зарегулирования государством.
  • Прогрессоры хотят двигаться вперёд с той же скоростью, а то и с большей.

Sam Altman выступает за фракцию прогрессоров.

Если всё так, то его уход — плохая новость. На мой взгляд, самое вредное, что можно сейчас сделать для отрасли — это зарегулировать её.

Далее

Используем DALL-E-3 для геймдева

DALL-E: "Draw a Vrubel-style painting of an indie game developer working on her game, like The Demon Seated. With the accent on Vrubel style."

DALL-E: "Draw a Vrubel-style painting of an indie game developer working on her game, like The Demon Seated. With the accent on Vrubel style."

Получил доступ к DALL-E-3, а значит можно повторить прошлогодний эксперимент и посмотреть что изменилось.

Фантазировать, искать новые направления пока не буду, повторим идеи и запросы из прошлогоднего поста.

Осторожно, много трафика — DALL-E отдаёт png файлы размером 1-2 мегабайта. Я их немного пожал, но пост всё равно будет тяжёлым.

Далее

Глупые прогнозы об Искусственном Интеллекте

DALL-E: Wrubel painting: silly predictions about artificial intelligence

DALL-E: Wrubel painting: silly predictions about artificial intelligence

Пару месяцев назад начал делать заметки на тему поста с намерением не спеша накопить к лету и опубликовать. А тут некоторые прогнозы сбываться начинают :-D Поэтому закину что есть, без сроков и гарантий.

База для прогнозов:

  • История развития ИТ;
  • Понятие о подрывных технологиях, которой без сомнения является ИИ.
  • Здравый смысл, как бы смешно это не звучало, исходя из названия эссе.

Поскольку даты для для прогнозов не указываю, можно считать их скорее трендами, направлениями эволюционного давления, чем конкретными событиями.

Далее