llm_under_hood | Неотсортированное

Telegram-канал llm_under_hood - LLM под капотом

13890

Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.

Подписаться на канал

LLM под капотом

Бенчмарки Llama 3 на продуктовых задачах

Начнем с хорошего. Llama 3 - 8B совершила гигантский скачок по сравнению с прошлой версией. Она обогнала Claude 3 Sonnet, Cohere Command R и даже Mistral 8x22B. Еще и разные языки неплохо понимает!

Тем обиднее плохие очки модели в категории Integrate, чисто из-за невнимательности. Так и хочется сказать модели "читай инструкции внимательно! Вон ChatGPT смог же больше 90 очков набрать!"

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

А вот Llama 3 - 70B ведет себя у меня отвратительно. Во-первых, в куче ответов почему-то начинает ответ с assistent\n\n. Но даже если закрыть глаза на это, качество ответов ниже плинтуса. Иногда модель попросту срывает в белиберду прямо в ответе.

Возможно, проблема в запуске модели в режиме b8 на 2х A100 80GB. Надо будет потом попробовать с vLLM упихать в один GPU.

Дружно радуемся прогрессу Llama-3-8B! 🎉

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Упс. Места на четвертый поток вебинара в этот раз разлетелись особенно быстро. Вчера мы разослали уведомление о начале продаж всем, кто записался в waitlist. Сегодня опубликовали анонс в канале, а час назад группа набралась полностью.

Как выяснилось, спрос на информацию о создании систем на базе Knowledge Maps - несколько больше, чем ожидалось. Больше всего он интересует тех, кому важно строить AI ассистентов без галлюцинаций, с возможностью заглянуть под капот и улучшить качество.

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

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

Если вы не успели на четыре потока - ничего страшного. В записи будет аналогичный контент, и вы её сможете посмотреть без спешки в удобное для себя время.

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

Когда? Переработка материалов и запись займут какое-то время. Ориентировочно Май-Июнь. Напишу в канале.

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Новый инструмент для дообучения LLM от авторов PyTorch - TorchTune 🚀

Разнообразных моделей сейчас становится все больше. А Sam Altman и вовсе обещает нам скачки в возможностях LLM и персонализацию (Youtube: Which Companies Will Be Steamrolled by OpenAI?)

Авторы PyTorch не отстают от трендов. Они хотят сделать простую и доступную библиотеку для дообучения и запуска своих моделей. Это пока альфа версия, но смотреть уже можно сейчас.

Announcement | Github | Tutorials

TorchTune сделана на базе PyTorch и из коробки поддерживает LLama2 7B/13B, Mistral 7B и Gemma 2B. 70B и MoE на очереди.

Авторы постарались сделать один раз и нормально реализацию таких вещей, как:

- интеграцию с Hugging Face
- логгирование и метрики для отслеживания процесса обучения
- квантизация
- оценки полученных моделей на популярных бенчмарках
- запуск моделей локально
- совместимость чекпоинтов обучения c популярными методами запуска моделей

При реализации всего этого, они пытались оптимизировать потребление памяти так, чтобы большая часть скриптов и рецептов влезала в GPU с 24GB VRAM.

С PyTorch у ребят получилось очень хорошо. Посмотрим, что будет с TorchTune.

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

#вы_спросили про Latency и Knowledge Mapping

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

А как понизить latency?
Упомянутые подходы подразумевали 1-2-3+ промежуточных шага, кажется, не очень подходит для real-time ассистентов


На самом деле тут как раз идет экономия времени (time budget) в большинстве запросов.

Бóльшая часть обработки данных идет в background (см желтые стрелки на картинке в комментариях). Почти всю предобработку, какой бы большой каскад промптов там ни стоял, можно делать заранее.

А в real-time нам остается классифицировать тип запроса и сходить по типичному сценарию за заранее разложенным данными. Эти данные складываются так, чтобы ответ по известным категориям вопросов становился простым и быстрым.

Но от длинного хвоста tail latency нам никуда не деться. В исключительных edge cases может понадобиться докатиться до сценария с выборкой chunks, фильтрацией мусора, reranking, multiple hops и прочей нудятиной на десятки секунд и минуты. Главное, тут показывать пользователю процесс размышления, чтобы не заскучал.

Кстати, предобработка данных делает окупаемость локальных GPU еще более приятной. По ночам GPU в небольших локальных системах обычно простаивают, а тут их можно загрузить извлечением данных из старых документов или подбором few-shots для промптов извлечения данных (например, синяя стрелка на схеме)

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

🚀 Новая модель в топе продуктового LLM бенчмарка!

OpenAI выпустили обновление GPT-4 Turbo (gpt-4-turbo-2024-04-09), которое оказалось в топе LLM бенчмарка. Отрыв - значительный.

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

Sama когда-то сказал, что prompt engineering со временем вымрет. Похоже, что он держит свое слово 🍻

Еще в бенчмарке есть похорошевшая мультимодальная Gemini Pro 1.5 от Google. Если бы не провал в области Reason, то Pro 1.5 перегнала бы Opus и соревновалась с GPT-4 Turbo.

Напомню, что бенчмарк построен на основе промптов и задач из реальных продуктов с LLM под капотом. Это проекты клиентов Trustbit, и инсайты в рамках AI Research.

Ваш, @llm_under_hood 🤗

---
Предыдущие LLM бенчмарки в канале:
- бенчмарки февраля 2024
- март (Haiku)
- Март (Claude 3)
- Cohere Command-R и Сommand-R+

Описание работы, категорий и примеры кейсов есть в лабах.

Читать полностью…

LLM под капотом

#клиентспросил

После первого хайпа OpenAI появилось много сервисов, которые так или иначе упрощали некоторые аспекты работы, например, с анализом pdf файлов. Через некоторое время вышла новая версия chatgpt, которая убила эти стартапы. Вот не получится ли также с knowledge map? Да, векторный RAG сейчас работает мягко скажем не идеально, но ребята из OpenAI думаю это тоже прекрасно понимают, и скорей всего работают над этой задачей.

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


Это был классный вопрос от Art M после вебинара (поэтому #клиентспросил 🤝) , который он разрешил запостить сюда.

Чтобы на него ответить, можно отталкиваться от системных ограничений:

(1) Компании-производители LLM не дураки. Они стремятся максимизировать свою прибыль.
(2) Количество разнообразных проектов, которые может осилить компания - ограничено. Нужно приоритизировать.
(3) При возможности компании выбирают те области, которые им более знакомы. Поставщику LLM проще улучшать модели, чем зарываться в особенности требований тысяч разных бизнесов.

Поэтому можно предположить, что OpenAI и прочие компании будут пытаться улучшить своих ассистентов и document retrieval. В этой области слишком много денег, особенно у всяких крупных компаний.

Но все и сразу не осилить. Поэтому начинать они будут с крупных и очевидных кейсов, которые сразу принесут много денег или славы: business of law, legal, корпоративная документация, бизнес-ассистенты итп.

Чем крупнее и прибыльнее ниша, тем более вероятны там новые решения, которые будут работать лучше векторных RAG-ов (хотя работать хуже их - это еще надо постараться). А в нишах с оборотом меньше 1M-1B USD/EUR еще пару лет будет относительно просторно.

Аналогичная история повторялась c кучей других технологий: Services, Cloud, NoSQL, Kubernetes и контейнеры итп. LLM не похожи ни на что до этого, но системные ограничения никто не отменял.

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

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Бенчмарк Command-R+

Модель от Cohere ведет себя весьма неплохо, но до GPT-4 и Claude 3 Opus недотягивает на продуктовых задачах.

При этом и стоит она несколько дешевле.

Ваш, @llm_under_hood 🤗

---
Предыдущие LLM бенчмарки в канале:
- бенчмарки февраля 2024
- FAQ по декабрьскому бенчмарку
- март (Haiku)
- Март (Claude 3)
- Cohere Command-R

Читать полностью…

LLM под капотом

Enterprise RAG Challenge: ориентировочно конец Апреля-Май

Помните я писал про предложение дружески померяться силами своих RAG-ов?

Challenge точно состоится, ведь только за первые сутки интерес проявило 14 человек/команд. И это не говоря о компаниях, которым интересно посмотреть на показатели разных систем с потребительской точки зрения.

Участвовать можно будет как публично, с раскрытием имени системы и ее компонентов (например, ChatGPT vs решение внутри контура), так и анонимно (такое тоже просят некоторые вендоры). Leaderboard будет публичный, и каждый сможет сортировать и фильтровать его по важным для себя критериям.

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

Документы для первых раундов уже известны заранее - это публичные годовые отчеты международных компаний в виде PDF. Пример есть тут (архив 100 MiB)

Чтобы провести первый раунд соревнования, мне надо сесть и поработать с экспертами из компаний-потребителей - собрать вопросы для RAG-систем, а потом генерализовать их.

Список вопросов будет опубликован публично до начала соревнования в виде “Есть ли у компании A предприятия в стране B?”, “А кто сейчас президент компании C?” или “У какой компании больше всего сотрудников, и сколько?” итп

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

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

Буду держать вас в курсе.

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

#case LLM Ассистент для продаж - разбор нового кейса

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

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

- А сколько они товара продали? А по какой цене?
- А какие новые аналогичные продукты выпускают?
- А почему мы не получаем столько же прибыли, сколько они в каком-то сегменте?

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

А в основе всего - достаточно простая таблица, не более 200000 строк. Это список всего товарного ассортимента компании клиента и их конкурентов в одном Excel файле. Помимо самих продуктов там еще и ключевые характеристики, по которым покупатели сравнивают и выбирают эти электронные компоненты: размеры, пины, питание, допуски итп.

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

Чтобы разгрузить людей, разрабатывается ассистент для продаж с LLM под капотом. Его первичная задача - автоматически собирать всю информацию о новых товарах конкурентов и сводить ее в одну таблицу. А информация хранится в разнообразных PDF data sheets, внутри которых даже не просто таблицы, а графики допусков.

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

А что под капотом?

(1) достаточно простой web crawler
(2) Пара алгоритмов извлечения табличных данных из PDF, с GPT-4 для причесывания всего
(3) Немножечко GPT4-Vision для извлечения некоторых редкостных edge cases из графиков

Ну и естественно, что никаких векторных баз данных или LangChain/LLamaIndex тут и даром не надо)

Ваш, @llm_under_hood 🤗

---
Еще кейсы:
- Кейс с ChatGPT про 10.000 € в месяц
- Ассистент маркетолога с LLM под капотом
- Нишевый lead generator для B2B продаж

Читать полностью…

LLM под капотом

#weekend пост про моего персонального ассистента

Он, наконец, научился раскладывать вложенные файлы по папочкам, а сами записи раскидывать по workspaces.

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

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

Каждый шаг тут человекочитаем, что позволяет оценивать качество системы и оставлять записи для улучшения. Например, если пометить весь результат как верный, то это сразу отметит все вложенные вызовы LLM-driven моделей как корректные. А это уже сразу 3 новые записи в dataset для тюна своих моделей.

Ваш, @llm_under_hood 🤗

PS: Что за интерфейс? Как обычно, это преимущественно результат работы ChatGPT. 60 строчек Python+Jinja2+HTML и еще 80 строчек каких-то CSS стилей.

Читать полностью…

LLM под капотом

Вебинар “Проектируем и внедряем AI-ассистенты с LLM под капотом”: дата и время проведения нового потока

У меня была насыщенная вторая половина марта, и вот наконец-то появилось время провести третий поток вебинара про проектирование AI-ассистентов.

Вебинар пройдет 5 апреля, в пятницу, в 11:00 GMT+3 (московское время). Это третий поток с материалами, аналогичными предыдущим двум.

На вебинаре я расскажу о принципах построения и внедрения адаптируемых AI-ассистентов на примере небольшого end-to-end кейса. Обсудим с вами принципы проектирования подобных систем, поговорим про контроль качества, сбор данных и построение работы с пользователями.

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

Можно будет принести свои кейсы для обсуждения и задать вопросы. Чтобы можно было качественнее поработать на Q&A, группа будет не слишком большой.

Длительность - 2 часа. Язык - русский. Стоимость участия в вебинаре - 80 евро. Оплатить можно вот здесь (понадобится карта, работающая за пределами России).

Там же есть ответы на частые вопросы:
- Можно ли оплатить участие другого человека?
- Будет ли запись? Можно ли ее купить отдельно?
- Как принести свой кейс для разбора на вебинаре?

После оплаты вам придет email с деталями и ссылками на зум и в чат потока.

Про Knowledge Maps как раз на этом вебинаре я и рассказываю.

До встречи на следующей неделе!

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Небольшой LLM Digest

Grok LLM от xAI, как и ожидалось, оказался никому не нужен. Его выкачали с HuggingFace аж 31k раз, но после этого интерес пошел на убыль. Даже бенчмарков в HuggingFace Leaderboard до сих пор не завезли (ну или я не нашел).

К слову, Mixtral-8x7B-Instruct-v0.1 за последний месяц выкачали 965k раз, а Mistral-7B-Instruct-v2 - больше двух миллионов раз.

Databricks тут же поняли, что терять им уже нечего и тоже выпустили "A New State-of-the-Art Open LLM" на 132B параметров. Тоже большая, уникальная и в итоге даром не будет никому не нужна.

А вот интересный релиз, который MistralAI поленились оформить нормально - это веса для базовой модели Mistral 7B-v0.2, которая вышла уже несколько месяцев назад. Обученный на ее основе Instruct-v0.2 они выложили нормально, а про базовую модель просто забыли.

Если что-то и брать для тюнинга под свои задачи, то именно эта базовая модель Mistral-7B-v0.2 будет одним из кандидатов. Качать TAR тут - https://models.mistralcdn.com/mistral-7b-v0-2/mistral-7B-v0.2.tar

Ваш, @llm_under_hood

Читать полностью…

LLM под капотом

Кто угадает LLM модель на очереди в бенчмарк?

Это семейство моделей я еще не оценивал, но клиенты просят под свои нужды.

Это foundational model, которую обучили на открытых данных. Ее, говорят, специально затачивали под задачи бизнеса.

Кстати, а мартовский бенчмарк вышел официально на сайте.

Ваш, @llm_under_hood 🤗

---
Предыдущие LLM бенчмарки в канале:
- бенчмарки февраля 2024
- FAQ по декабрьскому бенчмарку
- март (Haiku)
- Март (Claude 3)

Читать полностью…

LLM под капотом

Архитектура AI-ассистентов одной схемой.

Я нарисовал эту схему только что, чтобы объяснить принципы построения систем одному специалисту. Его роль транслируется в Staff Software Engineer/Principal Engineering Consultant.

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

Он сейчас заходит в типичный проект на базе LLM, где под капотом RAG с гибридным поиском. Гос клиенты, тысячи пользователей, неистребимые галлюцинации и относительная бесполезность системы. Команда устала от беспросветного копания в ворохе абстракций. Нужно им помочь.

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

Посмотрим дальше, поможет ли знание принципов вывести этот проект на правильные рельсы.

А вам такая схема понятна?

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Grok LLM - большая, не имеющая аналогов и никому даром не нужная

X (при жизни - Twitter) выложил свою мега модель:
- 314B параметров (86B активно за раз)
- mixture of experts 8 (2 активны за раз)
- Apache 2.0 лицензия

Сами авторы заявляли:

On these benchmarks, Grok-1 displayed strong results, surpassing all other models in its compute class... This showcases the rapid progress we are making at xAI in training LLMs with exceptional efficiency.


По отзывам, Grok примерно сравним с GPT-3.5, Mixtral. Если пересчитывать на размер, толку от Grok пока ноль. Пропускаем.

Ссылка на HuggingFace

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

LLM Бенчмарк Mistral 8x22 - заметный скачок качества 🎉

Mistral AI начали фиксить свою проблему с болтливостью второго поколения своих моделей!

Недавно вышедшая модель Mistral 8x22 есть в открытом доступе. Теперь она на наших продуктовых LLM бенчмарках работает лучше, чем закрытый Mistral Large.

Более того, она настолько хорошо стала следовать инструкциям, что побила рекорд ChatGPT-4 Turbo (v2024-04-09) в категории integrate. Стоит при этом раз в 10 меньше, чем Mistral Large.

Что за категория Integrate? Это работа с API-шками, таблицами, функциями и внешними системами. Детальнее описано в лабах.

Хочется надеяться, что этот скачок качества распространится на все модели этого нового поколения.

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Вебинар “Проектируем и внедряем AI-ассистенты с LLM под капотом”: 25 апреля в 11:00 GMT+3 (московское время)

В следующий четверг я проведу четвертый поток вебинара про проектирование AI-ассистентов.

Я расскажу о принципах построения и внедрения адаптируемых AI-ассистентов на примере небольшого end-to-end кейса. Мы поговорим о том, как проектировать подобные системы, собирать для них данные, контролировать качество, выстраивать работу с пользователями.

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

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

Содержание вебинара то же, что и для предыдущих трех потоков. Отличаются только кейсы, которые приносят участники. Про Knowledge Map как раз на этом вебинаре я и рассказываю.

Длительность - 2 часа. Язык - русский. Стоимость участия в вебинаре - 80 евро (нужна будет карточка для оплаты через Stripe, российские карты не сработают).

Как оплатить?
Понадобится карта, работающая за пределами России. Оплатить можно вот здесь.

Там же есть ответы на частые вопросы:
- Можно ли оплатить участие другого человека?
- Будет ли запись? Можно ли ее купить отдельно?
- Как принести свой кейс для разбора на вебинаре?

После оплаты вам придет email с деталями и персональной ссылкой в чат потока.

До встречи на следующей неделе!

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Первые шаги при реализации умного поиска (AI Search) по документам компании.

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

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

(см другие вариации этого кейса)

1. Identify scope and get statistics

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

2. Get data

Потом я выгрузил релевантную часть документации в файловую систему. В сумме ~8GB и 45344 документов. Причем выгружал я сам скрейпингом, предварительно согласовав с IT. Так оказалось проще и быстрее всего. Enterprise 🤣

Все документы сжаты в gzip и хранятся в content-addressable storage (CAS), ради дедупликации и простоты работы (выглядит, как содержимое .git/objects в ваших проектах). Там дикая смесь файлов, начиная от XLSX c PDF до MSG и PUB.

3. Basic data extraction

На следующем шаге мы прогоняем все документы через unstructured и сохраняем полученные фрагменты текста обратно в CAS. Потом эти фрагменты мы загрузим в БД с полнотекстовым поиском.

В ней будет две таблицы, первая - список всех документов и их иерархия, вторая - все фрагменты для каждого документа (общим счетом 6690323 штук). На вторую таблицу включаем full-text search.

Базу данных раздует при этом до 15GB. Скриншот с примером поиска в ручном режиме - в комментариях.

4. Knowledge map

На третьем шаге уже приделываем классификатор на базе GPT4. Он будет анализировать каждый запрос с учетом Knowledge Map, который описывает поисковые ограничения для разных типов запросов.

В него мы положим всю ту информацию, которую собрали на первом шаге. Например: “Информация по срокам поставки лежит в папке X, бери файлы не старше 2х недель” или “Про внутрикорпоративные соревнования смотри в папке Y, бери файлы не старше года. Если ищут определенный отдел - выбирай по заголовкам внутри файла в двухбуквенном формате” итп

5. Edge cases + GUI

На четвертов шаге прописываем вариант поиска для “не знаем, как искать” и приделываем GUI для демонстрации возможностей клиенту. В подобных кейсах я люблю использовать BulmaCSS для красоты и HTMX для динамичности c минимумом училий. Спихиваем написание GUI на ChatGPT.

6. Gather feedback

Много ли можно сделать с подобным поиском? На самом деле он уже будет работать лучше существующего текстового поиска, т.к. GPT будет сильно сокращать список документов в выборке по эвристикам из knowledge map.

Но качество в этой итерации и не имеет значения. Главное показать клиенту как можно быстро и, главное, прозрачно улучшить качество поиска. Во время демки мы поковыряем вместе Knowledge Map и попробуем вместе “научить” систему находить новые типы документов.

Ну а дальше клиент попросит загрузить остальные 80% данных, подключить сторонние системы и вообще поглубже интегрировать ассистента во внутренние процессы.

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Что такое Knowledge Maps?

Если кратко - это просто нормальная предобработка сырых документов в AI системах с RAG/LLM под капотом. В отличие от векторных подходов она требует анализа данных, но внимательность окупается простотой итогового решения, прозрачностью и возможностью контролировать качество.

В принципе, в подходе Knowledge Mapping нет ничего особенного. Но о нём я рассказываю по 2-3 часа на вебинарах, а времени все равно не хватает 🤣

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

На сайте Trustbit мои коллеги опубликовали обзорную статью про Knowledge Maps и построение систем на их основе (English | Deutsch). Разбор написан для бизнеса, но технических неточностей там нет, я вычитывал.

Ваш, @llm_under_hood 🤗

PS: И нет, Knowledge Map - это не Knowledge Graph.

Читать полностью…

LLM под капотом

Интересную LLM откопали коллеги из Код один.

Это RWKV Language Model, которую пилят еще с прошлого года

Можно поиграть с ней на Hugging Face:
- v6 - 1.6B + Vision 🤯
- v5 - 7B

v6 задавали вопросы на башкирском, она отвечала внятно. И это редкость, ибо поддержка нишевых языков начала появляться только недавно в GPT-3/4

Я прогнал пару тестов из своего бенчмарка. v5 у меня отвечала неплохо, v6 - совсем слабо.

Но фишка не в этом:
- Эта модель менее требовательна к ресурсам, чем модели аналогичного уровня - демка запущена на T4 и летает шустро.
- Модель внезапно неплохо общается на разных языках.
- Модель не использует классический attention. Это вообще не трансформер, а рекуррентная нейронная сетка, и она может генерировать бесконечный поток сознания.

В общем, совсем не понятно, почему оно работает. Кто хочет разобраться получше - gonzo писал про эту модель еще летом прошлого года. Недавно вышла новая версия этой модели.

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

Это очень классный проект - они пилят что-то новое и отличное от всех остальных. А не просто очередной толстый MoE. Хочется пожелать им всяческих успехов и открытий дальше.

Home page | Картинка v6 | API Server (не только NVidia) | Model Card v6 | Как оно работает

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Как сделать так, чтобы Mistral 7B всегда отвечал на русском?

Для этого достаточно немного питона и вежливости) И это применимо к любой локальной LLM, не только Мистралю.


from transformers import AutoModelForCausalLM, AutoTokenizer, LogitsProcessor
import torch

model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2",torch_dtype=torch.float16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")

# MAGIC HAPPENS HERE

messages = [
{"role": "user", "content": "Write me a mayonnaise recipe. Please answer in Russian"},
]

tokens = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)

generated_ids = model.generate(
tokens, max_new_tokens=1000, do_sample=True, num_beams=5,
renormalize_logits=True, logits_processor=[Guidance()])

decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])


Ответ будет стабильно по-русски.

<s> [INST] Write me a mayonnaise recipe. Please answer in Russian [/INST] Я рад помочь тебе приготовить майонез! Здесь простой рецепт для традиционного майонеза: 1 яйцо (50г), 2 столовых ложки лимонного сока, 1/2 чайной ложки соли, 1/2 чайной ложки сахара, 1/2 чайной ложки муки, 250мл растительного масла (сойбек, рапсейд или любого другого непривкусного масла). 1. Поместите яйцо, лимонный сок, соль и сахар в большую посуду. 2. Вмешайте эти ингредиенты вручную, используя ложку, до тех пор, пока соль и сахар полностью растворятся. 3. Поместите чайную ложку муки в маленькую посуду, добавьте несколько капель масла и смешайте. 4. Постепенно добавьте масло в большую посуду с яйцом, постоянно мешая, используя ложку, до тех пор, пока майонез не загустит. 5. Продолжайте добавлять масло до тех пор, пока оно полностью поглотится. 6. Майонез готов! Сохраните его в холодильнике до использования. Пожалуйста, обратите внимание, что яйца могут представлять определенную опасность для здоровья из-за риска заражения сальмонеллой. Поэтому рекомендуется использовать только свежее яйцо и хранить готовый майонез в холодильнике.</s>


В чем фишка? В "волшебном" классе Guidance. Он просто разрешает LLM-ке отвечать используя только русские символы и знаки препинания.


import regex

ru_alphabet = regex.compile(r'[А-Яа-яЁё]+')
punctuation = regex.compile(r'^\P{L}+$')

drop_mask = torch.zeros(1, tokenizer.vocab_size, dtype=torch.bool, device="cuda:0")

for k, v in tokenizer.get_vocab().items():
s = k.lstrip('▁')
if ru_alphabet.match(s) or punctuation.match(k):
continue

drop_mask[0][v]=True

drop_mask[0][tokenizer.eos_token_id]=False

class Guidance(LogitsProcessor):
def __call__(self, input_ids, scores):
return scores.masked_fill(drop_mask, float('-inf'))


Mistral-7B в итоге будет всегда отвечать русскими буквами, но иногда будет нести такую ересь, ибо думать по-русски это модель не научит.

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

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Gemini Experimental доступна на Google Vertex AI

Подозреваю, что так назвали Gemini Pro 1.5 в преддверии грядущего Google Cloud Next. Говорят, у нее 1M контекста (но там контекст - это символы, а не tokens), а итоговая стоимость будет сравнима с ChatGPT-4.

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

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Тем временем, места на третий поток вебинара “Проектируем и внедряем AI-ассистенты с LLM под капотом” закончились. Группы я делаю небольшими, чтобы мы с участниками вебинара могли эффективнее обсудить кейсы и разобрать вопросы.

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

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

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

Cohere Command-R в LLM бенчмарке

Cohere Command-R - это новая 35B модель от Cohere AI, которая заточена на работу в Enterprise.

Фишки:
- Контекст 128k
- Владеет 10 языками, и еще дюжину языков понимает
- Встраивается в RAG и умеет использовать инструменты
- Открыто доступна на HuggingFace для некоммерческого использования
- Доступна в Cohere API по $0.50/$1.50 за миллион входных/выходных tokens

Но вот в продуктовом бенчмарке она проигрывает даже Claude 3 Haiku.

Правда бенчмарк мог не раскрыть все возможности Command-R. Когда я его начинал вести летом прошлого года, function calling и тулзы еще не встречались. Возможно, пора его переделать?

Ваш, @llm_under_hood 🤗

---
Предыдущие LLM бенчмарки в канале:
- бенчмарки февраля 2024
- FAQ по декабрьскому бенчмарку
- март (Haiku)
- Март (Claude 3)

Читать полностью…

LLM под капотом

Давайте расскажу свою идею стартапа

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

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

Задачи бывают достаточно разные - извлечь данные таблиц из PDF, классифицировать входящий запрос по категорям, сформулировать search query в Elastic Search для пользовательского запроса итп.

С такими конкретными задачами, скажем, ChatGPT-4 справляется довольно неплохо, а вот локальные модели пока не очень. А уж если пошла речь про другие языки, картинка еще более печальная.

А ведь небольшие локальные модели, если их заточить под конкретные задачи, могут не только догнать ChatGPT по качеству, но и сэкономить немало денег. Именно про это и писал YCombinator в своем письме новым стартапам.

Идея стартапа в том, чтобы выбрать самые востребованные, но нишевые LLM задачи и затюнить модели специально под них. Причем выбирать такие ниши и индустрии (из тысяч возможных комбинаций), чтобы у крупных игроков вроде OpenAI, Anthropic и MistralAI в ближайшую пару лет руки не дошли совсем.

Самое засадное в этой идее в том, что потребуется немало усилий для создания чистопородных моделей с отслеживаемой родословной. Это время на подготовку чистых и репрезентативных синтетических данных с нуля (чтобы комар носа не подточил), последующий тюнинг и отладку на отзывах пользователей.

А причем тут загадка про LLM модель? Так там клиенты очень просили протестировать IBM Granite 13B. Это очень странная модель уровня старых тюнов Llama 13B. Ее единственное преимущество заключается в прозрачной подготовке данных и беспроблемной лицензируемости.

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

Ваш, @llm_under_hood

Читать полностью…

LLM под капотом

Ребята, я знаю, что у меня много подписчиков из Москвы и Московской области. Надеюсь, что вы в безопасности.

Случилось страшное. Я соболезную семьям погибших и желаю выздоровления пострадавшим. Берегите себя.

Ваш, @llm_under_hood

Читать полностью…

LLM под капотом

RAG Challenge на годовых отчетах компаний

В последнее время в комментариях было много обсуждений про эффективность разных подходов. Особенно вектора против knowledge maps. Но ведь технологии совсем не важны. Важно только, работает в итоге AI система с LLM под капотом или несет пургу.

И это можно измерить и сравнить. В чатике канала в итоге договорились до небольшого дружеского соревнования 🍻

Идея такая. Каждый желающий пилит свой RAG, который может давать ответы на вопросы по пачке годовых отчетов компаний. Вопросы на information retrieval - сколько человек работает в компании X? У какой компании ликвидность больше? У кого есть виноградники во Франции, и в каких провинциях. Вкладывается ли компания Y в green bonds? итп

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

Каждый пилит свой RAG или использует существующую систему. Главное, чтобы там было две фишки:

1. Возможность загрузить тестовый набор отчетов (выберем случайно все вместе, штук 100)
2. Возможность загрузить список вопросов и получить список ответов.

Между первым и вторым шагом может пройти, скажем, часов 5-6 (чтобы система могла переварить данные, посчитать embeddings или прогнать экстракторы)

Исходники открывать не обязательно.

Если кому-то интересно, вот ссылка на набор файлов для обучения - ZIP, 100 MB. В тестовом наборе файлов их, естественно, не будет.

Что по срокам?

Я предлагаю так сделать - как несколько человек готовых наберется (хотя бы пара), то сформируем набор вопросов с документами и прогоним тесты вместе.

Если потом еще кто-то подтянется, можно заново будет это повторить, на новых документах и вопросах.

Какие вопросы будут?

Типы вопросов будут определены заранее до начала соревнования. Поговорим с экспертами и выберем самые реалистичные и востребованные категории.

Что скажете?

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

NVidia экономит электричество и ускоряет квантованные модели

Прошлой ночью NVidia презентовала новые GPU чипы и конфигурации на базе Blackwell. Хороший summary есть в ai news (keynote тут).

Меня поразил один факт, где они сравнивали производительность чипов при тренировке модели уровня GPT-4. Кому, как не NVidia знать эти цифры?

Итак, для тренировки GPT-4 (без учета ошибок):

- нужно 8000 штук H100 в течении 90 дней. Потребление - 15МВт
- либо 2000 штук B100 в течение 90 дней. Потребление - 4МВт

В четыре раза меньше чипов и почти в четыре раза меньше энергопотребление. Если B100 стоит в 4-5 раза больше H100, то это уже легко окупается.

А там еще идет хорошая поддержка квантизации уровня FP8, FP6, FP4. Это значит, что производительность не будет так сильно падать при запуске пожатых моделей. Причем, если верить NVidia, inference LLM в таком режиме вообще дико экономит электричество.

Такие новости радуют. В ближайшие годы нам нужно будет еще больше вычислительных способностей.

Ваш, @llm_under_hood 🤗

Читать полностью…

LLM под капотом

LLM-системы и structured logging - #weekend пост

В феврале я писал про архитектурный “затык” в моем AI-ассистенте. Не получалось никак сделать прозрачным процесс извлечения данных из документов в knowledge map.

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

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

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

Почти месяц я работал над тем, чтобы все это решить достаточно простым кодом.

На помощь пришли три старые концепции из software engineering:

- structured logging - для логгирования всего так, чтобы это потом было удобно просматривать и визуализировать (статья NewRelic)
- content-addressable storage - чтобы можно было хранить все подряд и избегать дупликации (wiki)
- NixOS derivations - концепция о кэшировании результатов долгого вычисления на основе входных данных (описано в NixOS)

В итоге все работает так:
(1) При появлении новых документов, по ним запускается процесс обработки. На каждый документ создается новый structured log.
(2) Процесс вызывает конкретные модели (data extractors) в нужном порядке. Результат вызова вместе со всеми деталями подшивается в этот лог.
(3) Когда документ обработан, все извлеченные данные подшиваются к нему, вместе со structured log процесса и всеми деталями.

А самое классное в том, что вызовы моделей - immutable. Это позволяет кэшировать дорогие вызовы автоматически. Весь structured log - тоже immutable. И если ничего не поменялось, то можно процесс обработки документа вызывать хоть сколько раз, результат будет один и тот же.

Вторая фишка состоит в том, что если результат обработки документа пометить как approved/reviewed, то можно пометить все участвовавшие вызовы моделей как хорошие. А это добавляет все данные в dataset для последующего обучения своих моделей.

Пара скриншотов и примеров того, как выглядит structured log - в комментариях.

Ваш, @llm_under_hood 🤗

PS: Никакого LangChain/LlamaIndex не используется. Достаточно простого питона.

Читать полностью…
Подписаться на канал