Современные языковые модели могут неплохо решать задачи, если им сначала дать пару примеров. Интересно, какая там внутри математика?
Разбираемся в сегодняшнем посте
Разбираемся в сегодняшнем посте
vc.ru
Пост в сообществе AI на vc.ru
Стандартный алгоритм работы с языковыми моделями такой: сначала обучаем на очень большом наборе текстов, а потом адаптируем под новые задачи, используя небольшие наборы примеров. Эти небольшие наборы примеров работают действительно хорошо, но почему это так…
✨Я тут расписала себе план постов аж по начало февраля, и ещё куча тем осталась в загашниках. Много нас ждёт, скажу я вам: и мозг, и погружение во внутренности генеративных нейросетей, и философские рассуждения — мне не терпится поделиться с вами всем тем, что у меня напланировано.
Ещё мой марафон хакатонов подходит к концу. Если я во что-нибудь ещё не влезу (а тут без гарантий, сами понимаете) , даже на ютуб вернусь. Там тоже ой как есть что обсудить✨
Ещё мой марафон хакатонов подходит к концу. Если я во что-нибудь ещё не влезу
Обожаю хакатоны, потому что это всегда возможность узнать много нового в очень сжатые сроки. Потом, конечно, хорошо бы отоспаться, но это попозже. А пока давайте вернёмся к ИИ-агентам и посмотрим, что в этой области есть интересного.
Мы ранее обсуждали ансамблевые алгоритмы[1] в целом и архитектуру «ансамбль экспертов»[2]. Если коротко, ансамбль – это такая конфигурация, в которой все компоненты (например, языковые модели) работают независимо, а потом результаты их работы как-то комбинируются (например, усредняются), чтобы получился конечный результат.
Ну и очень логично попробовать применить этот подход к ИИ-агентам, не правда ли? Так поступили авторы статьи «Mixture-of-Agents Enhances Large Language Model Capabilities»[3], которую мы сегодня разберём
[1] Пост про ансамблевые алгоритмы
[2] Пост про ансамбль экспертов
[3] Ссылка на сегодняшнюю статью
Мы ранее обсуждали ансамблевые алгоритмы[1] в целом и архитектуру «ансамбль экспертов»[2]. Если коротко, ансамбль – это такая конфигурация, в которой все компоненты (например, языковые модели) работают независимо, а потом результаты их работы как-то комбинируются (например, усредняются), чтобы получился конечный результат.
Ну и очень логично попробовать применить этот подход к ИИ-агентам, не правда ли? Так поступили авторы статьи «Mixture-of-Agents Enhances Large Language Model Capabilities»[3], которую мы сегодня разберём
[1] Пост про ансамблевые алгоритмы
[2] Пост про ансамбль экспертов
[3] Ссылка на сегодняшнюю статью
Teletype
Ансамбль агентов
Разные модели немного более или менее способны в решении разных задач: кто лучше следует инструкциям, кто хорошо пишет код и так далее...
Раз уж мы коснулись механизмов внимания в трансформерах, давайте теперь поговорим о механизмах внимания у нас с вами, как раз интересную статью нашла, даже две
Teletype
Внимание в человеческом мозге
Раз уж мы коснулись механизмов внимания в трансформерах, давайте теперь поговорим о механизмах внимания у нас с вами, как раз интересную...
Полезные #инструменты для анализа рисков ИИ: актуальные исследования, существующая судебная практика.
Видео доступно на youtube и дзене
Видео доступно на youtube и дзене
YouTube
Инструменты для изучения рисков ИИ
База данных с рисками: https://airisk.mit.edu/
Пост про связанную с этой базой статью (и не только): https://vc.ru/ai/1670398-etika-i-bezopasnost-primenitelno-k-ii
Пост про неравную эффективность технологий: https://t.me/mindful_coding/297
Мой телеграм: …
Пост про связанную с этой базой статью (и не только): https://vc.ru/ai/1670398-etika-i-bezopasnost-primenitelno-k-ii
Пост про неравную эффективность технологий: https://t.me/mindful_coding/297
Мой телеграм: …
Как-то обсуждали мы тут, что математика – сложная штука. Для языковых моделей. Даже простая совсем арифметика простая для нас, а для них – вовсе нет. Но мы не говорили, как языковые модели можно всё-таки математике обучить.
Можно, например, научить их использовать инструменты, и они будут вызывать калькулятор каждый раз, когда нужно будет что-то посчитать. А можно провести специальный раунд обучения, и как раз этот вариант нам сегодня предстоит разобрать применительно к маленьким трансформерам. Маленькими конкретно сегодня будем считать модели от 10.6 до 124 млн. параметров. Для сравнения, у больших трансформеров может быть от 1 трлн. параметров.
Статья называется «Teaching Arithmetic to Small Transformers». Она весьма объёмная, и здесь я изложу только то, что мне самой покажется интересным. За подробностями ныряйте в первоисточник.
Авторы не используют никаких дополнительных инструментов, только текст, только хардкор. Для обучения используется четыре формата (примеры на скриншоте):
• Простой формат (plain): A1A2A3 + B1B2B3 = C1C2C3;
• Обратный порядок (reverse): ответ написан задом наперёд, в начале и в конце добавлены дополнительные символы, которые говорят: «Вот это – арифметическая операция». Да, ответ неверный, но здесь смысл в том, чтобы считать в правильном порядке – с единиц;
• С дополнительной информацией в простом варианте (simplified scratchpad): есть слагаемые и ответ плюс кратко описанный процесс вычислений. Начинается вычисление с последней цифры, C на скриншоте – это число следующего порядка. То есть, строка «A -> 5, C-> 1» означает «сложили 8 и 7, пишем 5, 1 в уме». Как при сложении столбиком;
• С дополнительной информацией в расширенном варианте (detailed scratchpad): весь тот же процесс расписан максимально подробно.
Мне понравилось, что авторы пишут в разделе 4 (стр.7): «Как мы вскоре выясним, обучение сложению может быть не таким уж простым процессом, как можно было бы подумать».
Сложно поспорить: обучить модель считать, не представляя ей цифр – задача со звёздочкой. А здесь мы не представляем цифр, все входы-выходы – текст. Это как мысленный эксперимент «Китайская комната». Мы его обсуждали в посте про определение «сильного ИИ»: вы не знаете китайского, вам дают набор иероглифов и инструкции к ним (что с чем складывать). Потом вам пишут на китайском вопросы, а вы составляете ответы, опираясь на инструкции, которые не дают вам никакого представления о смысле иероглифов и не переводят их.
Этот эксперимент никому не понравился.
Простой формат ожидаемо не сработал. Обратный порядок неожиданно сработал, когда модели дали очень большое число таких примеров. Помните статью Anthropic про биологию больших языковых моделей? Там описано, что языковые модели считают через матрицы приближенных значений так, как человеку не пришло бы в голову вообще. Авторы той статьи и нашей сегодняшней смотрят на процесс с разных точек зрения и в разных разрезах. Однако и те, и другие говорят, что модели запоминают результаты сложения цифр и дальше просто подставляют нужные значения. Так что, теоретически, примеры в обратном порядке как раз полезны, потому что показывают, начиная с какой позиции подставлять.
Пояснения помогают моделям учиться лучше: чем больше информации, тем меньше нужно примеров для достижения стопроцентной точности. Очень полезно давать детальное описание процесса.
Если обучить модель сначала складывать двузначные числа, а потом трёхзначные, она с высокой вероятностью разучится работать с первыми. Это тоже лечится добавлением подробных инструкций.
Сложение, вычитание и умножение можно удобно представить в формате пошаговых инструкций, а вот с такими функциями, как извлечение квадратного корня будут сложности; авторы статьи попытались.
В общем, эта работа интересна с точки зрения того, чтобы на простых для человека примерах посмотреть, как происходит обучение, и лучше понять встроенные ограничения языковых моделей. Но для реальной жизни лучше просто научить модели пользоваться калькулятором: это и надёжнее, и дешевле
Можно, например, научить их использовать инструменты, и они будут вызывать калькулятор каждый раз, когда нужно будет что-то посчитать. А можно провести специальный раунд обучения, и как раз этот вариант нам сегодня предстоит разобрать применительно к маленьким трансформерам. Маленькими конкретно сегодня будем считать модели от 10.6 до 124 млн. параметров. Для сравнения, у больших трансформеров может быть от 1 трлн. параметров.
Статья называется «Teaching Arithmetic to Small Transformers». Она весьма объёмная, и здесь я изложу только то, что мне самой покажется интересным. За подробностями ныряйте в первоисточник.
Авторы не используют никаких дополнительных инструментов, только текст, только хардкор. Для обучения используется четыре формата (примеры на скриншоте):
• Простой формат (plain): A1A2A3 + B1B2B3 = C1C2C3;
• Обратный порядок (reverse): ответ написан задом наперёд, в начале и в конце добавлены дополнительные символы, которые говорят: «Вот это – арифметическая операция». Да, ответ неверный, но здесь смысл в том, чтобы считать в правильном порядке – с единиц;
• С дополнительной информацией в простом варианте (simplified scratchpad): есть слагаемые и ответ плюс кратко описанный процесс вычислений. Начинается вычисление с последней цифры, C на скриншоте – это число следующего порядка. То есть, строка «A -> 5, C-> 1» означает «сложили 8 и 7, пишем 5, 1 в уме». Как при сложении столбиком;
• С дополнительной информацией в расширенном варианте (detailed scratchpad): весь тот же процесс расписан максимально подробно.
Мне понравилось, что авторы пишут в разделе 4 (стр.7): «Как мы вскоре выясним, обучение сложению может быть не таким уж простым процессом, как можно было бы подумать».
Сложно поспорить: обучить модель считать, не представляя ей цифр – задача со звёздочкой. А здесь мы не представляем цифр, все входы-выходы – текст. Это как мысленный эксперимент «Китайская комната». Мы его обсуждали в посте про определение «сильного ИИ»: вы не знаете китайского, вам дают набор иероглифов и инструкции к ним (что с чем складывать). Потом вам пишут на китайском вопросы, а вы составляете ответы, опираясь на инструкции, которые не дают вам никакого представления о смысле иероглифов и не переводят их.
Этот эксперимент никому не понравился.
Простой формат ожидаемо не сработал. Обратный порядок неожиданно сработал, когда модели дали очень большое число таких примеров. Помните статью Anthropic про биологию больших языковых моделей? Там описано, что языковые модели считают через матрицы приближенных значений так, как человеку не пришло бы в голову вообще. Авторы той статьи и нашей сегодняшней смотрят на процесс с разных точек зрения и в разных разрезах. Однако и те, и другие говорят, что модели запоминают результаты сложения цифр и дальше просто подставляют нужные значения. Так что, теоретически, примеры в обратном порядке как раз полезны, потому что показывают, начиная с какой позиции подставлять.
Пояснения помогают моделям учиться лучше: чем больше информации, тем меньше нужно примеров для достижения стопроцентной точности. Очень полезно давать детальное описание процесса.
Если обучить модель сначала складывать двузначные числа, а потом трёхзначные, она с высокой вероятностью разучится работать с первыми. Это тоже лечится добавлением подробных инструкций.
Сложение, вычитание и умножение можно удобно представить в формате пошаговых инструкций, а вот с такими функциями, как извлечение квадратного корня будут сложности; авторы статьи попытались.
В общем, эта работа интересна с точки зрения того, чтобы на простых для человека примерах посмотреть, как происходит обучение, и лучше понять встроенные ограничения языковых моделей. Но для реальной жизни лучше просто научить модели пользоваться калькулятором: это и надёжнее, и дешевле
Если одна модель плохо решает вашу задачу, вам просто нужно больше моделей.
Так, во всяком случае, решили авторы статьи «More Agents Is All You Need». Давайте посмотрим, какие у них аргументы.
Подход классический для ансамблевых алгоритмов: есть много моделей, каждая из которых на одни и те же входные данные генерирует свой результат. Затем выбирается тот из них, который был предложен наибольшим числом моделей.
На скриншоте схема из статьи, перевод мой.
Авторы ссылаются на более ранние работы, которые предлагают более сложные подходы к повышению качества работы языковых моделей. Они утверждают, что сравнимого качества можно достичь проще – увеличивая число моделей, – а потом доработать за счёт более сложных подходов вроде дробления большой задачи на более мелкие и рассуждений шаг за шагом.
В качестве аргументов авторы далее приводят серию экспериментов на разных наборах данных, где их ансамблевый подход улучшает качество ответов. К их чести, они приводят как значимые результаты, так и совсем небольшие. И приводят пределы, по достижении которых их подход перестаёт работать: по мере повышения сложности задач моделям нужно всё больше рассуждений, чтобы получить ответ, и всё доступное контекстное окно (то есть, максимум текста, который они могут выдать) заполняется, не доходя до ответа.
В целом, ансамблевый подход правда не лишён смысла и много где показал свою эффективность: мы обсуждали и «традиционные» алгоритмы, такие как случайный лес, и ансамбли экспертов, и другие, более сложно устроенные ансамбли языковых моделей. Так что идея годная.
Но я бы не сказала, что «больше агентов – всё, что вам нужно». Во-первых, это дорого. Во-вторых, как авторы сами и показали, у такого масштабирования есть пределы.
На мой взгляд, увеличивать число моделей полезно до тех пор, пока каждая выполняет конкретную задачу, у которой есть результат. А дальше – усложнять архитектуру, добавлять дополнительные проверки и прочие вещи.
Особенно этот вопрос актуален при работе с небольшими трансформерами до 20–30 млрд параметров. Они существенно дешевле за счёт того, что их можно запускать локально на компьютере и не платить за использование арендованного сервера. Но они существенно хуже справляются со сложными задачами, чем трансформеры большего размера.
Я тут как раз работаю над сложной задачей, и разрыв в качестве между «большими» (условная GPT-5) и «маленькими» (gpt-oss:20b) меня глубоко печалит. Так что ищу способы прокачивать эффективность маленьких трансформеров. Ансамбли – один из вариантов. Он увеличивает мои счета за электроэнергию, но в итоге выходит всё равно дешевле, чем платить за большие модели.
Тут у меня несколько неструктурированное рассуждение получается, потому что я сама пока в раздумьях и экспериментах. Но, глядишь, и выйдет что из этой всей истории.
Свой код авторы выложили в открытый доступ, но он выглядит заброшенным: там с прошлого года нет никаких обновлений
Так, во всяком случае, решили авторы статьи «More Agents Is All You Need». Давайте посмотрим, какие у них аргументы.
Подход классический для ансамблевых алгоритмов: есть много моделей, каждая из которых на одни и те же входные данные генерирует свой результат. Затем выбирается тот из них, который был предложен наибольшим числом моделей.
На скриншоте схема из статьи, перевод мой.
Авторы ссылаются на более ранние работы, которые предлагают более сложные подходы к повышению качества работы языковых моделей. Они утверждают, что сравнимого качества можно достичь проще – увеличивая число моделей, – а потом доработать за счёт более сложных подходов вроде дробления большой задачи на более мелкие и рассуждений шаг за шагом.
В качестве аргументов авторы далее приводят серию экспериментов на разных наборах данных, где их ансамблевый подход улучшает качество ответов. К их чести, они приводят как значимые результаты, так и совсем небольшие. И приводят пределы, по достижении которых их подход перестаёт работать: по мере повышения сложности задач моделям нужно всё больше рассуждений, чтобы получить ответ, и всё доступное контекстное окно (то есть, максимум текста, который они могут выдать) заполняется, не доходя до ответа.
В целом, ансамблевый подход правда не лишён смысла и много где показал свою эффективность: мы обсуждали и «традиционные» алгоритмы, такие как случайный лес, и ансамбли экспертов, и другие, более сложно устроенные ансамбли языковых моделей. Так что идея годная.
Но я бы не сказала, что «больше агентов – всё, что вам нужно». Во-первых, это дорого. Во-вторых, как авторы сами и показали, у такого масштабирования есть пределы.
На мой взгляд, увеличивать число моделей полезно до тех пор, пока каждая выполняет конкретную задачу, у которой есть результат. А дальше – усложнять архитектуру, добавлять дополнительные проверки и прочие вещи.
Особенно этот вопрос актуален при работе с небольшими трансформерами до 20–30 млрд параметров. Они существенно дешевле за счёт того, что их можно запускать локально на компьютере и не платить за использование арендованного сервера. Но они существенно хуже справляются со сложными задачами, чем трансформеры большего размера.
Я тут как раз работаю над сложной задачей, и разрыв в качестве между «большими» (условная GPT-5) и «маленькими» (gpt-oss:20b) меня глубоко печалит. Так что ищу способы прокачивать эффективность маленьких трансформеров. Ансамбли – один из вариантов. Он увеличивает мои счета за электроэнергию, но в итоге выходит всё равно дешевле, чем платить за большие модели.
Тут у меня несколько неструктурированное рассуждение получается, потому что я сама пока в раздумьях и экспериментах. Но, глядишь, и выйдет что из этой всей истории.
Свой код авторы выложили в открытый доступ, но он выглядит заброшенным: там с прошлого года нет никаких обновлений
Шикарная статья, всем про неё рассказываю, вам сегодня расскажу тоже
vc.ru
Языковые модели в гармонии
Сегодня делюсь с вами хорошей обзорной статьёй «LLMs Working in Harmony: A Survey on the Technological Aspects of Building Effective LLM-Based Multi Agent Systems» («Гармоничная работа больших языковых моделей: обзор технологических аспектов построения эффективных…
1.jpg
28.9 KB
Я вот не поверю, что ИИ дошёл до человеческого уровня, пока не увижу, как он вместо работы залипает на смешные видео с котиками. Или просто ничего не делает, потому что ноябрь, темно, уныло, авитаминоз.
Картинка заимствована из телеграм-канала «Страдающее Средневековье»
Но про такое я пока не слышала, хотя Gemini периодически впадает в депрессию, а Claude был пойман на прокрастинации. Зато авторы статьи «Mastering diverse control tasks through world models» научили свой алгоритм Dreamer играть в Майнкрафт (Minecraft).
И как бы оно ни было весело само по себе, дело здесь не в Майнкрафте, а в восприятии окружающего мира и умении к нему адаптироваться. Модели, которые такое умеют, называются world models – модели мира (или, скорее, модели с восприятием мира, но это слишком длинно). Их особенность в том, что они умеют получать данные из окружающего пространства, которое меняется с течением времени, и пользоваться этими данными для совершения действий.
Если вдруг это прозвучало сложно, мы таким каждый день с утра до вечера занимаемся, а потом ещё во сне: мы воспринимаем визуальную информацию о трёхмерном пространстве, в котором находимся, ощущаем текстуру, давление, влажность, температуру, слышим звуки и так далее, – и действуем соответствующе. Для нас это естественный процесс, который происходит помимо нашего сознания.
А для ИИ – нет. Если говорить о языковых моделях, например, то их мы обучаем на больших массивах текстов, которые мало дают понимания физики реального мира. Мы просто обычно не пишем чего-то вроде: «Я опрокинула чашку, и кофе вылился сверху вниз на пол.» Нам и так понятно, что кофе не вылился снизу вверх или не улетел в стену, если только я не живу на Международной космической станции – а я не живу на Международной космической станции.
Так что нужны дополнительные ухищрения, чтобы ИИ усвоил физику реального мира, и тот ИИ, который её усвоил, называется моделью мира. Ещё моделью мира называется собственно математическое представление фрагмента пространства, в котором ИИ обучается, так что может возникнуть путаница с терминами.
Понимание того, как работает реальный мир, очень актуально в робототехнике.
Итак, Dreamer – это система из трёх нейросетей:
• Модель [с восприятием] мира предсказывает результаты действий;
• ИИ-критик оценивает ценность каждого результата;
• ИИ-актор выбирает следующее действие так, чтобы получить наилучший результат.
Модель мира получает на вход сенсорные данные и использует их для предсказания изменений, которые произойдут после совершения дей ствия. Если речь про Майнкрафт, модель получает на вход изображение и предсказывает, как оно изменится, например, при смене угла обзора.
Критик и актор используют уже абстрактные представления, которые сформировала модель мира, например, набор координат объектов. Помните, мы говорили про охоту на информацию? Субъект: человек, животное или модель ИИ – в каждый момент времени принимает решение, продолжать ли изучать найденное или искать новое. «Найденное» и «новое» – это куст с ягодами, стопка бумаг, книга, полка в библиотеке, сайт и так далее. Авторы статьи построили обучение актора так, чтобы он как раз искал баланс между разведкой и исследованием, максимизируя вознаграждение.
В Майнкрафте надо копать землю и искать алмазы. ИИ-актор обучался продолжать копать в том же месте, если алмазы попадаются часто, и искать другую жилу, если алмазы попадаются редко.
Сложность была ещё и в том, что сначала надо найти другие ресурсы, такие как дерево и железо, и собрать из них инструмент, чтобы разбивать блоки земли. Разные блоки требуют использования разных инструментов, и у инструментов есть износ, то есть, их надо заменять время от времени. Так что достижение вполне заслуживает уважения
Картинка заимствована из телеграм-канала «Страдающее Средневековье»
Но про такое я пока не слышала, хотя Gemini периодически впадает в депрессию, а Claude был пойман на прокрастинации. Зато авторы статьи «Mastering diverse control tasks through world models» научили свой алгоритм Dreamer играть в Майнкрафт (Minecraft).
И как бы оно ни было весело само по себе, дело здесь не в Майнкрафте, а в восприятии окружающего мира и умении к нему адаптироваться. Модели, которые такое умеют, называются world models – модели мира (или, скорее, модели с восприятием мира, но это слишком длинно). Их особенность в том, что они умеют получать данные из окружающего пространства, которое меняется с течением времени, и пользоваться этими данными для совершения действий.
Если вдруг это прозвучало сложно, мы таким каждый день с утра до вечера занимаемся, а потом ещё во сне: мы воспринимаем визуальную информацию о трёхмерном пространстве, в котором находимся, ощущаем текстуру, давление, влажность, температуру, слышим звуки и так далее, – и действуем соответствующе. Для нас это естественный процесс, который происходит помимо нашего сознания.
А для ИИ – нет. Если говорить о языковых моделях, например, то их мы обучаем на больших массивах текстов, которые мало дают понимания физики реального мира. Мы просто обычно не пишем чего-то вроде: «Я опрокинула чашку, и кофе вылился сверху вниз на пол.» Нам и так понятно, что кофе не вылился снизу вверх или не улетел в стену, если только я не живу на Международной космической станции – а я не живу на Международной космической станции.
Так что нужны дополнительные ухищрения, чтобы ИИ усвоил физику реального мира, и тот ИИ, который её усвоил, называется моделью мира. Ещё моделью мира называется собственно математическое представление фрагмента пространства, в котором ИИ обучается, так что может возникнуть путаница с терминами.
Понимание того, как работает реальный мир, очень актуально в робототехнике.
Итак, Dreamer – это система из трёх нейросетей:
• Модель [с восприятием] мира предсказывает результаты действий;
• ИИ-критик оценивает ценность каждого результата;
• ИИ-актор выбирает следующее действие так, чтобы получить наилучший результат.
Модель мира получает на вход сенсорные данные и использует их для предсказания изменений, которые произойдут после совершения дей ствия. Если речь про Майнкрафт, модель получает на вход изображение и предсказывает, как оно изменится, например, при смене угла обзора.
Критик и актор используют уже абстрактные представления, которые сформировала модель мира, например, набор координат объектов. Помните, мы говорили про охоту на информацию? Субъект: человек, животное или модель ИИ – в каждый момент времени принимает решение, продолжать ли изучать найденное или искать новое. «Найденное» и «новое» – это куст с ягодами, стопка бумаг, книга, полка в библиотеке, сайт и так далее. Авторы статьи построили обучение актора так, чтобы он как раз искал баланс между разведкой и исследованием, максимизируя вознаграждение.
В Майнкрафте надо копать землю и искать алмазы. ИИ-актор обучался продолжать копать в том же месте, если алмазы попадаются часто, и искать другую жилу, если алмазы попадаются редко.
Сложность была ещё и в том, что сначала надо найти другие ресурсы, такие как дерево и железо, и собрать из них инструмент, чтобы разбивать блоки земли. Разные блоки требуют использования разных инструментов, и у инструментов есть износ, то есть, их надо заменять время от времени. Так что достижение вполне заслуживает уважения