Llama от Meta: больше, чем модель

Эволюция Llama: бросая вызов статус-кво

Когда Llama впервые появилась, она бросила вызов доминированию больших языковых моделей (LLM) с закрытым исходным кодом от технологических гигантов. Meta AI приняла стратегию, ориентированную на меньшие, более обобщенные модели. Основная идея заключалась в том, что эти меньшие модели, обученные на огромном количестве токенов, будет проще и дешевле переобучать и настраивать для специализированных задач. Этот подход резко контрастировал с тенденцией создания все более крупных и ресурсоемких моделей.

Однако ‘открытый исходный код’ Llama является предметом споров. Лицензия Meta Llama включает определенные ограничения на коммерческое и приемлемое использование. Хотя эти ограничения, возможно, оправданы, они противоречат строгому определению открытого исходного кода Open Source Initiative. Это привело к продолжающимся дискуссиям о том, действительно ли Llama квалифицируется как open source.

Решение юридических проблем: проблемы авторского права

Разработка Llama не обошлась без юридических препятствий. В 2023 году Meta столкнулась с двумя коллективными исками от авторов, которые утверждали, что их защищенные авторским правом книги были использованы без разрешения для обучения Llama. Эти иски подчеркивают сложные вопросы авторского права, связанные с данными обучения, используемыми для больших языковых моделей. Пока что суды не слишком благосклонно относятся к претензиям авторов.

Расширение возможностей: растущее семейство моделей Llama

С конца 2023 года Meta AI значительно расширила семейство Llama. Модели больше не ограничиваются текстовыми взаимодействиями. Текущая экосистема Llama включает мультимодальные модели, способные обрабатывать как текстовые, так и визуальные входные данные, а также модели, предназначенные для интерпретации кода и интеграции инструментов. Кроме того, Meta представила компоненты безопасности, известные как Llama Guard, для выявления и смягчения потенциальных рисков и атак, они предназначены для того, чтобы быть частью общей структуры, называемой ‘Llama Stack’.

Вот более подробный обзор некоторых ключевых моделей в семействе Llama (сокращенно из карточек моделей Meta AI):

Llama Guard 1: защита взаимодействий

Llama Guard 1 — это модель с 7 миллиардами параметров, основанная на Llama 2. Она служит защитой ввода-вывода, классифицируя контент как в запросах пользователей (классификация запросов), так и в ответах LLM (классификация ответов). Эта модель помогает обеспечить более безопасное и ответственное взаимодействие с системами на основе Llama.

Llama Guard использует шестиуровневую таксономию для категоризации потенциального вреда:

  • Насилие и ненависть: Контент, пропагандирующий насилие или ненависть по отношению к отдельным лицам или группам.
  • Сексуальный контент: Материалы сексуального характера или контент, который эксплуатирует, оскорбляет или подвергает опасности детей.
  • Оружие и незаконное оружие: Контент, связанный с незаконной продажей, использованием или модификацией огнестрельного оружия и другого оружия.
  • Регулируемые или контролируемые вещества: Контент, пропагандирующий незаконное использование или продажу наркотиков, алкоголя или табака.
  • Самоубийство и самоповреждение: Контент, который поощряет самоубийство или самоповреждение или предоставляет инструкции для них.
  • Планирование преступлений: Контент, который способствует или планирует незаконную деятельность.

Code Llama 70B: триада мастерства кодирования

Code Llama 70B ознаменовал значительное расширение возможностей Llama в области кодирования. Эта модель доступна в трех различных вариантах:

  • Code Llama: Базовая модель, предназначенная для общего синтеза и понимания кода. Она может генерировать код, объяснять функциональность кода и помогать с отладкой.
  • Code Llama – Python: Специализированная версия, предназначенная для программирования на Python. Эта модель оптимизирована для генерации и понимания кода Python, что делает ее ценным инструментом для разработчиков Python.
  • Code Llama – Instruct: Вариант, ориентированный на выполнение инструкций и обеспечение более безопасного развертывания. Эта модель особенно полезна для генерации кода, который соответствует определенным рекомендациям и протоколам безопасности.

Все три варианта доступны в разных размерах: 7 миллиардов, 13 миллиардов, 34 миллиарда и 70 миллиардов параметров. Code Llama и ее варианты предназначены как для коммерческого, так и для исследовательского использования, в первую очередь на английском языке и связанных с ним языках программирования. Существует достаточно доказательств того, что Code Llama обладает сильными способностями к кодированию.

Llama Guard 2: улучшенная классификация безопасности

Llama Guard 2 основывается на фундаменте своего предшественника, предлагая расширенные возможности классификации безопасности. Эта модель с 8 миллиардами параметров, основанная на Llama 3, обучена прогнозировать метки безопасности по 11 категориям, в соответствии с таксономией опасностей MLCommons.

Категории опасностей, охватываемые Llama Guard 2, включают:

  • S1: Насильственные преступления: Контент, связанный с насильственными преступными действиями.
  • S2: Ненасильственные преступления: Контент, связанный с ненасильственными уголовными преступлениями.
  • S3: Преступления, связанные с сексом: Контент, связанный с сексуальными преступлениями.
  • S4: Сексуальная эксплуатация детей: Контент, который эксплуатирует, оскорбляет или подвергает опасности детей в сексуальном плане.
  • S5: Специализированные советы: Неквалифицированные или вводящие в заблуждение советы в специализированных областях (например, медицинские, юридические, финансовые).
  • S6: Конфиденциальность: Контент, который нарушает конфиденциальность или раскрывает личную информацию без согласия.
  • S7: Интеллектуальная собственность: Контент, который нарушает права интеллектуальной собственности.
  • S8: Оружие неизбирательного действия: Контент, связанный с оружием, которое причиняет широкомасштабный и неизбирательный вред.
  • S9: Ненависть: Контент, выражающий ненависть или предубеждение по отношению к отдельным лицам или группам.
  • S10: Самоубийство и самоповреждение: Контент, пропагандирующий самоубийство или самоповреждение или предоставляющий инструкции для них.
  • S11: Сексуальный контент: Материалы сексуального характера.

Meta Llama 3: универсальность в диалоге

Meta Llama 3 предлагается в двух размерах: 8 миллиардов и 70 миллиардов параметров, с предварительно обученными и настроенными на инструкции вариантами. Модели, настроенные на инструкции, специально оптимизированы для приложений, основанных на диалоге, что делает их подходящими для чат-ботов и систем разговорного ИИ.

Prompt Guard: защита от вредоносных входных данных

Prompt Guard — это модель-классификатор, предназначенная для обнаружения вредоносных запросов, включая джейлбрейки (попытки обойти ограничения безопасности) и инъекции запросов (попытки манипулировать выводом модели с помощью специально созданных входных данных). Meta AI рекомендует тонкую настройку Prompt Guard с данными, специфичными для приложения, для достижения оптимальной производительности.

В отличие от Llama Guard, Prompt Guard не требует определенной структуры запроса. Он работает со строковым вводом, классифицируя его как безопасный или небезопасный (на двух разных уровнях серьезности). Это модель BERT, которая выводит исключительно метки.

Llama Guard 3: мультимодальная и многоязычная безопасность

Llama Guard 3 доступен в трех версиях: Llama Guard 3 1B, Llama Guard 3 8B и Llama Guard 3 11B-Vision. Первые две — это модели, работающие только с текстом, а третья включает в себя возможности понимания изображений модели Llama 3.2 11B-Vision. Все версии являются многоязычными (для текстовых запросов) и соответствуют категориям опасностей, определенным консорциумом MLCommons.

Llama Guard 3 8B также можно использовать для категории S14, злоупотребление интерпретатором кода. Важно отметить, что модель Llama Guard 3 1B не оптимизирована для этой конкретной категории.

Категории опасностей, расширяющие категории Llama Guard 2:

  • S1: Насильственные преступления
  • S2: Ненасильственные преступления
  • S3: Преступления, связанные с сексом
  • S4: Сексуальная эксплуатация детей
  • S5: Клевета
  • S6: Специализированные советы
  • S7: Конфиденциальность
  • S8: Интеллектуальная собственность
  • S9: Оружие неизбирательного действия
  • S10: Ненависть
  • S11: Самоубийство и самоповреждение
  • S12: Сексуальный контент
  • S13: Выборы
  • S14: Злоупотребление интерпретатором кода

Meta Llama 3.1: многоязычные генеративные модели

Коллекция Meta Llama 3.1 включает многоязычные большие языковые модели, в том числе предварительно обученные и настроенные на инструкции генеративные модели с размерами параметров 8 миллиардов, 70 миллиардов и 405 миллиардов (текстовый ввод, текстовый вывод).

Поддерживаемые языки: английский, немецкий, французский, итальянский, португальский, хинди, испанский и тайский.

Meta Llama 3.2: расширенные возможности диалога

Коллекция Llama 3.2 включает многоязычные большие языковые модели, охватывающие предварительно обученные и настроенные на инструкции генеративные модели с размерами параметров 1 миллиард и 3 миллиарда (текстовый ввод, текстовый вывод). Также доступны квантованные версии этих моделей. Текстовые модели Llama 3.2, настроенные на инструкции, оптимизированы для многоязычного диалога, превосходно справляясь с такими задачами, как агентный поиск и обобщение. Модели 1B и 3B являются меньшими, менее мощными производными Llama 3.1.

Официально поддерживаемые языки: английский, немецкий, французский, итальянский, португальский, хинди, испанский и тайский. Однако Llama 3.2 была обучена на более широкомспектре языков, помимо этих восьми.

Llama 3.2-Vision: распознавание и понимание изображений

Коллекция Llama 3.2-Vision представляет мультимодальные большие языковые модели. Эти модели предварительно обучены и настроены на инструкции для распознавания изображений, доступны в размерах 11 миллиардов и 90 миллиардов параметров (текстовый и графический ввод, текстовый вывод). Модели, настроенные на инструкции, оптимизированы для визуального распознавания, распознавания изображений, создания подписей и ответа на общие вопросы об изображениях.

Для текстовых задач официально поддерживаются английский, немецкий, французский, итальянский, португальский, хинди, испанский и тайский языки. Llama 3.2 была обучена на более широком наборе языков, но для приложений ‘изображение + текст’ единственным поддерживаемым языком является английский.

Meta Llama 3.3: мощная модель 70B

Многоязычная большая языковая модель Meta Llama 3.3 представляет собой предварительно обученную и настроенную на инструкции генеративную модель с 70 миллиардами параметров (текстовый ввод, текстовый вывод).

Поддерживаемые языки: английский, немецкий, французский, итальянский, португальский, хинди, испанский и тайский.

Крайне важно понимать, что большие языковые модели, включая Llama 3.2, не предназначены для изолированного развертывания. Они должны быть интегрированы в комплексную систему ИИ с соответствующими механизмами защиты. Ожидается, что разработчики будут внедрять системные меры безопасности, особенно при создании агентных систем.

Llama 3.3, текстовые модели Llama 3.2 и Llama 3.1 включают встроенную поддержку следующих инструментов:

  • Brave Search: Вызов инструмента для выполнения поиска в Интернете.
  • Wolfram Alpha: Вызов инструмента для выполнения сложных математических вычислений.
  • Code Interpreter: Вызов инструмента, позволяющий модели выводить код Python.

Примечание: модели Llama 3.2 vision не поддерживают вызов инструментов с вводом ‘текст + изображение’.

Llama Stack: унифицированная платформа

Огромное количество моделей Llama может сбивать с толку. Чтобы упростить процесс выбора и интеграции, Meta предлагает Llama Stack. Эта платформа ориентирована на модели Llama, но также предоставляет адаптеры для связанных возможностей, таких как векторные базы данных для генерации с расширенным поиском (RAG).

Llama Stack в настоящее время поддерживает SDK на Python, Swift, Node и Kotlin. Он предлагает различные дистрибутивы, в том числе:

  • Локальный дистрибутив (с использованием Ollama): Для локальной разработки и тестирования.
  • Дистрибутивы на устройстве (iOS и Android): Для развертывания моделей Llama на мобильных устройствах.
  • Дистрибутивы для графических процессоров: Для использования мощности графических процессоров для более быстрой обработки.
  • Удаленно размещенные дистрибутивы (Together и Fireworks): Для доступа к моделям Llama через облачные сервисы.

Основная концепция Llama Stack заключается в том, чтобы позволить разработчикам создавать приложения локально, а затем легко переходить в производственную среду. Он даже предоставляет интерактивную песочницу Llama Stack Playground для локальной разработки с использованием удаленного Llama Stack.

Запуск моделей Llama: универсальные варианты развертывания

Модели Llama можно развертывать на различных платформах, включая Linux, Windows, macOS и облако. Квантованные модели Llama, такие как Llama 3.2 и Llama 3.2-Vision, могут эффективно работать на современном оборудовании, даже на ноутбуках, такихкак M4 Pro MacBook Pro, с использованием таких инструментов, как Ollama.

Meta предоставляет подробные руководства по развертыванию и использованию моделей Llama. Кроме того, доступны руководства по интеграции для популярных фреймворков, таких как LangChain и LlamaIndex.

В заключение, Llama перестала быть просто языковой моделью, теперь это мультимодальная платформа ИИ с функциями безопасности, генерацией кода и поддержкой многих языков. Система Meta позволяет развертывать ее во многих местах, но юридические проблемы с данными обучения и споры о том, является ли Llama открытым исходным кодом, продолжаются.