LLM под капотом – Telegram
LLM под капотом
21.1K subscribers
286 photos
7 videos
10 files
550 links
Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
Download Telegram
Как определить, что проект использует LangChain? 😉

Он не может по статье про Bitcoin ответить на вопрос "How is the work by "R.C. Merkle" used in this paper?"
🤔6
Словарик для разработки продуктов с LLM

В работе с клиентами у нас выработалась своя терминология. Она помогает точнее доносить идеи между командами и меньше путаться. Плюс код становится понятнее всем (спасибо Эрику Эвансу за Domain-Driven Design 🙏).

Привожу тут краткий словарик. Иллюстрация в комментах.

Контекст: Я работаю с продуктами, у которых под капотом не только LLM, но и большой набор данных. Еще не Big data, но в LLM на вход уже не влезает.

Поэтому в основе всегда лежат структурированные данные (structured data). Тут содержится вся информация, которую процесс с LLM должен учитывать при выполнении задачи. Например, это могут быть большие PDF, выгрузки из Confluence и истории переписок с клиентами.

Навыки (AI Skills) - это то, что делает конкретную работу. Обычно это цепочки GPT/LLM промптов, которые заточены на выполнение конкретных задач. Навыки достают релевантную информацию для выполнения задач выполнения. В отличие от агентов, навыки более специализированы, хорошо тестируются и легче отлаживаются.

(но ничто не мешает собрать дерево из специализированных навыков)

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

Реальный мир - это то, что наглядно показывает различие между практикой и теорией.

В этот момент появляется обратная связь (feedback), которая поможет сделать продукт дальше. Собирайте все, начиная от лайков/дислайков, до сообщений с жалобами и метрик из бизнеса.

Feedback лучше полуавтоматически обрабатывать и интегрировать в structured data. Ваши разработчики получат новую информацию, которую позволит улучшить систему на следующей итерации разработки. Так система будет расти и развиваться.

Улучшаем, выкатываем и сообщаем пользователям про это.

Процесс можно повторять быстрыми итерациями (rapid iterations) до тех пор, пока реальное качество работы системы не достигнет желаемого уровня.

👋 А какие специфичные термины используете вы?

Ваш, @llm_under_hood 🤗

PS: Я не умею добавлять картинки в ТГ так, чтобы текст не сужало. Поэтому иллюстрация к посту - в комментах.
👏6👍2🤩2🥰1
AI & Startups - интересный канал, который ведет хороший человек Влад. Из его последних постов мне больше всего зашли:

- Code interpreter ChatGPT - ваш новый аналитик данных
- Скорость - главная метрика успеха стартапов в эпоху AI
- Как бизнесу внедрять LLM-ки

У Влада еще есть дружелюбный чатик LangChain developers chat 🤗 И там не только про LangChain.
👍64💯1
Thread_by_@Yampeleg_on_Thread_Reader_App_–_Thread_Reader_App.pdf
37.4 KB
Vic принес в чатик интересные новости про архитектуру GPT-4.

- GPT-4 в 10 раз больше GPT-3, 1800B параметров и 120 слоев
- Но, внутри пачка экспертов (8 или 16 - не понятно). При обработке токена работает каждый только один.
- Судя по Code Interpreter, система может переключаться между экспертами на лету (это уже моя теория)
- 32k версия - это fine-tune 8k


C тех пор оригинальный твит удалили (copyright infringement), но он успел разойтись по сети. Поэтому вот PDF c текстом)

Ваш, @llm_under_hood 🤗
🤯1
Embeddings и векторная БД ищут плохо? 🔍🥺

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

Самый частый источник “фигни на входе” при работе с большими текстами - это нерелевантные индексы на базе embeddings.

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

А еще лучше - сформировать тестовый dataset с запросами и списком фрагментов, которые система должна находить. И загнать все в тестовый скрипт, который прогоняется автоматически на каждое изменение. Ему достаточно выдавать accuracy (но еще лучше - confusion matrix).

Когда есть такой тестовый dataset, можно смело экспериментировать с разными вариантами поисковых индексов, начиная с CharacterTextSplitter и до графов знаний в LlamaIndex.

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

А дальше - продолжаем собирать feedback (👍, 👎), интегрировать его в тестовый dataset и работать над повышением точности на всех данных. Большую часть этого можно делать в полуавтоматическом режиме.

Идея коллаборации!

Как насчет выбрать какой-то набор документов (открытые и доменно-специфичные, которые точно не попадают в обучение, для начала на English) и их совместно разметить вопросов на 20-40 (вопрос - релевантные части документов)?

И потом эту разметку использовать для тестирования разных архитектур структурирования данных. Можно еще сшить в один PDF файл и тестировать им разные online сервисы.

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

Что скажете?

Ваш, @llm_under_hood 🤗
🙏8👍4
Вышла Claude-v2, вот бенчмарки

Похоже, что проклятие второй версии не минуло и Claude-v2.

Пока выходит, что claude-v2 в наших продуктах работала бы хуже первой версии. За просадку в категории "code" не так жалко, а вот за docs, integrate, marketing - обидно.

Но в "reason" - она догнала ChatGPT-4 новый!

Про бенчмарки подробнее написано тут. Со времени последнего отчета, я усложнил часть бенчмарков, чтобы GPT-4 было к чему стремиться 🚀

Спасибо @Dimasfer за ключ для тестирования! 🙏💪

Ваш, @llm_under_hood 🤗
👍8🔥1
Что это изображено на фотке?

Клиент играется с мультимодальностью в BLIP и удивляется , что она ему в ответ на вопрос немного хамит.

Кто скажет, что на фото изображено?
😁31
LLM Ops

Последние дни я обновляю LLM observability стэк в проекте умной голосовой колонки. Команда должна иметь возможность видеть, как продукт используют на самом деле.

Исторически я использовал InfluxDB + Telegraf + Grafana, плюс ELK для логов.

Но тут - lean startup, плюс InfluxDB поломали все удобство своим Flux языком. А хочется один раз завести все и потом забыть детали.

Поэтому инвестирую пару дней в LLM Observability/Ops.

За последние дни освоил Loki и Prometheus для аналитики. Получился первый dashboard как на картинке. Тут выжимка текущих разговоров тестеров с ассистентом, сборка статусов в логах.

Но когда начал добавлять график использованных GPT tokens, всплыло, что prometheus не может это точно считать.

Поэтому попробую сегодня телеметрию пересадить на VictoriaMetrics.

В перспективе и business-analytics c OLTP и отдельно Amplitude. Но пока это не горит. Буду собирать данные в kafka.jsonl, а потом отправлю))
🔥9👍1
Хочу поделиться новым кейсом

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

Есть две компании. У одной очень хороший портфель услуг и продуктов. Хорошо расписаны Unique Selling Proposition. Больше скилов, чем лидов (хотя от нехватки клиентов - не страдают). Хотят больше интересных и выгодных клиентов.

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

И что они придумали?

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

У всех от новых возможностей горят глаза 🤩 Такое вот AI-driven партнерство
👍5🔥3
Везде делился радостью, теперь и здесь хочу.

Это первая версия автоматического intent-анализатора для запросов пользователей на башкирском языке. Там сразу named entity recognition идет. Под капотом - GPT-3.5 c function calls.

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

Самое классное, что тут (если смотреть на всю систему) можно попробовать сделать самообучающуюся базу знаний с human-in-the-loop. Плюс дать пользователям возможность обучать систему под себя.
🔥172👍1
moo2_manual.pdf
1.3 MB
Знакомьтесь, это мануал по Master of Orion2.

Это не только классная игрушка из древних времен, но и текст, в котором GPT сильно плавает.

А это значит, что по нему можно собрать 20-40 вопросов и использовать в качестве окрытого теста всяких information retrieval систем.

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

Я на днях хочу начать собирать тестовый датасет вопросов по этому документу. Кто-нибудь еще хочет поучаствовать?
🔥7💯1
Выкатили новую версию маркетингового ассистента клиенту. Он помогает брейнштормить идеи для статей про продукты на сайт, а также писать черновики. Плюс посты в соц сеточки.

У него под капотом два AI Skills (GPT-4) и структурированная база знаний клиента. 0% embeddings. Пост с описанием продукта и технологий: Описание кейса.

Половину картинки пришлось почикать, чтобы можно было показать интерфейс 🙈

С момента предыдущего релиза расширили базу знаний и улучшили структуру. Она тут не адаптивная, зато очень прозрачная для клиента. Они сами смогут ее развивать.
👍4🔥3
Про новую версию LLaMA v2 слышали?

По бенчмаркам круче, чем первая версия, но при этом более свободная лицензия, которая разрешает коммерческое использование (*)

Meta - молодцы. Архитектура модели совместима с v1, поэтому уже ее быстро квантизовали для запуска на CPU в формате GGML. Все доступно для скачки на Hugging Face (например, у TheBloke).

В чатике LLM под капотом народ уже обсуждает 👈

Странные моменты:
(1) В описании модели написано: "Out-of-scope Uses...Use in languages other than English. " Не-английские языки пролетают?
(2) выпустили 7B, 13B & 70B. А вот 30B релизить не стали, хотя это самый "вкусный формат"
👍1🔥1🤔1
Falcon уже не самая лучшая LLM модель.

Что самое забавное, в Hugging Face Leaderbord его обогнала не только LLaMA v2, но и новые файн-тюны первой версии. Прогресс не стоит на месте.
🎉9
Спокойно моргнуть нельзя. Вторую лламу 70B в среднем по очкам опередил какой-то файн-тюн на 30B.

Третье место, к слову, тоже 30B файн-тюн занял. Что происходит?
😁7🔥4
🤣19😁4
Давайте соберем тест для оценки качества embeddings и Q&A систем!

Я завел форму в Google docs. Любой может дописать своих вопросов по мануалу Master of Orion 2, с правильными ответами. Мануал будет в комментах.

Нужны вопросы от разных людей, чтобы было реалистично. 3-4 вопроса с человека - уже очень хорошо!

👉 Ссылка на таблицу (edit) 👈

Можно прямо заходить по ссылке и добавлять свои вопросы
🔥8🤩1
KB for marketing assistants.pdf
868.8 KB
Хочу себе маркетингового ассистента. С чего начать?

Первый шаг - собрать базу знаний про свой кейс. Как это сделать - расписано в данной методичке.

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

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

Такой ассистент экономит до 80% процентов времени, существенно расширяя воронку продаж [1].

Подробнее написано в кейсе маркетинговый ассистент.

Ваш, @llm_under_hood 🤗
---
[1] Мои клиенты говорят, что ассистент ускоряет выполнение их задач в 5-10 раз.

#клиентспросил
🔥154👍4🙏1
Хакатон на сегодня - MVP адаптивной базы знаний для hоmаi.

homаi - умная колонка, которая помогает передавать башкирскую культуру и сохранять речь.

Хочу за сегодня попробовать сделать все четыре уровня базы знаний (fast cache, strong structure, weak structure, raw data)

Если интересно, могу выкладывать прогресс в комменты.
🔥15👍3👏1
Поделюсь одним прикольным кейсом!

У клиента традиционный маркетплейс c 15k продуктов. Там есть полнотекстовый поиск по категориям, описаниям и ключевым словам. Постоянно добавляются новые продукты.

Клиент попросил прототип для генерации правильных ключевых слов для продуктов. Чтобы искалось лучше.

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

Первый вопрос сразу же: "why is the search so fast?... blazingly fast that beast" :D

Ответ: оптимизировали поиск, выкинули все ненужное, вроде LangChain и векторных БД, поэтому там тормозить нечему. Заодно и на проде лучше нагрузку будет держать. 💪

Ваш, @llm_under_hood 🤗
🔥14
умная колонка, говорящая по-башкирски.

Давайте расскажу про этот классный кейс, мой самый крутой и сложный продукт в области ML/LLM.

Все слышали про Siri, Alexa или Алису. С ними можно поговорить на разных языках:

- Google Assistant ~ 44 языка
- Apple Siri ~ 21
- Microsoft Cortana ~ 8
- Alexa ~ 8
- Алиса - 1

Но в мире всего существует более 7000 языков. Из них 1500 исчезнет к концу столетия. С языками может исчезнуть и культура - старые традиции, сказки, рецепты, и многое другое. В общем, беда и непорядок.

Мы хотим сберечь все это наследие, one language at a time. Поэтому мы делаем умную колонку, которая помогает передавать башкирскую культуру и сохранять речь.

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

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

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

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

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

- Корпус с начинкой, микрофонами, wake word detection и всяким digital signal processing, чтобы было с чем поговорить
- Распознавание речи, озвучка ответов, переводчики, embeddings и прочие языковые модели для оцифровки языка и речи
- Сбор корпусов текстов и баз знаний по башкирской культуре
- Серверная инфраструктура, боты, вспомогательные сайты, чтобы все это работало вместе.

Проект возможен благодаря поддержке и помощи множества людей: дикторов для синтезатора, тестировщиков, волонтеров, которые записывали голоса для Mozilla Common Voice, собирали данные и вычитывали тексты - людей, которым важен башкирский язык.

В общем, это реально сложный и интересный кейс, который пилит распределенная команда. Такой стартап с народной поддержкой.

Конечно, приходится много учиться, быстро адаптироваться, выжимать максимум из доступных LLM-ок и архитектур. Процесс работы построен на принципе research lab с быстрыми итерациями и продуктовым подходом во главе. Все это не было бы возможным без сотрудничества с талантливыми специалистами и классными проектами по всему миру.

Экспертиза, полученная во время работы с оцифровкой речи и культур, помогает и в реализации коммерческих проектов: information retrieval, domain-specific assistants, and business process automation. Особенно от этого выигрывают клиенты, которым нужно создавать продукты для мультиязычных аудиторий.

Технологиями по спасению языков мы делимся с сообществом в рамках “Языки разные - код один”, а про продуктовые инсайты и наработки можно будет продолжать читать тут)

Ваш, @llm_under_hood 🤗
23👍6