LLM под капотом
8.17K subscribers
190 photos
5 videos
10 files
341 links
Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
Download Telegram
OpenAI Canvas - аналог Claude Artifacts

OpenAI подсуетились и встроили в свой интерфейс режим Canvas. Он сильно похож на вариант от Anthropic и работает на GPT-4o.

В обоих случаях мы можем работать с текстом и кодом. ChatGPT может редактировать код, делать ревью, работать с комментариями и логами. На скриншоте пример, когда я отправил прототип golang http сервера в canvas и попросил сделать review кода.

OpenAI не поленились и вынесли отдельные операции (Code Review, Port to a language итп) прямо в кнопки в интерфейсе. Это хорошо - они наверняка отладили эти промпты на куче тестовых кейсов.

Еще можно выделить кусок текста на экране и попросить ChatGPT изменить его или объяснить. Переключение между версиями есть тоже.

В прошлом, я переключился в ряде задач с ChatGPT на Anthropic только из-за появления таких удобных Artifacts. Сейчас выглядит так, что OpenAI сделали еще больше удобных фич.

Где-то начали беспокойно шевелиться Cursor и аналоги. До их функционала Canvas еще очень далеко. Но если дело будет выгодным, OpenAI ничто не мешает расширить десктопную версию (там, говорят, Canvas уже тоже завезли), чтобы она работала с папками с кодом.

В общем, если у вас есть стартап или свой продукт - избегайте очевидных тропинок, по которым уже идет куча других компаний и могут пойти крупные игроки. Рискованное это дело. Скорость, с которой OpenAI повторили ключевой функционал Anthropic Artifacts это показывает.

Я лично использую Aider (см мой текущий AI Coding setup) для работы проектами на много файлов, и ему ChatGPT конкуренции пока не составляет, только Claude.

Ваш, @llm_under_hood 🤗

PS: А еще Canvas удобен для работы не только с кодом, но и текстом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Бенчмарк Google Flash 1.5 8B - Прекрасное далеко

Помните недавно мы разбирали маленькие локальные модели от Llama 3.2, и там они прямо подвинули State-of-the-art? На этом прогресс не останавливается.

У Google стала доступна новая версия Gemini Flash 1.5 8B, и она показывает очень хорошие результаты на моих продуктовых бенчмарках . Эта модель размера 8B держится на уровне старых GPT 3.5 или Llama 3 70B. Она почти догоняет обычную 1.5 Flash по бенчмаркам.

Основной недостаток этой модели - она закрытая. Пусть размеры и известны, но скачать веса и запустить ее локально не получится.

Зато Gemini Flash 1.5 8B можно использовать очень недорого. Плюс, как это продемонстрировал сам Google - все, что сделала одна компания, другая сможет повторить. Поэтому ждем открытых моделей такого же уровня.

Кстати, официальная страница бенчмарков, наконец, переехала на новое место жительства. Также там добавились бенчмарки за сентябрь и август. Начиная с сентября, таблица стала немного интерактивной - модели можно фильтровать и подсвечивать.

Ваш, @llm_under_hood 🤗

🔗 Бенчмарк GPT o1 - топовая модель
🔗 Бенчмарк Qwen 2.5 - лучшая локальная модель
🔗 Gemini 1.5 Pro 002 - внезапно третье место!


PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Как может выглядеть checklist?

Например, так, как на картинках. Это скриншоты из бенчмарка, который мы делаем для доклада на NODES '24 (Neo4j dev conference).

Этот бенчмарк оценивает то, как качественно LLM преобразовывает запрос пользователя в запрос по базе данных (SQLite/neo4j).

В данном случае я задаю все вопросы из checkist на каждый запрос пользователя перед тем, как она начнет генерировать финальный ответ. Это все делается одним запросом к LLM.

Добавление такой chain of thought (захардкоженной в виде structured output) улучшает качество ответов с 76 до 81 на этом бенчмарке.

Вы пробовали такой подход? Напишите про результаты!

Ваш, @llm_under_hood 🤗
Настал тот момент, когда мы замучались удалять ботов

Поэтому я попросил Claude написать мне бота, который будет верифицировать новых участников нашего чата (там уже более 1300 участников).

Бот только что вышел на стражу. В нем целых 166 строчек кода на golang. Его от Shieldy отличает то, что логику верификации теперь мы можем переписать очень быстро.

Если кто хочет - может попробовать его сломать. У вас есть одна попытка 😎

Ваш, @llm_under_hood 🤗

PS: Бот заменяет старого Shieldy и срабатывает только на момент добавления и верификации. Существующие сообщения модерируются, как и раньше, вручную. В добром чатике банят только за спам, яростный оффтопик и токсичность.
Аренда H100 за $2 в час - про резкое падение цен на GPU

Очень детальный разбор ситуации есть в новой статье на latent space.

Если кратко, то в прошлом году было сложно арендовать H100 за 8 долларов в час в заметных количествах. В последние месяцы из-за кучи факторов среднаяя стоимость стала падать до двух долларов. См, например, цены на площадке SFCompute.

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

Но есть один нюанс. Рынок - не дурак. Относительно дешевые конфигурации H100 - это пока именно, что излишки. Там, скорее всего, не будет InfiniBand, будут медленные хосты, проблемы с сетками или молодой неопытный оператор. Чем ниже цена - тем больше грабель.

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

Ваш, @llm_under_hood 🤗
OpenAI Swarm - пример мультиагентной системы

OpenAI написали целую статью про организацию агентов и открыли небольшой фреймворк с примерами - Swarm.

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


refund_agent = Agent(
name="Refund Agent",
instructions="You are a refund agent. Help the user with refunds.",
tools=[execute_refund],
)

def transfer_to_refunds():
return refund_agent

sales_assistant = Agent(
name="Sales Assistant",
instructions="You are a sales assistant. Sell the user a product.",
tools=[place_order],
)


Для красоты они еще добавляют TriageAgent, который может переключать между нужными агентами:



triage_agent = Agent(
name="Triage Agent",
instructions=(
"You are a customer service bot for ACME Inc. "
"Introduce yourself. Always be very brief. "
"Gather information to direct the customer to the right department. "
"But make your questions subtle and natural."
),
tools=[transfer_to_sales_agent, transfer_to_issues_and_repairs, escalate_to_human],
)


Под капотом простой код, который конвертирует описания активных агентов в промпты, а все переключения между агентами и вызовы их инструментов упаковываются как вызовы стандартных OpenAI tools. В методичке все очень хорошо расписано, а сам код можно посмотреть на Github.

Концепция агентов - простых функций, со своим контекстом и набором инструментов работает очень хорошо. Помните, я в Марте писал про AI Ассистента для международной компании?

Там технически была как раз такая реализация, я построил Knowledge Map для продукта в виде структуры агентов и инструментов, которые необходимы для обработки запросов пользователей.

У каких-то агентов были инструменты в виде FTS поиска, какие-то знали, в каких папках искать, у третьих в контекст был встроен FAQ. А на входе стоял Triage Agent. Но тогда я еще не умел пользоваться tools/structured output, и в коде было много ненужных промптов и костылей. Сейчас это делается еще проще.

А как в ассистенте заранее знать, какие будут вопросы, чтобы подготовить армию агентов? Да просто смотреть на предметную область и задавать вопросы! В своем примере (который основывается на куче опыта) ребята из OpenAI же откуда-то узнали, что нужен TriageAgent/RepairsAgent/SaleAssistantAgent и RefundAgent?

(на самом деле паттерны повторяются из компании в компанию аналогично тому, как в компаниях повторяются должности и организационные структуры)

Кто еще смотрел этот код? Что думаете?

Ваш, @llm_under_hood 🤗
PS: Слайд про подобных агентов из курса. Эту часть я уже записал и переделывать даже не надо)
Бенчмарк Grok-2 от X.AI - 12 место

Это было внезапно. Я от X.AI не ожидал ничего работающего. Но у них Grok-2 неожиданно оказалась настолько хороша по показателям на продуктовом бенчмарке, что заняла место в первой дюжине. Даже Reason не самый стыдный - 58.

У модели в соседях - старые версии GPT-4, но она все же будет пониже, чем локальная Qwen 2.5.

При этом пользоваться ей пока совершенно невозможно - на OpenRouter дикие RateLimits.

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

Ваш, @llm_under_hood 🤗

🔗 Бенчмарк GPT o1 - топовая модель
🔗 Бенчмарк Qwen 2.5 - лучшая локальная модель
🔗 Бенчмарк Google Flash 1.5 8B - Прекрасное далеко

PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Please open Telegram to view this post
VIEW IN TELEGRAM
На TedAI Vienna. Создатель xLSTM рассказывает про свой новый проект, который не использует трансформеры.

Кто-нибудь ещё пришел сюда?
Кейс - графовая система организации знаний для завода / корпорации.

На TedAI Vienna я встретился с ребятами, которые пилят Data Context Hub - систему для организации корпоративной системы знаний для заводов и огранизаций. Эта система подгребает под себя разносторонние источники данных и потом выстявляет наружу API для работы с ними.

Например, API для ответа на вопрос, “а сколько гаек X12123 версии 123 было использовано в машинах на последней неделе?” или “а кто может заменить рабочего X, которому надо нарезать 345 гаек X12123 версии 124, но заболел?”

Самое интересное у них:

(1) Они рано поняли, что векторные базы, семантический чанкинг (или любой чанкинг) - это бесполезная и вредная фигня в тех областях, где галлюцинации нам не нужны.
(2) Достаточно быстро поняли, что секретный рецепт для получения точных ответов на разнообразные ответы - “просто надо нормально предобрабатывать и структурировать данные”.
(3) Плюс быстро сообразили, что generic chatbot interface - это тупиковый путь. Лучше выставлять наружу специализированные интерфейсы под конкретные задачи, которые будут работать заведомо лучше (Dedicated Agents с заранее собранным инструментарием и контекстом под задачи)

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

Поэтому они они после data intake ставят context mapping layer (все читали про Context Map из Domain Driven Design, так ведь?) В нем поток сырых данных размечается, сопоставляется, привязывается к сущностям и контекстам. И эти ребята просто выставили наружу интерфейс, в котором эксперты у клиента сами могут набросать правила преобразования их собственных сырых данных в их собственные размеченные данные. А если что-то не работает - поменять.

Подход похож на knowledge mapping, например из ассистента маркетолога, только в последнем эксперты у нас еще и сами данные раскладывали 😎

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

Я говорил, что графовые базы данных обычно ведут команды в ложном направлении. Люди не хотят думать и все пытаются сделать автоматическую нарезалку данных, которая мелко нашинкует все на сущности и отношения. Данный кейс - это исключение. Эксперты вручную определяют правила нарезки данных.

Авторы Data Context Hub партнерятся с BMW и Siemens. Судя по всему, точности и гибкости системы хватает для небольших заводиков.

Кстати, забавно, что на сайте в use cases они еще упоминают embeddings, но в самой документации к продукту ни слова про вектора/chunks/embeddings. Возможно, хотят направить не слишком внимательных конкурентов по ложному следу.

Ваш, @llm_under_hood 🤗
Бенчмарк новой Claude 3.5 Sonnet v2 - лучше прошлой версии, но не TOP 10.

Только что в Anthropic зарелизили Claude 3.5 Sonnet v2. На продуктовом бенчмарке она в TOP 10 не попала, заняв 11ое место в общем зачете.

У новой версии подтянули следование инструкциям и работу с кодом (Code - это не только написание кода, но и анализ, преобразования и рефакторинг).

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

Кстати, для тех, кто очень нежно любит качество Claude 3.5 Sonnet в задачах простого написания кода, в комментарии выложу скриншот небольшого бенчмарка для Nodes24 конференции.

Ваш, @llm_under_hood 🤗

PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Лучшие проекты с LLM - это те, которые делают отчеты, а не болтают

Я уже не раз говорил, что я стараюсь не браться за проекты, где клиент хочет себе conversational search или чатбота или что-то еще с текстовым полем "А что вы хотите сделать?"

Причина - у такого продукта слишком много нюансов и переменных. Этот продукт делается для людей, что открывает дверь для субъективщины, непоняток, длинных циклов разработки. В итоге, статистически, получаются длинные проекты и не очень довольные клиенты.

А как тогда быть? Да просто копать в настоящие хотелки клиента и пытаться свернуть продукт туда, где нужно работать с процессами или системами.

Только вчера шло обсуждение нового клиента, который хотел глобальный data warehouse с conversational search и умными ассистентами. Когда я сказал, что это делать совсем не выгодно - поискали альтернативные варианты и нашли пару кейсов с data extraction (пример кейса) или lead generation (пример кейса).

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

Отчеты бывают читаемые людьми или для выгрузки в системы. Особый UX там не требуется, а если нужно причесать UI, то хватит и GPT-o1 (дизайн на фотке - его). А еще обычно не нужно ничего патчить, внимательно следить за нагрузками и аптаймом. Customer Support сводится к минимуму, а первые итерации можно просто прогонять у себя в юпитере и присылать файлом клиенту.

В общем, проекты с LLM под капотом, которые сводятся к отчетам - это сплошная красота (по скорости закрытия). И, по моей статистике, большинство клиентских ситуаций как раз можно свести к этому. Достаточно просто вспомнить заветы product-driven development и копнуть поглубже.

Ваш, @llm_under_hood 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
Бенчмарк Claude 3.5 Haiku - дороже и умнее

Новая младшая модель от Anthropic отражает тренд последовательного роста качества небольших моделей. Haiku в среднем подтянула очки по общим показателям, за исключением Code+Eng (*)

А еще у модели почти в два раза выросла способность мыслить! В категории Reason произошел скачок с 35 до 68. Это самое большое значение среди всех моделей Anthropic. Возможно мы видим новую архитектуру следующего поколения моделей?

На смену архитектуры намекает и четырехкратное увеличение стоимости Anthropic Haiku. Теперь она уже не "смышленая и очень дешевая". Можно найти подешевле и умнее. Например, GPT-4o Mini или Google Gemini Flash 1.5 8B.

Но общий тренд роста качества моделей радует. Посмотрим, не проявится ли рост Reason в следующих релизах моделей постарше.

Ваш, @llm_under_hood 🤗

(*) Я переименовал категорию Code в Code+Eng, чтобы точнее отражать наполнение бенчмарков - не только написание кода, но и анализ, review и интерпретация.

PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
История развития State of the Art локальных моделей.

Ловите картинку на базе бенчмарков. Вместо трендов теперь для каждой категории модели отображается нормальный cumulative maximum.

Gemini 1.5 Flash 8B добавлен со звездочкой - его нельзя выкачать и запустить локально. Надо будет ждать, пока не появится открытая модель.

NB: Модели разделены условно на те категории железа, которые я чаще всего вижу у клиентов. Считаем VRAM на запуск с запасом места под контекст и без квантизаций.

На картинке видно, что крупные модели начали появляться относительно недавно, но у них прогресс пока быстрее всего идет.

Маленькие модели, которые влазят в 4090, достаточно долго стагнировали. Gemini 1.5 Flash 8B стал недавно внезапным рывком.

Ваш, @llm_under_hood 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM