LLM под капотом – Telegram
LLM под капотом
21.1K subscribers
286 photos
7 videos
10 files
549 links
Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
Download Telegram
Небольшой 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
👍34😁6🔥4😱21👎1🤩1
Давайте расскажу свою идею стартапа

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

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

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

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

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

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

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

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

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

Ваш, @llm_under_hood 🤗
👍32🔥7💯7🤔3🤩32
Вебинар “Проектируем и внедряем AI-ассистенты с LLM под капотом”: дата и время проведения нового потока

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

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

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

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

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

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

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

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

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

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

Ваш, @llm_under_hood 🤗
22🔥8👍3🤡2
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)
🔥14👍92
#weekend пост про моего персонального ассистента

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

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

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

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

Ваш, @llm_under_hood 🤗

PS: Что за интерфейс? Как обычно, это преимущественно результат работы ChatGPT. 60 строчек Python+Jinja2+HTML и еще 80 строчек каких-то CSS стилей.
🔥35👍15
Тем временем, места на третий поток вебинара “Проектируем и внедряем AI-ассистенты с LLM под капотом” закончились. Группы я делаю небольшими, чтобы мы с участниками вебинара могли эффективнее обсудить кейсы и разобрать вопросы.

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

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

Ваш, @llm_under_hood 🤗
16👍8😢4
#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 продаж
🔥33👍165🤔1
Gemini Experimental доступна на Google Vertex AI

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

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

Ваш, @llm_under_hood 🤗
👍132
Enterprise RAG Challenge: ориентировочно конец Апреля-Май

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

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

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

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

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

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

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

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

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

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

Ваш, @llm_under_hood 🤗
🔥639👍8
Ваш, @llm_under_hood 🤗
😁29🤣15
Бенчмарк Command-R+

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

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

Ваш, @llm_under_hood 🤗

---
Предыдущие LLM бенчмарки в канале:
- бенчмарки февраля 2024
- FAQ по декабрьскому бенчмарку
- март (Haiku)
- Март (Claude 3)
- Cohere Command-R
🔥10👍3
Как сделать так, чтобы 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 🤗
🔥64👍159😱21👎1😁1
#клиентспросил
После первого хайпа 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 🤗
👍30🔥15🤝1
Интересную 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 🤗
🔥4810🤯5👍4
🚀 Новая модель в топе продуктового LLM бенчмарка! #bench

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+

Описание работы, категорий и примеры кейсов есть в лабах. #bench
👍38🤩118🔥2🤔1
Что такое Knowledge Maps?

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

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

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

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

Ваш, @llm_under_hood 🤗

PS: И нет, Knowledge Map - это не Knowledge Graph.
🔥40👍21
#вы_спросили про 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 🤗
👍18🔥61
Первые шаги при реализации умного поиска (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 🤗

Update: продолжение про агентов написано тут.
👍74🔥2411🎉1
Новый инструмент для дообучения 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 🤗
🔥43👍10🤗81🥰1
Вебинар “Проектируем и внедряем AI-ассистенты с LLM под капотом”: 25 апреля в 11:00 GMT+3 (московское время)

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


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

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

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

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

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

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

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

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

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

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

Ваш, @llm_under_hood 🤗
🤝9👍7🔥21🤡1
Упс. Места на четвертый поток вебинара в этот раз разлетелись особенно быстро. Вчера мы разослали уведомление о начале продаж всем, кто записался в waitlist. Сегодня опубликовали анонс в канале, а час назад группа набралась полностью.

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

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

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

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

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

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

Ваш, @llm_under_hood 🤗
🤝35👍13🔥81