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

Luminous - это европейский ответ на Chat GPT. По очкам luminuous-extended-control пока даже хуже, чем vicuna 13B.

Еще добавили "open ensemble". Если верить слухам, то ChatGPT-4 - это aнсамбль из 8 экспертов, а чем локальные модели хуже?

open ensemble - в каждой категории берем лучшую не проприетарную модель (которую можно запустить локально), и используем ее результаты.

Понятно, что результаты "open ensemble" высосаны из пальца, но позволяют прикинуть потенциал использования под задачи лучших в своем классе моделей.

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

Ваш, @llm_under_hood 🤗
👍9🔥3
Перекличка! 🙌

В нашем чатике собралось много специалистов (из 170 подписчиков канала “LLM под капотом” 110 добавились прямо в чат).

Давайте представимся и познакомимся в комментариях:

(1) кто вы и чем занимаетесь?
(2) на каких кейсах специализируетесь?
(3) какие услуги вы предлагаете?

Обо мне:

Я - Ринат Абдуллин, технический консультант, помогаю запускать продукты с ML/LLM.

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

Я работал с разными командами, начиная с небольших BigData/SaaS стартапов и до запуска отдела Data Science в международной транспортной компании. Cайт, twitter, LinkedIn.

Сейчас я веду 7 кейсов продуктов на базе LLM (Q&A системы и ассистенты для компаний), делясь опытом здесь в канале. А еще отвечаю за ML & Innovation в Trustbit, веду LLM Product Leaderboard и публикую newsletter для англоязычной аудитории.

Чем занимаетесь Вы? 🤗
🔥13👍54
Новая модель LongChat с контекстом в 16k!

Её выпустили LMSYS, которые раньше сделали Vicuña.

Говорят, что качество сравнимо с Vicuña. Примерная стоимость обучения моделей с нуля на A100 за $300 + $700 (7B и 13B)

https://lmsys.org/blog/2023-06-29-longchat/
🔥7👍5
Про внедрение маркетингового ассистента, с раскрытием секретов 🤗

Описание кейса тут: кейс 👈

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

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

В прошлый четверг, я улучшил прототип, "написал" пачку новых статей и отправил для проверки.

Как улучшал? 👨🏻‍💻

Сначала собрал документы про новую отрасль и продукты. Отрасль и продукты взял из маркетинговых материалов. Сконвертировал Product sheets в текстовый формат для удобства LLM. Докинул еще пару комментариев от экспертов, пометив их для системы как "важно!"

Все это я добавил в базу знаний и разметил. И сразу пометил новые секции для использования на этапах brainstorming / draft (этапы показаны на схеме)

Потом завел в базе знаний новую секцию про "company voice", куда практически 1 в 1 скопировал пожелания клиента. Пометил эту секцию для использования в написании финального текста.

После того, как я прогнал цикл написания статей пару раз, увидел, что тексты стали лучше, но агент порывается втюхивать 🛑 Втюхивать нам не надо!

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

Поэтому я просто дописал в секцию company voice:
(1) не обращайся к аудитории напрямую
(2) не дави на эмоции
(3) не используй такие слова (список)

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

Результат: клиент очень рад результатам, говорит про milestone и хочет выкатить поскорее у себя.

Cамый прикол в том, что этот milestone был сделан за 2 часа в сумме. 🤪

И это очень круто. LLM - это рычаг, который во много раз увеличивает производительность:

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

Пользуйтесь этим рычагом! 💪

Ваш, @llm_under_hood 🤗
👍19🔥4
Надоели галлюцинации? 😵

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

Продукт - площадка для продажи товаров. Что-то вроде специализированного аналога ebay/Avito/WillHaben. При выкладывании товаров, продавцам надо заполнять описание, выбирать категорию и подкатегорию. От правильного заполнения много зависит.

Но люди могут делать ошибки или просто отваливаться на этом этапе. И то и другое - плохо.

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

Естественно начинали с тестовых наборов данных. На цифрах все было достаточно неплохо.

Subcategory guessed right: 66.7%
Subcategory is within 3 options: 90.9%


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

Hallucinated categories: 63.6%

Что делать? Слушать модель!

Галлюцинации моделей - это полезная штука. Они показывают области, где модель выходит за рамки комфорта и начинает придумывать что-то свое. Такое происходит, когда в контекст подается слишком мало необходимой информации. Модель в таких случаях пытается угодить человеку. Она начинает “заполнять пробелы” за счет своей памяти, которая осталась от обучения и fine-tuning. Вот только эта память - как JPEG с максимальным сжатием, дырявая и порождает артифакты.

Ситуация становится хуже, если в контекст попадает нерелевантная информация. Модель начнет и ее притягивать за уши, умножая галлюцинации.

Поэтому, если видим галлюцинации, то начинаем смотреть на контекст - упрощать, уменьшать количество концепций и улучшать соотношение signal/noise.

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

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

Subcategory guessed right: 76.9%
Subcategory is within 3 options: 86.2%
Hallucinations: 1.0%

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

Ваш, @llm_under_hood 🤗

#клиентспросил
🔥16👍3
Смотрите, как интересно!

Июньская gpt-35-turbo-16k обогнала не только мартовскую gpt-35, но и claude-v1 на продуктовых бенчмарках.

А вот июньская GPT-4 показывает результаты чуть хуже предыдущей версии GPT-4. Похоже, что оптимизация производительности не прошла даром.
👍6🔥3👏1
GPT-4 Code Interpreter - это нечто 🤯

Это как Jupiter Notebook вместе с Junior Data Scientist, который послушно выполняет указания. График в начале - это его ответ на мой вопрос.

Я задал такой вопрос, и ChatGPT довел его до конца с первого раза!

Generate a simple SQLite schema for an online store, fill it with a realistic sample data using a generator. Then come up with a way to analyze that data with a query. Compute the answer and plot results beautifully. Add to the plot big noscript "Sample Plot Made by GPT-4 with Code Interpreter".

По пути он споткнулся об exception с datetime, сам перед собой извинился, поправил и пошёл дальше. В итоге он выдал мне готовый график.

Теперь вместо возни с юпитером буду мелкие datasets загружать в ChatGPT и просить «сделай мне красивый анализ»
🔥7👍1
Как зайти в LLM/GPT программисту?

Вышла обзорная статья от участницы нашего чата - tigris. Там и про нас говорится)

Пожалуйста, читайте и комментируйте, чтобы мотивировать её на написание более детальных статей и кукбуков! 😉

https://habr.com/ru/companies/ascon/articles/745594/
🎉9👍2🤗1
Как определить, что проект использует 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