Forwarded from Ebout Data Science | Дима Савелко
Уничтожение LLM System Design
Как отвечать на собеседовании, если вас спросят: «Постройка мне чат-бота с помощью LLM»? Разберем основные шаги на конкретной задаче.
Давайте пойдём по пунктам из этого поста.
Задача: создать чат-бота, который отвечает на финансовые запросы.
Исходные условия:
- В продакшене уже используется API GigaChat (временное решение).
- Доступен API ChatGPT.
- Есть два ассессора.
- Ответы предоставляются без контекста.
Ограничения:
- Ответ за максимум 2 минуты.
- Аппаратные ресурсы: 4 GPU (80 ГБ каждая, A100).
Бизнесовые метрики
- Уровень автоматизации — процент запросов, обработанных ботом без операторов.
- Снижение затрат — экономия на поддержке
- Удержание клиентов — сколько пользователей продолжают пользоваться услугами после общения с ботом. Но эту метрику сложно определить, поэтому для простоты стоит поделить на тех пользовался чат-ботом, а кто не пользовался.
Онлайн-метрики:
- Удовлетворенность клиентов (CSAT) — пользовательская оценка (1–5).
Оффлайн-метрики:
- Loss — насколько хорошо обучена модель.
G-Eval — метод «LLM as Judge», когда одна модель оценивает ответы другой по качеству (например, от 1 до 5).
Оценка ассессоров — реальные люди оценивают ответы по техническому заданию. Это ключевая метрика, с которой можно проверить корреляцию с G-Eval.
Бенчмарки — открытые или специально созданные под задачу бизнеса.
Выделяем ключевые сущности:
У нас есть диалог, а в диалоге:
- Запрос пользователя
- Ответ модели
- Маркер начала диалога
- Идентификаторы запроса, ответа, пользователя и т.д.
Способы получения данных:
Объем данных: Для обучения LoRA потребуется хотя бы 10 тысяч примеров для тренировки и около 700 для тестирования.
Для упрощения пока исключаем поиск контекста, работу с контекстом распишу в следующей части)
Бейзлайн: предположим, что у нас уже есть метрики для текущего решения (например, на GigaChat).
Входные данные:
X — запрос пользователя.
Y — эталонный ответ.
Модели:
llama3.1 400b. Пробуем сначала запромпить модель и смотрим на результаты бенчмарков.
saiga_llama3.1 70b. Сначала промптим, затем обучаем под конкретную задачу.
Loss: Используем CrossEntropyLoss — простой и надежный метод для обучения LoRA на основе SFT.
Метрики:
На тренировочной выборке оцениваем Loss.
На тестовой — G-Eval, оценки ассессоров (на 500 случайных примерах) и бенчмарки.
Деплой: Для деплоя используем vllm.
- Добавить контекст в ответы для повышения точности модели (реализуем в следующей части).
-Применить ORPO-метод, чтобы модель лучше понимала, какие ответы допустимы, а какие нет.
- Квантизация или дистилляция для того, чтобы уменьшить latency
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Love. Death. Transformers.
мл конспект.pdf
22.9 MB
Вероятно лучший конспект по reinforcement learning который я видел и неожиданно на русском (!)
Forwarded from Start Career in DS
🥷🏻 ML-System Design: справочник материалов для подготовки
❗️ML System Design - один из важнейших этапов на собеседовании в топовую компанию. Строить грамотные ML-решения хочет каждый, и поэтому мы подготовили для вас общий справочник со всей актуальной информацией по данной теме.
🔥Погнали:
- Пошаговая методичка на GitHub, как правильно дизайнить ML-решения
- Ещё один репозиторий с интересным фреймворком и примерами решений ML System Design кейсов
- Огромная база знаний с описанием +500 реальных ML и LLM кейсов из мировых BigTech компаний, сможете прокачать экспертизу и набраться новых подходов
- Большой набор ТГ-постов от Саши Исакова по каждому этапу DS-собеседований, включая ML System Design
- Курс видеолекций на ODS по ML System Design с нуля
- Научиться писать ML System Design Docs можете тут, а познакомиться с тем, что вообще такое дизайн-документ тут
- Статья на Хабре «Как деплоить и тестировать модели в продакшне» - важный этап в процессе MLSD
- Серия постов для подготовки к DS-собеседованиям, с отдельной частью про System Design, включая большое количество дополнительных материалов и книг
- Статья для новичков «Чтобы я хотел знать про ML System Design раньше»
- Большой плейлист на YouTube с собеседованиями от karpov.courses, включая мок-собеседования по ML System Design с Валерием Бабушкиным
👇🏻Также призываем в комментариях делиться актуальными материалами по данной теме!
Ставьте ❤️ и 🔥 за крутой пост!
До встречи👋
❗️ML System Design - один из важнейших этапов на собеседовании в топовую компанию. Строить грамотные ML-решения хочет каждый, и поэтому мы подготовили для вас общий справочник со всей актуальной информацией по данной теме.
🔥Погнали:
- Пошаговая методичка на GitHub, как правильно дизайнить ML-решения
- Ещё один репозиторий с интересным фреймворком и примерами решений ML System Design кейсов
- Огромная база знаний с описанием +500 реальных ML и LLM кейсов из мировых BigTech компаний, сможете прокачать экспертизу и набраться новых подходов
- Большой набор ТГ-постов от Саши Исакова по каждому этапу DS-собеседований, включая ML System Design
- Курс видеолекций на ODS по ML System Design с нуля
- Научиться писать ML System Design Docs можете тут, а познакомиться с тем, что вообще такое дизайн-документ тут
- Статья на Хабре «Как деплоить и тестировать модели в продакшне» - важный этап в процессе MLSD
- Серия постов для подготовки к DS-собеседованиям, с отдельной частью про System Design, включая большое количество дополнительных материалов и книг
- Статья для новичков «Чтобы я хотел знать про ML System Design раньше»
- Большой плейлист на YouTube с собеседованиями от karpov.courses, включая мок-собеседования по ML System Design с Валерием Бабушкиным
👇🏻Также призываем в комментариях делиться актуальными материалами по данной теме!
Ставьте ❤️ и 🔥 за крутой пост!
До встречи👋
GitHub
Machine-Learning-Interviews/src/MLSD/ml-system-design.md at main · alirezadir/Machine-Learning-Interviews
This repo is meant to serve as a guide for Machine Learning/AI technical interviews. - alirezadir/Machine-Learning-Interviews
Forwarded from Хитрый Питон
Мигель Гринберг, известный своим мега-туториалом по Flask написал большой пост про обработку ошибок в python. Вопросы "когда и какие эксепшены обрабатывать" и "откуда мне узнать, какие эксепшены тут могут возникнуть" особенно актуальны у новичков, я даже у мидлов видел с этим затруднения. Статья довольно длинная, но я очень рекомендую потратить время и почитать https://blog.miguelgrinberg.com/post/the-ultimate-guide-to-error-handling-in-python
Оказывается, на хабре опубликовали перевод статьи https://habr.com/ru/articles/853056/
Оказывается, на хабре опубликовали перевод статьи https://habr.com/ru/articles/853056/
Miguelgrinberg
The Ultimate Guide to Error Handling in Python
I often come across developers who know the mechanics of Python error handling well, yet when I review their code I find it to be far from good. Exceptions in Python is one of those areas that have a…
Forwarded from Душный NLP
ReDrafter — быстрый метод спекулятивного декодирования
Сегодняшняя статья посвящена Recurrent Drafter (ReDrafter) — новому подходу к спекулятивному декодированию. Авторы заявляют, что он позволяет значительно увеличить скорость моделей.
Само спекулятивное декодирование основано на использовании дополнительной «черновой» модели, которая предлагает варианты продолжения цепочек токенов. Основная модель проверяет эти варианты, выбирая один с помощью специальной процедуры верификации. Качество генераций остаётся таким же, как и без использования спекулятивного декодирования, потому что окончательное решение о принятии тех или иных токенов лежит на основной модели.
В ReDrafter в качестве черновой модели используется RNN. Благодаря рекуррентной структуре, учитывается зависимость между черновыми токенами. Кроме того, RNN, помимо последнего токена, также видит и скрытое состояние из последнего слоя LLM, что даёт ей возможность лучше следовать генерациям основной модели.
С помощью алгоритма динамического древа внимания (dynamic tree attention algorithm), в сгенерированных RNN кандидатах убираются повторяющиеся префиксы. Таким образом, в основную модель попадает меньше вариантов, а значит затраты вычислительных ресурсов становятся меньше. Далее основная модель оценивает предложенные варианты (при этом, сразу несколько), выбирает лучший и процесс повторяется снова.
RNN обучается с помощью дистилляции из основной модели. Это позволяет RNN предсказывать токены с вероятностями, максимально приближенными к ожиданиям LLM. Таким образом, «черновая» модель реже предлагает токены, которые будут отклонены.
Авторы отмечают, что использование дистилляции дает лучшие результаты, чем обучение «черновой» модели на исходном датасете, на котором тренировали LLM. Так, скорость генерации и число принятых токенов за один шаг на Vicuna 7B выросли примерно на 10%.
ReDrafter показал лучшие результаты по сравнению с методами Medusa и EAGLE на бенчмарках MT-Bench и AlpacaEval. При этом, по сравнению с жадной генерацией, генерация семплированием показывает ещё большее ускорение, чего обычно не показывают другие методы спекулятивного декодирования.
Разбор подготовил❣ Алексей Гликин
Душный NLP
Сегодняшняя статья посвящена Recurrent Drafter (ReDrafter) — новому подходу к спекулятивному декодированию. Авторы заявляют, что он позволяет значительно увеличить скорость моделей.
Само спекулятивное декодирование основано на использовании дополнительной «черновой» модели, которая предлагает варианты продолжения цепочек токенов. Основная модель проверяет эти варианты, выбирая один с помощью специальной процедуры верификации. Качество генераций остаётся таким же, как и без использования спекулятивного декодирования, потому что окончательное решение о принятии тех или иных токенов лежит на основной модели.
В ReDrafter в качестве черновой модели используется RNN. Благодаря рекуррентной структуре, учитывается зависимость между черновыми токенами. Кроме того, RNN, помимо последнего токена, также видит и скрытое состояние из последнего слоя LLM, что даёт ей возможность лучше следовать генерациям основной модели.
С помощью алгоритма динамического древа внимания (dynamic tree attention algorithm), в сгенерированных RNN кандидатах убираются повторяющиеся префиксы. Таким образом, в основную модель попадает меньше вариантов, а значит затраты вычислительных ресурсов становятся меньше. Далее основная модель оценивает предложенные варианты (при этом, сразу несколько), выбирает лучший и процесс повторяется снова.
RNN обучается с помощью дистилляции из основной модели. Это позволяет RNN предсказывать токены с вероятностями, максимально приближенными к ожиданиям LLM. Таким образом, «черновая» модель реже предлагает токены, которые будут отклонены.
Авторы отмечают, что использование дистилляции дает лучшие результаты, чем обучение «черновой» модели на исходном датасете, на котором тренировали LLM. Так, скорость генерации и число принятых токенов за один шаг на Vicuna 7B выросли примерно на 10%.
ReDrafter показал лучшие результаты по сравнению с методами Medusa и EAGLE на бенчмарках MT-Bench и AlpacaEval. При этом, по сравнению с жадной генерацией, генерация семплированием показывает ещё большее ускорение, чего обычно не показывают другие методы спекулятивного декодирования.
Разбор подготовил
Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from adapt compete evolve or die
Прочитал решение прошлой соревы от Jane Street. Интересно, что автор сейчас quant в JS, а его сокомандник занимает в новой сореве первое место 🧐
1 место удалось оторваться от деревянных преследователей на бустах за счет использования автоэнкодера к анонимизированным фичам. Идея понятна: нейронка лучше разберется, а если пережать bottleneck'ом, то уменьшим количество фичей, уберем лишний шум, получим более гладкие фичи. Автоэнкодер обучался не классическим unsupervised методом, а по фолдам, параллельно с mlp моделью. Суть в том, что автор тренировал дополнительную голову на таргеты, что позволило ему получить более подходящие фичи для его сети.
Если автоэнкодер можно считать аналогом PCA в мире DL, то такой подход с обучением на таргеты... это аналог LDA в каком-то смысле?
В новой сореве автоэнкодер не заводится у меня.
1 место удалось оторваться от деревянных преследователей на бустах за счет использования автоэнкодера к анонимизированным фичам. Идея понятна: нейронка лучше разберется, а если пережать bottleneck'ом, то уменьшим количество фичей, уберем лишний шум, получим более гладкие фичи. Автоэнкодер обучался не классическим unsupervised методом, а по фолдам, параллельно с mlp моделью. Суть в том, что автор тренировал дополнительную голову на таргеты, что позволило ему получить более подходящие фичи для его сети.
Если автоэнкодер можно считать аналогом PCA в мире DL, то такой подход с обучением на таргеты... это аналог LDA в каком-то смысле?
В новой сореве автоэнкодер не заводится у меня.
Please open Telegram to view this post
VIEW IN TELEGRAM
Kaggle
Yirun's Solution (1st place): Training Supervised Autoencoder with MLP | Kaggle
Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.
Forwarded from эйай ньюз
CS492(D): Diffusion Models and Their Applications
Курс по Диффузионным моделям от KAIST (Южная Корея) - если хочется поднять базу, не ходя в университет.
Читает леции вот этот чувак - Minhyuk Sung. На сайте есть записи всех лекций и слайды, плюс 2 гостевые лекции от крутых ученых.
Список лекций:
1 - Course Introduction
2 - Introduction to Generative Models / GAN / VAE
3 - DDPM 1
4 - DDPM 2
5 - DDIM 1
6 - DDIM 2 / CFG
7 - CFG / Latent Diffusion / ControlNet / LoRA
8 - Zero-Shot Applications
9 - Guest Lecture 1 by Or Patashnik
10 - DDIM Inversion / Score Distillation 1
11 - Score Distillation 2
12 - Diffusion Synchronization
13 - Inverse Problems 1
14 - Inverse Problems 2
15 - Probability Flow ODE / DPM-Solver
16 - Flow Matching 1
17 - Flow Matching 2
18 - Course Summary
19 - Guest Lecture 2 by Jiaming Song, Chief Scientist at Luma AI
https://mhsung.github.io/kaist-cs492d-fall-2024/
Ну а еще почитать про диффузию можно у меня :) Вот пара ссылок:
- Как ускорить диффузию часть 1, часть 2
- Моя любимая статья по диффузионным моделям (база)
- Разбор нашей статьи Cashe Me if You Can по ускорению диффузионок
- И ещё пара туториалов, вот первый и второй
#ликбез
@ai_newz
Курс по Диффузионным моделям от KAIST (Южная Корея) - если хочется поднять базу, не ходя в университет.
Читает леции вот этот чувак - Minhyuk Sung. На сайте есть записи всех лекций и слайды, плюс 2 гостевые лекции от крутых ученых.
Список лекций:
1 - Course Introduction
2 - Introduction to Generative Models / GAN / VAE
3 - DDPM 1
4 - DDPM 2
5 - DDIM 1
6 - DDIM 2 / CFG
7 - CFG / Latent Diffusion / ControlNet / LoRA
8 - Zero-Shot Applications
9 - Guest Lecture 1 by Or Patashnik
10 - DDIM Inversion / Score Distillation 1
11 - Score Distillation 2
12 - Diffusion Synchronization
13 - Inverse Problems 1
14 - Inverse Problems 2
15 - Probability Flow ODE / DPM-Solver
16 - Flow Matching 1
17 - Flow Matching 2
18 - Course Summary
19 - Guest Lecture 2 by Jiaming Song, Chief Scientist at Luma AI
https://mhsung.github.io/kaist-cs492d-fall-2024/
Ну а еще почитать про диффузию можно у меня :) Вот пара ссылок:
- Как ускорить диффузию часть 1, часть 2
- Моя любимая статья по диффузионным моделям (база)
- Разбор нашей статьи Cashe Me if You Can по ускорению диффузионок
- И ещё пара туториалов, вот первый и второй
#ликбез
@ai_newz
Forwarded from Artem Ryblov’s Data Science Weekly
Data Structures & Algorithms by Google
Familiarize yourself with common data structures and algorithms such as lists, trees, maps, graphs, Big-O analysis, and more!
Topics:
- Maps/Dictionaries
- Linked Lists
- Trees
- Stacks & Queues
- Heaps
- Graphs
- Runtime Analysis
- Searching & Sorting
- Recursion & DP
Link: Site
Navigational hashtags: #armknowledgesharing #armtutorials
General hashtags: #algorithms #leetcode #programming
Familiarize yourself with common data structures and algorithms such as lists, trees, maps, graphs, Big-O analysis, and more!
Topics:
- Maps/Dictionaries
- Linked Lists
- Trees
- Stacks & Queues
- Heaps
- Graphs
- Runtime Analysis
- Searching & Sorting
- Recursion & DP
Link: Site
Navigational hashtags: #armknowledgesharing #armtutorials
General hashtags: #algorithms #leetcode #programming
Forwarded from КПД
В процессе серфинга по тытрубе и подготовке к собственной защите наткнулся на защиту кандидатской диссертации Егор Захарова в Сколтехе.
Тема диссертации - синтез человеческих лиц и 3д фигур людей с помощью GANов. И данный рассказ - действительно очень интересный и увлекательный обзор техник по улучшению качества генерации, реализма, общаемости на произвольные аспекты и положения головы и тела.
Картинки просто конфетка и сам рассказ очень увлекательный и познавательный.
Нынче диффузия - всему голова, но многие идеи актуальны и до сих пор.
В общем, рекомендую.
Тема диссертации - синтез человеческих лиц и 3д фигур людей с помощью GANов. И данный рассказ - действительно очень интересный и увлекательный обзор техник по улучшению качества генерации, реализма, общаемости на произвольные аспекты и положения головы и тела.
Картинки просто конфетка и сам рассказ очень увлекательный и познавательный.
Нынче диффузия - всему голова, но многие идеи актуальны и до сих пор.
В общем, рекомендую.