LLAMA

Мета выпустила новую версию своей большой языковой модели – Llama. Отличный повод ее обсудить, я считаю. Полную и подробную информацию можно найти здесь, из первых рук, так сказать. Статья с подробным описанием процесса обучения, тестирования и других технических подробностей доступна здесь.
Очень хороший обзор также сделал автор подкаста Super Data Science, который я люблю и всем советую. Обзор вышел в эпизоде 806: Llama 3.1 405B: The First Open-Source Frontier LLM — with Jon Krohn, он доступен на YouTube и в Apple Podcasts.
Ну, достаточно пустой болтовни, давайте уже к делу.

<i>(Это очаровательное представление проекта Purple Llama позаимствовано <a href="https://github.com/meta-llama/PurpleLlama" rel="nofollow noreferrer noopener" target="_blank">отсюда</a>)</i>
(Это очаровательное представление проекта Purple Llama позаимствовано отсюда)

Откуда взялась LlaMA

LLaMA была представлена миру в 2023 году, в статье «LLaMA: Open and Efficient Foundation Language Models». Это не одна конкретная модель, а целое семейство, которое изначально включало в себя модели с числом параметров от 7 до 65 миллиардов. Эти модели показали хорошие результаты в сравнении с ближайшими конкурентами: GPT-3, Chinchilla и PaLM. Большая радость для сообщества людей, интересующихся большими языковыми моделями, заключается в том, что модели из семейства LLaMa – это модели с открытым кодом, они доступны на гитхабе (здесь я прикрепляю ссылку на более ранние версии, после последнего релиза они больше не поддерживаются; но изучать и использовать их все равно можно).Идея, которая легла в основе разработки LLaMa, следующая: «Давайте вместо того, чтобы увеличивать число параметров, увеличим объем текстов, на которых мы ее обучаем». Огромные модели сложно запускать, обучать и использовать, поскольку они требуют использования графических процессоров. Таким образом, прорывные разработки в области естественного языка – это вотчина богатых крупных компаний. Работа с меньшими по размеру моделями должна была позволить включить в процесс небольшие исследовательские группы и отдельных энтузиастов (спойлер: получилось).
В основе LLaMa трансформер, который немного видоизменили, опираясь на успешный опыт других разработчиков (про устройство трансформера был вот этот пост). У GPT-3 позаимствовали предварительную нормализацию входа для каждого слоя (вместо нормализации выхода уже после обработки). У PaLM взяли функцию активации (она вносить нелинейность в преобразования, про PaLM и ее устройство осенью тоже будет пост). У GPTNeo подсмотрели механизм преобразования слов в векторы (embedding).
Все обучение было проведено на открытых данных, доступных для использования любому, кто в этом заинтересован. Среди источников англоязычная часть Common Crawl – открытого репозитория с данными, которые собраны со всего интернета путем скрапига веб-сайтов и регулярно пополняются, – данные из гитхаба и Википедии; проекта Gutenberg, который содержит 70 000 электронных книг, доступных бесплатно, и некоторых других. Весомый плюс использования открытых данных – возможность для других исследователей воспроизвести процесс обучения и улучшить его.
Ниже представлена таблица с результатами работы LLaMa по сравнению с ближайшими конкурентами (если не понятно, не волнуйтесь, сейчас я все объясню).

<i>(Таблица взята из статьи «LLaMA: Open and Efficient Foundation Language Models», ссылка на которую есть выше по тексту)</i>
(Таблица взята из статьи «LLaMA: Open and Efficient Foundation Language Models», ссылка на которую есть выше по тексту)

Итак, по вертикали расположены модели-конкуренты: GPT-3, Gopher, Chinchilla, PaLM в разных версиях и модели семейства LLaMA разного размера. В первом столбце число параметров – размер модели. По горизонтали расположены задания из группы Common Sense Reasoning («Рассуждения на основе здравого смысла»). Задания заключаются в том, что модель должна ответить на вопросы или закончить предложения, например. Каждое «задание» в таблице – это набор данных, из которых берут примеры, чтобы проверить, как модель с ними справляется (в наборе есть правильные ответы на вопросы для проверки). Чтобы вы понимали, как модели учатся, вот краткое описание всех наборов данных (они же «задания»):

  • BoolQ (проверяет умение модели ответить на вопрос закрытого типа – «да / нет»; примеры: «Песня «You and I» Леди Гаги – это кавер?»; «Водятся ли синие киты в Атлантическом океане?»);
  • PIQA (проверяет, насколько хорошо модель понимает взаимодействия между физическими объектами. Это набор вопросов с вариантами ответа; пример: «Наилучший способ проколоть уши. Вариант 1 – Пойти к профессионалу, чтобы избежать проблем со здоровьем. Вариант 2 – Воткнуть иголку в место, которое вы хотите проколоть». На всякий случай, правильный вариант – первый!);
  • SIQA (проверяет способность понимать социальные взаимодействия, здесь также нужно выбрать верный вариант. Пример: «Джесс заботилась о питомце Эддисона, поэтому она пришла к Эддисону домой и погуляла с его собакой. Что Джесс должна была сделать до этого? Вариант 1 – Покормить собаку. Вариант 2 – Взять у Эддисона ключи от дома (верный). Вариант 3 – Погулять с собакой»);
  • HellaSwag (проверяет способность верно закончить предложение; выбор из нескольких вариантов ответа. Пример: «Женщина на улице с ведром и собакой. Собака бегает вокруг, пытаясь избежать купания. Она… Вариант 1 – промывает ведро с мылом и сушит голову собаки. Вариант 2 – использует дом, чтобы он не намылился. Вариант 3 – обливает собаку, после чего та снова сбегает. Вариант 4 – залезает в ванну с собакой». Не все предложенные варианты должны быть логичными или корректными грамматически, как вы могли заметить);
  • WinoGrande (задания на понимание грамматической структуры предложения. Конкретнее, на определение, к какому из существительных относится местоимение. Пример: «Обезьяне нравилось играть с мячами, но она игнорировала кубики, поскольку считала их скучными. Варианты выбора: их = мячи / кубики»);
  • ARC-e (часть большего набора данных – ARC, – содержащая вопросы на общие темы. Пример: «Кого можно с большей вероятностью найти в пустыне? Вариант 1 – Верблюд. Вариант 2 – Пингвин. Вариант 3 – Белый медведь. Вариант 4 – Кит»);
  • ARC-c (тоже часть ARC, содержит более сложные вопросы);
  • OBQA (вопросы по ранее полученным знаниям. Пример: «Через какой из перечисленных объектов пройдет наибольшее количество тепла? Вариант 1 – Новые джинсы. Вариант 2 – Металлическая ложка из кафе. Вариант 3 – Сладкая вата в магазине. Вариант 4 – Хлопковая шляпа от Calvin Klein.» Модель должна «вспомнить», что металл обладает теплопроводностью и выбрать вариант 2).

В каждой ячейке таблицы указана точность модели «без подготовки» («zero-shot performance»). Это когда мы не даем примеры правильных и неправильных ответов, а требуем ответа на вопрос «с колес». Полужирным шрифтом выделены наиболее высокие значения точности по каждому заданию. Модели из семейства LLaMA показывают очень хорошие результаты при решении многих задач, даже по сравнению с самой большой моделью группы PaLM, которая в 8 и 16 раз больше двух самых больших моделей LLaMA.
Помимо перечисленных, LLaMA протестировали на упражнениях на понимание текста, решение математических задач и генерацию кода. Все задания прогнали как без подготовки, так и с предоставлением модели примеров с ответами («few-shot performance»). LLaMA не то чтобы побила прям всех и везде, но показала очень достойные результаты.
Отдельный раздел авторы посвятили разбору ошибок и вредных стереотипов, которые модель неизбежно наследует у людей, поскольку люди создают тренировочные наборы даных. Это отдельная большая тема, про которую я буду делать пост у себя в телеграме, здесь подробно не будем рассматривать.

Свежий выпуск

Благодаря открытости кода, множество разработчиков смогли поучаствовать в развитии LLaMA. Модель стала основой множества проектов, и вот в июле 2024 года вышла версия 3.1, из-за которой и весь пост. Она доступна в размере 8, 70 и 405 миллиардов параметров. Все модели по-прежнему в открытом доступе, их можно использовать и обучать.
Автор подкаста Super Data Science высказал предположение, которое мне кажется логичным: Мета открывает свои модели, потому что хочет переманить самых крутых специалистов в свою команду. Крутые специалисты могут сами посмотреть, насколько хороши разработки компании и задуматься о том, чтобы пойти туда работать.
Еще у них есть интересный проект, который называется Purple Llama. Это зонтичный проект, направленный на поддержку разработки безопасных и надежных решений с помощью ИИ. Название заимствовано из области информационной безопасности. Там существует деление на красную, синюю и фиолетовую команды. Все они работают над поиском и устранением брешей в системе безопасности организаций. «Красные» симулируют атаку на системы безопасности (в команде «красных» работают так называемые «белые хакеры»), «синие» работают надо выстраиванием защиты и предотвращением атак. «Фиолетовые» комбинируют два подхода или (в больших организациях, которые могут нанять отдельных людей в каждую команду) собирают данные «красных» и «синих», анализируют и предлагают улучшения. Purple Llama занимает позицию, похожую на позицию «фиолетовых» команд безопасности, чтобы наиболее эффективно оценивать риски, связанные с ИИ, и помогать их эффективно нивелировать.
Кибербезопасность в привязке к ИИ – это большая и интересная тема сама по себе. У себя в телеграме я делала пост про правовое регулирование ИИ в разных странах и буду изучать его еще, потому что это действительно важно.

Заключение

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

С днем знаний!

Начать дискуссию