LLM под капотом – Telegram
LLM под капотом
21.1K subscribers
286 photos
7 videos
10 files
549 links
Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
Download Telegram
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
В чатике появились вопросы про процесс разработки ML продуктов с распределенной командой.

Вот как выглядел старт проекта Һомай в первую пару месяцев. #homai

Одна доска на Miro, регулярные retrospectives и созвоны для синхронизации. Mission/Vision, cтратегия, ценности, инициативы и roadmap. Мелкий kanban вместо JIRA. Все - это исключительно для себя.

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

А эта доска Миро уже отвалилась в прошлое, как артефакт.

Ваш, @llm_under_hood 🤗
🔥73
Слышали про LK-99? Это не LLM. Но может стать поворотным моментом в истории.

В общем, авторы придумали способ получить сверхпроводники, которые работают при комнатной температуре. Если это так, то авторы без вопросов получают нобелевку. Даже если сверхпроводники слабенькие, это открывает новое направление для скачка CPU/GPU.

Куча лабораторий по всему миру сейчас пытаются повторить результаты статьи. Будем знать точнее на следующей неделе. Вероятность того, что что-то стоящее - 25%
🔥8🤯6
Llama v2 - трепло. Вот новые продуктовые бенчмарки, и она там на самом дне.

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

Говоришь второй Llama: You extract product properties from provided text. Respond in format: "number unit" or "N/A" if can't determine. Strip quotes, thousands separators and comments. а она тебе в ответ: Sure thing! Here is the answer to your request:

И как это парсить стабильно?

Из открытых моделей, которые мы тестировали, старые версии Vicuna пока умеют лучше всего следовать инструкциям. Ну а OpenAI GPT-4 стабильнее лучше всего.

Ваш, @llm_under_hood 🤗
👍10
Чтобы быстро поднять Ops инфраструктуру для продукта - я использую Terraform + NixOS. Это самое быстрое, простое и надежное для человека, который нисколько не DevOps 😁

Terraform - чтобы завести ресурсы в облаках (начиная с GCP и до Hetzner).

NixOS - это как Terraform, но для самих виртуалок. C ним можно описать сервер, а потом сделать nixos rebuild. Он либо исполнит все до конца, либо откатится назад на стабильную конфигурацию (в отличие от Ansible и аналогов 😉)

На скриншоте - часть описания Ops сервера, про wireguard. В этом файле у меня еще строчек 240. Они описывают HTTPS сервер со всеми хостами, Grafana, VictoriaMetrics, prometheus scrapers, loki, promtail.

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

В общем, если нужно быстро разворачивать сервера, а времени особо нет - всячески советую обратить внимание.

Ваш, @llm_under_hood 🤗
🔥10👍3
LLM Upgrade Guidance:
(1) ChatGPT 0314->0613 - upgrade with caution 🚧
(2) Anthropic Claude v1->v2 - don't upgrade 🛑
(3) LLaMA v1->v2 - upgrade to a fine-tune

В комментах - скриншот с самой последней версией продуктового бенчмарка LLM после того, как я пофиксил кучу мелких проблем и багов. И на этом с бенчмарками на месяц пока все.

Q: Чего там оптимизировать? Запустил промпт и все.
A: Засада в оптимизации задач сразу под все модели. Это как писать сайты под 20 разных браузеров со своими заморочками. Понятно, что instruct format можно шаблонизировать, но у каждой модели всегда есть свои нюансы. Особенно, если стараться выжать максимум.

Q: А чего модели в бенчмарках постоянно скачут вверх-вниз?
A: Ну не постоянно, но такое есть) Во-первых, благодаря новым клиентам и кейсам потихоньку добавляются новые бенчмарки. Во-вторых, находятся новые способы улучшить качество моделей на существующих бенчмарках.

Вот последние инсайты:

(1) Почему пробелы лучше не ставить в конце промпта completion моделей? Да потому, что все эти tokeniser-ы привыкли включать пробел в начало слова (см скриншот в следующем посте). А если промпт заканчивается пробелом, тогда модели придется выбирать более редко используемый token, который с пробела не начинается. Качество чуть-чуть от этого страдает.

(2) Не забываем про logit bias, который позволяет подкручивать вероятности тех или иных tokens на выходе. Он есть как в OpenAI ChatGPT, так и в локальных LLM-ках. Например, если в ответе мы ожидаем, что модель выберет между N фиксированных вариантов, можно заставить модель выбирать только между ними. Ну или еще можно "запретить" модели использовать какие-то слова.

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

Ваш, @llm_under_hood 🤗
👍8🔥2
Вот почему промпты лучше не заканчивать пробелом.

Кстати, заметили, что в нижнем окошке "weaker" разорвано пополам переносом? Это потому, что мы кавычками заставили токенизатор использовать запчасти "we" "aker" вместо слова " weaker". И похоже, что переносы тут сделаны по границам tokens :)

Ваш, @llm_under_hood 🤗
👍5🔥2🤔1🤯1
Кто разрабатывает свой продукт с LLM под капотом?
Anonymous Poll
13%
Уже есть продукт
45%
Да, как раз разрабатываю
33%
Нет, но хочется
9%
Не планирую
🔥3