Интересное что-то
517 subscribers
2.72K photos
253 videos
138 files
4.51K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Machinelearning
🖥 Large Language Model Course

Только что был обновлен популярный бесплатный LLM курс.

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

Курс разбит на 3 части:
1️⃣LLM Fundamentals: Блок дает фундаментальные знания по математике, Python и нейронным сетям.
2️⃣ LLM Scientist: В этом блоке упор сделан на внутреннем устройстве LLM и их создание с использованием новейших технологий и фреймворков.
3️⃣ The LLM Engineer: Здесь вы научитесь писать приложений на практике и научитесь развертывать их.

⭐️ 41.4k звезд на Github

📌 Курс

#llm #course #opensource #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Душный NLP
Теория игр в RLHF

Врываемся в новый 2025-й с новым разбором. Сегодня рассмотрим, как использование теории игр помогает в RLHF. Авторы статьи назвали свой метод General Preference Modeling (GPM). Он подходит для RLHF, но всё сказанное в статье применимо и к RL общего назначения с моделью предпочтений.

RLHF-обучение состоит из двух шагов: получение модели предпочтений и обучение генеративной модели. Авторы сосредоточились на улучшении модели предпочтений.

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

Из недостатков — модель предполагает, что функция предпочтений человека всегда описывается достаточно простой моделью Брэдли-Терри, в которой всегда есть лучшие и худшие ответы. На практике же несколько ответов могут образовывать нетранзитивный цикл. Скажем, при игре в «Камень-ножницы-бумага» нет лучшего действия, однако модель всё равно попытается их упорядочить.

Чтобы решить эту проблему, авторы обращаются к теории игр. На самом деле эта идея не нова. Скажем, были уже модели попарных сравнений, которые работали не от оценки одного ответа, а от сравнения двух вариантов. У такого подхода тоже есть существенные недостатки — это удар по производительности и отсутствие гарантии антисимметричности. То есть попарная модель должна оценивать, насколько первый ответ лучше второго противоположным числом оценки превосходства второго ответа над первым.

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

В случае, если эмбеддинг состоит из двух скаляров, авторы предлагают в качестве антисимметричного билинейного оператора использовать матрицу поворота на 90 градусов в двухмерном пространстве. А для случаев с большей размерностью эмбеддингов — строить блочно-диагональные матрицы с вышеописанными матрицами поворота на диагонали (вторая картинка выше). Такой оператор способен моделировать циклы в предпочтениях пользователей, располагая эмбеддинги на окружности.

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

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

Тестирование показало, что обобщённая модель предпочтений даёт большую точность на циклических датасетах, но на стандартных результат сопоставим с тем, который показывают классические методы. Однако при использовании новой reward-функции в RL качество генеративной модели значительно улучшается.

Разбор подготовил Федор Лебедь

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Душный NLP
Физика языковых моделей: серия статей от FAIR

В прошлом году не успели поделиться с вами разбором полезной работы от исследователя лаборатории FAIR (Facebook AI Research) Цзэюань Аллен-Чжу. Исправляемся! В двухчасовом докладе и серии статей описаны свойства языковых моделей и приведено множество инсайтов.

Самые интересные идеи:

— LLM способна выучивать графы причинно-следственных связей для решения сложных задач. (Пример задачи: «В школе 10 аудиторий, в каждой по 15 парт, за каждой партой — два стула. Сколько всего стульев в школе?»). Если задача более запутанная, со сложным графом зависимостей, модель может использовать топологическую сортировку, чтобы понять порядок вычислений. Для повышения точности этого процесса предлагается обучать модель на дополнительных синтетических задачах. Описанный подход называется Level-1 reasoning.

— Перед генерацией первого токена LLM заранее просчитывает все промежуточные данные для построения ответа. Иногда модель допускает ошибки: вычисляет лишние данные или пытается оперировать тем, что ещё не вычислено. Этот процесс называется Level-2 reasoning.

— LLM способна определить, где произошла ошибка при генерации ответа. Для этого можно обучить Linear Probe, который с вероятностью около 99% предскажет место ошибки. Автор также предлагает добавить в обучающую выборку примеры Сhain-of-Thought, где модель не только ошибается, но и исправляет свои ошибки. Чем больше таких данных, тем выше становится качество модели.

— Ещё одна синтетическая задача для обучения модели — определение принадлежности последовательности грамматике Хомского. Задача формулируется так: даны правила раскрытия токенов (например: 5 → 43, 4 → 22, 3 → 11), и нужно понять, можно ли с их помощью сгенерировать последовательность 1122 (можно) или 1212 (нельзя). Оказалось, GPT не только успешно обучается на такую задачу, но и умеет определять, из каких нетерминальных токенов были сгенерированы подпоследовательности. При этом BERT, хотя и справляется с задачей, не оперирует понятием нетерминальных токенов.

Дополнительные инсайты:

— Претрейн должен содержать QA и другие задачи извлечения знаний (Knowledge Extraction, NE). Если только файнтюн содержит NE, модель будет плохо обобщаться на подобные задачи.
— Ошибки в данных на претрейне снижают качество, и стадия файнтюнинга не исправляет ситуацию.
— Аугментации заметно улучшают обобщающую способность модели. Это неудивительно, ведь они работают с перестановкой предложений, переформулировкой, стилистикой, переводами.
— Модели типа BERT работают хуже, чем GPT-архитектуры. Это объясняется авторегрессионной природой вторых, которая позволяет эффективнее генерировать и предсказывать последовательности (см. пункт о грамматике Хомского).
— Использование Сhain-of-Thought улучшает точность модели.
— GatedFFN работает хуже, чем обычный FFN.
— Универсальный закон: эффективность хранения информации (выученной из тренировочного датасета) в хорошо обученной LLM равна двум битам на один параметр модели. Этот закон действует для широкого диапазона размеров LLM.

Разбор подготовил Александр Шишеня

Душный NLP

Meta признана экстремистской организацией, а Facebook и Instagram запрещены на территории РФ
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Метаверсище и ИИще (Sergey Tsyptsyn ️️)
Вот вам пример видеогенерации, от которого у меня немного закипел мозг.

Мы тут извращаемся в промптах, пытаясь заставить двигаться камеру или персонажа.
Но.
Оказывается, можно попросить ИИ добавить на видео гринскрин (этим я вас не удивлю) и, внимание, маркеры для трекинга камеры (а вот этим удивлю). Для того, чтобы потом оттрекать камеру в AE или Нюке, восстановить движение объектов в 3Д, убрать фон и навалить сверху нормальной графики или футажа.
В общем все, как на съемках с парой супервазеров, мешком маркеров, тейпов, рулеток, далее по списку. Только промптом!

И судя по этому примеру у Veo2 (пока крайней мере у него, но думаю и у остальных) в голове есть реальная модель 3Д мира и вполне себе эвклидово пространство, ибо это работает и условная фотограмметрия не ломается.

Я в шоке. А вы не поленитесь, почитайте нехилый такой промпт, где написано про маркеры, гринскрин и прочую супервайзерскую требуху (тут есть момент, чтобы писать такой промпт, надо как бы быть в супервайзерской теме, но об этом в другой раз).

Я уж не знаю, на чему учили Veo2, но то, что это вообще работает, приводит меня в восторг.

Подробности тут.

Кто совсем ничего не понял: здесь только девушка (см. промпт). Среднее видео демонстрирует добавление созданной человеком модели (андроид, G) в сцену, созданную ИИ, а нижнее - объединение созданного ИИ персонажа (девушки) в созданную человеком сцену (сакура и небесное пространство). В обоих случаях необходимы данные с камеры, полученные в результате работы ИИ.

Попробуйте в Клинге что ли...

@cgevent
Forwarded from Data Blog
🍀 Привет, друзья!

В последнее время активно изучаю информацию о механистической интерпретируемости. Одна из моих центральных задач — обобщить, что происходит, и связать это с общими событиями и методами в области explainable AI.

🦜Механистическая интерпретируемость (MI) — частный случай просто интерпретируемости, но прикрученный к пониманию глубоких моделей. И хотя о ней в сообществе говорят относительно недавно, само понятие не ново — оно приходит из нейробиологии и когнитивных наук.

MI относится к классу внутренних методов интерпретации, и ключевая особенность, отделяющая MI от всего XAI — сосредоточена на задаче детального восстановления поведения моделей. 

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

В каких, и причем тут попугаи, коты и машины — смотрите в статье!
Там много картинок и ссылок. Конечно, красивых!
Forwarded from Сиолошная
Inference-Time Scaling for Diffusion Models beyond Scaling Denoising Steps (сайт проекта)

Последнее время активно исследуется тема масштабирования вычислений во время инференса (применения модели). В LLM ярким событием стал анонс o1 от OpenAI, где модель могла исписать 50 страниц рассуждений вместо 5, что привело к улучшению качества в нешироком наборе задач. Авторы из DeepMind решили попробовать масштабировать вычисления на инференсе для диффузионных моделей генерации картинок по текстовому запросу.

Диффузионные модели, если упрощать, работают так:
1) Сначала создается случайный шум — просто хаотичная картинка, никак не связанная с запросом (может выглядеть так, ткните картинку чтобы понять о чем речь) и моделью

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

3) берут семпл из этого распределения (то есть случайным образом выбирают какое-то одно значение с учётом предсказанных выше параметров; более просто: случайный выбор значения из предсказанного моделью диапазона)

4) из текущего зашумленного изображения (на первой итерации это то, что получилось в пункте 1) вычитают то, что получилось в пункте (3); модель как бы предсказала, какой шум нужно вычесть, чтобы «очистить» изображение (поэтому называется denoising, убирание шума). Это делает картинку чуть более четкой, но пока она всё ещё далека от финального результата. На этом этапе могут применяться специальные алгоритмы, связанные с дифференциальными уравнениями, но об этом как нибудь в другой раз.

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

Прочитав это, легко сходу придумать, как именно масштабировать вычисления во время предсказания: нужно просто увеличить количество шагов! К сожалению, эта мера не так эффективна, и после относительно небольшого увеличения прирост качества генераций прекращается. Условно между 20 и 50 шагами (итерациями) вы увидите разницу, а между 100 и 200 почти наверняка нет (в некоторых случаях это и вовсе портит картинку). То есть этот метод масштабирования очень ограничен.

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

Значит, какие-то исходные шумы более удачны, какие-то менее. Это и будет первый метод поиска для масштабирования вычислений: давайте сгенерируем N картинок из N разных шумов, затем пропустим их через отдельную модель, которая даёт оценки, и выберем лучшую. «Отдельная модель» будет называться verifier (верификатор?), она принимает на вход картинку и, опционально, текстовый запрос и выдаёт какую-то цифру, по которой и судим.

Верификаторы могут быть разные — это может быть и одна модель, натренированная оценивать эстетику изображения (такие давно есть) и не опирающаяся на текст запроса, и LLM, которой дали промпт «ну чё ты, оцени по десятибальной», и ансамбль моделей, где несколько разных независимых оценок суммируются в одну. В статье верификаторам уделяется много внимания, но я про них писать не буду — важно то, что они есть, и это существенно отличает подобный метод от, например, о1, где модель генерирует сама без опоры на внешнюю валидацию.
Forwarded from Сиолошная
Так, получается саммари первого подхода:
1) сгенерировали N случайных и независимимых шумов
2) сгенерировали N картинок
3) каждую оценили верификатором
4) выбрали самую лучшую по оценке

Второй подход: а давайте ещё поисследуем локальную окрестность лучшего кандидата?
1) сгенерировали N случайных и независимимых шумов
2) сгенерировали N картинок
3) каждую оценили верификатором
4) теперь берём одну или две лучших, вспоминаем какой шум для них генерировали в начале, и берем его же, но чуть-чуть отклоняясь в сторону (K раз). Гипотеза такая, что это какой-то просто более удачный регион, в который попала генерация из первого цикла, но ведь мы наверняка выбрали не самый удачный шум из этого региона с первой попытки?
5) для новых шумов генерируем картинки
6) оценили верификатором
7) повторяем шаги 4-6 сколько хотим

Третий подход гораздо более технический, и не хочется его расписывать детально, поэтому вот TLDR: прерывают процесс генерации на какой-то итерации (скажем, после 20% шагов), и оттуда генерируют несколько продолжений, оценивают их, выбирают лучшие, отбирают их и продолжают генерцию, повторяя прерывания

Все три метода на картинке

Ешё есть четвертный метод, суть которого сводится к тому, что если верификатор — это локальная модель, то мы можем посчитать градиент аналитически, то есть прям в точности понять, как нам нужно изменить шум на входе, чтобы повысить оценку. Он тоже работает и с ним всё хорошо.
Forwarded from Карьера в FAANG
В прошлом посте я начал говорить об ожидаемом содержании performance review документа и поговорил о необходимости подтверждающих заявления артефактов. Сегодня же я хочу поговорить о том, как правильно делать эти заявления.

Инструмент 4: ladder description

В бигтех компаниях уровни (#level) более или менее точно описаны. Где-то есть официальный ladder документ на всю компанию, где-то с локальной спецификой организации, где-то он вообще может передаваться устно. Но независимо от формы, содержание описания уровней существует и понятно старожилам. Такие документы могут быть написаны непонятным корпоративным языком, но это не значит, что они бесполезны. Просто их нужно уметь читать, с чем я помогаю в этом канале. Понимание этого документа -- самый главный ассет сотрудника, желающего расти в бигтехе.

К каждому заявлению в perf документе возникает вопрос: "чем докажешь?", на который отвечают ссылки на артефакты. После него возникает второй вопрос: "и что?". Кандидат снизил latency сервиса вчетверо? И что? Увеличил прибыль на $XXX/год? И что? Запустил сложное изменение? И что? Каждому сотруднику за его работу платят зарплату. Почему вся вышеперечисленная работа должна быть вознаграждена дополнительно? На этот вопрос отвечают ссылки на ladder документ. Сложное изменение требовало leadership, чтобы организовать и синхронизировать работу нескольких команд? В ladder документе написано, что такой организацией занимается Senior. Значительно снизить latency безуспешно пыталось много квалифицированных людей в течении долгого времени? В ladder написано, что Staff решает проблемы, которые не может решить большинство коллег. $XXX -- число, заметное на уровне VP? В ладдере написано, что Senior Staff приносит масштабный импакт.

Отсюда вытекает самое важное правило при написании perf пакета: пишите perf цитатами из ladder документа (или цитатами руководителей об уровнях, если документ отсутствует).

При чтении этих цитат, ни мнение кандидата о работе, ни его же мнение об его уровне / оценке, не оставляют сомнений. Если вы пишите о себе цитатами из Senior уровня, очевидно, вы намекаете на повышение до Senior. Ревьюеры могут не соглашаться с вашей оценкой работы, но по крайней мере они совершенно точно поймут эту вашу оценку и не запутаются в том, что происходит в вашем пакете. Было бы обидно описать крутой проект, только чтобы ревьюеры прочитали ваше описание, похлопали вам, и сказали, какой же классный вы инженер на вашем уровне, вместо того, чтобы увидеть сигналы на следующий уровень, не правда ли? Помимо всего прочего, старшие коллеги, которые занимаются ревью perf пакетов, затерли ladder документ до дыр, и вы сделаете оценку вашего пакета на порядок проще и быстрее, если не будете придумывать свои формулировки, а вставите стандартные и уже знакомые ревьюерам.

#perf