Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
Про паттерны систем с LLM под капотом, новый курс и баг в Miro
В последние месяцы я работаю над платным курсом по построению систем с LLM под капотом. Он состоит из двух модулей. Первый - про основополагающие принципы разработки систем с LLM под капотом. Он расширяет мои доклады на ODS и материал с весенних вебинаров. В нем мы говорим про основы - как подобные системы работают и какие у них ограничения. Самое главное - если системы с LLM под капотом работают не так, как надо - как найти причину проблем и исправить. Знание этого материала сэкономило бы мне 3 месяца работы в прошлом году.
А второй модуль уже полностью новый - про набор архитектурных паттернов для декомпозиции проблем. Я систематизировал все известные мне кейсы LLM проектов из разных отраслей. Потом, используя методы из первого модуля, разобрал архитектуры кейсов на повторяющиеся паттерны и выстроил в последовательность - от самых простых до сложных.
Получилось своего рода research tree, где на каждый паттерн есть примеры продуктов с его использованием. Паттерны формулировались так, чтобы они были понятны как Product Managers/Owners (для декомпозиции проблем и бизнес требований), так и инженерам (для реализации). Например: Router, Checklist, Knowledge Base или Dedicated Agent.
На картинке - как раз доска Miro cо структурой второго модуля. Этот модуль дает насмотренность на устройство систем с LLM под капотом из десятка отраслей. Для чего это нужно? Для того, чтобы вы могли посмотреть на бизнес-проблему и декомпозировать ее в голове на паттерны реализации, которые основаны на успешно работающих проектах. А если какие-то паттерны требуют дальнейшей доводки напильником под конкретный кейс - использовать для этого методологию из первого модуля.
Каждый модуль состоит из записанных видео и дополнительных материалов. Кстати, я проклял все, когда готовил материалы, т.к. наткнулся на старый баг c “выцветанием карточек” в Miro при использовании Frames. Но все закончилось хорошо, и они это починили.
Когда, где и почем? Про это я напишу попозже, после завершения нашего Enterprise RAG Challenge.
Ваш, @llm_under_hood 🤗
Давно не было постов в серии #weekend. Хочу рассказать про то, как устроена самая сложная часть голосового ассистента Homai. Это серверное ядро системы, во второй своей версии, я его сейчас переписываю.
Ядро - это сервер на golang, который отвечает за подключение всех девайсов по WebSocket, координирует их работу, собирает задачи по обработке голосового ввода на своих моделях (ASR), передачу задач на пайплайны ассистентов или выделенным серверам озвучки (TTS), которые тоже используют свои модели.
Во второй версии ядра мы хотели добавить пару улучшений:
(1) полное покрытие системы тестами, возможность запуска системы в режиме симуляции с ускорением времени.
(2) асинхронная работа всех элементов системы, чтобы голосовой ответ начинал идти в режиме стриминга с минимальной задержкой (в идеале - до секунды)
(3) подключение LLM-логики по архитектуре корпоративных AI ассистентов с поддержкой асинхронной работы
(4) нормальное логгирование всего процесса ответа на запросы, с возможностью анализа ошибок и улучшения системы.
(5) запуск локальных моделей на выделенных серверах c GPU и автоматической перебалансировкой нагрузки.
Там еще было много других хотелок. Но самое главное было в том, чтобы ядро брало на себя сложные задачи вроде координации и балансировки, а вся бизнес-логика писалась отдельно в виде простых скриптов на питоне.
Потребовалось прототипов 6, чтобы утрясти всю архитектуру под эти требования. Основные фишки
(1) структурное логгирование встроено в систему с самого начала. Оно используется для отладки системы и написания event-driven тестов (я этот подход таскаю из проекта в проект)
(2) самая сложная часть - координатор - сделан в виде одного единственного класса Finite State Machine, каждый чих которого покрыт тестами. Он перегягивает всю остальную сложность системы на себя (см про FSM)
(3) Вся система строится так, чтобы она могла работать в режиме виртуальной симуляции. Например, можно запустить с десяток асинхронных подключений к серверу, добавить случайные обрывы соединений и периодическую перебалансировку GPU. А потом прогнать месяцы работы системы в таком режиме за минуты. Идеей в давном давно поделились инженеры из FoundationDB, которая теперь служит основанием для Apple iCloud (см хорошее видео тут).
Если интересно, в комментариях я выложу пример отладки системы в одном из режимов симуляции, плюс пример теста.
В разработке и отладке всей системы очень сильно помогают ChatGPT/Claude и даже Copilot, позволяя разрабатывать ее очень малыми силами. Поэтому архитектура и код адаптированы под такой режим разработки. Структурное логгирование, event-driven tests и симуляция оптимизированы под участие LLM в разработке, это немного похоже на работу Anithesis.
А у вас есть такие примеры продуктов, когда LLM-ки невероятно помогают в разработке продуктов малыми силами?
Ваш, @llm_under_hood 🤗
Идет Enterprise RAG Challenge.
Это первый тестовый прогон дружеского соревнования, которое пройдет осенью в международном формате.
Если кратко, то вам нужно прислать ответы на 40 вопросов по 20 годовым отчетам компаний:
(0) стартовый пост с воодными инструкциями
(1) список из 20 PDF
(2) вот список из 40 вопросов
Нужно прислать мне заполненный файл с ответами.
Лидерборд, как я уже писал, будут не сразу. Конкурс продлится до того, как я опубликую правильные ответы - примерно через две недели. Но время ответа, естественно, учитывается.
Кто уже начал участвовать, пишите свои впечатления в комментах к этому посту! Можно уже обсуждать количество N/A, только свои ответы не публикуйте пока.
Ответы на частые вопросы:
(1) Как будут выбираться правильные ответы? Вручную. Они будут опубликованы вместе со всеми ответами команд, поэтому все можно будет перепроварить самостоятельно.
(2) Почему именно такой формат постановки задачи? Именно такая формулировка задачи находится под капотом у продуктов в реальных кейсах из Medical, Business Services (Legal, Patent Law) и Manufacturing секторов. Там требуется большая точность ответов, и используется паттерн Checklist с каскадом из простых промптов. И один из этих каскадов как раз совпадает с данным соревнованием. Не удивительно, что Enterprise поглядывает за процессом даже на этапе дружеского тестового прогона.
(3) Сколько уже ответов прислали - 8. Если пришлют еще до круглого числа - будет вообще хорошо. Все данные я потом опубликую, включая ответы команд на вопросы про используемые модели и архитектуры решений. Там есть и интересные локальные решения.
Вaш, @llm_under_hood 🤗
Файлы для Enterprise RAG Challenge.
Вывод генератора Rand seed:
856853 at 2024-08-15 08:05:07 (...eaa76b09)
# Deterministic seed: 3936840457
Бенчмарк новой модели GPT-4o от 2024-08-13 - стала умнее 🚀
Open AI верны своей традиции. Вторая версия GPT-4o была глупее и легче первой версии. А теперь третья версия стала немного умнее. Следование инструкциям у нее немного просело, но вот Reason - подскочил. По сумме баллов - она обошла вторую версию и заняла четвертое место.
Это вообще странная версия. Она видна в API под названием chatgpt-4o-latest
и в данный момент указывает на модель со временем выкатки на проду - 2024-08-13 04:12:11
. Если это та же модель, про которую писал Игорь, то это была версия от 2024-08-08
.
Бардак одним словом. Похоже, что в OpenAI могут немного переживать из-за конкуренции с Google и Anthropic.
Вaш, @llm_under_hood 🤗
---
Предыдущий бенчмарк был про GPT-4o 2024-08-06. См другие бенчмарки по категории #bench
LLM Benchmarks v2 в работе + пример корпоративного кейса
Я потихоньку начал работать над второй версией бенчмарков.
Этот процесс займет немало времени. Нужно приблизить бенчмарки к реальной практике из разных компаний на текущий момент.
Заодно и добавлю больше кейсов от других компаний, которые хотят видеть бенчмарки своих задач на всех новых моделях. Это особенно актуально для локальных моделей.
Если у вас есть интересный кейс - пишите, можно попробовать интегрировать его.
Одна из фишек второй версии в том, что тут используется больше синтетических данных, которые воспроизводят бизнес-кейсы. А это значит, что часть бенчмарков можно будет показывать без риска переобучения на тестовом датасете.
На картинке один из примеров такого теста из v2. Это кусок из ассистента в продукте, который позволяет анализировать зависимости внутри компании на предмет рисков:
- А если человек Y уйдет в отпуск, то какие системы могут накрыться? А если считать все зависимые системы?
- На каком специалисте держится больше всего процессов в компании?
- Что будет, если вырубить сервер X посреди дня для накатывания критического патча?
Как выбрать новые направления для применения LLM?
У меня есть такая табличка, в которую сведена библиотека AI кейсов, с которыми я пересекался лично. Столбцы - сектора экономики, строчки - ключевые стейкхолдеры в кейсе. Чем темнее клеточка - тем больше насмотренность.
И я просто играю в бинго.
При выборе рабочих проектов для важных клиентов - приоритизирую хорошо изученные области. Там мноие грабли и нюансы уже известны заранее, можно выбрать кратчайшую дорожку для решения.
При выборе направлений для изучения или консалтинга, наборот, стараюсь дополнить свои слабые места в интересных направлениях.
Больше всего на осень-зиму меня интересуют - Compliance (во всех сегментах), Medical (включая биотех) и Financial Services (тут LLM прямо очень бодро внедряют).
А вы в каких направлениях сейчас развиваетесь и работаете?
Вaш, @llm_under_hood 🤗
---
PS: Список продуктовых кейсов, про которые я могу говорить вслух, собран тут.
RAG Challenge на годовых отчетах компаний 🚀
Весной мы с вами обсуждали проведение дружеского соревнования по построению RAG систем. Было много вариантов - мультиязычные, табличные, с картинками.
Для начала можно сделать простое соревнование на поиск ответов по базе публичных годовых отчетов компаний. Все готово к первому тестовому прогону!
Генератор заданий и описание процесса есть на Github. Пакет с примерами PDF и список вопросов для ответа - в папке samples. Fineprint - ниже. Все ответы потом соберем в общий публичный dataset - можно будет самостоятельно сравнить точность разных подходов.
Следующие шаги:
(1) смотрим в samples, можно попробовать прогнать документы и вопросы через свой RAG, заполнить questions.json ответами и поделиться.
(2) читаем FAQ, задаем вопросы, уточнения
(3) если вопросов нет, то в течение пары недель можно будет выбрать время и сделать test run
Проект лицензирован как Apache 2.0. При желании можно взять его за основу и сделать свой собственный Challenge на своих документах!
Что скажете?
Ваш, @llm_under_hood 🤗
Fineprint:
(1) Описание процесса генерации всего этого добра - в README.md (при желании во время соревнования можно будет запускать код параллельно и проверять, что вопросы, списки файлов и их содержимое - совпадают).
(2) Всего в полном dataset-e 7496 отчетов. Все 46GB мы выкладывать не будем, только те, которые попали в соревновние. Но это отчеты публичные - если ну очень кому-то хочется - их можно заранее собрать в сети по именам компаний.
(3) Blockchain используется только для того, чтобы все могли одновременно получить новый одинаковый random seed (см 40 строк питона). Я так заморочился, т.к. коллеги тоже хотят поучаствовать в одинаковых со всеми условиях.
Завершение детективной истории с LLM под капотом #aicase
Помните детективную историю? Дело было так - одна европеская компания попросила восстановить список клиентов, который утащили ребята из отдела продаж. Я про кейс писал ранее.
- начало истории
- продолжение истории
Если кратко:
1. Сначала использовали LLM в режиме генерации кода, чтобы написать парсер из старого бинарного формата БД DataFlex в SQL. Аналогично написали тесты.
2. Потом использовали LLM в режиме SQL-педанта для того, чтобы привести нечитаемую схему БД в что-то понятное и удобное для работы
3. Завели Anthropic Claude Project для анонимизированной работы с этой схемой, построения отчетов и графиков. Докинули инструкций про то, как красиво и читаемо строить графики. Это позволило быстро проверить пару дюжин гипотез с разных точек зрения. Следов принудительно закрытых клиентов не нашли, но клиента красивыми графиками порадовали.
4. Потом я сделал то, что надо было сделать с самого начала - начал просто собирать данные по всем компаниями в стране, которые могут быть потенциальными клиентами. Понятно, что эти данные никто просто так не даст - везде защита от ботов, CloudFlare и непонятные API. Но все эти проблемы решаются. Sonnet тут здорово помог быстро разгребать разные API и дампы.
5. Когда я из этого кейса делал кату для обучения сотрудников, глаз упал на одну подозрительную колонку в исходных данных клиента. Выяснилось, что это налоговый номер клиента, который записан в станной форме. Причем, эта колонка стала видимой только потому, что раньше попросили сырые файлы со всеми данными, смогли их разобрать и привести в понятный вид при помощи LLM.
6. А дальше все сложилось само собой - теперь можно сопоставить некоторые записи клиентов записям в бизнес-реестре. Одним SQL запросом можно получить список компаний, которые удалены у клиента, но до сих пор продолжают деятельность. Кстати, там пара подозрительных деактиваций есть, но они больше похожи на неаккуратность, нежели на злой умысел. Но это уже не мне судить.
Или можно найти компании, которые до сих пор пытаются обзванивать, но они уже ликвидированы.
Но еще интереснее не копаться в прошлом, а смотреть в будущее - крупные компании, которые работают в целевом секторе экономики, но до сих пор не занесены в клиентскую базу. Особенно, если эти компании приоритизировать по схожести экономических классификаторов, размеру уставного капитала, наличию живого сайта и удобных контактов.
Но это уже будет другая история. Не детективная, а про Lead Generation. Про варианты этого кейса я уже писал ранее:
- LLM ассистент для продаж
- LLM приводят новых клиентов
- Кейс про тендеры и генерацию лидов
И еще один такой же кейс на очереди. Всех их объединяет общая схема - используем внешние источники данных и капельку LLM, чтобы автоматом перелопатить кучу данных и сделать работу отдела продаж более удобной и эффективной.
Вaш, @llm_under_hood 🤗
🚀 Meta Llama 3.1 - пробили планку GPT-4 Turbo
(таблица бенчмарка - в комментариях)
Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Итак, Meta выпустила три новые модели версии 3.1. В них они расширили контекст до 128k, добавили поддержку новых языков и новый формат модели - 405B. А еще теперь выхлоп из этих моделей можно использовать для улучшения других моделей (что раньше было запрещено лицензией).
Meta Llama 3.1 8B Instruct - неплохая модель, но ее качество получилось хуже, чем у версии 3.0. Пока пропускаем, но можно будет подождать файн-тюнов - они обычно улучшают качество работы моделей с продуктовыми задачами.
Meta Llama 3.1 70B Instruct - заметный рывок в качестве, если сравнивать с прошлой версией. Эта модель достигла уровня Gemini Pro 1.5, обошла GPT3.5 и вплотную приблизилась к Mistral Large 2. Это невероятно круто, т.к. мы можем получить качество 123B модели используя меньше ресурсов, плюс за коммерческое использование не нужно доплачивать.
Кстати, эта модель может быть достаточно чувствительна к сжатию (квантизации). Это не Mistral Nemo, которую изначально готовили к работе на FP8, и при сжатии до 8 бит у Llama 3.1 70B качество на моих задачах упало сильно. Нужно будет аккуратно выбирать параметры и алгоритмы квантизации.
Meta Llama 3.1 405B Instruct - это первая открытая модель, которая побила уровень GPT-4 Turbo (пусть и самой слабой версии - Turbo v3/1106). При таких размерах и чувствительности к сжатию, ее будет использовать меньше людей, нежели 70B/8B. Значит, будет меньше тюнов и интересных решений.
Но это не важно. Главное, что эта открытая модель:
- победила одну из GPT-4
- перегнала Mistral 2 Large
- вплотную подошла к качеству Claude 3 Opus
Думаю, что скоро эту планку возьмут модели поменьше!
Вaш, @llm_under_hood 🤗
---
Предыдущий бенчмарк был про Mistral Large v2. См другие бенчмарки по категории #bench
Mistral Large v2 - лучшая модель, которую можно запустить локально
(таблица бенчмарка - в комментариях)
Mistral AI очень порадовали своей новой моделью на 123B параметров. Это модель декларует поддержку множества языков, как человеческих, так и программирования. Размер контекста у нее - 128k tokens.
На моих продуктовых бенчмарках у этой модели очень качественные оценки по всему спектру тестируемых способностей. И неожиданно высокий Reason в 71.
Для сравнения: суммарно по очкам у модели уровень GPT-4 Turbo v3, Gemini Pro 1.5 и Claude 3 Opus.
Модель есть на платформе Mistral AI (я тестировал там), и еще ее можно выкачать с HuggingFace. В последнем случае можно использовать для некоммерческих целей, но можно и приобрести лицензию для коммерческого использования.
Hugging Face | Announcement
Предыдущий бенчмарк был по Mistral Nemo и GPT-4o Mini. Следующий бенчмарк будет про новые модели Llama 3.1
Вaш, @llm_under_hood 🤗
---
Напомню, что тут мы тестируем модели по API или из HF. Бенчмарк - закрытый и продуктовый. Описание бенчмарка, категорий и примеры кейсов есть в лабах. См другие бенчмарки по категории #bench
Новый материал про Knowledge Mapping
Я начинаю формировать материалы для обновления курса про Knowledge Mapping и построение AI ассистентов. За последние месяцы, в процессе объяснений клиентам и другим командам, получилось упростить подачу материала. Как вводную часть, так и подход к паттернам в системах с LLM под капотом (Router, Knowledge Base, Workflow итп).
Самая важная выжимка из этого материала с иллюстрациями есть в лабах. Изначально я делал ее для вечно занятых executives, но теперь открыл доступ для нее всем: Knowledge Mapping Intro
Про Knowledge mapping можно узнать побольше в докладе Datafest 2024. Или в посте "Какие есть примеры Knowledge maps?"
Вaш, @llm_under_hood 🤗
Codestral-Mamba - MistralAI снова порадовали.
(скриншоты таблицы бенчмарка - в комментариях)
Они выпустили модель Codestral-Mamba на 7B параметров, которая оказалось на самом низу первой страницы бенчмарка. И это круто по трем причинам.
Во-первых, мой бенчмарк оценивает не только генерацию кода. Он ранжирует модели модели по их способности работать в разных продуктах с LLM под капотом. А это сильно сложнее, чем просто генерация кода. И тут Mamba внезапно показывает неплохой результат во всех категориях, кроме Reason.
Во-вторых, это не трансформерная модель, а Mamba! Mamba-модели считаются более эффективными и быстрыми, а еще у них нет таких ограничений в размере контекста. Но вот пока не получалось обучить внятную модель, которая могла хоть что-то. А тут кодовая 7B модель на сырой архитектуре внезапно оказалась на уровне Mixtral 8x22B или первых версий Anthropic
В-третьих, она доступна для любого использования c HF. Правда в llama.cpp и HF transformers пока поддержку не завезли. В TensorRT-LLM, говорят, работает.
Ждем новых гвоздей в гроб трансформеров? :)
Model HF | Blog post
Вaш, @llm_under_hood 🤗
---
Напомню, что тут мы тестируем модели по API или из HF. Описание категорий и примеры кейсов есть в лабах. См другие бенчмарки по категории #bench
Официально опубликованы LLM бенчмарки за июль 2024. В выпуске:
- Большие прорывы: Claude 3.5 Sonnet и фича Artifacts
- Бенчмарки небольших локальных моделей, тренды
- Confidential computing: как сделать системы c LLM под капотом более безопасными
В выпуске мы собрали бенчмарки из нашего канала "LLM под капотом" за последний месяц. Плюс добавили некоторые инсайты из общения с компаниями про confidential computing и экономный запуск LLM моделей.
English / Deutsch
Baш, @llm_under_hood 🤗
Etched аннонсировали новый AI чип, который способен генерировать 500000 токенов Llama 70B в секунду. Говорят, что восемь их серверов заменяет 160x H100.
Это вполне возможно благодаря тому, что их чипы заточены только на поддержку трансформеров. В своем объявлении они рассказывают, откуда такая мощность и почему они делают ставку на эту архитектуру
На каждом устройстве идет 144 GB HBM3E (широкополосная память со скоростью порядка 1.23 TB/s), что очень важно для высокой скорости работы LLM с большим числом параметров.
Стоимость чипов неизвестна, но заказов на "tens of millions of dollars" клиенты уже разместили. Чипы делает TSMC на 4nm, объемов дефицитной памяти они зарезервировали на год вперед, а специалистов к себе они переманили из всех топовых проектов по созданию AI чипов.
Это очень похоже как на стартап Taales, про который я писал раньше, так и на кучу других компаний по созданию AI чипов. Посмотрим, что у них получится.
Baш, @llm_under_hood 🤗
PS: спасибо за наводку Айгизу
Игорь написал пост про адаптацию компаний к возможностям ChatGPT. Вот что я по этому поводу думаю.
Можно посмотреть на задачу адаптации с другой перспективы. Какие компании уже сейчас используют LLM системы в бизнесе, и что их отличает от конкурентов?
Это либо небольшие компании (примерно до 200-1000 человек), где нет серьезных regulatory барьеров для использования AI и данных для него.
У них есть: (1) интуитивное понимание у директоров возможностей и выгоды от применения LLM конкретно в их бизнесе
(2) наличие внутренних или внешних команд, которые могут провести проекты от инициативы до внедрения, обходя грабли и не тратя время на изобретение велосипедов.
В этом плане работа с промптами, бенчмарки, внутренняя осведомленность итп - это вторично. Если есть желание менеджмента, ресурсы и опытные исполнители, то можно даже большую компанию повернуть, обучить и развернуть. Главное знать - что делать, на что время не тратить, как выстроить стратегию и тактику.
А у крупных компаний с необходимостью соответствия всяким сертификациям и проверкам должен быть ещё третий фактор:
(3) понимание того, как выстроить процессы в LLM-driven проектах сейчас, чтобы потом не было проблем с выводом удачных проектов на рынок. Особенно актуально в сфере medical, biotech и иже с ними.
Те компании, у которых нет подобного удачного сочетания - пока тыкаются вслепую и набивают шишки. Кто-то застрянет на ChatGPT или материалах по LlamaIndex, кто-то споткнется о галлюцинации или невозможность запустить модели локально. Что можно делать?
(1) общаться с коллегами в отрасли, обмениваться знаниями, выстраивать связи.
(2) запускать маленькие прототипы для получения практического опыта
(3) максимально собирать всевозможные кейсы применения систем с LLM под капотом, со всеми граблями и нюансами, маппить их на свои области и переиспользовать чужой опыт.
В рамках AI Research за последний год я общался с компаниями разной степени зрелости. В целом картина очень хорошая - при желании любой классический бизнес может догнать передовые компании в отрасли за 3-6 месяцев. (Это включает точечные внедрения в места с самой большой отдачей, не полный переезд бизнеса на новую парадигму).
Природа LLM этому только способствует - теперь не нужны большие исследовательские отделы. Можно обойтись небольшим мозговым центром, который работал бы в режиме lean startup, собирал насмотренность кейсов и точечно перебирал варианты внедрения.
Ну а если желания нет, то можно просто сесть на хвост всем остальным и подождать год-другой. Тогда инструменты и подходы станут общедоступными.
Ваш, @llm_under_hood 🤗
Расскажу про небольшой паттерн внедрения продуктов с LLM под капотом.
Он работает забавно, пусть и временами раздражает.
Приходит, скажем, к нам клиент с запросом или срочной проблемой. Например, как в кейсах про захват рынка или про автоматическое исправление ошибок в продуктовых описаниях. Мы эту проблему ему решаем, клиент получает решение и исчезает. Не в смысле, что пропадает совсем, а что общение становится медленным и каким-то нерезультативным. Так может тянуться месяцы.
Думали, что делаем не так? Вроде клиент доволен, а развивать дальше проект не хочет. Была теория, что после решения проблемы с LLM клиенты получают возможность двигаться дальше и отвлекаются, но это была только теория.
Но недавно эту плотину прорвало. Клиент про захват рынка пришел с просьбами "а сделайте такое еще для 5 конкурентов, для начала" и "а можете-таки извлекать из PDF на продукты значения derating curves прямо из графиков?", "да, и сделайте сразу систему с приложением, чтобы мы могли сами задавать правила сопоставления продуктов". Причем, там всего хотелок было штук шесть, каждое по масштабам больше изначального проекта. И никаких бюджетных ограничений - сколько у нас будет времени на этот проект, столько и оплатят.
Аналогично и с кейсом про исправление ошибок - клиент вернулся на горизонт и сразу просит много сразу - и курсы про самостоятельное внедрение, и обучение, и помощь с парочкой проектов.
Как выяснилось, клиентам после первого внедрения просто нужно было переварить новые возможности, интегрировать их в свои процессы и перестроиться под новую реальность. А через 4-12 месяцев они возвращаются обратно с возросшими аппетитами. Это жутко неудобно с точки зрения планирования загрузки и работ, но тут уже ничего не поделаешь, только диверсифицироваться между отраслями и клиентами.
А у вас такое в практике встречалось?
Вaш, @llm_under_hood 🤗
Cписок вопросов по файлам из предыдущего поста
См первый комментарий к этому посту
Ответы присылайте мне в личку (@abdullin), просто заполнив поле answer в схеме. Не забываем, что ответ на вопрос должен соответствовать типу данных в вопросе - число, имя/название или да/нет (подробнее тут).
Если хотите что-то поменять, то сообщение с файлом не надо редактировать. Лучше пришлите новое. Почему? Я буду смотреть на timestamp и статус редакции, чтобы указывать время в финальном leaderboard.
Еще в сообщении, пожалуйста, укажите:
- Имя команды, компании или участника (латиницей)
- Тип модели, которая используется (версия, локальная или нет)
- Краткое описание архитектуры - что там под капотом? Коммерческие тайны раскрывать, естественно, не надо.
Можно участвовать анонимно.
Вaш, @llm_under_hood 🤗
Enterprise RAG Challenge начнется через час
Это дружеское соревнование по построению RAG-систем, которое открыто для всех. Для участия нужно будет сгенерировать ответы на вопросы по набору годовых отчетов компаний (PDF) и прислать их мне в личку @abdullin
Это тестовый прогон международного соревнования осенью (которое состоится в этом же формате). Дальше расписание на день вот такое:
- после 10:00 CET / 11:00 MOW выберу и выложу пачку из 20 годовых отчетов компаний для анализа (примеры тут). Вы их можете загрузить в свой RAG и прогнать всяческий data extraction/indexing. Это будет новый пост в этом канале
- после 12:00 CET / 13:00 MOW сгенерирую 50 вопросов. Они будут в формате JSON как тут. Это будет новый пост в этом канале.
Посты будут не ровно в 00, а в течение минут 10 после. Тут мы ждем, пока Blockchain сгенерирует новый блок, который используется в качестве Random Seed для выбора файлов и генерации вопросов.
Более детальное описание процесса и скрипты есть в Github - enterprise rag challenge.
Присылать ответы мне в личку (@abdullin) можно в любое время. Сразу напишите - хотите участвовать анонимно или указать имя компании/команды/участника.
Вопросы лучше задавать в чатике канала или в обсуждениях под этим постом.
Больше всего ценятся ответы, которые прислали в течение 5-10 минут. Время будет учитываться.
Конкурс длится до того, как я опубликую правильные ответы - примерно через две недели. Поэтому подключиться к этому конкурсу можно в любой момент.
Осенью будет международный Challenge. О нем я объявлю заранее, чтобы желающие смогли освободить расписание.
Всем удачи!
Вaш, @llm_under_hood 🤗
Забавная история про AI Compliance
Есть в Европе одна юридическая контора. Они, как и все, решили использовать AI для автоматизации части процессов, о чем не мешкая написали на сайте. Мол, движемся в ногу со временем.
А их конкуренты возьми да и напиши им официальный запрос:
- А расскажите-ка поподробнее, что вы там делаете с данными клиентов?
- Мы не можем, это коммерческая тайна!
- Правильно, но документацию того, что вы делаете, чтобы не нарушать закон, вы предоставить обязаны!
- Эммм...
- А пойдемте-ка мы с вами в суд. Регулятору будет интересно.
На самом деле, для такого даже не нужно в суд. Какая-нибудь бабушка давно уже может написать в компанию и запросить информацию про использование ее персональных данных (GDPR Article 15). У компании будет 30 дней для ответа. А государство может потом проверить, был ли выполнен запрос. Если нет - то устроить аудит или выписать штраф. Аналогичная история и с новым EU AI Act, который дополняет картину.
Такие правила есть только в Европе. В бурно развивающейся Африке, на Диком Западе и Южной Америке пока с требованиями попроще. Этим во всю пользуются компании 🤠
А та компания все еще жива. Но свое имя раскрывать очень не хочет - чтобы не подавать идей другим конкурентам.
Вaш, @llm_under_hood 🤗
Enterprise RAG Challenge - в этот Четверг
Первый раунд Enterprise RAG Challenge состоится в этот четверг. Это дружеское соревнование по построению RAG-систем, которое открыто для всех.
Расписание на четверг, 15 Августа:
- после 10:00 CET / 11:00 MOW выберу и выложу пачку из 20 годовых отчетов компаний для анализа (примеры тут). Вы их можете загрузить в свой RAG и прогнать всяческий data extraction/indexing
- после 12:00 CET / 13:00 MOW сгенерирую 50 вопросов. Они будут в формате JSON как тут.
Задача простая - как можно скорее сгенерировать и прислать мне эти же файлы с заполненными ответами. Ответы, которые будут присланы в течение минут пяти ценятся выше (маловероятно, что у людей будет время вычитывать и исправлять их вручную), но в целом можно прислать хоть когда в течение суток.
Это первый прогон соревнования, поэтому я пока не заморачиваюсь с такими вещами, как предварительные формы регистрации для участников или использование TSA серверов (RFC 3161) для выставления подписанных timestamps на результаты. Это все добавлю осенью, когда сделаем международный прогон соревнования в том же формате.
Все ответы и результаты будут потом опубликованы, рейтинги выставлены по каноничным ответам (собраны вручную). Можно участвовать анонимно.
Тот, кто займет топовые места, будет сидеть в топе лидерборда до осени 🎉
Почему в расписании стоит “после 10:00 CET”? В это время я запускаю скрипт получения следующего Random Seed из Blockchain (хоть какая-то от него польза), что займет минут десять. Это нужно для того, чтобы выбор файлов и вопросов был одинаковым сюрпризом для всех участников. Описание процесса и исходники всех скриптов лежат в открытом доступе на Github.
К слову, вся repository выложена под Apache 2.0 License 🍻. Если хочется сделать свой Rag Challenge со своими документами и задачами - можно смело переиспользовать код.
Кто думает попробовать поучаствовать? Ставьте 🤝.
Вaш, @llm_under_hood 🤗
---
PS: Кстати, OpenAI тоже будет участвовать. Я потом прогоню все документы и вопросы через их ассистентов тоже 😁
Бенчмарк новой GPT-4o 2024-08-06 - немного глупее и заметно дешевле
У OpenAI есть привычка. Сначала они выкатывают мощную, но дорогую модель. Потом они делают модель сильно дешевле за счет небольшой просадки в качестве. Потом они начинают работать над качеством.
В долгосрочной перспективе их модели становятся дешевле и лучше.
Такое случилось и с новой версией GPT-4o (gpt-4o-2024-08-06). Она в два раза дешевле топовой GPT-4o v1/2024-05-13 и немножечко глупее, чем новый Gemini Pro 1.5 от Google. Заняла четвертое место.
В итоге у нас получается очень неплохая модель по соотношению цена-качество. Это самая дешевая модель из TOP-8! 🚀
А еще с этой моделью включили поддержку constraint decoding. Они ее называют Structured Outputs. Теперь можно заставить модель всегда отвечать с JSON в определенном формате. Это не делает модель умнее, просто гарантирует формат ответов.
Простейший пример реализации такого подхода я демонстировал в "Как сделать так, чтобы Mistral 7B всегда отвечал на русском". Но OpenAI сделала это нормально и встроила прямо в клиента.
Кстати, Structured Outputs включили и во многих других моделях. Это не требует изменения модели - просто добавления "обвязки" на сервере.
А еще, похоже, у OpenAI усились опасения из-за чудесной интеграции Claude Chat с режимом генерации UI кода. Поэтому они в своей статье выделили главу про автоматическую генерацию интерфейсов при помощи Structured Outuputs.
В общем, получилась очень удачная модель по соотношению цена/качество.
Вaш, @llm_under_hood 🤗
---
Предыдущий бенчмарк был про рывок Gemini Pro 1.5 v0801. См другие бенчмарки по категории #bench
Бенчмарк Gemini Pro 1.5 v0801 - TOP3 🚀
Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Недавно Google объявил, что их новая модель Gemini Pro 1.5 0801 вышла в топ LMSYS Chatbot Arena - бенчмарка, в котором люди голосуют за ответы моделей, которые им нравятся. При этом она обошла ChatGPT-4.
На наших продуктовых бенчмарках результат тоже впечатляющий - модель заняла третье место, побив старые версии GPT-4, с неплохим запасом. У нее очень хорошие очки по всем категориям.
Они могли бы быть и лучше, если бы она поменьше болтала и точно следовала инструкциям (что требуется в продуктах). Возможно именно из-за этой общительности она и заняла первое место в чат-арене.
Это очень крутые новости. Во-первых, появилась конкуренция для OpenAI, откуда не ждали. Будет новый очаг инноваций. Во-вторых, у компаний, которые исторически крепко привязаны к Google Cloud, появился свой провайдер LLM нормального качества.
Вaш, @llm_under_hood 🤗
---
Предыдущий бенчмарк был про Meta Llama 3.1. См другие бенчмарки по категории #bench
LLM Benchmark - July 2024 Edition
Бенчмарки моделей за прошлый месяц официально опубликованы на сайте Trustbit: English / Deutsch.
Пост получился довольно длинный. Он объединяет в себе новости про (ссылки в списке ниже ведут на посты в канале):
- Codestral-Mamba 7B
- GPT-4o Mini и Mistral Nemo 12B
- Mistral Large 123B v2
- Meta Llama 3.1
А еще с 1 Августа начинает вступать в действие EU AI Act, который регулирует использование AI, LLM и систем на их основе. Это включает и локальные модели.
На самом деле, большая часть кейсов с LLM под капотом относятся к категории минимального риска. Они не попадают под действие этого акта. Но для крупных компаний имеет смысл проглядеть свои кейсы и убедиться, что это так и есть.
В конце июльского бенчмарка есть небольшой checklist с вопросами, на которые лучше знать ответы заранее (если собираетесь работать в юрисдикции ЕС в ближайшие годы).
Вaш, @llm_under_hood 🤗
PS: А еще я в том посте подозреваю, что Mistral Large 123B была обучена с FP8 quantisation awareness для эффективного запуска под H100. Уж больно совпадает - 12:7 ~~ 123:80.
Как сжатие (квантизация) генеративных моделей влияет на их качество?
Один пример на базе продуктового бенчмарка:
Снизу - Llama 3.1 70B 8bit (один байт на параметр, см ниже)
Сверзу - Llama 3.1 70B fp16 (два байта на параметр)
Модель одна и та же, но разница в качестве - огромная.
Вaш, @llm_under_hood 🤗
PS: Сам бенчмарк будет завтра, 405B еще считается
PPS: 8bit - это int8 или fp8? Ни то ни другое. см описание bitsandbytes
Mutable.ai придумала новый подход для улучшения качества ответов чатботов, которые работают с кодом.
Они говорят, что если все исходные данные порезать мелко и сложить в векторную базу данных (или использовать поиск по ключевым словам), а потом передать в RAG, то на выходе получается ерунда.
Они начали использовать вариант, который сильно улучшает качество работы с кодом. Они предобрабатывают данные и складируют их в читаемый документ в виде вики статьи с ссылками, которая еще называется Language Map. Этот документ можно проглядеть глазами, но он преимущественно используется LLM при дальнейшей генерации ответа.
По тестам Mutable.ai, качество ответов выросло в разы. Систему можно посмотреть вот тут - https://wiki.mutable.ai
А вот ссылка на саму статью - twitter.
Вaш, @llm_under_hood 🤗
Бенчмарки Mistral Nemo и GPT-4o Mini - приятные мелочи
(таблица бенчмарка - в комментариях)
GPT-4o Mini - новая мультимодальная и очень дешевая модель от OpenAI. Эта модель похожа на более мощную версию GPT-3.5. При этом у нее “Reason” (логические способности) весьма сильные, и она первой выбила 100 очков на категории Marketing - работа с текстами и стилями 🎉
Если бы бенчмарки не были приватными, я бы посчитал, что данные marketing утекли в датасет для обучения))
В общем, это хорошая модель для всяческих классификаторов и раутеров.
Mistral Nemo - новая 12B модель от Mistral AI, которую они обучили вместе с NVidia (announcement) на 3072xH100. Есть открытая версия на Hugging Face, а еще ее можно запустить прямо в их API.
C одной стороны модель стала побольше, чем 7B/8B, но с другой стороны у нее под капотом более эффективный tokeniser и обучение с quantisation awareness. Последнее позволяет запускать модель без потерь качества на FP8, где каждый параметр представлен в виде одного байта.
При этом у модели хороший баланс качества, высокий reasoning и следование инструкциям. Есть вероятность, что тюны OpenChat поднимут ее еще выше в рейтинге, как это было с другими моделями.
Вaш, @llm_under_hood 🤗
---
Напомню, что тут мы тестируем модели по API или из HF. Бенчмарк - закрытый и продуктовый. Описание бенчмарка, категорий и примеры кейсов есть в лабах. Официальная страница тут. См другие бенчмарки по категории #bench
#aicase Про продолжение детективной истории
Дело было так - одна европеская компания попросила восстановить список клиентов, который утащили ребята из отдела продаж. Я про кейс писал ранее.
В последние недели кейс получил продолжение, даже с применением LLM. Дело было так.
Сначала компания прислала списки всех своих клиентов, сотрудников и любых контактов. Все это было в виде старого доброго Excel на сотни мегабайт.
Мы эти списки разворошили на предмет нестыковок в данных. Тут активное участие принимал сотрудник, которого прокачивали с нуля до аналитика данных с ChatGPT (писал тут).
У всех таблиц были странные заголовки - капсом, с сокращениями и на чешском. Я использовал ChatGPT, чтобы весь этот бардак привести к читаемому виду: сначала импортируем в SQLite, а потом просим почистить имена таблиц и столбцов, чтобы было консистентно и читаемо.
В процессе всплыли нестыковки в данных, например были клиенты в списках контактов, но их не было в основной таблице. В компании не знали причин. Чтобы исключить косяки экспорта, я попросил их не экспортировать в Excel, а прислать сырые данные.
И тут выяснилось, что система работает с дремучим форматом данных DataFlex старой версии. Но у нас к тому моменту уже был Anthropic c Projects & Artifacts, который делает работу с кодом более удобной. Поэтому за несколько дней получилось написать свой парсер для данных, покрыть тестами и отладить.
А дальше началось самое интересное - завели проект для быстрого анализа данных в Antrhopic:
- импортировали все данные в SQLite для удобства анализа
- переименовали все столбцы консистентно и читаемо
- завели новый проект в Anthropic Claude, куда загрузили схему БД, наши познания о клиенте и методички по анализу данных
И теперь можно было начинать чат в этом проекте прямо с вопроса вроде:
I want heat map for all deactivated customers (status == U). One axis - all ChangeWho. Another axis - day of the year for the ChangeDate. I'm looking for patterns, if somebody has been causing a lot of deactivations on one day
Artifacts в чате Antropic Claude - это неожиданно крутая и приятная фишка. Она даже не столько про более мощную модель, сколько про удобный интерфейс и интеграцию.
Идея тут простая - мы часто работаем с документами или кусками кода. И если система находит такой документ, она вытащит его в отдельное окно, которое всегда будет рядом. Этот документ будет версионироваться, над ним можно работать итеративно.
В интерфейсе можно удобно переключаться между разными артефактами и просматривать содержимое всех документов, которые мы вложили. А если, скажем, вложить PDF, то можно будет увидеть текст, который был извлечен и передан в модель.
Из-за Артифактов и улучшения способностей Claude 3.5 Sonnet я теперь предпочитаю использовать чат Антропика для работы с кодом и документами (https://claude.ai). Кстати, там есть триал (при регистрации просят номер телефона)
Baш, @llm_under_hood 🤗
Я потестировал целую пачку разнообразных LLM-ок небольшого форм-фактора.
Из интересного.
Google Gemma 7B IT - внешне слабая модель, которая совсем не слушается. Но вот Gemma 7B OpenChat-3.5 v3 0106 - это файнтюн от OpenChat, который внезапно внезапно забрался довольно высоко. Выше первой GPT-3.5! 🚀
Выше него, из локальных моделей только Qwen1.5 32B Chat от AliBaba. Эта модель внимательнее читает инструкции (выше integrate), но соображает сильно хуже (ниже reason)
Из того, что я тестировал, но вело себя достаточно плохо в продуктовом бенчмарке:
- Yi 1.5 34B Chat
- Google Recurrent Gemma 9B IT
- Microsoft Phi 3 Mini/Medium
- Google Gemma 2B/7B
Ваш, @llm_under_hood 🤗
---
Напомню, что тут мы тестируем модели по API или из HF. Описание категорий и примеры кейсов есть в лабах. См другие бенчмарки по категории #bench