Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
PS: Слайд про подобных агентов из курса. Эту часть я уже записал и переделывать даже не надо)
Читать полностью…Аренда H100 за $2 в час - про резкое падение цен на GPU
Очень детальный разбор ситуации есть в новой статье на latent space.
Если кратко, то в прошлом году было сложно арендовать H100 за 8 долларов в час в заметных количествах. В последние месяцы из-за кучи факторов среднаяя стоимость стала падать до двух долларов. См, например, цены на площадке SFCompute.
Плюс люди, наконец, поняли, что обучение моделей с нуля - это не так просто. Нынче легче взять хорошую базовую модель и довести ее напильником (либо нормальными промптами либо тюном). Поэтому все набранные кредиты, неиспользованные часы и кластера выплескиваются на рынок и сбрасывают цены. Плюс на горизонте уже маячат BH200.
Но есть один нюанс. Рынок - не дурак. Относительно дешевые конфигурации H100 - это пока именно, что излишки. Там, скорее всего, не будет InfiniBand, будут медленные хосты, проблемы с сетками или молодой неопытный оператор. Чем ниже цена - тем больше грабель.
Но это только начало тренда. Думаю, что он продолжится в следующем году, делая подобные мощности более доступными для небольших компаний.
Ваш, @llm_under_hood 🤗
Как может выглядеть checklist?
Например, так, как на картинках. Это скриншоты из бенчмарка, который мы делаем для доклада на NODES '24 (Neo4j dev conference).
Этот бенчмарк оценивает то, как качественно LLM преобразовывает запрос пользователя в запрос по базе данных (SQLite/neo4j).
В данном случае я задаю все вопросы из checkist на каждый запрос пользователя перед тем, как она начнет генерировать финальный ответ. Это все делается одним запросом к LLM.
Добавление такой chain of thought (захардкоженной в виде structured output) улучшает качество ответов с 76 до 81 на этом бенчмарке.
Вы пробовали такой подход? Напишите про результаты!
Ваш, @llm_under_hood 🤗
Дайте мне минуту, и я объясню, как связаны котики и RAG-и
Нет, это не связано с Игорем Котенковым, который регулярно приводит новых подписчиков из своего канала - @seeallochnaya.
Мне часто задают вопрос, который звучит примерно так.
Ринат, я хочу сделать поиск/бота для ответов на вопросы по переписке/документам компании/моим заметкам/FAQ-ам службы поддержки/продуктам. Какой RAG лучше начать смотреть?
Самый частый комментарий про исходники решения - победителя Enterprise RAG Challenge звучит примерно так:
Заварил чайник, чтобы сесть разобраться в исходниках. К концу первой кружки удивился, что так мало кода.
response = client.beta.chat.completions.parse(
model="gpt-4o-2024-08-06",
messages=messages,
response_format=ChainOfThoughtPydanticClass
)
class Size(BaseModel):
width: float
height: float
size_inches: Optional[Size] = Field(None, description="Dimensions in inches (width, length)")
Вопрос из нашего комьюнити выпускников:
есть ли у нас тут спецы, кто умеет готовить многомодальные модели?
Я хочу сейчас натренировать модель текст + временные ряды (time-series) и не хочется собирать самому шишки, которые кто-то уже собрал.
Тема пока что не популярная, но это скоро поменяется.
Тут выдохнуть спокойно нельзя
Только я сел делать предобработку видео для курса по AI Ассистентам - новость, мол, вышла Llama 3.2. Дайте я хоть расскажу план курса, а потом бенчмарк, ок?
План такой - курс состоит из двух модулей. Они будут доступны на моей площадке ML Labs, формат - текст и видео. По времени и стоимости напишу отдельно попозже.
Первый модуль - про ментальные модели для работы с LLM: как обходить грабли и как использовать эффективно LLM в проектах. А если что-то не работает - как последовательно найти первопричину проблем и устранить. Это те знания, которые в прошлом году сэкономили бы мне 2-3 месяца работы. Часть контента пересекается с вебинарами, которые мы проводили с вами весной. Но материала на курсе больше и он дается подробнее.
Второй модуль полностью новый. Я прошелся по всем кейсам успешного внедрения LLM/AI на текущий момент, систематизировал их и вывел повторяющиеся архитектурные паттерны. Эти паттерны с особенностями применения я и показываю, разберем кейсы с их использованием. Второй модуль дает “насмотренность” на текущее использование LLM в отраслях из моих кейсов в современных компаниях: это структурированные знания, которые клиенты уже применяют.
Обычно про такие вещи компании не рассказывают никому, т.к. это интеллектуальная собственность и близкие к сердцу разработки. Но благодаря AI Research мы можем видеть те вещи, которые повторяются в совершенно разных отраслях. И тогда можно выделить обезличенные общие паттерны, про которые уже можно рассказывать.
Помимо теоретической части и видео будет доступен отдельный практикум, чтобы разобрать вопросы и поговорить более предметно. Как и весенние вебинары, практикум на продажу записываться не будет. Можно будет приносить свои кейсы для обсуждения - они за пределы группы не выйдут. А все выпускники получают доступ в коммьюнити. Кстати, нынче там обсуждают расценки на создание юридических RAG с нуля, механизмы внимания в LLM и делятся бенчмарками Qwen2.5/Llama70B на H100/H200 для максимальной окупаемости.
Доступ к покупке курса, скорее всего, сделаем по когортам. Но не из-за ограничений мест и времени (как это было весной), а просто чтобы успевать обрабатывать отзывы и проводить практикумы. Если кто-то хочет получить доступ пораньше - можно на днях открыть waitlist. Надо?
Ваш, @llm_under_hood 🤗
PS: А дальше будет бенчмарк LLama 3.2
Вот все Google Gemini ругают.
А как вы думаете, какое место в бенчмарке займет новая версия Google Gemini 1.5 Pro v2?
Бенчмарк Qwen 2.5 и DeepSeek 2.5
Недавно вышедший Qwen 2.5 72B Instruct оказался неожиданно хорош. Это первая локальная модель, которая побила Claude 3.5 Sonnet на продуктовых задачах из моих бенчмарков. Он еще и стоит меньше всех остальных моделей в топах.
Стоимость прогона рассчитана на базе цен из OpenRouter.
Qwen 2.5 72B внимательно следует инструкциям (в отличие от того же Sonnet и старых версий GPT-4) и может похвастаться довольно неплохим Reason. У этой китайской модели есть провалы в задачах работы с кодом (но там делают отдельную модель) и с английскими текстами (Marketing).
А вот DeepSeek 2.5 оказался не так хорош. Параметров - 236B, а точность выполнения задач из продуктов с LLM под капотом - на уровне Mistral Large 123B и старой модели GPT-4 Turbo.
И это потрясающие новости, что все больше локальных моделей подбирается к планке GPT-4 Turbo. А то, что ее так далеко преодолела модель на 72B - это повод для отдельного праздника 🚀
Я думаю, в этом году это не последняя подобная модель.
Ваш, @llm_under_hood 🤗
🔗 Бенчмарк GPT o1
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
В ходе комментариев на опрос выше немало людей упомянуло, что o1, несомненно, справится с задачкой счета букв.
Если понимать базовые ограничения систем с LLM под капотом, то сложную для LLM задачку сочинить несложно. Например, на эту задачку пересчета букв даже o1-preview у меня не смогла ответить правильно (0 из 5 попыток):
List letters that have diacritics in one word but appear without it in one of the others? Words are: "Świnoujście", "Chișinău", and "Île-de-France". Case matters.
a
. Это можно проверить глазами за пять секунд. А еще можно попросить ChatGPT написать код, который это проверит.Кейс DealRoom: AI-решение для Due Diligence
Хочу похвастаться: на днях мои клиенты зарелизили продукт для автоматизации процесса Due Diligence в слияниях и покупках компаний - AI designed for Due Diligence. Они его разрабатывали с моими консультациями.
Весь процесс Mergers and Aquisitions (от LOI до завершения интеграции) - это сложный "танец" двух компаний, который может занять от 12 месяцев до 3+ лет. Почему так долго? Потому что нужно выяснять массу деталей, анализировать горы документов и получать точные ответы на специфичные вопросы о компаниях. Правильное использование AI/LLM помогает сэкономить много человеческого времени в этом процессе.
Продукт относится к категории Business Services в моей матрице AI Cases - её вы видели в прошлом посте.
Я этот релиз ждал очень долго. DealRoom - это мои давние клиенты в рамках AI Research и консалтинга. С января этого года компания прошла большой путь: от продуктовой идеи до конкретного продукта, от классического RAGа с типичными болячками до работающего решения, которое вобрало в себя опыт лучших экспертов в отрасли M&A.
Продукт начинает свое путешествие, в нем предстоит немало работы с клиентами и экспертами. Но DealRoom уже не нужно тратить время на выстраивание LLM архитектуры и борьбу с галлюцинациями, они могут сосредоточить силы на ценных фичах и упрощении работы пользователей.
Ваш, @llm_under_hood 🤗
PS: А еще у них есть вакансии, подробности - в комментариях.
Мой AI Coding workflow
Инструменты, которые использую в разработке сейчас.
В первую очередь IDE - либо Jetbrains PyCharm/Goland/WebStorm либо neovim. Я на эту связку пересел лет этак 10 назад с Visual Studio, все работает хорошо и удобно для меня. Мускульная память рулит.
Отчасти из-за этого я не использую Zed, Cursor.sh и прочие AI-first редакторы. Они никогда не станут такими удобными (для меня), как JetBrains/neovim со всеми моими настройками и плагинами.
В IDE - использую Github Copilot для ненавязчивого autocomplete. Большую часть времени он выключен, чтобы не отвлекал.
Для когнитивно сложных задач и брейншторминга - Claude Chat / ChatGPT в режиме копипасты.
Если нужно работать точечно по коду с разными файлами, рефакторить и чистить, тогда aider c такими параметрами:
aider --no-auto-commits --cache-prompts --no-stream --cache-keepalive-pings 6 --read README_AI.md
--cache-prompts --no-stream --cache-keepalive-pings 6
перетасовывает промпт так, чтобы использовать context caching (для экономии) --read README_AI.md
- загружает мелкую методичку для AI по текущему проекту.Enterprise RAG Challenge - сводная таблица с результатами
Эта таблица по первому раунду нашего challenge. Она заполнена на основе оценки ответов и информации, которую предоставили участники. Последняя версия в CSV: scores.csv.
Описание колонок:
- Score - очки от 0 до 100. Ответы в результате ручной разметки лежат в answers.json. Сам алгоритм оценки - rank.py.
- Local - звездочка, если локальная модель
- Design - краткое описание архитектуры. Хотите узнать больше? См teams.py с той информацией, которую мне предоставили команды.
- Cost - примерная оценка. Ее почти никто не предоставил
- Source - те исходники, которые обещали попозже расшарить. Я опубликую ссылки на них
Дополнительные колонки для прозрачности:
- TTA - тут помечены участники, с которыми я работаю в рамках TimeToAct. Они участвовали на равных со всеми условиях, но ради прозрачности они выделены отдельно.
- AIR - кто участвует в обмене опытом в рамках AI Research или имел доступ к инсайтам на его базе (включая курс и вебинары).
Весь Github repository по этому Challenge - открытый под Apache License. Можно форкать, исправлять и публиковать свои версии лидербордов. Или даже проводить свои соревнования. Единственное, чего там нет - 45GB всех исходных PDF (есть dataset с sha1 и именами компаний). При желании их можно наскрести в интернете по именам компаний.
Кстати, этот RAG Challenge уже планируют включить в программу LLM/AI одного технического университета в Австрии. 🎉
Второй раунд состоится осенью. Структура останется той же, но будет больше участников, а генератор вопросов перебалансируется в сторону большего разнообразия. Это сделает решения "в лоб" на базе Checklist/Knowledge Mapping более дорогими. Плюс я постараюсь собрать больше информации от участников второго раунда.
Кстати, а какие пункты вы бы добавили в опросник для участников?
Вaш, @llm_under_hood 🤗
PS: Авторы наилучшего локального решения, возможно, раскроют карты и расскажут про свою архитектуру побольше.
У Claude есть замечательные Artifacts, которые позволяют писать и сразу показывать живые интерактивные интерфейсы.
Если же хочется, чтобы эти интерфейсы сразу же подключались к настоящему API (например, на localhost), то придется обойти настройки Content Security Policy на claude.ai.
Я это сделал так:
- поставил Firefox 98, отключил там автообновление (about:preferences -> search for update)
- в about:config отключил security.csp.enable (в 99 версии и старше его выпилили)
И тогда можно запускать хоть локальный API, давать его схему клоду в артифактах, и он сразу будет подключаться к нему.
Отключение CSP - это небольшая дырка в безопасности, поэтому я запасную версию Firefox поставил отдельно, специально для Claude AI. Он это заслужил.
Вaш, @llm_under_hood 🤗
PS: это #weekend пост
Наглядный пример паттерна Query Expansion
Тут LLM используется для разворачивания запроса пользователя в запрос по базе данных. Запрос выполняется в БД, результат извлекается по схеме и возвращается пользователю.
Для реализации такой системы достаточно одного единственного промпта с описанием схемы БД и специфики компании.
Причем, эта реализация очень сильно выигрывает от token caching (который добавили недавно в Claude и Gemini Pro). Можно запихнуть все описание в префикс промпта, и эта часть закэшируется в первом запросе. А потом можно будет недорого и быстро задавать множестно разных вопросов по этой системе.
Кстати, Query Expansion можно еще использовать для разворачивания запросов в Full Text Search Queries (особенно, если терминология и даже язык документов отличаются от человеческой речи)
#llm_pattern
Ваш, @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],
)
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],
)
Настал тот момент, когда мы замучались удалять ботов
Поэтому я попросил Claude написать мне бота, который будет верифицировать новых участников нашего чата (там уже более 1300 участников).
Бот только что вышел на стражу. В нем целых 166 строчек кода на golang. Его от Shieldy отличает то, что логику верификации теперь мы можем переписать очень быстро.
Если кто хочет - может попробовать его сломать. У вас есть одна попытка 😎
Ваш, @llm_under_hood 🤗
PS: Бот заменяет старого Shieldy и срабатывает только на момент добавления и верификации. Существующие сообщения модерируются, как и раньше, вручную. В добром чатике банят только за спам, яростный оффтопик и токсичность.
Бенчмарк 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 под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
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 это показывает.
Ваш, @llm_under_hood 🤗
PS: А еще Canvas удобен для работы не только с кодом, но и текстом.
Исходники 4-х решений из Enterprise RAG Challenge
Месяц назад у нас прошел первый раунд Enterprise RAG Challenge - дружеского соревнования по построению AI ассистентов на годовых отчетах компаний.
Итоги соревнования с кратким разбором победивших архитектур есть тут. Среди участников были и коммерческие системы.
А вот тут лежат исходники 4-х решений из этого списка, включая победившее. Там есть описания подходов и сам код. В некоторых случаях - лог провальных экспериментов.
Код я выпросил реальный - без особого причесывания и украшательства.
Если кратко:
- daniel - решение-победитель на базе checklist + structured outputs. Первое место.
- felix - multi-agent решение на базе ChatGPT-4o. Двенадцатое место.
- maria - assistants API. Тринадцатое место.
- pedro - локальное решение на базе openchat-3.5-0106. Девятое место.
Что будет дальше? Следующий раунд состоится попозже этой осенью в большем составе. Когда - сложно сказать, зависит от отдела маркетинга в TimeToAct, который сейчас очень загружен. Я бы рассчитывал на ноябрь.
Во втором раунде генератор вопросов будет перебалансирован, чтобы:
(1) было меньше вопросов без ответов (c N/A)
(2) было больше вариативности в вопросах, чтобы подход “в лоб” с checklist + structured outputs больше не мог так легко занять топовые места.
Ну и вопросники для участников будут побольше, чтобы мы вместе могли узнать чуть побольше про реально работающие подходы с LLM под капотом.
Ваш, @llm_under_hood 🤗
PS: Если кто-то еще из участников хочет поделиться своим кодом - шлите ссылки на гитхаб, я их добавлю в этот пост.
Бенчмарки Llama 3.2 - Так себе, но есть маленький нюанс 🤩
Meta недавно выпустила новые версии своей локальной модели Llama - 3.2.
Теперь Llama стала мультимодальной. Это произошло в ущерб когнитивным способностям на текстовых бизнес-задачах - там новые версии стали хуже прошлых версий сравнимого размера. До топов им далеко.
Смотрим на первую таблицу:
Llama 3.2 90B Vision работает на уровне Llama 3/3.1 70B
Llama 3.2 11B Vision работает на уровне прошлых 8B
Чисто по поведению на бенчмарках выглядит так, словно рост в ~20% размере моделей как раз обусловлен добавлением мультимодальных способностей к старым версиям. А небольшая просадка качества - тем, что дообучали на новых модальностях в ущерб текстовому качеству.
Это не делает модели хуже. Просто мой бенчмарк на данный момент тестирует только текстовую модальность, задачи на зрение появятся только в следующей версии.
И еще есть маленький нюанс, который круче всего остального в этом релизе. Размер маленького нюанса - 1B и 3B. Эти крошки заточены на работу "on-the-edge" даже с относительно слабыми процессорами (процессоры ARM, железо Qualcomm и MediaTek). При этом у них контекст в 128K tokens, а качество и следование инструкциям на продуктовых задачах неожиданно офигенные.
Помните я говорил, что DBRX 132B Instruct - это никому не нужная ерунда? Так вот, Meta Llama 1B ее догоняет, а 3B - уделывает. В общем, смотрите сами на соседей этих моделей на второй таблице.
А ведь это еще базовые модели без тюнов. Тюны обычно повышают качество моделей Meta на этом бенчмарке еще больше.
Прогресс не стоит на месте, будем ждать продолжения тренда, когда компании умудряются запихнуть побольше когнитивных способностей в модели поменьше. От этого выигрывают все. А Meta - однозначно молодцы.
Ваш, @llm_under_hood 🤗
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Gemini 1.5 Pro 002 - третье место в бенчмарке! 🚀
Ребята из Google - молодцы. Релиз за релизом они последовательно повышали качество своих моделей, как Gemini Flash, так и Gemini Pro. Последняя версия Gemini Pro заняла третье место в моем продуктовом бенчмарке. При этом она потеснила относительно бесполезный (за такие деньги) GPT o1-mini.
В Gemini 1.5 Pro v002 Google подтянули все параметры - работу с кодом, документами, маркетинговыми текстами и даже сложный Reason. Стоимость немного меньше, чем GPT-4o со второго места бенчмарка.
В нашем чатике хвалят Gemini Pro за работу с разными языками. А клиенты из Google Cloud вообще радуются тому, что у них появилась своя нормальная LLM.
Долгое время казалось, что OpenAI и Anthropic - это единственные компании, которые могут делать передовые модели. И что крупные компании слишком медленны и отсталы для этого. Google смогли доказать, что это не так. Теперь можно начинать ждать классных моделей подобного уровня от Amazon и Microsoft. А там, глядишь, начнется и конкуренция с повышением качества и снижением цен :)
В комментариях к посту еще есть график динамики прогресса моделей Google со временем (как и всех hosted моделей) и сравнительная табличка с бенчмарками для всех моделей Google.
Ваш, @llm_under_hood 🤗
🔗 Бенчмарк GPT o1 - топовая модель
🔗 Бенчмарк Qwen 2.5 - лучшая локальная модель
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Куда катится мир локальных LLM?
Вот вам график, который показывает тренды роста производительности разных локальных моделей со временем.
Я взял все локальные модели из бенчмарка (последние были про Qwen 2.5 / DeepSeek 2.5 и про GPT o1) и сгруппировал по необходимому размеру GPU для запуска.
(группировка очень примерная. Я считал, что запускается под fp16 без особых квантизаций и с запасом памяти на inference)
Потом все модели я отметил на временной шкале по дате их релиза и построил тренды (linregress). Получился такой график.
Основные тренды:
(1) Модели становятся со временем все лучше, как большие, так и маленькие.
(2) Крупные модели появляются чаще
(3) В крупных Multi-GPU моделях производительность растет быстрее, чем в мелких.
В принципе, все это вещи очевидные. Но если увидеть это глазами, динамика прогресса становится более понятной. И ее можно транслировать клиентам и учитывать в планировании.
Ваш, @llm_under_hood 🤗
Как ставить задачи по кодингу для o1?
У Игоря есть лонг-рид про принципы работы o1. Я же расскажу про ментальную модель, которую я использую для работы с o1-preview.
Я ставлю задачи, как если бы ставил их очень опытному разработчику (обучен на всем корпусе), который нахватался вредных привычек (обучен на всех постах людей, которые любят усложнять и городить), но понимает меня с полуслова (o1 не требует prompt engineering).
Если скоуп задачи очерчен конкретно, то можно ограничиться коротким промптом:
Rewrite this course template in golang to follow style of my own website. You can reuse all of my styles and drop the external css (as used by the course).
<golang template to rewrite>
<full html source of my website, as copied from browser>
Take a look at this code from my multi-mode (a la vim or old terminal apps) block-based content editor.
I want to build on the keyboard interface and introduce a simple way to have simple commands with small popup. E.g. after doing "A" in "view" mode, show user a popup that expects H,T,I, or V.
Or, after pressing "P" in view mode - show a small popup that has an text input waiting for the permission role for the page.
Don't implement the changes, just think through how to extend existing code to make logic like that simple.
Remember, I like simple code, I don't like spaghetti code and many small classes/files.
Write me files that incorporate your suggestions: 1-6, 8,9, 12
Бенчмарки новых o1 моделей. Модели в топе, но есть нюанс
Новые o1 модели от OpenAI, действительно, в топе. o1-preview заняла первое место в продуктовом бенчмарке, потеснив 4o.
o1-mini - третье. Модель заняла бы больше, если бы всегда внимательно читала текст задачи, а не через раз (это видно в колонке integrate).
У обоих моделей высокий reason, но есть один нюанс - они очень дорогие для своего функционала. Причем я даже не смог их изначально даже запустить - во всех тестах у меня прописаны ожидания max_tokens достаточные для ответа. Но поскольку теперь модели генерируют больше tokens в процессе размышлений - этого не хватало, мне возвращались пустые модели.
OpenAI вообще теперь рекомендует закладывать как минимум 25000 max_completion_tokens
при экспериментах с этими моделями.
В сухом остатке получается, что модели немного мощнее, но стоят в разы дороже сравнимых моделей. Я думаю, что они не станут мейнстримом, слишком дорогие и странные. Но вот другие провайдеры скопировать подход и попробовать применить его на модели подешевле, тогда будет интересно.
Ваш, @llm_under_hood 🤗
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Новые кейсы в библиотеке
Я сегодня получил классный отзыв!
Привет!
Хочу поблагодарить тебя за тот график, который ты прислал в чат и статьи, которые выпускал в своем канале.
Я все прочитал. Проанализировал. Это очень мне помогло с улучшением продукта! Информация на миллиард!
Спасибо!
Только что закончилась интересная презентация - AI Platform #aicase
Презентовали клиенту, который просил детективную историю (там поста три со всей историей). Пока перекапывали данные в поисках истины, я накрутил несколько ассистентов и интеграций, чтобы самим работать было удобно.
Интеграции были простые:
BI Assistant, который умеет отвечать на бизнес-вопросы “упоротой” базе данных клиента (этой базе и всему софту - больше 20 лет, там 3 поколения разработчиков наслоили legacy на разных языках). Ассистент использует информацию о особенностях хранения данных, построения запросов и особенностей бизнеса. Я все это разузнал один раз, структурировал и забыл как страшный сон. Он строит отчеты и графики по мере необходимости. Причем в презентации я прямо сделал слайды "вопрос - график". А потом сказал, что эту часть мне написал Assistant.
Интеграция с государственными реестрами, которая вытягивает информацию о юридических лицах в стране, плюс любые изменения статусов. Благодаря первому ассистенту мы точно знаем какие коды (эквиваленты ОКВЭД) нам нужно выкачивать в первую очередь.
Поисковый lead generation ассистент, который пытается найти информацию про эти компании в интернете следуя простому Workflow. Ибо контактные данные в базе - это обычно данные бухгалтеров, а продавать нам надо другим людям.
Все это использовалось в детективном расследовании для разнообразной валидации. Не пропадать же добру?
Cегодня только что была презентация директорату со словами:
(1) вот что мы раскопали по вашим запросам
(2) вот что мы для соорудили для себя, и вот как оно работает
(3) а вот как это можно собрать в одну в AI платформу и внедрить у вас. Она может держать вашу CRM актуальной (даже AI ассистент сходу сказал, что там 6% контактов пора удалять), приводить новых лидов и помогать связываться с ними в важные для них моменты жизни.
Реакция директората: “Берем, все как вы сказали. Начните раскатывать это в друх странах, но имейте в виду, что это потом надо будет интегрировать на глобальном уровне. И позванивайте нам c апдейтами раз в месяц, хорошо?”
А что там под капотом у платформы? Какой агент, langchain или RAG? Ничего из этого не надо:
- Линейный Wokflow у Lead Generation с Checklist паттерном и интеграцией c Search API. Просто вызов OpenAI. Все как в кейсе про исправление ошибок в продуктах.
- Один структурированный промпт для BI Assistant. Я дистиллировал все информацию в формат, понятный для LLM. В процессе пришлось просто сделать схему читаемой и комментируемой (да и тем занималась LLM).
- Куча скучного кода без капли LLM для интеграции всего этого.
Как видите, все - очень просто. А на выходе - интегрированная платформа, которая решает набор задач клиента парой простых промптов. Люблю такие истории.
Ваш, @llm_under_hood 🤗
Enterprise RAG Challenge - Round 1
Вот первые результаты нашего Enterprise RAG Challenge. Максимальное число очков - 100.
Топ победителей:
(1) Daniel Weller - 84
(2) Ilya Rice - 76
(3) Artem Nurmukhametov - 73
(4) Alexandr Bobrov - 71
(5) Anonymous 1337 - 71
Остальные участники следом идут очень плотно по очкам.
Огромное спасибо всем, кто участвовал в тестовом прогоне и деталями! На днях я выложу в открытый доступ в Github данные этого раунда:
(1) ответы всех команд
(2) правильные ответы с комментариями (результат ручной проверки и вычитки PDF)
(3) исходный код алгоритма оценки
(4) рейтинг локальных систем
Вот краткое описание топовых систем:
TTA Daniel - gpt-4o data extraction with structured outputs (bulk checklist), schema-driven question answering over checklist.
Ilya Rice - Langchain RAG with GPT-4o, Text-embedding-3-large and custom chain of thought prompts.
Artem - multi stage checklist - multo-stage checklist with Gemini Flash Experimental.
AlBo - Alexandr Bobrov. Knowledge Graph + Vector Index (Langchain, Neo4j) with GPT-4o
Anonymous 1337 - plain RAG with chunk vectorizer and LLM
Challenge вышел очень необычный - из-за дисбаланса в генераторе вопросов, было очень много вопросов без ответа. На них система должна была сознательно отвечать N/A, что сложно само по себе. Очки показывают, что участвовали системы, в которые вложили заметные усилия для обхода галлюцинаций.
В осеннем раунде я устраню этот дисбаланс и добавлю больше вариаций в генератор вопросов. Это усложнит жизнь системам на базе knowledge mapping.
Как вам этот Challenge, поделитесь впечатлениями?
Вaш, @llm_under_hood 🤗
Говорят, что в последнее время LLM становятся хуже, а развитие буксует на месте.
Но если взять результаты продуктовых LLM бенчмарков, выстроить модели во временной ряд и разделить на три ценовые категории, то в последнее время видна неплохая динамика роста.
Кстати, еще видно, что прошлой зимой качество дорогих моделей у разных провайдеров проседало - сначала они выкатывали дорогие модели, потом оптимизировали их (чтобы запускать подешевле), а потом снова начинали работать над качеством.
В целом динамика очень радует - модели все ближе подбираются к потолку в 100. Причем, улучшаются не только дорогие, но и относительно дешевые!
Вaш, @llm_under_hood 🤗
PS: ответы на частые вопросы - в первом комментарии к этому посту.
Кстати, а у нашего канала еще есть свой добрый чатик на 1000 человек.
Там не только собираются комментарии всех постов, но и начинаются новые обсуждения. А еще там знакомятся, обсуждают новые технологии и рассказывают про свои проекты.
Он тут: @llm_driven_products
Ваш, @llm_under_hood 🤗