TGTGInsighttelegram intelligenceLIVE / telegram public index
Back to channels
AI[ex]Time avatar

TGINSIGHT CHAT

AI[ex]Time

@AIexTime

Technologies

LLM & Agents research: environments, post-train, RL, inference @alex_golubev13

Subscribers2,770Current channel subscribers
Tracked posts165Indexed post count
Recent reach25,680Sum of recent post views
Recent posts

Recent posts

Page 11 of 14 · 165 posts

Posted Dec 4

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

11,800 views

Posted Nov 29

Досмотрел курс по распределенным системам от Martin Kleppmann (автора того самого кабанчика, которого советуют для подготовки к собеседованиям). Однозначно рекомендую, если интересно лучше разобраться в области в целом. Курс довольно короткий (23 лекции по 10-30 минут), но очень емкий и на самом деле сложный, если все концепции пытаться глубоко осознать. Структура примерно такая: - Общий обзор распределенных систем и сложностей, которые появляются в этом сценарии: сообщение потеряется при доставке по сети, одна из машин перестанет отвечать или начнет посылать неверные сообщения и так далее. Все это на примерах по типу Two Generals Problem/Byzantine Fault. - Далее разбор фундаментальных концепций, поверх которых будут строиться дальнейшие алгоритмы: кворумы, консенсусы, броадкастинг, синхронизация времени на разных машинах, репликация. - Объяснение более абстрактных конструкций и конкретных алгоритмов на основе уже пройденных вещей. Как реализовать консенсус? Как реализовать транзакции в распределенных системах? Как сделать систему консистентной для чтения? - Систем дизайн некоторых распределенных систем: Google Spanner (Распределенная база данных), Google Docs, Calendar. Дизайн здесь не от начала до конца, а с точки зрения проблем, возникающих в распределенных системах, и их решений. Хороший старт, чтобы заложить понимание ключевых вещей и понять, хочется ли углубляться еще дальше. Ну и Martin Kleppmann прекрасно объясняет вещи и приводит крутые примеры.

2,310 views

Posted Nov 23

Andrej Karpathy спустя большой перерыв выложил новое видео под названием Intro to Large Language Models. В этот раз доклад менее технический, но отлично подойдет, если вы не работаете в сфере DL/NLP и давно хотели чуть глубже разобраться, как устроены современные системы с LLM. Например, какие этапы обучения есть у модели, чтобы стать чат ассистентом; как добавляются дополнительные возможности по типу использования интерпретатора? Как в целом модель генерирует текст? Проводится интересная параллель с двумя системами мышления из книги Канемана "Thinking, Fast and Slow" как пример дальнейшего улучшения LLM систем. В общем, после одного часа общее понимание должно улучшиться. Есть также интересная часть с примерами про атаки на языковые модели, я знал не про все

1,650 views

Posted Nov 14

A Survey of Techniques for Maximizing LLM Performance Вчера OpenAI выложил 5 лекций с DevDay. Каждая по-своему интересна, но сегодня разбираем только одну из них — A Survey of Techniques for Maximizing LLM Performance. Авторы предлагают некоторый фреймворк, с которым можно подходить к решению задач: Prompt Engineering → {Retrieval Augmented Generation, Fine-Tuning} → All of the above. Выбор зависит от условий задачи: нужно ли регулярно обновлять знания у модели, насколько хорошо модель работает в конкретной области, сложные ли у нас инструкции и тд. Далее по каждому методу делятся мыслями, как его применять. — Prompt Engineering. Ничего в целом нового, еще раз подчеркивают, что нужно составлять промпт с четким описанием задачи, разбивать ее на более мелкие подзадачи, добавлять примеры ответов в качестве референса (few shot) и регулярно итерироваться по разным версиям промптов, чтобы находить лучшие варианты. Самое главное, что здесь у нас появляется бейзлайн, относительно которого мы можем сравнивать наши будущие, более сложные версии. — Retrieval Augmented Generation (RAG). Очень популярный сейчас подход по поиску релевантной информации во внешнем хранилище, которая потом помещается в промпт для финальной генерации. Таким образом модель борется с галлюцинациями и может иметь доступ к последней актуальной информации. Однако, простой поиск по эмбеддингам дал на бенчмарке всего 45% Accuracy. Далее цепочка улучшений: - Chunk/embedding experiments. Эксперименты по разбиению документа на блоки разного размера, чтобы легче можно было найти нужную информацию. - Reranking. После поиска добавляем стадию ранжирования через кросс-энкодер (то есть смотрим сразу на пару запрос-документ и даем оценку релевантности), в результате чего у нас больше шанс выбрать топ самых подходящих документов. - Classification step. Дополнительно определяем домен документа, чтобы на этапе ранжирования подать метаданные, зависящие от этого домена. - Prompt Engineering. Тюним промпт после всех предыдущих улучшений. - Tool Use. Для вопросов, где был большой процент ошибок, получилось добавить некоторые внешние инструменты по типу запросов в БД через SQL и извлечение полностью структурированной информации. - Query Expansion. Популярный метод из поиска в целом. Помимо основного запроса мы можем составлять альтернативные (например, с помощью переформулировок), параллельно искать документы для всех и в конце склеивать их в один контекст. Что не сработало: - HyDE (Hypothetical Document Embeddings) retrieval. Вместо пользовательского запроса мы сначала генерируем потенциальный ответ и уже по нему ищем в базе документов. Таким образом, запрос получается больше похожим на множество документов в базе. В каких-то приложениях это работает хорошо, но для их бенчмарка прироста не было. - Fine-Tune embeddings. Файнтюнить эмбеддинги специально для RAG неплохо работало с точки зрения Accuracy, но было слишком долго и дорого. Также ребята упомянули способ оценки RAG систем с помощью 4 метрик: Faithfulness, Answer Relevancy, Context Precision, Context Recall. — Fine-Tuning. Этап намного тяжелее, чем предыдущие два, поэтому сюда нужно идти только в том случае, если уверены, что файнтюнинг нужен. Обычно хорошо работает, если мы хотим дотюнить под конкретные инструкции или формат выдачи. В таком случае мы сможем сократить размер изначального промпта и увеличить скорость работы модели. Про сами же подходы к тюнингу ничего конкретного не сказали. Но аккуратно, а то можно получить интересные артефакты 😅 После файнтюна на сообщения Slack получился интересный ассистент: User: Write a 500 word blog post on prompt engineering. Assistant: Sure, I shall work on that in the morning. User: Write it now. Assistant: Ok.

1,530 views

Posted Nov 14

1,100 views

Posted Nov 11

Пару дней назад вышла работа LLaVA-Plus: Learning to Use Tools for Creating Multimodal Agents, где авторы расширили возможности мультимодальной модели LLaVa путем добавления набора различных инструментов, к которым можно обращаться для выполнения задачи. Получилось довольно интересно. Про оригинальную модель подробнее писал тут. Теперь взаимодействие пользователя с моделью состоит не из вопроса (текст + картинка) и ответа, а из 4 шагов: — Человек предоставляют задачу (X_q) и картинку (I_q). — Ассистент обрабатывает всю информацию и генерирует X_skill_use — набор инструментов, который потребуется для выполнения задачи (может быть пустым). — После использования конкретного инструмента результат X_result подается обратно на вход ассистенту. — Агрегируя всю доступную информацию, модель выдает финальный результат. На картинке можно увидеть это взаимодействие в виде диаграммы. Зеленым помечены последовательности, по которым считается лосс при обучении, то есть модель учится предсказывать набор инструментов и финальный ответ. В качестве самих инструментов добавлено множество вариантов: генерация через Stable Diffusion, OCR, сегментация через SAM, ControlNet, Pix2Pix и много чего еще. Уже все выложили в открытый доступ: от самой модели, до кода обучения и нового датасета с инструкциями.

1,500 views

Posted Nov 8

Сейчас выходом за неделю сразу нескольких новых LLM уже не удивишь, но прошлая была интересной, поэтому краткое саммари: — DeepSeek Coder. Семейство моделей от 1.3B до 33B, заточенных под написание кода. Тренировалась в сумме на 2Т токенов и 86 языках программирования. По метрикам уходит далеко от CodeLLaMa, а Instruct версия на 6.7B бьет на HumanEval Chat-3.5-Turbo. Ну и дополнительно еще внедрили размер контекста в 16 тысяч токенов. — OpenChat. Модель уже общего пользования. 7B бьет ChatGPT (мартовской версии) почти по всем бенчмаркам. В обучении использовался интересный подход C(onditioned)-RLFT, возможно сделаю по нему отдельный обзор. Еще и обещают завести Orca версию модели. — Yi-34B. Стартап 01-AI под руководством Кай-Фу Ли (возможно вы слышали его по книге AI Superpowers) на днях релизнул свою модель. Подробностей пока немного, но судя по paperswithcode по MMLU модель устанавливает рекорд среди всех опенсурс моделей. Технический отчет обещают в следующем месяце. — Grōk. Ну и напоследок под конец прошлой недели появилась инфа, что xAI запускают AI-ассистента, который будет доступен по подписке X Premium+ (Twitter). Про последнюю версию известно мало, но в любом случае будет интересно посмотреть на примеры использования. Вот уже пример promptIDE, подробнее можно почитать тут.

1,050 views

Posted Nov 6

DeepMind совместно с Ливерпулем объединился для разработки TacticAI: an AI assistant for football tactics. Чтобы с чего-то начать, авторы сосредоточились на анализе угловых ударов, поскольку они предоставляют тренерам наиболее понятные возможности для вмешательства и улучшения ситуации. С помощью экспертов из клуба показали, что предложения TacticAI не только неотличимы от реальных ситуаций, но и в 90% случаев оказываются предпочтительнее существующих тактик. Каждый угловой представляется в виде полного графа, где вершина — игрок с характеристиками (вес, рост, скорость, координаты), а ребро — отношения между игроками с пометкой команды. На выходе модель умеет предсказывать три вещи: — Вероятность i-ого игрока получить мяч (классификация вершины) — Вероятность нанесения удара (классификация графа) — Изменения в расстановку игроков/состав для максимизации вероятности удара в случае атакующей стороны или, наборот, минимизации для обороняющейся (задача регрессии для каждой вершины) В качестве датасета использовали 7176 угловых ударов из премьер лиги 2020-2021 года, в этом плане есть куда скейлиться. Архитектура же модели представляет из себя Deep graph attention (а куда без него?) network. Теперь интересно посмотреть, как изменится розыгрыш Ливерпуля после пару месяцев, когда команда отработает новые сценарии. В целом кажется, что данных за всю историю футбола накопилась достаточное число, чтобы построить подобного рода базовую модель для более общего использования

1,180 views

Posted Nov 1

Controlled Decoding from Language Models Сегодня разбираем недавнюю статью от авторов из Google (один из которых уже успел перейти в OpenAI 😅), посвященную новому алгоритму алайнмента. Давайте разбираться, но прежде немного контекста для лучшего понимания. 1. Речь идет про заключительный этап файнтюнинга LLM, когда мы хотим настроить модель под helpful/harmless/respective/… ответы. То есть альтернативами здесь являются, например, RLHF (PPO) и DPO (не RL, подробнее писал здесь). 2. PPO/DPO алгоритмы меняют веса основной модели. 3. При использовании наиболее популярного сейчас алгоритма PPO, мы применяем on-policy RL, то есть для обновления весов модели каждый раз требуются свежие данные, полученные от самой этой модели. В таком случае схема выглядит как “генерируем ответы моделью → считаем лосс и делаем шаг оптимизатором → генерируем ответы уже обновленной моделью → считаем лосс …”. PPO позволяет делать несколько оптимизационных шагов за одно наблюдение, но все равно это накладывает свои ограничения. В данной статье авторы предлагают другой подход к той же задаче: 1. Обучение отдельной модели Prefix Scorer (PS) в off-policy режиме, то есть нам не требуется генерировать ответы основной моделью. Мы можем использовать любые доступные данные и обучаться на них. 2. Так как PS представляет из себя отдельную модель, веса основной LLM остаются неизменны. Основная идея метода — обучить PS для аппроксимации Value функции текущего состояния. Value функция по определению — средняя награда, которая может быть получена из состояния s (в данном случае s — любой момент на этапе генерации ответа). Делается это путем минимизации MSE ошибки между предсказанием PS и наградой, полученной из Reward Model (с оговоркой, посмотрите, как обрабатывается кейс при y ≠ EOS на картинке). Имея аппроксимацию Value функции, можно корректировать финальные предсказания модели в сторону бОльших наград. Авторы предлагают два способа: 1. Token-wise. На этапе генерации каждого токена прогоняем текущее выходное распределение через Prefix Scorer и изменяем предсказания модели. 2. Block-wise. Семплируем несколько продолжений ответа длины M (например, семплируем 5 вариантов, каждый из которых состоит из 4 токенов) и далее оставляем то, у которого оценка Value функции максимальна. Также можно использовать несколько разных Prefix Scorer для оптимизации сразу нескольких наград. Хотелось бы видеть больше наглядных примеров работы алгоритма, а не просто графиков типа win rate, но все равно работа интересная.

1,020 views

Posted Nov 1

769 views

Posted Oct 30

Рассказывали мне тут про редкие вопросы с интервью, с которыми мало кто справляется, вспомнил, что и сам на такой натыкался в прошлом, поделюсь с вами. В целом есть идея изредка выносить что-то подобное с тегом #interview_questions, дайте знать, если полезно. Вопрос: мы решаем задачу классификации и до софтмакса получаем вектор логитов, скажем [0.81, 3, 10, 15, 90]. В операции софтмакса есть возведение экспоненты в степень, то есть в данном случае нужно будет посчитать e^90. Это очевидно приведет к переполнению любого используемого типа, а в некоторых имплементациях получим значение inf -> 1.0 после софтмакса. Что делать в этом случае? Ответ: До софтмакса нужно вычесть максимум из логитов, то есть в данном примере 90. Операция вычитания числа из всех элементов вектора не поменяет результат софтмакса (можете проделать ее на бумажке и убедиться) или просто прикинуть в уме, что e^max(logit) сократится из-за того, что он присутствует и в числителе, и в знаменателе. Экспоненту же от большого отрицательного числа посчитать можно, значение будет близко к 0.

886 views

Posted Oct 26

Сбор данных, на мой взгляд, представляет собой самое ценное в этой статье. Авторы захотели адаптировать Instruction Tuning подход к обучению, который так популярен в языковых моделях, к мультимодальным. Разметку для этого они получили с помощью генерации моделями по типу ChatGPT/GPT-4. Еще одна работа в аргументы того, что обучение на хорошо подготовленных синтетических данных может давать очень сильные результаты. Пайплайн выглядит следующим образом: 1. Для того чтобы использовать модели по типу GPT (которая обрабатывает только текст) нам нужно научиться передавать информацию о картинке именно в текстовом формате. Для этого используют два типа промптов: Captions (описывают картинку с разных точек зрения) и Bounding boxes (описывают объекты на изображении и их местонахождение). Уже по ним GPT генерирует различные инструкции для обучения. Делается это в формате few-shot learning, то есть предварительно помещая в контекст вручную отобранные примеры ответов. 2. Для обучения Multimodal Chatbot всего используются три вида инструкций: Conversation, Detailed description, Complex reasoning. На этапе обучения мы семплируем такие single/multi-turn диалоги из сгенерированных данных и учим модель предсказывать только ответы ассистента. Под обучением здесь понимается классическая постановка авторегрессионной модели, то есть по входным данным мы предсказываем ответы в стиле Next Token Prediction. На картинке представлены примеры инструкций, запроса в GPT и финального датасета.

885 views
12•••91011121314