В сегодняшний выходной предлагаю вам почитать расследование от @tech_priestess об одном из онлайн-курсов по нейросетям: https://habr.com/ru/articles/732556/
Там, помимо всего прочего, вы узнаете самый лучший способ собирать датасет в интернете, и как разводить ваших руководителей с помощью графиков.
Хорошего вечера! ☕️
Там, помимо всего прочего, вы узнаете самый лучший способ собирать датасет в интернете, и как разводить ваших руководителей с помощью графиков.
Хорошего вечера! ☕️
Хабр
Мое Знакомство с УИИ или Путешествие в Параллельную Реальность
Эта статья представляет собой рассказ о том, как я узнала о существовании параллельной реальности под названием Университет Искусственного Интеллекта (УИИ), плавно переходящий в мини-расследование...
👍11
JEPA ЛеКуна [2022]
Если вам надоело читать в твиттере про скорый конец света, то у меня для вас есть достойная альтернатива.
A Path Towards Autonomous Machine Intelligence (настоящее название статьи) содержит в себе несколько составляющих:
1) Про автономный интеллект
Это попытка представить, как могла бы выглядеть ИИ-система, которая способна так же, как человек, познавать мир, ставить себе цели и что-то делать. Эта часть интересна не столько тем, что в ней написано, а тем, что в ней обозначено как белые пятна - при детальном рассмотрении понятно, что есть куски, которые совершенно непонятно, как делать, и как к ним подступиться.
2) Обзор литературы
Мне, как желающему выбраться из пузыря невежества, очень зашёл верхнеуровневый взгляд на некоторые области ML. Кому, как не ЛеКуну, писать такое.
3) Сама JEPA
Это рассуждение о том, каким подходом можно пробовать учить полезную модель мира, и как её можно будет использовать.
Я уже писал о чём-то похожем в постах про MuZero и NGU - когда у нас нет задачи генерировать данные, нам не стоит пытаться учить генеративную модель - у этого слишком много подводных камней. Альтернативой является обучение энкодеров, которые выбрасывают ненужную информацию, абстрагируются от неё, и уже с такими эмбеддингами мы что-нибудь дальше делаем. Никаких экспериментов тут нет.
Если будете читать, мой совет - выделите себе заранее пару часов, заварите чаёк и погружайтесь - статья большая и охватывает очень широко ML, но без суперсложных деталей, так что должно быть познавательно.
@knowledge_accumulator
Если вам надоело читать в твиттере про скорый конец света, то у меня для вас есть достойная альтернатива.
A Path Towards Autonomous Machine Intelligence (настоящее название статьи) содержит в себе несколько составляющих:
1) Про автономный интеллект
Это попытка представить, как могла бы выглядеть ИИ-система, которая способна так же, как человек, познавать мир, ставить себе цели и что-то делать. Эта часть интересна не столько тем, что в ней написано, а тем, что в ней обозначено как белые пятна - при детальном рассмотрении понятно, что есть куски, которые совершенно непонятно, как делать, и как к ним подступиться.
2) Обзор литературы
Мне, как желающему выбраться из пузыря невежества, очень зашёл верхнеуровневый взгляд на некоторые области ML. Кому, как не ЛеКуну, писать такое.
3) Сама JEPA
Это рассуждение о том, каким подходом можно пробовать учить полезную модель мира, и как её можно будет использовать.
Я уже писал о чём-то похожем в постах про MuZero и NGU - когда у нас нет задачи генерировать данные, нам не стоит пытаться учить генеративную модель - у этого слишком много подводных камней. Альтернативой является обучение энкодеров, которые выбрасывают ненужную информацию, абстрагируются от неё, и уже с такими эмбеддингами мы что-нибудь дальше делаем. Никаких экспериментов тут нет.
Если будете читать, мой совет - выделите себе заранее пару часов, заварите чаёк и погружайтесь - статья большая и охватывает очень широко ML, но без суперсложных деталей, так что должно быть познавательно.
@knowledge_accumulator
👍14😁3🔥1🤣1
Как нейросеть может хранить картину мира?
Современные языковые модели не имеют явной памяти, их картина мира хранится в весах модели. На мой взгляд, это может быть причиной ошибок в работе с фактами, их выдумывание. Есть ли этому альтернатива?
В статье Tracking the World State with Recurrent Entity Networks [2016] предлагается следующая концепция:
1) Будем хранить N ячеек памяти с векторами "состояния" мира.
2) Модель при чтении текста будет обновлять в этих ячейках состояния, по пути пропуская сигнал через обучаемые "гейты", чтобы модифицировать только те ячейки, относящиеся к тексту.
3) При ответе на вопрос мы из этих ячеек читаем информацию, в зависимости от вопроса решая, из каких ячеек, и декодируем ответ.
Интересно, что с помощью манипуляций ключами у этих ячеек можно добиться, например, чтобы нейросеть поддерживала состояние какой-то желаемой сущности отдельно в конкретной ячейке.
Мне кажется интересным потенциальный гибрид языковых моделей и подобной "памяти", потому что это позволит получить интерпретируемую картину мира внутри модели. Но есть непонятные моменты:
1) Как нам обеспечить интерпретируемость концептов? Как добиться их "дискретизации" в нужном виде?
2) Как можно учить такую память на неразмеченном тексте, который содержит противоречащие друг другу утверждения?
3) Можно ли как-то встроить логический вывод в эту схему, чтобы поддерживать непротиворечивость памяти?
Буду рад вашим мыслям на этот счёт или ссылкам на статьи, которые могут быть о чём-то подобном.
@knowledge_accumulator
Современные языковые модели не имеют явной памяти, их картина мира хранится в весах модели. На мой взгляд, это может быть причиной ошибок в работе с фактами, их выдумывание. Есть ли этому альтернатива?
В статье Tracking the World State with Recurrent Entity Networks [2016] предлагается следующая концепция:
1) Будем хранить N ячеек памяти с векторами "состояния" мира.
2) Модель при чтении текста будет обновлять в этих ячейках состояния, по пути пропуская сигнал через обучаемые "гейты", чтобы модифицировать только те ячейки, относящиеся к тексту.
3) При ответе на вопрос мы из этих ячеек читаем информацию, в зависимости от вопроса решая, из каких ячеек, и декодируем ответ.
Интересно, что с помощью манипуляций ключами у этих ячеек можно добиться, например, чтобы нейросеть поддерживала состояние какой-то желаемой сущности отдельно в конкретной ячейке.
Мне кажется интересным потенциальный гибрид языковых моделей и подобной "памяти", потому что это позволит получить интерпретируемую картину мира внутри модели. Но есть непонятные моменты:
1) Как нам обеспечить интерпретируемость концептов? Как добиться их "дискретизации" в нужном виде?
2) Как можно учить такую память на неразмеченном тексте, который содержит противоречащие друг другу утверждения?
3) Можно ли как-то встроить логический вывод в эту схему, чтобы поддерживать непротиворечивость памяти?
Буду рад вашим мыслям на этот счёт или ссылкам на статьи, которые могут быть о чём-то подобном.
@knowledge_accumulator
👍9🤔2🔥1🤯1
Tree Transformer [2019] - учим грамматику языка без размеченных данных.
Инженеры много думают о способах ограничения мощности трансформера, так как оригинальная схема Self-Attention считается избыточной и потому излишне затратной.
Продажа качества за скорость это хорошо, но ещё интересна продажа качества за интерпретируемость - это интересно и с точки зрения исследования, и с точки зрения приложений. Один из вариантов купить интерпретируемость предлагается в данной работе.
Авторы предлагают слой под названием Constituent Attention, который заставляет модель разбивать токены на группы, которые составляют иерархию и обеспечивают многоэтажное разбиение предложения на смысловые части.
Как это работает?
1) Слой выдаёт query и key (другие) для каждого токена.
2) Между каждой парой соседних токенов считается score на основе этих query и key.
3) Эти скоры нормируются (чтобы как раз ограничить модель от полного attention), и далее из них считается альтернативная матрица attention - например, между 3 и 5 токеном attention равен произведению скоров между 3 и 4 и между 4 и 5. Интуитивный смысл этих чисел - вероятности того, что 2 токена принадлежат к 1 группе.
4) Чтобы получилась иерархия, с каждым слоем трансформера мы добавляем эти скоры к предыдущим.
5) Этот альтернативный attention домножается поэлементно на обычный attention.
А причём тут грамматика?
Применяя эту модель к тексту и считая эти скоры принадлежности к одной группе, мы можем простой эвристикой получить дерево токенов, отражающее грамматическую структуру текста. Бэйзлайны в задаче парсинга грамматики алгоритм бьёт, но я в этом не специалист.
Может быть, у подобной идеи есть потенциал и в других сферах ML. Кто его знает?
@knowledge_accumulator
Инженеры много думают о способах ограничения мощности трансформера, так как оригинальная схема Self-Attention считается избыточной и потому излишне затратной.
Продажа качества за скорость это хорошо, но ещё интересна продажа качества за интерпретируемость - это интересно и с точки зрения исследования, и с точки зрения приложений. Один из вариантов купить интерпретируемость предлагается в данной работе.
Авторы предлагают слой под названием Constituent Attention, который заставляет модель разбивать токены на группы, которые составляют иерархию и обеспечивают многоэтажное разбиение предложения на смысловые части.
Как это работает?
1) Слой выдаёт query и key (другие) для каждого токена.
2) Между каждой парой соседних токенов считается score на основе этих query и key.
3) Эти скоры нормируются (чтобы как раз ограничить модель от полного attention), и далее из них считается альтернативная матрица attention - например, между 3 и 5 токеном attention равен произведению скоров между 3 и 4 и между 4 и 5. Интуитивный смысл этих чисел - вероятности того, что 2 токена принадлежат к 1 группе.
4) Чтобы получилась иерархия, с каждым слоем трансформера мы добавляем эти скоры к предыдущим.
5) Этот альтернативный attention домножается поэлементно на обычный attention.
А причём тут грамматика?
Применяя эту модель к тексту и считая эти скоры принадлежности к одной группе, мы можем простой эвристикой получить дерево токенов, отражающее грамматическую структуру текста. Бэйзлайны в задаче парсинга грамматики алгоритм бьёт, но я в этом не специалист.
Может быть, у подобной идеи есть потенциал и в других сферах ML. Кто его знает?
@knowledge_accumulator
👍12
Приветствую новоприбывших подписчиков!
Что это за канал - я пытаюсь понятно, но содержательно, писать про различные подобласти внутри ML.
Некоторые из моих цепочек постов:
1) Отсюда начинается про генерацию кода
2) Тут про RL и про его применение в Atari
3) Примерно тут я начал писать про интеллект у алгоритмов
4) Тут про доказательства теорем в математике
Про меня самого можно почитать в закрепе.
Приятного чтения!
Что это за канал - я пытаюсь понятно, но содержательно, писать про различные подобласти внутри ML.
Некоторые из моих цепочек постов:
1) Отсюда начинается про генерацию кода
2) Тут про RL и про его применение в Atari
3) Примерно тут я начал писать про интеллект у алгоритмов
4) Тут про доказательства теорем в математике
Про меня самого можно почитать в закрепе.
Приятного чтения!
Telegram
Knowledge Accumulator
Начнём с первой работы, применяющей большие языковые модели в программировании - OpenAI Codex. В основе GitHub Copilot лежит именно эта модель.
Концептуально система работает так:
1) Обучение - языковая модель GPT файнтюнится на генерацию кода, датасет…
Концептуально система работает так:
1) Обучение - языковая модель GPT файнтюнится на генерацию кода, датасет…
🔥17👍2🥰1🫡1
A Generalist Agent (Gato) [2022] - путь к AGI или тупик?
На мой взгляд, проблема требуемого количества данных в RL не может быть решена только улучшением алгоритмов.
Человек учится избегать отрицательных наград, не получив ни разу такую награду (например, нам не нужно упасть на машине в обрыв, чтобы понять, что это плохая стратегия вождения). Это происходит благодаря обобщению опыта из прошлого, полученного при решении совершенно других задач.
Deepmind в данной работе делает систему, которая аккумулирует опыт из большого количества задач - они учат единый трансформер под названием Gato копировать поведение экспертов в >500 различных задач в области RL, включая игры, управление роботом и т.д.
Сработала ли магия? К сожалению, не совсем.
На картинке вы можете увидеть графики из ablation studies о том, насколько хорошо помогает в обучении на конкретной задаче предобучение на других задачах.
Имеет смысл смотреть на худший случай - Atari Boxing, в котором модель со случайном инициализацией обучается лучше предобученного Gato.
Это показывает, что обобщающей способности такого подхода не хватает, чтобы учиться быстрее на достаточно простой, но не похожей задаче.
Думаю, что мы нуждаемся в другом способе извлечения знаний из данных, если хотим добиться out-of-the-distribution обобщения, способностью к которому обладаем мы с вами.
@knowledge_accumulator
На мой взгляд, проблема требуемого количества данных в RL не может быть решена только улучшением алгоритмов.
Человек учится избегать отрицательных наград, не получив ни разу такую награду (например, нам не нужно упасть на машине в обрыв, чтобы понять, что это плохая стратегия вождения). Это происходит благодаря обобщению опыта из прошлого, полученного при решении совершенно других задач.
Deepmind в данной работе делает систему, которая аккумулирует опыт из большого количества задач - они учат единый трансформер под названием Gato копировать поведение экспертов в >500 различных задач в области RL, включая игры, управление роботом и т.д.
Сработала ли магия? К сожалению, не совсем.
На картинке вы можете увидеть графики из ablation studies о том, насколько хорошо помогает в обучении на конкретной задаче предобучение на других задачах.
Имеет смысл смотреть на худший случай - Atari Boxing, в котором модель со случайном инициализацией обучается лучше предобученного Gato.
Это показывает, что обобщающей способности такого подхода не хватает, чтобы учиться быстрее на достаточно простой, но не похожей задаче.
Думаю, что мы нуждаемся в другом способе извлечения знаний из данных, если хотим добиться out-of-the-distribution обобщения, способностью к которому обладаем мы с вами.
@knowledge_accumulator
👍11❤6🔥3
Causal Inference - как делать правильные выводы из данных
Наверное, вы не раз слышали о том, что корреляция не доказывает причинно-следственную связь.
Простых иллюстраций в реальной жизни много - например, сон в уличной обуви коррелирует с головной болью на следующее утро, но это не значит, что ботинки влияют на мозг 😁
Когда вы читаете о каких-то результатах исследований (особенно в новостях), в них могут быть ошибки как статистического характера, так и неправильная интерпретация результатов (учёные могут ошибаться или обманывать, шок).
Этот феномен играет роль и в ML, например, в рекомендательных системах. Часть алгоритмов уязвима к ситуации, когда некоторые объекты в данных встречаются сильно чаще других, у них больше положительных откликов, и алгоритмы начинают выбирать популярные объекты для пользователя просто из-за их популярности, а это плохо.
Вы можете очень сильно прокачать своё критическое мышление и способность делать правильные выводы, посмотрев хотя бы треть этого прекрасного плейлиста про Сausal Inference. Это короткие видео, в которых автор подробно объясняет основы этой области. Требуется базовая грамотность в теории вероятностей. Добавляйте себе в закладки, запишите просмотр в цели на 2023 ✍️
Посмотрев, вы поймёте, почему надёжный вывод можно сделать только в условиях эксперимента с фактором случайности, в чём математический смысл "поправок" в исследованиях, и почему даже с ними вывод не становится надёжным.
@knowledge_accumulator
Наверное, вы не раз слышали о том, что корреляция не доказывает причинно-следственную связь.
Простых иллюстраций в реальной жизни много - например, сон в уличной обуви коррелирует с головной болью на следующее утро, но это не значит, что ботинки влияют на мозг 😁
Когда вы читаете о каких-то результатах исследований (особенно в новостях), в них могут быть ошибки как статистического характера, так и неправильная интерпретация результатов (учёные могут ошибаться или обманывать, шок).
Этот феномен играет роль и в ML, например, в рекомендательных системах. Часть алгоритмов уязвима к ситуации, когда некоторые объекты в данных встречаются сильно чаще других, у них больше положительных откликов, и алгоритмы начинают выбирать популярные объекты для пользователя просто из-за их популярности, а это плохо.
Вы можете очень сильно прокачать своё критическое мышление и способность делать правильные выводы, посмотрев хотя бы треть этого прекрасного плейлиста про Сausal Inference. Это короткие видео, в которых автор подробно объясняет основы этой области. Требуется базовая грамотность в теории вероятностей. Добавляйте себе в закладки, запишите просмотр в цели на 2023 ✍️
Посмотрев, вы поймёте, почему надёжный вывод можно сделать только в условиях эксперимента с фактором случайности, в чём математический смысл "поправок" в исследованиях, и почему даже с ними вывод не становится надёжным.
@knowledge_accumulator
👍15✍3🔥3
Language Models are Open Knowledge Graphs [2020] - строим графы знаний с помощью языковой модели
Уже многие десятилетия в сфере ИИ существует понятие графов знаний - в них вершины это сущности (то, что описывается существительными), а рёбра это "отношения" между ними. Например, могут быть вершины "Альберт Эйнштейн" и "Нобелевская премия", и между ними может быть ребро "получить награду".
На заре ИИ, когда оптимизм лился из ушей, люди решили, что они сейчас построят граф всех знаний человечества и получат сверхумную машину, но оказалось, что сделать это вручную нереально. В нынешние времена возникают попытки строить такие графы знаний автоматически. Об одном из вариантов поговорим сегодня.
В рассматриваемой работе применяется LLM для извлечения фактов, записанных в тексте:
1) С помощью утилиты spaCy находим в предложениях пары сущностей head и tail, между которыми потом будем извлекать отношение.
2) См. картинку. Применяем любую LLM к куску текста от head до tail включительно. Берём матрицу attention. Теперь начинаем набирать по 1 токену в текст их отношения.
- Изначально у нас только токен [head].
- Смотрим на attention между последним добавленным токен и остальными токенами, которые ещё не добавляли. Добавляем тот, у которого наибольший attention. Если это токен tail, то поиск завершается.
3) Получившихся "кандидатов" [head, some text, tail] мы дополнительно фильтруем различными эвристиками и пытаемся их соотносить (с помощью сторонних NLP-утилит) с сущностями из существующих графов знаний для валидации фактов.
Я здесь упростил много деталей, но не нахожу их важными. Тут часовой обзор статьи от Янника.
Результаты не представляют особого интереса - обилие костылей и алгоритм, который использует матрицу внимания, которая учится совсем для другого, не позволяют совершить прорыв - результат немного превышает SOTA 2015-го года. Видимо, картину мира нам нужно строить совсем другим образом.
@knowledge_accumulator
Уже многие десятилетия в сфере ИИ существует понятие графов знаний - в них вершины это сущности (то, что описывается существительными), а рёбра это "отношения" между ними. Например, могут быть вершины "Альберт Эйнштейн" и "Нобелевская премия", и между ними может быть ребро "получить награду".
На заре ИИ, когда оптимизм лился из ушей, люди решили, что они сейчас построят граф всех знаний человечества и получат сверхумную машину, но оказалось, что сделать это вручную нереально. В нынешние времена возникают попытки строить такие графы знаний автоматически. Об одном из вариантов поговорим сегодня.
В рассматриваемой работе применяется LLM для извлечения фактов, записанных в тексте:
1) С помощью утилиты spaCy находим в предложениях пары сущностей head и tail, между которыми потом будем извлекать отношение.
2) См. картинку. Применяем любую LLM к куску текста от head до tail включительно. Берём матрицу attention. Теперь начинаем набирать по 1 токену в текст их отношения.
- Изначально у нас только токен [head].
- Смотрим на attention между последним добавленным токен и остальными токенами, которые ещё не добавляли. Добавляем тот, у которого наибольший attention. Если это токен tail, то поиск завершается.
3) Получившихся "кандидатов" [head, some text, tail] мы дополнительно фильтруем различными эвристиками и пытаемся их соотносить (с помощью сторонних NLP-утилит) с сущностями из существующих графов знаний для валидации фактов.
Я здесь упростил много деталей, но не нахожу их важными. Тут часовой обзор статьи от Янника.
Результаты не представляют особого интереса - обилие костылей и алгоритм, который использует матрицу внимания, которая учится совсем для другого, не позволяют совершить прорыв - результат немного превышает SOTA 2015-го года. Видимо, картину мира нам нужно строить совсем другим образом.
@knowledge_accumulator
👍7❤3🔥3😁2😢1
К чему приведут регуляции ИИ?
Политика и технологии - это два совсем разных мира, работающих по совершенно разным законам. Когда они встречаются, происходят интересные вещи.
С одной стороны, специалисты в технологиях чувствуют своё превосходство в экспертизе. Часть шутит с долей издёвки о глупости политиков в технологиях, а кто-то снисходительно пытается им помочь разобраться. Ведь это просто наивные немолодые люди, которые хотят понять, что происходит, чтобы сделать, как лучше.
Но на самом деле картина куда печальнее - происходит встреча сообщества наивных созидателей, которые не привыкли иметь дело с тёмной стороной людей, с жестокой реальностью человеческого общества, в котором борьба за власть и ресурсы - это ключевой аспект жизни.
Эти инженеры-мечтатели встречаются с людьми, для которых манипулировать людьми ради зарабатывания денег и власти - это работа, в которой они лучшие специалисты в мире. Они находятся в постоянной борьбе с конкурентами и их умения максимально отточены.
И чем всё закончится? А как обычно бывало в других сферах - создадут правила, которые ни от чего не будут защищать, но которые заставят всех выполнять. Выиграют крупные компании, которым ничего не стоит потратить ресурсы на выполнение бесполезных "тестов на безопасность", зато мелкие компании будут задушены - тратить 6 месяцев на то, чтобы просить свою языковую модель сгенерировать текст для обмана человека на фрилансе, они не смогут.
Вы считаете, что регулирование будет продумано так, чтобы ничему не повредить? Регулировать будут только крупные модели у больших компаний, не ограничив творческую среду и развитие?
Тогда перечитайте этот пост.
@knowledge_accumulator
Политика и технологии - это два совсем разных мира, работающих по совершенно разным законам. Когда они встречаются, происходят интересные вещи.
С одной стороны, специалисты в технологиях чувствуют своё превосходство в экспертизе. Часть шутит с долей издёвки о глупости политиков в технологиях, а кто-то снисходительно пытается им помочь разобраться. Ведь это просто наивные немолодые люди, которые хотят понять, что происходит, чтобы сделать, как лучше.
Но на самом деле картина куда печальнее - происходит встреча сообщества наивных созидателей, которые не привыкли иметь дело с тёмной стороной людей, с жестокой реальностью человеческого общества, в котором борьба за власть и ресурсы - это ключевой аспект жизни.
Эти инженеры-мечтатели встречаются с людьми, для которых манипулировать людьми ради зарабатывания денег и власти - это работа, в которой они лучшие специалисты в мире. Они находятся в постоянной борьбе с конкурентами и их умения максимально отточены.
И чем всё закончится? А как обычно бывало в других сферах - создадут правила, которые ни от чего не будут защищать, но которые заставят всех выполнять. Выиграют крупные компании, которым ничего не стоит потратить ресурсы на выполнение бесполезных "тестов на безопасность", зато мелкие компании будут задушены - тратить 6 месяцев на то, чтобы просить свою языковую модель сгенерировать текст для обмана человека на фрилансе, они не смогут.
Вы считаете, что регулирование будет продумано так, чтобы ничему не повредить? Регулировать будут только крупные модели у больших компаний, не ограничив творческую среду и развитие?
Тогда перечитайте этот пост.
@knowledge_accumulator
👍29🥴4❤3👏1🖕1
Приглашаю в свой твиттер!
Так бывает, что у меня возникают интересные мысли на ту или иную тему, но писать про это целый пост нецелесообразно. Поэтому я недавно начал вести твиттер.
https://twitter.com/al_fritzler
Я пока ещё нащупываю формат ведения, но если вам нравится мой критический взгляд на вещи и попытки видеть глобальные паттерны в разных технологиях, то вам может быть интересно.
Пишу там на английском!
Пишите в комментариях, если есть какие-то пожелания по содержанию ✍️
Так бывает, что у меня возникают интересные мысли на ту или иную тему, но писать про это целый пост нецелесообразно. Поэтому я недавно начал вести твиттер.
https://twitter.com/al_fritzler
Я пока ещё нащупываю формат ведения, но если вам нравится мой критический взгляд на вещи и попытки видеть глобальные паттерны в разных технологиях, то вам может быть интересно.
Пишу там на английском!
Пишите в комментариях, если есть какие-то пожелания по содержанию ✍️
👍8💩4
Symbolic Knowledge Distillation: from General Language Models to Commonsense Models [2021]
Это работа, на мой взгляд, более удачно пытается извлекать знания о мире из языковой модели.
В работе используется база знаний ATOMIC, состоящая из триплетов:
Авторы используют GPT-3, чтобы расширить эту базу знаний:
1) Сначала генерируются
2) Для каждого
— Вопрос. Например, для xNeed: "что должно произойти, чтобы произошло
— Примеры пар из базы atomic
— Сгенерированные
Таким образом генерируются соответствующие
3) Обучают дополнительную RoBERTa, которая отличает ложные триплеты от истинных, и фильтруют сгенерированные триплеты по ней
4) Дистиллируют маленькую языковую модель (GPT-2 😁) на этих триплетах
Качество триплетов оценивается людьми - просят поставить Accept/Reject/NA. Исходный ATOMIC это полмиллиона триплетов с рейтингом 87%, дополнительно генерируется 6 миллионов триплетов с рейтингом 78%, но после отсечения RoBERTa остаётся 2.5 миллиона с рейтингом 96%. Авторы исследуют датасет и делают вывод, что с качеством данных и их разнообразием всё в порядке. А дистиллированная GPT-2 показывает лучший результат на commonsense-вопросах, чем исходная модель - вероятно, засчёт увеличения качества датасета.
Мне эта история нравится, я думаю, что это шаг в правильную сторону. Кроме того, сама идея триплетов с причинно-следственными отношениями это, на мой взгляд, круто, я думаю, что поверх подобных данных можно учить нейросетевую картину мира, и в комбинации с логическим выводом мы получим протооракула.
@knowledge_accumulator
Это работа, на мой взгляд, более удачно пытается извлекать знания о мире из языковой модели.
В работе используется база знаний ATOMIC, состоящая из триплетов:
<событие, отношение, вывод>, где событие и вывод - это какие-то 2 текстовых утверждения, а отношение - это один из нескольких видов причинно-следственной связи между ними. Например, отношение xNeed - это когда вывод является условием для события.Авторы используют GPT-3, чтобы расширить эту базу знаний:
1) Сначала генерируются
события, подавая в качестве промпта отобранный сет из хороших существующих событий из ATOMIC.2) Для каждого
отношения подбираются примеры пар <событие, вывод> из ATOMIC, и составляется промпт следующего вида:— Вопрос. Например, для xNeed: "что должно произойти, чтобы произошло
событие?"— Примеры пар из базы atomic
— Сгенерированные
события из пункта 1Таким образом генерируются соответствующие
выводы для событий.3) Обучают дополнительную RoBERTa, которая отличает ложные триплеты от истинных, и фильтруют сгенерированные триплеты по ней
4) Дистиллируют маленькую языковую модель (GPT-2 😁) на этих триплетах
Качество триплетов оценивается людьми - просят поставить Accept/Reject/NA. Исходный ATOMIC это полмиллиона триплетов с рейтингом 87%, дополнительно генерируется 6 миллионов триплетов с рейтингом 78%, но после отсечения RoBERTa остаётся 2.5 миллиона с рейтингом 96%. Авторы исследуют датасет и делают вывод, что с качеством данных и их разнообразием всё в порядке. А дистиллированная GPT-2 показывает лучший результат на commonsense-вопросах, чем исходная модель - вероятно, засчёт увеличения качества датасета.
Мне эта история нравится, я думаю, что это шаг в правильную сторону. Кроме того, сама идея триплетов с причинно-следственными отношениями это, на мой взгляд, круто, я думаю, что поверх подобных данных можно учить нейросетевую картину мира, и в комбинации с логическим выводом мы получим протооракула.
@knowledge_accumulator
👍12👏1
Оракул - одна из концепций мощного интеллекта
Давайте поговорим об одной из форм интеллектуальной обработки данных, которую я упоминал недавно - об оракуле.
Что это такое?
С точки зрения интерфейса это система, которая выполняет функцию ответов на вопросы (то есть это чат-бот). Но в сущности он должен уметь извлекать "максимально много" информации из имеющихся данных, и это позволит ему давать очень качественные ответы на вопросы. Он совместит мышление человека (или лучше), доступ к огромному количеству данных и возможность думать и учиться без устали.
И что с этим оракулом делать?
По большому счёту всё то же самое, что и с абстрактным "AGI", но в форме задания вопросов. При этом такая конструкция не подразумевает никакого "ИИ-бунта", потому что у системы нет никаких целей и автономии.
О нет, рынок труда пострадает!
Вам в клуб противников автоматических лифтов.
Это опасная технология?
Настолько же, насколько опасны ChatGPT, поисковик и библиотека (та, которая с книжками).
Кто-то, конечно, спросит у оракула "В чём смысл жизни?", получит ответ "Ни в чём." и выпрыгнет из окна. Но давайте постараемся это предотвратить и купим этим людям таблетки заранее.
Когда релиз?
На мой взгляд, мы не менее чем в одном технологическом прорыве от этого. Напомню, что обычно между прототипом и работающей реализацией проходит много времени. Я, изучая статьи, пытаюсь нащупать зачатки прототипа, но пока безуспешно. Если у вас есть идеи, присылайте! 😁
@knowledge_accumulator
Давайте поговорим об одной из форм интеллектуальной обработки данных, которую я упоминал недавно - об оракуле.
Что это такое?
С точки зрения интерфейса это система, которая выполняет функцию ответов на вопросы (то есть это чат-бот). Но в сущности он должен уметь извлекать "максимально много" информации из имеющихся данных, и это позволит ему давать очень качественные ответы на вопросы. Он совместит мышление человека (или лучше), доступ к огромному количеству данных и возможность думать и учиться без устали.
И что с этим оракулом делать?
По большому счёту всё то же самое, что и с абстрактным "AGI", но в форме задания вопросов. При этом такая конструкция не подразумевает никакого "ИИ-бунта", потому что у системы нет никаких целей и автономии.
О нет, рынок труда пострадает!
Вам в клуб противников автоматических лифтов.
Это опасная технология?
Настолько же, насколько опасны ChatGPT, поисковик и библиотека (та, которая с книжками).
Кто-то, конечно, спросит у оракула "В чём смысл жизни?", получит ответ "Ни в чём." и выпрыгнет из окна. Но давайте постараемся это предотвратить и купим этим людям таблетки заранее.
Когда релиз?
На мой взгляд, мы не менее чем в одном технологическом прорыве от этого. Напомню, что обычно между прототипом и работающей реализацией проходит много времени. Я, изучая статьи, пытаюсь нащупать зачатки прототипа, но пока безуспешно. Если у вас есть идеи, присылайте! 😁
@knowledge_accumulator
👍13
DreamCoder [2020] - воплощение моей мечты
Алгоритмическое решение задач сводится к нахождению программы (последовательности операций), которая удовлетворяет какому-то критерию решения. Это нужно при поиске доказательства теоремы, кодогенерации для решения задач, ARC-тесте на IQ и т.д.
Когда мы конструируем какой-то Domain Specific Language - набор элементарных команд, который мы используем для перебора, мы должны учитывать 2 ограничения:
1) Чем базовые команды сложнее, тем меньший класс задач мы можем решить с помощью них
2) Чем базовые команды проще, тем длиннее итоговая программа
В результате, мы сильно ограничены в разнообразии или сложности решаемых задач.
Я давно думал о том, как это можно обойти, и внезапно оказалось, что эти идеи были реализованы в статье DreamCoder.
Предположим, что мы работаем с каким-то классом задач X.
1) Определим набор самых базовых операций в домене X.
2) Будем сэмплировать задачи класса X и пытаться собрать программу из нашего набора для этих задач. Для каких-то хотя бы сможем собрать.
3) Анализируя успешные программы, находим часто встречающиеся комбинации операций и составляем из них новую операцию, добавляя в наш набор.
4) Обучаем нейросеть, которая будет направлять наш перебор программ.
Я верю в силу подобного фреймворка, и я с нетерпением жду, когда его смогут применить к более мощным классам задач, про которые я упоминал в начале поста. Я думаю, что это тот подход, который позволит получить в них сверхчеловеческую производительность.
Часовой обзор статьи от Янника.
@knowledge_accumulator
Алгоритмическое решение задач сводится к нахождению программы (последовательности операций), которая удовлетворяет какому-то критерию решения. Это нужно при поиске доказательства теоремы, кодогенерации для решения задач, ARC-тесте на IQ и т.д.
Когда мы конструируем какой-то Domain Specific Language - набор элементарных команд, который мы используем для перебора, мы должны учитывать 2 ограничения:
1) Чем базовые команды сложнее, тем меньший класс задач мы можем решить с помощью них
2) Чем базовые команды проще, тем длиннее итоговая программа
В результате, мы сильно ограничены в разнообразии или сложности решаемых задач.
Я давно думал о том, как это можно обойти, и внезапно оказалось, что эти идеи были реализованы в статье DreamCoder.
Предположим, что мы работаем с каким-то классом задач X.
1) Определим набор самых базовых операций в домене X.
2) Будем сэмплировать задачи класса X и пытаться собрать программу из нашего набора для этих задач. Для каких-то хотя бы сможем собрать.
3) Анализируя успешные программы, находим часто встречающиеся комбинации операций и составляем из них новую операцию, добавляя в наш набор.
4) Обучаем нейросеть, которая будет направлять наш перебор программ.
Я верю в силу подобного фреймворка, и я с нетерпением жду, когда его смогут применить к более мощным классам задач, про которые я упоминал в начале поста. Я думаю, что это тот подход, который позволит получить в них сверхчеловеческую производительность.
Часовой обзор статьи от Янника.
@knowledge_accumulator
👍17🔥5
Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos [2022] - о том, как нейросеть проходит Minecraft.
Одна из популярных задач для RL - это создание алмазной кирки в Minecraft. Она требует огромного числа скоординированных действий и занимает минуты. В данной работе её частично решают:
1) Сначала обучают нейросеть, которая по двум соседним кадрам предсказывает сделанное действие (как тут), для этого специально собирают датасет из 2 тысяч часов видео.
2) Этой нейросетью размечают 70 тысяч часов видео с игрой в Minecraft c ютуба.
3) Тренируют агента копировать действия игроков из этого датасета - это первый этап обучения (VPT).
4) Собирают специальный датасет, где просят людей заниматься базовыми активностями в майнкрафте, характерными для начала игры - например, постройкой дома. Этих данных меньше, чем в пункте 2, но они более качественные и ближе к основной задаче.
5) На этом датасете файнтюнят агента - это второй этап обучения (Early-Game).
6) Наконец, с помощью RL начинают учить агента собирать алмазную кирку. Здесь есть нюанс: используется не только награда за финальную цель, но и награда за каждую из >10 промежуточных целей, без которых финальную невозможно достичь. Также используют KL-регуляризацию, чтобы сильно не уходить от претрейна.
Что в результате? Нейросеть за 10 минут справляется в 2.5% случаев, человек в 12%. Интересно, что с задачей "найти алмаз" нейросеть справляется в 20% случаев, а человек в 15%. Если ты нашёл 3 алмаза, ты можешь сразу же сделать себе кирку, и конверсия из алмазов в кирку у человека, равная 80%, говорит о том, что это должно быть простым переходом.
Нейросеть, однако, конвертирует алмазы в кирку всего в 10% случаев. То есть либо она не способна добыть 3 алмаза из месторождения, либо не может потом сделать кирку. Так что, подходу точно есть куда расти, но интересно, что хоть какой-то процент успеха есть!
На графиках можно наблюдать то, насколько принципиальным является претрейн в этой задаче.
Более детальные обзоры: раз и два.
@knowledge_accumulator
Одна из популярных задач для RL - это создание алмазной кирки в Minecraft. Она требует огромного числа скоординированных действий и занимает минуты. В данной работе её частично решают:
1) Сначала обучают нейросеть, которая по двум соседним кадрам предсказывает сделанное действие (как тут), для этого специально собирают датасет из 2 тысяч часов видео.
2) Этой нейросетью размечают 70 тысяч часов видео с игрой в Minecraft c ютуба.
3) Тренируют агента копировать действия игроков из этого датасета - это первый этап обучения (VPT).
4) Собирают специальный датасет, где просят людей заниматься базовыми активностями в майнкрафте, характерными для начала игры - например, постройкой дома. Этих данных меньше, чем в пункте 2, но они более качественные и ближе к основной задаче.
5) На этом датасете файнтюнят агента - это второй этап обучения (Early-Game).
6) Наконец, с помощью RL начинают учить агента собирать алмазную кирку. Здесь есть нюанс: используется не только награда за финальную цель, но и награда за каждую из >10 промежуточных целей, без которых финальную невозможно достичь. Также используют KL-регуляризацию, чтобы сильно не уходить от претрейна.
Что в результате? Нейросеть за 10 минут справляется в 2.5% случаев, человек в 12%. Интересно, что с задачей "найти алмаз" нейросеть справляется в 20% случаев, а человек в 15%. Если ты нашёл 3 алмаза, ты можешь сразу же сделать себе кирку, и конверсия из алмазов в кирку у человека, равная 80%, говорит о том, что это должно быть простым переходом.
Нейросеть, однако, конвертирует алмазы в кирку всего в 10% случаев. То есть либо она не способна добыть 3 алмаза из месторождения, либо не может потом сделать кирку. Так что, подходу точно есть куда расти, но интересно, что хоть какой-то процент успеха есть!
На графиках можно наблюдать то, насколько принципиальным является претрейн в этой задаче.
Более детальные обзоры: раз и два.
@knowledge_accumulator
👍12🔥4🤯1
Помогите определить будущее канала
Когда я создавал канал, у него было 3 цели:
1) Он дисциплинирует меня и заставляет регулярно читать статьи
2) Он вынуждает меня аккуратно и понятно рассказывать про прочитанное, и это помогает в нём лучше разобраться
3) Мне приятно делиться новыми знаниями с другими людьми
Спустя пару месяцев довольно неожиданно у меня появилось большое количество подписчиков, спасибо вам за поддержку! ❤️
За последнюю неделю мне поступило больше 5 рекламных предложений, которые я отклонил, потому что не уверен, хочу ли я, чтобы на этом канале было что-то кроме того, чем я искренне хочу с вами поделиться. Тем не менее, каждый раз, когда я отказываю в размещении, часть меня жалеет об этом решении.
И тогда я подумал, что нам имеет смысл определить будущее канала вместе с моими любимыми подписчиками! 😁
Я завёл себе Patreon и Boosty, с их помощью вы можете смягчить мои страдания от отказа от рекламы. Также с его помощью вы можете предложить мне написать пост на тему (почти любую), которую вы хотите, а самые щедрые получат возможность созвониться со мной, поболтать и обыграть в шахматы.
Очень надеюсь, что ваша поддержка сможет уменьшить мои страдания 🥹
Когда я создавал канал, у него было 3 цели:
1) Он дисциплинирует меня и заставляет регулярно читать статьи
2) Он вынуждает меня аккуратно и понятно рассказывать про прочитанное, и это помогает в нём лучше разобраться
3) Мне приятно делиться новыми знаниями с другими людьми
Спустя пару месяцев довольно неожиданно у меня появилось большое количество подписчиков, спасибо вам за поддержку! ❤️
За последнюю неделю мне поступило больше 5 рекламных предложений, которые я отклонил, потому что не уверен, хочу ли я, чтобы на этом канале было что-то кроме того, чем я искренне хочу с вами поделиться. Тем не менее, каждый раз, когда я отказываю в размещении, часть меня жалеет об этом решении.
И тогда я подумал, что нам имеет смысл определить будущее канала вместе с моими любимыми подписчиками! 😁
Я завёл себе Patreon и Boosty, с их помощью вы можете смягчить мои страдания от отказа от рекламы. Также с его помощью вы можете предложить мне написать пост на тему (почти любую), которую вы хотите, а самые щедрые получат возможность созвониться со мной, поболтать и обыграть в шахматы.
Очень надеюсь, что ваша поддержка сможет уменьшить мои страдания 🥹
boosty.to
Knowledge Accumulator - Аккумулирую знания
Автор телеграм-канала https://news.1rj.ru/str/knowledge_accumulator. Пишу о своём видении мира и технологий.
👍29💯5💩3❤2🤮2🤡2👎1
Как исследователи усложняют мне работу
К сожалению, в современных исследованиях многое завязано на количество статей, на их публикации в каких-то местах, на их продаваемость менеджменту, а не качестве выводов и поиске истины. У этого есть свои институциональные причины, про которые мы ещё поговорим.
Исследователи часто приукрашивают свои результаты, плодят ненужные сущности, замешивают в текст хайповые термины без причины. Обзор литературы при этом часто делается уже в самом конце, и понимание упоминаемых статей у авторов не глубже абстракта.
Данные проблемы привели к катастрофическому положению вещей в одной из областей, в которой я работаю - применении RL в ранжировании в рекомендательных системах.
В ближайших постах я расскажу вам, какие главные проблемы существуют в этой подобласти, с примерами высокоцитируемых статей. Не переключайтесь!
@knowledge_accumulator
К сожалению, в современных исследованиях многое завязано на количество статей, на их публикации в каких-то местах, на их продаваемость менеджменту, а не качестве выводов и поиске истины. У этого есть свои институциональные причины, про которые мы ещё поговорим.
Исследователи часто приукрашивают свои результаты, плодят ненужные сущности, замешивают в текст хайповые термины без причины. Обзор литературы при этом часто делается уже в самом конце, и понимание упоминаемых статей у авторов не глубже абстракта.
Данные проблемы привели к катастрофическому положению вещей в одной из областей, в которой я работаю - применении RL в ранжировании в рекомендательных системах.
В ближайших постах я расскажу вам, какие главные проблемы существуют в этой подобласти, с примерами высокоцитируемых статей. Не переключайтесь!
@knowledge_accumulator
👍38🤔4😢3
Я вновь на телеэкране
Недавно совершенно внезапно автор канала @CVML_team предложил мне поболтать с ним про RL на камеру, и я с радостью согласился.
Потом мы сошлись на том, что жизнь будет слишком скучной и простой, если мы будем разговаривать на русском.
Было интересно! Результат прилагаю.
Недавно совершенно внезапно автор канала @CVML_team предложил мне поболтать с ним про RL на камеру, и я с радостью согласился.
Потом мы сошлись на том, что жизнь будет слишком скучной и простой, если мы будем разговаривать на русском.
Было интересно! Результат прилагаю.
YouTube
RL in 2023: RLHF, AlphaTensor, problems, and thoughts
Alexandr LinkedIn - https://www.linkedin.com/in/alexander-fritzler/
Alexandr Telegram channel - https://news.1rj.ru/str/knowledge_accumulator
My LinkedIn - https://www.linkedin.com/in/maltsevanton
My Telegram channel - https://news.1rj.ru/str/CVML_team
00:00:00 - Intro
00:00:50…
Alexandr Telegram channel - https://news.1rj.ru/str/knowledge_accumulator
My LinkedIn - https://www.linkedin.com/in/maltsevanton
My Telegram channel - https://news.1rj.ru/str/CVML_team
00:00:00 - Intro
00:00:50…
👍23🔥6💩1
Самая частая проблема статей про RL в рекомендациях
Сегодня мы начинаем обещанный мной разговор с проблемы тестирования на метриках из Supervised learning. Это самая частая и самая фатальная ошибка, которая сигнализирует о глобальном непонимании RL и того, зачем он нужен. Мета-обзоры (из одного из них картинка) показывают, что более половины статей содержат эту проблему.
RL - это про долгосрочное взаимодействие со средой, и в данном случае средой является пользователь, агентом является система рекомендаций, наградой является какая-то оптимизируемая метрика, предоставляемая бизнесом.
Reinforcement learning подразумевает влияние действий на траекторию агента в среде, на саму генерацию данных, и при отсутствии этого влияния RL превращается в Supervised learning.
Нет никакого смысла сравнивать по метрике типа NDCG вашу RL-модель с моделью, учащейся просто на клик. RL-модель по определению должна приносить в жертву мгновенную награду, максимизируя суммарную награду. И если она обгоняет ваш baseline по метрике NDCG, это говорит только о качестве вашего baseline. Долгосрочное же влияние модели на датасетах проверить в принципе невозможно.
Если вы сделали новомодный DQN с 30 хаками, сравнили его с моделью, которая сортирует документы по популярности и получили прирост по NDCG, то, надеюсь, вам за это стыдно...
Вот вам смешно, а я такое периодически читаю.
@knowledge_accumulator
Сегодня мы начинаем обещанный мной разговор с проблемы тестирования на метриках из Supervised learning. Это самая частая и самая фатальная ошибка, которая сигнализирует о глобальном непонимании RL и того, зачем он нужен. Мета-обзоры (из одного из них картинка) показывают, что более половины статей содержат эту проблему.
RL - это про долгосрочное взаимодействие со средой, и в данном случае средой является пользователь, агентом является система рекомендаций, наградой является какая-то оптимизируемая метрика, предоставляемая бизнесом.
Reinforcement learning подразумевает влияние действий на траекторию агента в среде, на саму генерацию данных, и при отсутствии этого влияния RL превращается в Supervised learning.
Нет никакого смысла сравнивать по метрике типа NDCG вашу RL-модель с моделью, учащейся просто на клик. RL-модель по определению должна приносить в жертву мгновенную награду, максимизируя суммарную награду. И если она обгоняет ваш baseline по метрике NDCG, это говорит только о качестве вашего baseline. Долгосрочное же влияние модели на датасетах проверить в принципе невозможно.
Если вы сделали новомодный DQN с 30 хаками, сравнили его с моделью, которая сортирует документы по популярности и получили прирост по NDCG, то, надеюсь, вам за это стыдно...
Вот вам смешно, а я такое периодически читаю.
@knowledge_accumulator
👍18😁6🤔6❤2🤯2
Печальная правда исследований RL в рекомендациях
Одна из самых частых фраз, которые я вижу в статьях на эту тему, звучит примерно так:
"To perform evaluation of RL methods, a straightforward way is to evaluate the learned policy through online A/B test, which, however, could be prohibitively expensive and may hurt user experiences".
Это справедливое замечание, но часто здесь прибегают к неверному решению проблемы - к тестированию на обученном "симуляторе" пользователя. Это абсолютно ложный путь.
Качество работы классических рекомендательных моделей, предсказывающих отклик пользователя на документ, говорит о том, насколько огромен шум в динамике пользовательского поведения. На него влияет огромное количество непредсказуемых и ненаблюдаемых факторов, и надеяться на то, что мы можем успешно симулировать длительную пользовательскую траекторию, весьма наивно.
Да, может быть, для какой-то отладки и быстрой проверки симулятор не помешает (а сделать его это уже боль), но в огромном количестве статей проверка на симуляторе является окончательной проверкой метода, и это полная печаль.
Я понимаю, что не у всех есть настоящий сервис с пользователями. Но печальная правда состоит в том, что если вы не можете протестировать рекомендательный RL-метод в реальной среде, то вам нужно рассмотреть вопрос смены темы исследования 😄
А что делать, если у вас всё-таки есть сервис, но вы боитесь выкатить в прод плохую модель?
1) Тестируйте на маленькой выборке
2) Тестируйте ансамбль вашей модели и текущего продакшна, постепенно увеличивая вес новой модели
Картинка из того же мета-обзора.
@knowledge_accumulator
Одна из самых частых фраз, которые я вижу в статьях на эту тему, звучит примерно так:
"To perform evaluation of RL methods, a straightforward way is to evaluate the learned policy through online A/B test, which, however, could be prohibitively expensive and may hurt user experiences".
Это справедливое замечание, но часто здесь прибегают к неверному решению проблемы - к тестированию на обученном "симуляторе" пользователя. Это абсолютно ложный путь.
Качество работы классических рекомендательных моделей, предсказывающих отклик пользователя на документ, говорит о том, насколько огромен шум в динамике пользовательского поведения. На него влияет огромное количество непредсказуемых и ненаблюдаемых факторов, и надеяться на то, что мы можем успешно симулировать длительную пользовательскую траекторию, весьма наивно.
Да, может быть, для какой-то отладки и быстрой проверки симулятор не помешает (а сделать его это уже боль), но в огромном количестве статей проверка на симуляторе является окончательной проверкой метода, и это полная печаль.
Я понимаю, что не у всех есть настоящий сервис с пользователями. Но печальная правда состоит в том, что если вы не можете протестировать рекомендательный RL-метод в реальной среде, то вам нужно рассмотреть вопрос смены темы исследования 😄
А что делать, если у вас всё-таки есть сервис, но вы боитесь выкатить в прод плохую модель?
1) Тестируйте на маленькой выборке
2) Тестируйте ансамбль вашей модели и текущего продакшна, постепенно увеличивая вес новой модели
Картинка из того же мета-обзора.
@knowledge_accumulator
👍19❤4
Лучший способ продемонстрировать прирост
Продолжаем разговор про исследования RL в рекомендациях, начатый тут.
Ккогда вы разрабатываете новый метод для улучшения системы, которую сами делаете, то никто, кроме вас и ваших коллег, не ориентируется в вашей задаче и не может сходу оценить реальность прироста. Это открывает простор для такой хитрости, как плохие бейзлайны.
Очень часто при внимательном прочтении статьи я нахожу проблему в сравнении RL-метода с "классическим" методом. Хорошей иллюстрацией будет следующая статья, у которой >60 цитирований.
Здесь RL-метод обучается на сложную награду в задаче ритейл-рекомендаций: суммируется награда за клик с поправкой на позицию в выдаче, награда за покупку после этого клика и награда-нормировка, зависящая от того, как часто на что-нибудь кликает пользователь.
Против него соревнуется модель, которая просто обучается на то, был ли клик на карточку.
Разумеется, по итоговым бизнес-метрикам RL победил, поскольку он хоть как-то учитывает информацию об итоговой покупке. Более того, он победил кликовую модель по CTR, вероятно, благодаря скорректированной награде за клик.
На мой взгляд, этого результата недостаточно, чтобы доказать нужность очень сложных в реализации, отладке, тестировании и поддержке RL-методов. А вы как считаете?
@knowledge_accumulator
Продолжаем разговор про исследования RL в рекомендациях, начатый тут.
Ккогда вы разрабатываете новый метод для улучшения системы, которую сами делаете, то никто, кроме вас и ваших коллег, не ориентируется в вашей задаче и не может сходу оценить реальность прироста. Это открывает простор для такой хитрости, как плохие бейзлайны.
Очень часто при внимательном прочтении статьи я нахожу проблему в сравнении RL-метода с "классическим" методом. Хорошей иллюстрацией будет следующая статья, у которой >60 цитирований.
Здесь RL-метод обучается на сложную награду в задаче ритейл-рекомендаций: суммируется награда за клик с поправкой на позицию в выдаче, награда за покупку после этого клика и награда-нормировка, зависящая от того, как часто на что-нибудь кликает пользователь.
Против него соревнуется модель, которая просто обучается на то, был ли клик на карточку.
Разумеется, по итоговым бизнес-метрикам RL победил, поскольку он хоть как-то учитывает информацию об итоговой покупке. Более того, он победил кликовую модель по CTR, вероятно, благодаря скорректированной награде за клик.
На мой взгляд, этого результата недостаточно, чтобы доказать нужность очень сложных в реализации, отладке, тестировании и поддержке RL-методов. А вы как считаете?
@knowledge_accumulator
👍13❤2🤨2
Экстраординарные утверждения требуют экстраординарных доказательств
Продолжаем разговор про RL-рекомендации, начавшийся тут.
Чтобы доказать, что RL-алгоритм выполняет поставленную задачу - максимизирует ту награду, которую мы задаём в процессе обучения, нужно проводить аккуратный ablation study.
Что я хочу в нём увидеть?
В RL есть параметр Gamma, отвечающий за горизонт планирования. Если он равен 1, то это значит, что мы максимизируем всю будущую награду, а если 0, то только ближайшую - это по сути как в Supervised learning. Обычно в обучении используют гамму, близкую к 1, но итоговый результат измеряют с помощью награды, просуммированной на всём промежутке (то есть как будто Gamma = 1).
Я хотел бы, чтобы авторы обучали и тестировали дополнительную версию своей модели с единственным изменением - с Gamma, равной 0. Это лучший способ доказать, что учитывание последующих наград действительно приносит пользу и использование RL имеет смысл.
Кроме того, важным бейзлайном может быть модель, которая учитывает долгосрочные награды, но только связанные только с совершённым действием напрямую. Например, мы берём порекомендованный товар и учитываем все его покупки в будущем, которые были совершены, в качестве таргета. Это проверяет предположение о том, что можно обойтись аккуратным расчётом таргета для классического рекомендательного алгоритма, а не мучиться с RL.
Я не помню, когда последний раз видел подобное аккуратное сравнение, если видел вообще. В подавляющем количестве работ RL-алгоритм сравнивается с алгоритмом, который отличается в 10 местах, и из этого сравнения невозможно сделать качественный вывод о том, что влияет на результат.
@knowledge_accumulator
Продолжаем разговор про RL-рекомендации, начавшийся тут.
Чтобы доказать, что RL-алгоритм выполняет поставленную задачу - максимизирует ту награду, которую мы задаём в процессе обучения, нужно проводить аккуратный ablation study.
Что я хочу в нём увидеть?
В RL есть параметр Gamma, отвечающий за горизонт планирования. Если он равен 1, то это значит, что мы максимизируем всю будущую награду, а если 0, то только ближайшую - это по сути как в Supervised learning. Обычно в обучении используют гамму, близкую к 1, но итоговый результат измеряют с помощью награды, просуммированной на всём промежутке (то есть как будто Gamma = 1).
Я хотел бы, чтобы авторы обучали и тестировали дополнительную версию своей модели с единственным изменением - с Gamma, равной 0. Это лучший способ доказать, что учитывание последующих наград действительно приносит пользу и использование RL имеет смысл.
Кроме того, важным бейзлайном может быть модель, которая учитывает долгосрочные награды, но только связанные только с совершённым действием напрямую. Например, мы берём порекомендованный товар и учитываем все его покупки в будущем, которые были совершены, в качестве таргета. Это проверяет предположение о том, что можно обойтись аккуратным расчётом таргета для классического рекомендательного алгоритма, а не мучиться с RL.
Я не помню, когда последний раз видел подобное аккуратное сравнение, если видел вообще. В подавляющем количестве работ RL-алгоритм сравнивается с алгоритмом, который отличается в 10 местах, и из этого сравнения невозможно сделать качественный вывод о том, что влияет на результат.
@knowledge_accumulator
👍24🔥4😁2🤔2