bogdanisssimo | Unsorted

Telegram-канал bogdanisssimo - bogdanisssimo

3818

Subscribe to a channel

bogdanisssimo

HyDE (Hypothetical Document Embeddings)

Звучит прямо как название босса Hades из God Of War 3 (с англ., Аид). В принципе, клыки которыми тот разбрасывался, цепляясь за души, вполне рифмуются с содержанием подхода. Не удивлюсь, если авторы те ещё геймеры и вдохновлялись игрой при написании статьи.

HyDE это приём из серии Advanced RAG techniques, который позволяет качественно повысить покрытие нашего ретривера (алгоритма поиска релевантного контекста из базы знаний), выцепляя тот контекст, который обычный RAG почему-то не выцепил. Как работает обычный RAG (Retrieval Augmented Generation), Я описывал в этом посте.

Идея в чём? При стандартном RAG в качестве "ответов" служат документы из базы знаний. В качестве "запросов" служат вопросы от пользователей. Есть гипотеза, что эмбеддинг вопроса и эмбеддинг ответа – несколько из разного семейства. По аналогии, ключи и значения в механизме внимания трансформеров – это разные вектора.

Вместо этого, в HyDE вместо поиска по запросу мы сначала генерируем "гипотетические ответы", т.е. что было бы написано в "гипотетическом документе, содержащем ответ" (какой он был бы по форме и что примерно в нём написано) – получаем его эмбеддинг и по нему ищем. Таким образом, мы будем считать близость уже не между эмбеддингом запроса и эмбеддингом ответа, а между эмбеддингами ответов. Для генерации гипотетического документа используем любимую LLM, например, для удешевления костов и ускорения, GPT-3.5.

Важно. Это может дать буст вашему RAG, а может и не дать. Так, ребята из OpenAI на DevDay говорят, что когда работали с одним из клиентов, им удалось повысить покрытие с 45% до 98% за счёт разных техник, однако в том конкретном случае HyDE (наравне с файн-тюном эмбеддингов документов) оказался не в числе модифицкаций, повышающих точность. No Free Lunch Theorem: не узнаете, пока не попробуете на своём конкретном кейсе.

Оригинальная статья: https://arxiv.org/abs/2212.10496

#LLMOps

Читать полностью…

bogdanisssimo

https://youtu.be/J9f-mWOmHwU

Читать полностью…

bogdanisssimo

3. Ensemble with choice shuffle. Здесь начинается уже специфика бенчмарков, где на выходе ожидается вариант ответа, выбранный из заранее определённого списка. Если это не кейс вашего приложения, вам эта часть будет бесполезна. Проблема: как показала практика, порядок вариантов, из которых нужно выбирать, статистзначимо смещает выбор варианта при перезапуске генерации много-много раз. Чтобы это обойти, перемешиваем варианты, например, 5 раз и выбираем самый популярный (что требует 5 вызовов, вместо 1, Я ещё не думал в сторону, можно ли оптимизировать косты промпта здесь с помощью Моего любимого магического параметра n, но да ладно).

Вот и весь Medprompt. Даёт какие-то мощные приросты в точности и обгоняет fine-tuned модель от Google, Med-PaLM 2.

Мне в юзкейсах достаточно few-shot kNN + CoT + ещё разной магии, у Меня нет заранее предопределённых вариантов, поэтому нам choice shuffle не актуален. Шаблоны промптов с картинки можно покурить здесь, там ничего сложного. За ссылочки и помощь в разборе спасибо Игорю (@seeallochnaya).

P.S. Поделитесь, а какие из этих техник вы применяете у себя в LLM-продуктах? Мне и другим будет интересно узнать.

#LLMOps

Читать полностью…

bogdanisssimo

В пятницу рассказываю про стартап

Читать полностью…

bogdanisssimo

У некоторых следует отбирать Miro

Читать полностью…

bogdanisssimo

Получается, майлстоун 😈

Читать полностью…

bogdanisssimo

С ЧЕГО НАЧАТЬ?

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

Прямая аналогия: вы можете инициализировать веса нейронки не самым лучшим образом, взять далеко не самое лучшее начальное приближение, но если вы сделаете back propagation достаточно большое количество шагов, то сойдётесь в локальный минимум. Цель создания MVP не в том, чтобы попасть сразу в сердечко пользователя и идеально угадать решение его проблемы, а в том, чтобы попасть хотя бы в радиус сходимости и как можно раньше начать собирать фидбек, итерироваться, валидировать гипотезы на реальных пользователях, готовых голосовать рублём.

Думаю, проблема многих в том, что они рассусоливают уже на старте, гадая а с чего лучше начать и всё больше отодвигая момент, когда цепочка обратной связи с миром замыкается (итераций общения с пользователями и улучшения продукта). Напоминает знакомство с девушкой и продумывание идеальной фразы, чтобы заговорить, – пока будешь думать, с ней познакомится уже кто-то другой и поведёт её показывать свой новый Quest 3.

Похвастаюсь, у Меня от идеи до первых платных клиентов прошло менее 24 часов (получается, освоил искусство писать код из говна и палок, как и хотел 3 года назад). Как сказал Наполеон, главное, ввязаться в бой – а там видно будет.

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

Читать полностью…

bogdanisssimo

👉

Читать полностью…

bogdanisssimo

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

С апреля Я живу на Бали, до этого жил в Ташкенте. Долгое время думал, лететь или не лететь (звал с собой лучший друг). Настораживало 2 вещи: вайб Бали и климат Бали.

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

С климатом всё интереснее. Меня беспокоило, что в отличие от цивилизации (Ташкента и Москвы) на Бали, как и в других жарких странах, – в костюмах не пощеголяешь. А у Меня был долгий путь поисков себя в том, что касается одежды и стиля. В конце концов, нашёл себя в классике. Рубашки и пиджаки – как вторая кожа. На аватарке канала, сюрприз, тоже Я.

Прилетев на Бали, удивился тому, что в отличие от Тайланда здесь сильно приятнее климат. Температура та же, но за счёт влажности, нет духоты, и главное, Я не сгораю за первый день без противозагарного крема. Что касается одежды, первые месяцы Я стиснув зубы ходил как и все в футболках, шортах. Не могу ничего с поделать со своей природой, но ощущаю себя в футболках (а тем более oversize) как мальчик, а не мужчина.

Выходит, значит, пару месяцев назад DALL·E 3. Мой чуть ли не первый запрос: Я такой-то внешности, люблю классику, но сейчас Я живу на Бали, как Мне одеваться чтобы быть в гармонии с собой? – на что Я сходу получаю совет поиграть с льняной одеждой и несколько вполне резонирующих со Мной прикидов. На следующий день нашёл великолепный магазинчик льняной одежды (кстати, кто на Бали, рекомендую), что оттуда не надень – всё идеально на тебе сидит, люблю такое. С того момента хожу только к ним.

К чему Я обо всём этом вспомнил? Последние недели со Мной всё чаще знакомятся в кафе и ресторанах как девушки так и мужчины, просят Instagram. Первое, на что все обращают внимание, это именно, что Я выделяюсь на фоне всех стилем. Как всегда, нас встречают по одёжке.

Мелочь, а приятно.

Читать полностью…

bogdanisssimo

Что такое MVP? Вот самое лучшее объяснение, которое Я встречал. Даже в Y Combinator настолько доступно не объясняют.

Не устаю делиться ссылочкой:

https://youtu.be/3rUM5Mzx8CQ?si=JX1j4EKe1ldtcRBm

После этого ролика у вас начнётся MVP головного мозга и на +20% прокачается айкидо-суперскилл создавать продукты из говна и палок, которые работают, тестируют гипотезы и, если повезёт, наносят счастье пользователям.

Читать полностью…

bogdanisssimo

Задумайтесь, что спустя целый год, всего 1.2% населения Земли пользуется ChatGPT (100M WAU).

Пользователей, у кого есть подписка Plus (и доступ к GPTs) – ещё на 2 порядка меньше.

Сколько возможностей открывают эти два факта? 😈

Читать полностью…

bogdanisssimo

Лайфхак, как сэкономить деньги и время

Если паттерн использования вашего сервиса таков, что зачастую пользователю нужна повторная генерация чего-либо много-много раз (например, если ваш сервис помогает брейнштормить идеи), тогда имеет смысл воспользоваться правилом оптимизации №1:

Не делай 2 раза то, что можно сделать 1 раз.

Когда мы генерируем много ответов (через параметр n в API GPT), то можем выдавать первый (или лучший, если мы дополнительно прикручиваем оценку), а остальные сохранять в памяти. Когда пользователь нажимает кнопку "перегенерировать", ему мгновенно выдаётся второй вариант, а затем мгновенно третий и т.д. Благодаря этому мы экономим ту часть коста, которая относится к длине входа (например, это длинный промпт с инструкцией и примерами) – и время не повторную генерацию, что улучшает UX.

Здесь есть очевидный трейд-офф:
- с одной стороны, если мы генерируем с запасом 5-10-20 ответов, то пользователь может не расходовать все из них, отсюда деньги тратятся вхолостую;
- с другой стороны, если ему таки нужны эти 5-10 попыток, вероятно гонять каждый раз длинный промпт с инструкцией – выходило бы дороже (и дольше);
- наконец, если у вас есть оценка ответов, на основе которых можно отфильтровать топ-N, то генерацию холостых ответов можно воспринимать как необходимое зло, которое было нужно, чтобы засэмплить ответы лучше по качеству.

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

P.S. Да, и ответы на вопросы из предыдущего поста:
1. На практике считаем, что время генерации O(1) по отношению к числу ответов – за счёт этого при предгенерации десятка другого ответов, мы не добавляем времени
2. Свою интуицию, почему так происходит, описал здесь:
/channel/bogdanisssimo/264?comment=3486

#LLMOps

Читать полностью…

bogdanisssimo

А сегодня важнейшая дата, ChatGPT исполняется 1 годик, Я его искренне поздравляю с днём рождения. Ты такой маленький, а уже такой полезный в работе и в жизни. Нам стало трудно вспомнить, какой была жизнь без тебя 🤗

Желаю тебе дальнейшего роста capabilities, ускорения генерации и удешевления компьюта!

Citius, altius, fortius

Читать полностью…

bogdanisssimo

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

Читать полностью…

bogdanisssimo

😧😧😧😧😧😧😧😧😧😧

Читать полностью…

bogdanisssimo

Недавно на Симуляторе ML мы презентовали чат-бота Аду, который помогает нашей команде сопровождения. А еще мы разрабатываем Co-Author — сервис, который помогает команде генерировать новые задачи. Быстро реализовать столько идей команде позволяет навык работы с LLM (т.е. большими языковыми моделями, подобными ChatGPT). А хотите расскажем про LLM подробнее?

21 декабря в 18:00 (по Москве) пройдёт вебинар, где Богдан Печёнкин, один из авторов Симулятора ML-инженера, поделится секретами построения успешного LLM-продукта.

В программе:
● Паттерны проектирования и построения таких систем (всё проще, чем кажется!);
● Разбор кейсов, где языковые модели ускорят, а где наоборот помешают разработке продукта;
● Навыки, необходимые для работы с LLM.

[Регистрация]

Читать полностью…

bogdanisssimo

Уже через 8 часов
В 18:00 по Москве


Приглашаю всех 😈

Читать полностью…

bogdanisssimo

MEDPROMPT

Как выжать максимум из LLM до того как заводить fine-tuning (который дорогой, долгий и сложный)? Ответ: продвинутый prompt engineering. Есть, значит, такой Medprompt, который со страшной силой бьёт бенчмарки на каких-либо узких доменах за счёт довольно простых приёмов.

Нам понадобятся 3 ингредиента:
1. kNN few-shot
2. Chain-of-Thought (CoT)
3. Ensemble choice shuffle

1. kNN few-shot: LLM сильно лучше понимают, что от них хотят, когда даёшь пару примеров (прямо как и люди). kNN few-shot практически тоже самое, что RAG (Retrieval Augmented Generation), с той лишь разницей, что если в RAG мы векторизуем сырую базу знаний (набор документов, разбитых на кусочки), то во few-shot kNN мы векторизуем запросы пар "запрос - ответ". Конкретно в Medprompt по запросу достаём "запрос - рассуждение (CoT) - ответ" (рассуждение и ответ могут быть как прописаны экспертом, так и сгенерированы LLM, а затем провалидированные экспертом).

Вы можете использовать в любом своём приложении few-shot как статичный (руками прописанный в промте), так и динамический (в kNN режиме, когда по запросу пользователя из векторной базы данных достаются похожие примеры запросов с их правильными ответами) – и это гарантированно повысит качество.

2. Chain-of-thought (CoT): цепочка рассуждений – по-простому, мы просто говорим модели подумать перед выбором финального ответа. Например, Before crafting a reply, describe your observations in 3 sentences with clarifying strategy we should choose in <draft></draft> tags. Вариаций как организовать CoT масса. Главное, что это позволяет модели порефлексировать, набросать черновые варианты или выделить, на что обратить внимание, – до того как давать ответ.

CoT также значимо бустит качество генерации практически в любом приложении, переводя модель из режима "ответа сходу" на "обдуманное решение. Ведёт к дополнительным костам и секундам на "токены рассуждения", которые вы вероятно не будете показывать пользователю, но с GPT-4-Turbo цена и время стали приятнее.

#LLMOps

Читать полностью…

bogdanisssimo

ЦИКЛ СНА

До знакомства с Miro для подобных персональных (а затем рабочих) диаграмм Я использовал OmniGraffle (в отличие от Miro, он поддерживает Pie Chart и сектора круга из коробки).

Вообще, инструменты для visual communication, в том числе для communication с самим собой – как будто одна из Моих сильных (хоть и побочных) сторон. Видимо side effect того что Я всё детство рисовал.

Конкретно этот вид диаграмм для режима дня, где по кругу отмеряется 24 часа, и ты выделяешь, где сон, работа, тренировки – Я подобрал и активно эксплуатировал в студенческие годы, когда (как думаю, и многие из вас) баловался с полифазным сном. Лично у Меня локально он не завёлся и пробовать опять не планирую.

Но, чисто из любопытства, кто из вас тоже пробовал? Что пробовали? Какие успехи? Какие извлекли уроки?

Читать полностью…

bogdanisssimo

VISUAL INTENT

Сделал прослойку с visual intent classification. Теперь интерфейс взаимодействия с Моим AI-агентом ещё проще и интуитивнее. Раньше пользователю нужно было писать подпись к картинке либо на что-то кликать, чтобы сервис понял, что ему нужно, какую OCR/visual логику подтянуть под капотом. Теперь не нужно.

Где такой зверь встречается? Например, в приложении Yandex, где одна и та же камера умеет и QR сканировать, и товар распознает, и текст переведёт, и уравнение решит.

С GPT-4V это выглядит ровно также как простая классификация интента с той лишь разницей, что в промпт добавляем картинку (для экономии токенов, в низком разрешении – в высоком она нужна уже в специализированной обработке).

Удобно 😈

#LLMOps

Читать полностью…

bogdanisssimo

Книга с очень здоровыми убеждениями и принципами на тему:
https://readmake.com/

Стартапы автора:
photoai.com ($75K MRR)
interiorai.com ($43K MRR)
remoteok.com ($46K/m)
nomadlist.com ($37K/m)

Читать полностью…

bogdanisssimo

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

Полюбил Я DataLens на последнем месте работы: сделано людьми – для людей

Читать полностью…

bogdanisssimo

В TIME огромная статья с Сэмом Альтманом и 20 его близких людей. Прямо рекомендую почитать, не самый позитивный образ гениального человека вырисовывается https://time.com/6342827/ceo-of-the-year-2023-sam-altman/

Читать полностью…

bogdanisssimo

Вышел мой обзор про LLM агентов на хабре🕺

Скорость появления новых работ и подходов в этом направлении сейчас настолько большая, что тяжело оставаться в курсе, даже работая в сфере DL/NLP. Поэтому постарался описать прогресс относительно небольшой статьей и проиллюстрировать работами, вышедшими за последний год. Также хотелось сделать это не сильно техническим языком, чтобы было понятно максимальному числу людей не из машинного обучения. Так что если вы не связаны напрямую с ML, то не бойтесь, возможно будут непонятны какие-то части, но их можно пропустить (или спросить в комментариях)

Читать полностью…

bogdanisssimo

response_format={"type": "json_object"}

– это что-то прекрасное

Читать полностью…

bogdanisssimo

Времена не меняются

#LLMOps

Читать полностью…

bogdanisssimo

Вам квиз со звездочкой на подумать, что-то из серии вопросов для собесов по LLM:

1. Как меняется время генерации при разном N?

2. Интуиция, почему так происходит, и как технически это реализовано?

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

Читать полностью…

bogdanisssimo

Разыскивается толковый дизайнер который рисует иконки/логотипы как господь

Если вы таковым являетесь, либо есть кого-то порекомендовать, напишите пожалуйста в лс @uberkinder

Желательно сразу портфолио и стоимость

Читать полностью…

bogdanisssimo

https://twitter.com/sama/status/1727207458324848883

Читать полностью…

bogdanisssimo

Что такое traction?
Какой критерий что он есть?

Читать полностью…
Subscribe to a channel