LLM под капотом – Telegram
LLM под капотом
21.1K subscribers
286 photos
7 videos
10 files
550 links
Канал про разработку продуктов на базе LLM/ChatGPT. Выжимка важных новостей и разборы кейсов.
Download Telegram
GPU у NVidia становятся круче с каждым поколением. Мало им было чипа GH100 (80-94GB GPU с интегрированными 72 ядрами ARM Neoverse v2 и до 420GB вшитой оперативки), так они ещё и DGX кластер под это сделали. 256 чипов вместе и 24TB GPU.

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

И это хорошо, ведь качественные модели можно потом тюнить и сжимать под собственные задачи :)

https://www.anandtech.com/show/18877/nvidia-grace-hopper-has-entered-full-production-announcing-dgx-gh200-ai-supercomputer
🔥2
Две маленькие продуктовые радости сегодня!

Прототип продукта на базе information retrieval помог выиграть клиенту крупный контракт. Там была демонстрация использования GPT/LLM для поиска потенциальных заказов в очень узкой нише. Фактически, скачиваем публичные отчеты компаний, нарезаем в embeddings и задаем очень конкретный вопрос через GPT. Если ответ - "да", то это очень хороший клиент)

Во вторых, сегодня закончили второй information retrieval прототип по кейсу "персональный ассистент в компании". В итоге долгой и нудной доводки индексов пришли к тому, что:
(1) выкинули OpenAI Ada и заменили на SBERT для embeddins + document re-rank. Оно теперь работает локально, быстро и без timeouts
(2) просто так скармливать базу знаний клиента не получилось. Пришлось разбирать ее структурно на косточки, и потом уже индексировать.
(3) LangChain по пути выкинули совсем. Так что embeddings + document re-rank сделан на простом самописном коде. Остался только кусок LlamaIndex для последнего шага answer refinement. Но хочется и его выкинуть нормально переписав, ибо эта часть работает как нестабильный черный ящик.

За исключением этих деталей, продукт снаружи выглядит весьма магически. Этакий Bing на данных компании, или свой ChatGPT с браузером. Если все будет хорошо, скоро покажут клиенту.

Список потенциальных улучшений - гиганский, но на то и прототип в продуктовой разработки, чтобы проявлять максимум лени и делать абсолютно необходимый минимум работ)
🔥121👍1
Ребята из LMSYS выкатили новый бенчмарк языковых моделей.

Лучшая модель - GPT-4 💰
Лучшая модель, которую можно запустить самим - Vicuna-13B, 5 место 🥷
Лучшая Open Source модель - Mosaic-7B-chat, 9 место 🍺
👍3🔥3
Клиенты у меня интересуются чаще всего двумя вопросами:

(1) Когда моя компания сможет запустить мощную LLM локально, чтобы данные не отправлять в сторонний API?
(2) чем нашей компании грозит желание США/ЕС зарегулировать все AI модели по самое «не хочу»?

Со вторым вопросом пока все сложно, а вот мигрировать продукты на локальные модели без потери качества можно будет начинать в 2024 году (если верить бенчмаркам)

Ещё вчера лучшей Open Source LLM моделью была mpt-7b-chat, но с тех пор прошла вечность. Модель Falcon-40B (и 7B) теперь стала Apache 2.0! Её можно использовать без ограничений в коммерческих целях.

По бенчмаркам HuggingFace Falcon уделывает даже LLaMA со всеми файн-тюнами.

Версии сжатые до 4bit запускаются даже на двух 3090/4090.

Погнали проверять, как наши продукты работают на Falcon? :)

#клиентспросил
🔥5👍2
Хочу порекламировать русскоязычный Langchain Developers Chat, русскоязычный. В отличие от большинства каналов и чатов на тему ChatGPT/LLM, он фокусируется не на теории а на практике применения технологий. LangChain, LlamaIndex, embeddings, vector databases итп.

Годные обсуждения.
🔥8
Evolutionary Pressure
(или про то, как модельки будут становится маленькими и специализированными)

На прошлой неделе я опубликовал newsletter про бесполезность грядущих законопроектов ЕС в области AI. В LinkedIn сразу же набежали адвокаты и начали пинать меня на тему, что закон трактовать должны только эксперты)

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

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

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

Еще одна причина, по которой все будет двигаться в сторону мелких моделей - вычислительные ресурсы. GPU сейчас никому не хватает, начиная от OpenAI (они сами сказали) до маленьких компаний. Поэтому люди и запихивают модели на все подряд. Мелкие модели запихиваются лучше крупных.

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

HuggungFace запилили очень подробную статью про эту модель, как ее тюнить, готовить и использовать.

Кто-нибудь уже пробовал ее использовать в проектах?
Реальный диалог вчера, про то, как GPT-4 спасает время админов от всяких ненужных мелочей.
.
ML Engineer сисадмину: Можешь помочь добавить web sockets на этот вот nginx сервер?
Сисадмин: Не проблема, давай созвонимся в обед
ML Engineer: все нормально. Я уже скормил конфиг GPT-4, попросил его добавить советы туда. Он ответил, и все заработало 😂
😁2👍1
Microsoft Azure приостановила выдачу GPT-4 😢

Вот такое сообщение от Microsoft мне сейчас переслал клиент:

Please note that we are currently paused on onboarding new GPT-4 customers due to the high demand and do not have an estimated time for when we will onboard new customers.

Это значит, что запускать новые проекты будет сложнее и дольше. Из провайдеров GPT-4 остался только OpenAI, а он постоянно страдает от нагрузки.

Что можно сделать, если продукты запускать все равно надо?

(1) Податься на Azure OpenAI GPT-4 про запас.
(2) Податься в Anthropic, а заодно и в Amazon Bedrock, чтобы иметь доступ к Claude про запас (хуже GPT-4, но лучше GPT-3.5 turbo).
(3) Морально готовиться к тому, что GPU ресурсов может пока не очень хватать. Отлаживать миграцию на локальные модельки послабее. Тем более, что там ситуация с каждым днем получше.
😱2😢1
Пишу очередной newsletter про то, что сейчас GPU у крупных компаний мало, и надо искать альтернативы. А тем временем Айгиз присылает результаты прогона нашего бенчмарка на первых моделях из ggml семейства. И это 🤦

Альтернативные модели хороши, но с ними надо работать иначе, чем с самыми популярными instruct. Как вы с ними справляетесь?
👍1
Появилась многообещающая модель Lazarus-30B. Она сразу прыгнула на второе место HuggingFace Leaderboard.

Под капотом - смесь патчей (LoRA), которые надергали с разных моделей и слили вместе. Оказывается, и так можно 🤯

Это пока самая многообещающая открытая модель в наших продуктовых бенчмарках.
👍4🔥4🤯1
Наткнулся на интересный феномен. Wizard-Vicuna-13B без guardrails в HF leaderboard на 12 позиций выше версии с цензурой.

Интересно посмотреть, какой будет рейтинг у WizardLM-Uncensored-Falcon-40b
😁4👍2
Потихоньку продолжаем разрабатывать продуктовые бенчмарки для LLM моделей .

Зачем?

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

На сегодня это все выглядит вот так. Красного сильно больше, чем зеленого, но все промпты были пока заточены только под InstructGPT модели. Придется их переписывать и на поддержку базовых моделей :)
🔥3
Кейс продукта с LLM под капотом: Ассистент маркетолога в компании #aicase

Оглавление:
(1) описание продукта (этот пост)
(2) секреты реализации
(3) архитектура проекта
(4) feedback клента и дальнейшие улучшения
(5) методичка по сбору базы знаний для ассистента
(6) как добавить креативности и разнообразия в тексты ассистента
(7) 🔥 Вторая версия со свободным написанием статей + пример и отзыв клиента

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

🤔 Проблема. Клиент - это небольшая компания с лучшей в мире продукцией для очень специфичной ниши. При этом их практически "не видно" в интернете. Сайт скуден (его переделывают третий год), маркетинговых компаний в соц-сеточках не ведется. Хочется заслуженной мировой славы, но не хватает людей и сил.

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

Решение - ассистент маркетолога в компании, который встраивается в процессы отдела маркетинга.

Например, когда надо работать над заполнением сайта статьями про продукты: ассистент вытаскивает из базы знаний необходимую информацию и набрасывает возможные идеи статьей для выбранного продукта. Каждая идея фокусируется на:
- одной аудитории (чьи проблемы решаем?)
- одной проблеме
- 2-3 уникальных фишках продукта (USP)
- решении проблемы нашим продуктом
- ощущениях / эмоциях после решения проблем
- call to action

Человек потом выбирает из пачки идей наиболее понравившуюся. Галлюцинации отсеиваются на этом этапе (хотя их особо не замечал с таким подходом)

Дальше ассистент набрасывает несколько черновиков статьей на основе этой идеи. Он пользуется все той же базой знаний, плюс конкретным описанием структуры статьи. Прямо по рецептам Майи Богдановой :) То есть без всякого впаривания и пустого хайпа. Спокойно и с достоинством. Придерживаемся brand identity и ценностей компании.

Человек просматривает черновики, выбирает наиболее понравившийся и при желании допиливает. Просмотрев первые черновики маркетологи сказали: "the first drafts turned out well and can be read very fluently"

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

Про реализацию кейса 👉 тут 👈

---
Кейс продукта c LLM под капотом из канала https://news.1rj.ru/str/llm_under_hood.
🔥14👍74
🔧 Реализация: под капотом вручную структурированная иерархическая база знаний и пачка запросов к GPT-4.

Изначально я надеялся обойтись просто промптом в духе "Эй, напиши-ка мне хорошую статью про продукт. Вот тебе тех спеки вродукта!” Но на выходе была галиматья, впаривание и галлюцинации. 🤪

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

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

То есть ключевые шаги:
(1) вот тебе весь контекст про продукт, с которым даже выпускник-маркетолог сможет набросать пару идей. Набросай их мне. Ничего не выдумывай - проверю.
(2) Вот тебе годная идея статьи и весь контекст про продукт. Набросай мне черновиков статей. Ничего не выдумывай - проверю.


🤔 А что там с базой знаний? LLamaIndex или LangChain?

База знаний - это пачка тесно связанных документов. Поиск по embeddings вечно вытаскивал ерунду. Да и любой поиск вытаскивал не совсем то, что надо.

Поэтому я вручную иерархично структурировал документацию как книгу, с оглавлением. Как если бы делал это для человека, у которого стоит такая же задача. А потом я просто спросил у GPT - какие главы про компанию тебе больше всего нужны, чтобы набросать хорошие идеи? А какие главы про отрасль продукта?

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

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

🍀Bonus mode продукта - выбор направлений для маркетинговых исследований.

У нас уже есть хорошая база знаний, с которой система сама неплохо работает. Поэтому можно сделать такую фишку. Если человеку не нравятся идеи или черновики, то можно спросить систему "а какую информацию можно добавить в базу знаний, чтобы в этой статье исправить эти проблемы?" Советы выходят довольно неплохие. Делаем исследования, заполняем базу знаний, и ассистент становится умнее для всех последующих задач.

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

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

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

Если у кого есть вопросы и идеи схожих продуктов, где LlamaIndex & LLangChain уже не вытягивают, пишите в чат. Можем обсудить вместе.

Update: вот методичка по сбору базы знаний для такого ассистента.
🔥84👍4😁1
Архитектурная диаграмма для продукта с LLM под капотом: Ассистент маркетолога в компании.
🔥61
Теперь новое развлечение - качаю подряд все модели из топов, которые можно завести локально на Mac Air с 24GB черех llama.cpp.

13B тянет приемлемо для бенчмарков, а вот 30B уже надо на отдельном сервере с нормальной GPU запускать.

Кто как запускает для тестов тяжелые модели?
🔥2👍1
Roman D спросил, как я запускаю large language models локально на ноутбуке.

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

Дано:
- Apple Mac Air (M2 + 24GB)
- llama-cpp-python - питоновская обертка вокруг llama.cpp, которая позволяет запускать модели хоть на CPU (либо выгружать часть слоев на GPU)
- папочка с ggml моделями, которые выкачиваю с hugging face (ggml - это формат, который понимает llama.cpp и куча других приложений)

Причем, mac не обязателен. Можно хоть на RaspberryPi поднять, просто будет меееедленно работать.

Запускать можно так:

```
>>> from llama_cpp import Llama
>>> llm = Llama(model_path="./models/7B/ggml-model.bin")
>>> output = llm("Q: Name the planets in the solar system? A: ", max_tokens=32, stop=["Q:", "\n"], echo=True)
>>> print(output)

```

Можно еще использовать саму llama.cpp, чтобы делать то же самое из коммандной строки, там даже есть интерактивный режим, если хочется ChatGPT с исторей.

Если же хочется GUI, то можно посмотреть:

- LM Studio - запускатор локальных моделей
- GPT4All - интерфейс и экосистема для обучения и запуска моделек локально
- oobabooga - гуйня для запуска и тюнинга локальных моделей
- koboldcpp - визуальная обертка вокруг llama.cpp
- MLC Chat - запускать модели даже на своем телефоне 🤯

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

Cсылками на LMStudio, GPT4ALL, MLC Chat и LocalLLama поделился в чатике. A P. Спасибо!

Ваш, @llm_under_hood 🤗
🤗8🔥63👍2