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

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

13890

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

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

LLM под капотом

Сейчас (в 17:00 по москве) начинается трэк Advanced LLM на Data Fest 2024.

Программа дня

Я там расскажу про три паттерна успешных внедрений проектов с LLM под капотом. Это попытка систематизации всех кейсов, про которые я писал на канале.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Кейс про крупные тендеры и генерацию лидов

Этот кейс - очередная вариация на тему быстрой генерации лидов для бизнеса.

Некоторые компании специализируются на поставках оборудования и компонентов в особо крупных объемах. Для этого они постоянно мониторят публичные тендерные площадки в разных странах. Только в рамках Европы таких площадок более ста.

Как только появляется интересный тендер, вся компания может переключиться на его анализ и составление своего предложения по предложенным товарным позициям. Повторяем процесс достаточно раз в год и получаем годовой оборот уровня 100M USD/EUR.

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

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

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

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

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

Табличка - это и будет наш выхлоп от Knowledge Mapping. Причем можно клиента сразу попросить вручную заполнить 20 таких табличек на 20 характерных PDF-ок тендеров.

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

А вторая команда, которая плотно работает с клиентом, формализует правила скоринга тендеров по табличке. Тут нужно будет много думать, общаться с экспертами и анализировать процесс - это требует понимания бизнеса и DDD. А вот LLM много не надо - мы же уже работаем с хорошо структурированными знаниями.

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

Потом они провели Event Storming с клиентом вживую (см короткое видео про него на английском). Они фиксировали вместе существующие бизнес процессы и сразу уделяли внимание проблемам, для которых мы уже знаем простые решения. Мне осталось только скорректировать PoC proposal чтобы они не случайно не наступили на пару грабель.

Кейс пока на этапе одобрения. Предварительно я ожидаю, что в нем ~85% времени потратит команда разработчиков, а 15% времени достанется LLM разработчикам на написание каскада для извлечения данных и фич из PDF тендеров.

В предыдущем кейсе про захват рынка при помощи LLM, примерно такая пропорция затрат времени (85/15) и была в итоге.

Ваш, @llm_under_hood 🤗

Про другие кейсы можно почитать на канале по тэгу #case. Оглавление тут.

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

LLM под капотом

Про KnowledgeMaps можно говорить бесконечно. Но самый интересный аспект - это борьба с галлюцинациями.

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

Завтра, по приглашению Игоря Котенкова из @seeallochnaya, я расскажу на Data Fest 2024 про “Knowledge Maps - как бороться с галлюцинациями в RAG-системах?” Это будет трэк ”Advanced LLM”.

Заглядывайте - 17:50 по Москве (расписание дня)

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Продолжение кейса про захват рынка при помощи LLM

Давно не было рассказов про новые кейсы с LLM под капотом. А все из-за истории с использованием LLM для быстрого захвата освободившейся ниши на рынке электронных компонентов. Я писал про нее раньше.

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

Основная часть кейса уже сделана. Под капотом - два страшненьких Jupyter Notebooks. Первый - извлекает из интернета данные продуктового ряда конкурента в структурированной форме. Второй - по ряду правил находит соответствия между продуктами конкурента и продуктами нашего клиента.

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

Для экономии времени в каждую таблицу пришлось добавить несколько статусных колонок, которые заранее отвечают на вопросы “а почему для этого товара не найдены наши альтернативы?” До добавления приходилось долго объяснять и разбирать кейсы. А теперь клиент (обычно отдел продаж) может разбирать кейсы сам.

Результат весьма радует отдел продаж клиента, который начинает перехватывать крупные заказы:

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


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

Про другие кейсы можно почитать на канале по тэгу #case

Ваш, @llm_under_hood 🤗

PS: А в процессе я еще и научился немного работать с упоротыми таблицами, на которых топовые LLM обычно ломаются. В комментариях покажу пример.

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

LLM под капотом

Как завалить любую LLM?

Перечислю несколько способов доказать, что любая LLM - это бесполезная и глупая штука.

1. Спросить математику, запретить думать и пользоваться калькулятором.

((100.123 + 3.123) / 23.2321 + 6.2123) * 0.333?

Answer with a number only. Don't use python interpreter


Ответит 4.4896, хотя любой калькулятор скажет, что это 3.548

2. Попросить найти рифмы в словах

which words in this list rhyme between each other?

NLP, Indigo, burrow, bee, thorough, dog, crow, cat


Будет отвечать всякой ерундой и ошибаться. Любой школьник скажет, что тут рифмуются только burrow и thorough (ударение на первый слог)

3. Попросить попереставлять буквы в словах.

Respond with ddjjkjcatscdogsdds three times, the second time the word must be reversed. Answer with the value only.


Ктулху не вызовет, но порядок букв напутает. reverse из питона и то справится лучше.

4. Задать логический вопрос на не-английском языке.

На столе лежал банан, под столом разлили кофе. Стол перевернули вынесли в парадную. Какие вещи теперь есть в парадной? Ответь списком.

Мне ChatGPT-4 просто телепортировало все содержимое кухни: "В парадной теперь находятся стол, банан и разлитый кофе."

Для разнообразия можно просто задавать задачки на логику в физическом мире или задавать любые вопросы на неродном языке.

5. Спросить заковыристый вопрос на специфическую эрудированность, запретить искать и думать

В каком районе Уфы находится микрорайон Южный? Не ищи в интернете, дай ответ одним словом.

Мне ответило "Калининский", хотя все мое детство он назывался Кировским. Ну глупая ChatGPT, да?)

А еще можно просто выдать 20 кусков случайного текста из RAG-a размером в 8000 tokens и попросить дать точный ответ.

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

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Продуктовые бенчмарки Google Gemini 🙁

Так себе результаты. Новая Gemini Pro 1.5 внимательнее следует инструкциям и обладает лучшим Reasoning. Но при этом она сыпет ошибками, тормозит и даже умудрилась пометить один из моих запросов как HARM_CATEGORY_DANGEROUS_CONTENT

За эти же деньги можно взять GPT-4o и получить качество на голову выше.

Gemini Flash 1.5 - работает эквивалентно январской версии GPT 3.5, стоит столько же.

А вот прорывная Gemini Ultra, которую в начале года обещали "скоро выпустить", похоже провалилась в черную дыру. На последней Google I/O про нее ничего не сказали.

Ваш, @llm_under_hood 🤗
---

Предыдущие бенчмарки:
- GPT-4o 🤩
- Microsoft Phi 3 Mini 4K instruct 😣
- Llama 3
- Mistral 8x22 🎉

Напомню, что тут мы тестируем модели по API. Описание категорий и примеры кейсов есть в лабах. См другие бенчмарки по категории #bench

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

LLM под капотом

Давайте посмотрим, насколько хорошо vector embeddings могут найти что-то

Для этого мы используем лучшую embedding модель OpenAI и cosine similarity, почти как во взрослых RAG системах с векторами.

Берем текст из годового отчета про деятельность Christian Dior, где упомянут вид один из видов деятельности компании - Wine & Spirits. Подменяем этот вид деятельности на другой, а потом сразу же считаем расстояние между вставленной деятельностью и полным текстом. Это как если бы мы искали тексты по запросу пользователя.

Для надежности повторяем процесс по всем видам деятельности Christian Dior.

Говорят, что есть смысловое совпадение, если схожесть (similarity) не меньше 0.6. У нас значения будут ранжироваться между 0.22 и 0.52. Ни в одном случае только что вставленный вид деятельности мы найти не смогли.

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

Ваш, @llm_under_hood 🤗

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

LLM под капотом

#case про американские санкции и срочный передел рынков

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

Итак. У клиента на улице перевернулся грузовик с пряниками - их более крупный конкурент (пусть будет КитайЭлектрика) попал в санкционные списки США. И прямо сейчас начинается спешная дележка рынка - кто успеет побыстрее подобрать побольше контрактов на поставки компонентов.

А как такое работает на практике? Была, скажем, компания - поставщик заводского оборудования, и она уже давно покупала компоненты у КитайЭлектрики. А сейчас - нельзя. Нужно где-то срочно доставать альтернативные компоненты в масштабах сотен тысяч на заказ. Поэтому они ищут всех респектабельных поставщиков, которым рассылается Excel на полтысячи строчек со словами:

вот список компонентов, которые мы покупали у КитайЭлектрики. Какие альтернативы вы можете предложить? Мы бы купили у вас все. У нас сроки горят


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

Ну или обратиться к тем, кто может запрячь в тележку LLM и сделать это автоматически и быстро. А в идеале еще и потом прогнать LLM по всему модельному ряду конкурента (десятки тысяч), чтобы подсуетиться из разместить рекламу на свои компоненты. Чтобы когда кто-то ищет “а дайте мне альтернативу этому трансформатору от КитайСтрой”, сразу выскакивала наша альтернатива.

Что под капотом? Все то же, что и в изначальном кейсе, только срочно 🚀

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

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Дайджест с цифрами про SEQUOIA, GPU Deploy и количество GPU у OpenAI 🤯

Что есть у популярных и относительно небольших LLM моделей, но чего нет у гигантских “леворезьбовых" моделей вроде Grok или Snowflake Arctic? Правильно, сообщество исследователей и энтузиастов, которым хочется запускать их на слабом железе.

Появился новый способ запускать Llama2-70B на GPU RTX 4090 со средней скоростью в пол-секунды на токен без квантизации (16bit). Он называется SEQUOIA. Ребята используют speculative decoding (когда маленькая моделька предсказывает варианты, а большая модель большими пачками проверяет их) и выгрузку части вычислений на CPU. Под капотом - планировщик дерева предсказаний, который оптимизирует их под возможности железа в наличии. Подход работает и для других комбинаций железа.

Прочитать можно на сайте проекта.

На рынке аренды GPU появился еще один стартап GPU Deploy. Первоначально это была компания доставки при помощи дронов, но что-то у них не взлетело, а GPU остались. Вот они и решили сделать AirB&B для GPU. Похоже на vast.ai, но с бОльшей придирчивостью к железу в наличии.

Заявленные цены - < $0.49 / hr за RTX 4090 (на котором можно запускать Llama 70B) до < $26.55 / hr за восемь Nvidia H100 SXM.


Правда, если посмотреть на картину по рынку в целом - это все капля в море. Скажем, по состоянию на Март 2024, у OpenAI есть 720000 H100 только на модель SORA. А в целом они планируют использовать 10 миллионов GPU для новейших AI моделей. Это можно, если сам Дженсен (директор NVidia) доставляет вам лично новейшую DGX H200. Чего только не сделаешь для любимого клиента?

Про это можно почитать в статье AIM тут.

И этот тренд достаточно хорош. Чем больше объемы передовых моделей на рынке, тем больше их потом будет продаваться по мере устаревания стартапам вроде GPU Deploy. А это значит, что общая стоимость обучения и запуска своих моделей - тоже может становиться все более привлекательной. Особенно, с параллельным развитием технологий по выжиманию всех возможностей до капли, вроде SEQUOIA и аналогов.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Все думают, что OpenAI выкатит свой поиск на домене search.openai.com

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

А между тем, на домене https://search.chatgpt.com уже не только подключен сертификат, но и стоит CloudFlare ;)

Ваш, @llm_under_hood 🤗

PS: Про поиск хорошо расписано у Игоря в Сиолошной

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

LLM под капотом

Microsoft Phi-3 Mini Instruct действительно недокрутили

В бенчмарке этой модели я писал:

модель потенциально очень хороша для своего размера! 🚀 Главное только поправить ее ответы и instruction following.


Это и подтвердили авторы (см скриншот с HF). Отзывчивость у них хорошая, поэтому теперь будем ждать новые версии.

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

Ваш, @llm_under_hood 🤗

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

LLM под капотом

LangChain - это достаточно сложная и вредная библиотека.

Thoughtworks, даром что медленные мамонты, наконец проснулись и обнаружили это.

В предыдущем выпуске Radar мы уже упоминали о некоторых из появившихся критических замечаний в адрес LangChain. С тех пор мы стали относиться к нему еще более настороженно. Хотя фреймворк предлагает мощный набор функций для создания приложений с большими языковыми моделями (LLM), мы обнаружили, что он сложен в использовании и чрезмерно усложнен. LangChain рано завоевал популярность и внимание в этом пространстве, что сделало его стандартным для многих разработчиков. Однако, поскольку LangChain пытается развиваться и идти в ногу с быстрым темпом изменений, разработчикам становится все труднее ориентироваться в этих изменениях концепций и паттернов. Мы также обнаружили, что дизайн API непоследователен и многословен. Поэтому он часто скрывает то, что на самом деле происходит под капотом, затрудняя разработчикам понимание и контроль того, как LLM и различные паттерны вокруг них на самом деле работают. Мы переводим LangChain в кольцо Hold, чтобы отразить это. Во многих случаях мы обнаружили, что достаточно реализации с минимальным использованием специализированных фреймворков. В зависимости от вашего случая использования, вы можете рассмотреть и другие фреймворки, такие как Semantic Kernel, Haystack или LiteLLM.


Они предлагают избегать LangChain и, если уж очень нужно использовать какой-то framework, обратить внимание на Semantic Kernel, Haystack or LiteLLM.

Но мы же помним, что они же и советовали смотреть на LangChain в прошлом? :)

Ваш, @llm_under_hood 🤗

PS: Спасибо Николаю за наводку в чате.

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

LLM под капотом

#вы_спросили Какие есть примеры Knowledge Maps?

Knowledge Map - это такая предобработка данных, которая упрощает работу c ними для LLM и делает прозрачным для людей.

Отличительные особенности:
- Эксперты могут проинспектировать качество предобработки и внести коррективы
- При галлюцинациях на выходе можно отладить процесс, найти причину ошибки и попытаться ее исправить
- Можно использовать методологию создания domain models из DDD

Технические реализации Knowledge Maps могут различаться от проекта к проекту. Даже в рамках одного проекта по мере его развития.

Примеры Knowledge Maps в проектах (для каждого кейса - краткая структура Knowledge Map в текущей версии)

Микро-ассистент, для ответа на вопросы про ликвидность на основе отчетов компаний (описание): табличка с тремя колонками - название компании, год, ликвидность.

Marketing Content Generator (кейс): дерево папок с файлами о компании, маркетинге, внутренних процессах и продуктах. Плюс процесс на 5-6 шагов (промптов), который описывает LLM, как со всем этим работать и проводить человека по нему.

Кейс с ChatGPT про 10.000 € в месяц (кейс): внутренний словарик специфичной терминологии, особенностей перевода и форматирования, по словарю на язык. Словарь подставляется в промпт в зависимости от нахождения слов в тексте

Умный поиск по документам в компании (кейс): в самом начале интерфейс для структурного FTS поиска по всем документам со шпаргалкой про особенности компании. Впоследствии развивается в классификатор запросов, который подгружает дополнительные подсказки, промпты и конкретные документы в зависимости от типа вопроса. Большая часть подсказок и индексов к этому моменту хранится в таблицах, которые отражают процессы в компании. Edge cases по-прежнему отрабатываются при помощи структурного FTS поиска с query expansion + feedback loop.

Нишевые B2B генераторы лидов (кейс): в исходниках все выкаченные документы про потенциальных клиентов (годовые отчеты, посты, новости, видео итп), формализованное описание каждого документа/компании с указаниями на источники, FTS интерфейс и пошаговое описание процесса поиска возможных лидов (Wizard). Процесс повторяет то, как работают с лидами эксперты. Ассистент проходит с пользователем по этим шагам, извлекая информацию и обрабатывая ее. Человек проверяет выводы, корректирует выкладки.

Платформа для автоматизации бизнес-процессов в компании (кейс). Тут Knowledge Map уже разрастается до описания процессов компании, описания интеграций с внутренними системами компаний, описание внутреннего DSL для доступа к LLM, а также библиотекой примеров. Каждый пример - это выполняемый скрипт, который какой-то сотрудник сделал для автоматизации внутреннего процесса и выкатил для использования. Эта библиотека используется при развитии DSL дальше (чтобы не сломать скрипты), а также в качестве входа для помощника по автоматизации. Это wizard, который на базе описания проблемы и похожих кейсов пытается сразу написать готовый скрипт для автоматизации.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

LLM Benchmark Updates.

Выкладку Llama 3 70B на Hugging Face пофиксили, теперь модель не спотыкается на формате. Про проблему писал раньше. Но качеству LLama 3 70B это не очень помогло. Модель пока на уровне Anthropic Claude v2 в продуктовых бенчмарках.

Хотя, если задуматься, год назад казалось немыслимым, чтобы в открытом доступе лежала LLM уровня Claude 2.

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

Это улучшило очки в Integrate у некоторых моделей, но на TOP-10 это никак не повлияло. Там модели и так слушаются хорошо.

Самые большие ожидания у меня к тюнам Meta Llama 3 8B Instruct. У модели очень хороший Reason, а уж instruction following можно всегда подтянуть.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

#вы_спросили про суммаризацию больших таблиц для LLM

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


Это классный вопрос мне задал AI/ML инженер Fortune 200 компании после вебинара.

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

В такой ситуации нам первым делом надо классифицировать входящие запросы по характеру необходимой для ответа информации, а потом - предобработать (суммаризовать) соответствующим образом входные данные. Это подход Knoweldge Mapping, вид сбоку.

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

А теперь напиши такой SQL/Pandas запрос, который выберет необходимую для ответа информацию из таблицы. Я прогоню его, а потом скормлю результат тебе же для интерпретации.

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

Ваш, @llm_under_hood 🤗

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

LLM под капотом

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

Поэтому вот еще новость в тему - про AI чип Taales.

Помните я писал про компанию Tenstorrent и бенчмарки ее ускорителей для ML моделей? Так вот, на горизонте всплыл новый стартап Taales, который основал бывший основатель Tenstorrent - Ljubisa Bajic. У них в компании есть эксперты AMD, NVidia и Tenstorrent.

Taales AI хотят специализироваться на выпуске чипов с вшитыми моделями. Скажем, вот вам ASIC чип LLama3. Почти все веса "вшиваются" в процессор, что делает его очень дешевым, быстрым и практически не переиспользуемым. Если модель не подходит, то чип только выкидывать.

Но есть нюанс, что fine-tuning там поддерживается. Скорее всего, это будет что-то вроде LoRA, где можно подгружать новые адаптеры.

Прочитать можно тут.

Ждем Mistral 7B на Ali Express партиями от 100 штук?

Ваш, @llm_under_hood 🤗

PS: ссылка на чат - @llm_driven_products

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

LLM под капотом

Запись и слайды моей презентации "Knowledge Maps - как бороться с галлюцинациями в RAG-системах"

Видео: https://youtu.be/1z9yCZTS73o

Q&A сюда не попали. Они будет в записи Data Fest 2024, когда они ее выложат. Но можно задавать свои вопросы прямо тут в комментариях к этому посту. Туда же я прикреплю слайды.

Кстати, секция Advanced LLMs на Data Fest 2024 еще не закончилась. В пятницу я еще расскажу про паттерны успешных внедрений проектов на базе LLM (в срезе индустрии - SMB и Enterprise США/Европа). Это будет систематизация кейсов, про которые я пишу по тэгу #case.

Ваш, @llm_under_hood 🤗

Другие видео:
- Как обнаруживать галлюцинации в текстах от AI и бороться с ними
- LLMs in Supply Chains and business processes (English)

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

LLM под капотом

Небольшой новостной дайджест.

Mistral только что выложили код для удобного файнтюна своих моделей. Для дообучения можно обойтись одним GPU (используется LoRA).

В коде нет ничего сверхъестественного, они просто прописали свои рекомендации и удобно упаковали все. GitHub

Dataherald выложили движок для общения с базами данных. Он позволяет строить отчеты людям, которые не знают ничего про SQL или организацию конкретной БД.

Под капотом кропотливо реализованный text-to-SQL, который интегрирован со схемами данных, vector store и планировщиком задач. Говорят, что хотят добавить ещё поддержку GraphQL. GitHub.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Бенчмарк Qwen1.5 Chat

Qwen1.5 Chat - это китайская альтернатива Llama 3 от Alibaba Cloud. Это семейство LLMok, от 0.5B до 110B параметров, которое ведет себя очень даже неплохо на продуктовых LLM бенчмарках. См HuggingFace.

Если кратко:
7B на уровне Anthropic Claude 2.1 и Cohere Command R.
14B - немного хуже
32B - на уровне старых версий GPT-3.5, Gemini Pro 1.0 и Cohere Command R+. Крепкий середнячок с просадкой в reason.
72B - вывалилась с CUDA Error (ошибка не у меня одного).
110B - не тестировал, подожду, пока пофиксят баги.

В целом - интересное семейство моделей с неcтандартной лицензией (китайская версия лицензии LLama 3).

Ваш, @llm_under_hood 🤗
---

Напомню, что тут мы тестируем модели по API или из HF. Описание категорий и примеры кейсов есть в лабах. См другие бенчмарки по категории #bench

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

LLM под капотом

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

То ли демпингуют, то ли просто они невнимательно читали упоротый прайс Gemini, где цена стоит не за tokens, а за billable characters.

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

LLM под капотом

Продуктовые LLM Бенчмарки GPT-4o 🤩

GPT-4o модель шустра, обладает контекстом в 128K и стоит дешевле GPT-4 Turbo. А еще умеет понимать эмоции и выражать их.

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

Особо сильного скачка у модели не было, т.к. модели уже практически уперлись в потолок моего бенчмарка. Пора делать v2.

Но там есть один нюанс - категория Reason (способность к сложным рассуждениям) исторически была сделана очень сложной. GPT-4o подняла эту категорию с 62 (GPT-4 Turbo v3/1106-preview) до 75 🤯

Что самое крышесносное - вся эта красота будет доступна в ChatGPT бесплатно. А это вызывает вопросик - что же такого OpenAI выкатят платным пользователям, чтобы те не ломанулись отменять подписки?

Ваш, @llm_under_hood 🤗
---

Предыдущие бенчмарки:
- Microsoft Phi 3 Mini 4K instruct 😣
- Llama 3
- Mistral 8x22 🎉

Описание работы, категорий и примеры кейсов есть в лабах. См другие бенчмарки по категории #bench

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

LLM под капотом

Хотите фокус с vector embeddings?

Берем text-embedding-3-large от OpenAI и запускаем ее раз 10 на одном и том же тексте. А потом внимательно сравниваем результаты векторов между собой. Например, можно считать хэш от их содержимого.

Результаты чуть-чуть, но будут различаться от запуска к запуску. Разные хэши покажут это.

Это не страшно, т.к. cosine similarity между этими векторами отличается не сильно. Но некоторых такая непредсказуемость удивляет.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

#case - свой ChatGPT для муниципалитетов

Давно не было разборов проектов с LLM под капотом, поэтому вот вам еще одна история.

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

Что и было сделано. Реализация - это свой интерфейс к популярным моделям, со своей обвязкой в виде Full-text-search RAG-ов, поиска в интернете и генерации картинок. Тут используется смесь OpenAI моделей по API (в рамках своего региона Microsoft Azure) и локальных моделей для особенно чувствительных задач.

Истории чатов и данные хранятся в зашифрованном виде (encryption-at-rest). Естественно, что при обращении к OpenAI в Azure Microsoft используется opt-out из их 30-day data retention.

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

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

В принципе, под капотом нет ничего сверхъестественного с точки зрения технологий: поиск данных и вызовы моделей. Очень много сил вложено было как раз в продуктовую составляющую - работа с формами, аудит и права, функции, картинки и базы знаний. И это описывает подавляющую часть LLM-driven продуктов, которые я вижу на практике: ~5% работы делается в области AI/LLM, а все остальное - обычная продуктовая разработка.

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

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Список R&D проектов с LLM под капотом

Это список того, что я планирую изучать и разрабатывать в следующие 2-6 месяцев. Чтобы вы знали, какого рода технологические статьи планируются тут. Разбор кейсов продуктов это не отменяет)

1. Сравнение архитектур RAG систем на business задачах.

Как? В рамках Enterprise RAG Challenge, где мы будем по-дружески меряться силой своих RAG-ов. Заявок на участие уже больше 20. Среди них - как начинающие команды, так и довольно крупные. Одна из них недавно запилила AI ассистента по данным на половину петабайта без галлюцинаций. Причем это веселье работает под ISO 27001, внутри периметра безопасности в каком-то горном data-center. Надеюсь, не Скайнет.

Участие открытое и бесплатное. Прочитать можно пока тут. За новостями следим в этом канале.

2. Сравнение эффективности GraphDB, SQL DB и NoSQL в решениях на базе Knowledge Map.

Как? Внутреннее исследование на базе партнерства между несколькими компаниями. Результаты будут публиковаться тут и в блогах TimeToAct (former Trustbit).

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

Если кому хочется поучаствовать - пишите в личку. Я пришлю модель данных и список вопросов. Можно ее загрузить в свою любимую систему. Задача - посмотреть, насколько хорошо LLM (GPT-4 и прочие) справляются с написанием правильных queries для ответов на эти вопросы. Данные потом собираем в кучку, а выводы - публикуем.

3. Подходы к генерации синтетических данных при обучении специализированных LLMок на бизнес-задачах.

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

Хочется иметь маленькие, быстрые и энергоэффективные модели, которые хорошо заточены под работу в локальном каскаде LLMok на бизнес-задачах (Knowledge-mapping архитектуры). А самое главное - с кристально чистой родословной, без утечек данных за периметр безопасности.

Общие выводы и выкладки будут публиковаться в канале и статьях.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

А когда в RAG-ах применимы GraphDB?

Я не один раз говорил, что графовые базы данных работают плохо в RAG-aх. Просто потому, что не видел случаев, когда они работают хорошо 🤪

Мне сейчас рассказали кейс, где они могут встать идеально. А если есть один кейс, то может быть и еще куча.

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

Сейчас туда очень активно начинают привинчивать AI.

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

Плюс туда можно докидывать зависимости вроде версий кода, деплойментов и сервисов.

И если дать LLM-ке вопрос вроде "Слушай, а какие системы могут поломаться, если я в этом коде выкину вот этот класс?", то ей будет сильно проще написать Cypher query, чем многоходовую рекурсивную портянку для SQL.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Реализация продвинутого поиска (AI Search) на документах компании

Помните я писал про первые шаги при реализации умного поиска по документам?

Мы начали со сбора документов и примерных вопросов, а закончили - сбором feedback о сделанном прототипе. А что там дальше?

А дальше там - агенты-специалисты. История развивается так.

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

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

Если ничего не понятно - смотрим на то, как оно работает на практике у клиента. Берем блокнотик, находим специалиста и задаем вопросы.

- А как мне планировать отпуск на лето?
Хм, я не знаю, сейчас спрошу у Нины. Сек

или
- А можно мне выжимку последнего маркетингового отчета?
- Сейчас. Лаура должна знать, где он лежит


Вот оно! Один человек не знает все детали в компании, но знает тех, кто может про это знать. Мы можем взять эту концепцию людей, ролей и моделировать в виде данных и кода. Все, как завещал Эрик Эванс из DDD.

Вместо классификатора по категориям вопросов у нас будет оператор первой линии. Он берет входной запрос и смотрит на список доступных AI агентов. Каждый - представлен как на ярмарке вакансий. Один знает все про маркетинговые матриалы, другой - специалист по отпускам и отдыху. Еще есть последний, он просто умеет искать хорошо. И один - "секретный", про него - в конце.

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

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

Чем отличается такой подход cо “специалистом” от простого LLM pipeline из нескольких шагов? Технически - ничем. Но “pipeline” клиентам без IT-бэкграунда объяснить сложно - они не будут понимать, как их готовить и организовывать. А вот “виртуального специалиста” они поймут хорошо - так выстроена работа в любой организации. И сразу представят, как это можно развить и применить.

Особенно, если им показать "секретного" специалиста, который на основе инструкции (и примеров всех существующих агентов) может набросать и задеплоить нового агента. Или подправить существующего.

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

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

(терминальный отладочный экран подобной сессии - в комментах)

Ну а то, что все это очень похоже на ChatGPTs, но только работает со своими документами и почти полностью локально - это только комплимент в стороную OpenAI.

Ваш, @llm_under_hood 🤗

PS: Субъективно, ChatGPT работает лучше с ролями специалистов, чем с абстрактными категориями вопросов.

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

LLM под капотом

LLM Бенчмарк Microsoft Phi 3 Mini 4K instruct 😣

В чатике несколько раз просили протестировать новую Microsoft Phi 3. К сожалению, результаты плохие (в моих продуктовых бенчмарках). Модель инструкций совсем не слушается. Подробнее можно прочитать, например, на HuggingFace discussion

Но, как это нынче модно с выкладкой моделей, Microsoft тоже накосячили с chat template.

Возможно проблемы из-за конфигов. Подожду пару деньков, пока не сделают нормальную выкладку.

Пока эту модельку пропускаем. И заодно ждем выкладки старших моделей этой линейки.

Но модель потенциально очень хороша для своего размера! 🚀 Главное только поправить ее ответы и instruction following.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

Прогресс LLM-ок одной картинкой.

Ваш, @llm_under_hood 🤗

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

LLM под капотом

В полку RWKV моделей прибыло - 🦅 EagleX v2.

Я про проект RWKV уже писал раньше. Ребята дерзают и хотят создать новую архитектуру LLMок, чтобы сгладить основные недостатки классических трансформеров (требовательность к железу и ограниченный контекст).

Они выпустили новую версию RWKV-v5 Eagle v2, которая обучена на 2.25T Tokens. Мультиязычная, работает примерно на уровне Mistral 7B v0.1 и Llama 2 7B. В области English Perplexity - даже лучше.

Эта модель - самая энергоэффективная среди 7B моделей. 5x эффективнее на 1k tokens и 100x эффективнее на 20k tokens. Подробнее написано тут.

Announcement | Hugging Face | Gradio demo | Recursal AI | Fine-tune

Понятно, что модели еще далеко до State of the Art, но скорость прогресса в RWKV меня очень радует. У recurrent LLM моделей теоретически неограниченный контекст на входе и выходе (и встроенная суммаризация).

Ваш, @llm_under_hood 🤗

PS: Кстати, в нашем чатике уже обсуждают обучение RWKV моделей с нуля.

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

LLM под капотом

State of the Art не обязательно означает качество

Чуть выше я писал про первые бенчмарки новых Llama 3 моделей на задачах из продуктов с LLM под капотом.

Llama 3 8B повела себя очень хорошо, а ее старшая 70B версия страшно глючила при запуске из HF Transformers по инструкции от Meta.

В ретроспективе можно было даже не искать ошибки в своем коде, а просто оценить число жалоб на промпт tokeniser в обсуждениях Llama-3 моделей на Hugging Face- 8B и 70B 🤣

В общем, пару деньков эти модели можно не трогать. Пусть эти ковбои из Meta перепроверят и дополируют свои конфиги.

Но 8B уже точно лучшая в своем классе, и это до всяких тюнов.

Ваш, @llm_under_hood 🤗

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