Свяжитесь с нами:

Лама 2: глубокое погружение в претендента на ChatGPT с открытым исходным кодом

Искусственный интеллект

Лама 2: глубокое погружение в претендента на ChatGPT с открытым исходным кодом

mm
МЕТА ЛЛАМА 2 LLM

Большие языковые модели (LLM), способные решать сложные задачи на рассуждение, продемонстрировали многообещающие возможности в таких специализированных областях, как программирование и литературное творчество. Однако мир LLM — это не просто рай, где всё можно настроить по принципу «включай и работай»; существуют проблемы с удобством использования, безопасностью и вычислительными требованиями. В этой статье мы подробно рассмотрим возможности Llama 2, а также подробное описание настройки этого высокопроизводительного LLM с помощью графических процессоров Hugging Face и T4 в Google Colab.

Разработанная Meta в партнёрстве с Microsoft, эта модель с открытым исходным кодом для большого языка призвана переосмыслить сферы генеративного ИИ и понимания естественного языка. Llama 2 — это не просто очередная статистическая модель, обученная на терабайтах данных; это воплощение философии, которая подчёркивает, что открытый исходный код — основа разработки ИИ, особенно в области генеративного ИИ.

Llama 2 и его оптимизированный для диалогов аналог Llama 2-Chat оснащены до 70 миллиардами параметров. Они подвергаются процессу тонкой настройки, призванному привести их в соответствие с предпочтениями человека, что делает их более безопасными и эффективными, чем многие другие общедоступные модели. Этот уровень детализации при тонкой настройке часто сохраняется для закрытых «продуктовых» LLM, таких как ChatGPT и BARD, которые обычно недоступны для публичного изучения или настройки.

Технический обзор Llama 2

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

Архитектура обучения Meta Llama 2

Архитектура обучения Meta Llama 2

Предварительное обучение и эффективность данных

Основополагающее новшество Llama 2 заключается в режиме предобучения. Модель основана на принципах своей предшественницы Llama 1, но вносит несколько важных улучшений для повышения производительности. В частности, выделяются увеличение общего количества обученных токенов на 40% и двукратное увеличение длины контекста. Кроме того, модель использует метод внимания к групповым запросам (GQA) для повышения масштабируемости вывода.

Контролируемая точная настройка (SFT) и обучение с подкреплением с обратной связью от человека (RLHF)

Llama-2-chat был тщательно настроен с использованием как SFT, так и обучения с подкреплением и обратной связью с человеком (RLHF). В этом контексте SFT выступает неотъемлемым компонентом фреймворка RLHF, уточняя реакции модели для более точного соответствия предпочтениям и ожиданиям человека.

OpenAI предоставил наглядную иллюстрацию, объясняющую методологии SFT и RLHF, используемые в InstructGPT. Подобно LLaMa 2, InstructGPT также использует эти передовые методы обучения для оптимизации производительности своей модели.

Шаг 1 на изображении ниже посвящен контролируемой точной настройке (SFT), а последующие шаги завершают процесс обучения с подкреплением на основе обратной связи с человеком (RLHF).

Контролируемая тонкая настройка (SFT) — это специализированный процесс, направленный на оптимизацию предварительно обученной большой языковой модели (LLM) для конкретной задачи. В отличие от неконтролируемых методов, которые не требуют проверки данных, SFT использует предварительно проверенный и размеченный набор данных.

Как правило, создание таких наборов данных требует больших затрат времени и средств. В Llama 2 качество было важнее количества. Всего с 27,540 XNUMX аннотациями команда Meta достигла уровня производительности, сопоставимого с показателями специалистов-аннотаторов. Это хорошо согласуется с недавние исследования показывая, что даже ограниченные, но чистые наборы данных могут обеспечить высококачественные результаты.

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

Эта оптимизация позволяет LLM улавливать сложные закономерности и нюансы, заложенные в размеченном наборе данных. Следовательно, модель становится не просто обобщенным инструментом, а превращается в специализированный актив, способный выполнить целевую задачу с высокой степенью точности.

Обучение с подкреплением — это следующий шаг, направленный на более точное согласование поведения модели с предпочтениями человека.

На этапе настройки использовалось обучение с подкреплением на основе обратной связи с человеком (RLHF), применяя такие методы, как Выборка по важности и Проксимальная политика оптимизации вводить алгоритмический шум, тем самым уклоняясь от локальных оптимумов. Эта итеративная точная настройка не только улучшила модель, но и привела ее результаты в соответствие с человеческими ожиданиями.

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

Призрачное внимание: многоходовые диалоги

Meta представила новую функцию Ghost Attention (GAtt), предназначенную для повышения производительности Llama 2 в многовариантных диалогах. Это эффективно решает постоянную проблему потери контекста в текущих диалогах. GAtt действует как якорь, связывая начальные инструкции со всеми последующими сообщениями пользователя. В сочетании с методами обучения с подкреплением она помогает формировать последовательные, релевантные и согласованные с пользователем ответы в длинных диалогах.

Из репозитория Meta Git с использованием download.sh

  1. Посетите мета-сайт: Перейдите к Официальный сайт Meta Llama 2 и нажмите «Загрузить модель»
  2. Заполните детали: Прочитайте и примите условия, чтобы продолжить.
  3. Подтверждение электронной почты: После отправки формы вы получите электронное письмо от Meta со ссылкой для загрузки модели из их репозитория git.
  4. Выполните download.sh: Клонируйте репозиторий Git и выполните download.sh сценарий. Этот скрипт предложит вам пройти аутентификацию с использованием URL-адреса из Meta, срок действия которого истекает через 24 часа. Вы также выберете размер модели — 7B, 13B или 70B.

От обнимающего лица

  1. Получить электронное письмо с подтверждением: Получив доступ из Meta, перейдите в Обнимая лицо.
  2. Запрос доступа: выберите желаемую модель и отправьте запрос на предоставление доступа.
  3. Подтверждение: Ожидайте электронное письмо о предоставлении доступа в течение 1–2 дней.
  4. Генерация токенов доступа: Перейдите в раздел «Настройки» в своей учетной записи Hugging Face, чтобы создать токены доступа.

Версия Transformers 4.31 полностью совместима с LLaMa 2 и открывает доступ ко множеству инструментов и функций экосистемы Hugging Face. Инструментарий обширен: от скриптов обучения и вывода до 4-битного квантования с bitsandbytes и эффективной тонкой настройки параметров (PEFT). Для начала убедитесь, что у вас установлена ​​последняя версия Transformers и вы вошли в свою учётную запись Hugging Face.

Вот упрощенное руководство по запуску модели вывода LLaMa 2 в Google Colab среде, используя среду выполнения графического процессора:

Модель Google Colab — графический процессор T4

Модель Google Colab — графический процессор T4

 

 

 

 

 

 

Установка пакета

!pip install transformers
!huggingface-cli login

Импортируйте необходимые библиотеки Python.

from transformers import AutoTokenizer
import transformers
import torch

Инициализируйте модель и токенизатор

На этом этапе укажите, какую модель Llama 2 вы будете использовать. В этом руководстве мы используем meta-llama/Llama-2-7b-chat-hf.

model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

Настройка конвейера

Используйте конвейер Hugging Face для генерации текста с определенными настройками:

pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto")

Генерация текстовых последовательностей

Наконец, запустите конвейер и сгенерируйте текстовую последовательность на основе введенных вами данных:

sequences = pipeline(
    'Who are the key contributors to the field of artificial intelligence?\n',
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=200)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

Пользовательский интерфейс A16Z для LLaMa 2

Andreessen Horowitz (A16Z) недавно запустил передовой интерфейс чат-бота на основе Streamlit, адаптированный для Llama 2. Этот пользовательский интерфейс, размещенный на GitHub, сохраняет историю сеанса чата, а также обеспечивает гибкость выбора из нескольких конечных точек API Llama 2, размещенных на копировать. Этот ориентированный на пользователя дизайн призван упростить взаимодействие с Llama 2, что делает его идеальным инструментом как для разработчиков, так и для конечных пользователей. Для тех, кто заинтересован в этом, живая демо-версия доступна по адресу Лама2.ай.

Llama 2: Чем она отличается от GPT Models и ее предшественницы Llama 1?

Разнообразие масштабов

В отличие от многих языковых моделей, которые предлагают ограниченную масштабируемость, Llama 2 предоставляет вам множество различных вариантов моделей с различными параметрами. Модель масштабируется от 7 до 70 миллиардов параметров, обеспечивая тем самым широкий спектр конфигураций для удовлетворения разнообразных вычислительных потребностей.

Расширенная длина контекста

Модель имеет увеличенную длину контекста в 4 КБ токенов, чем Llama 1. Это позволяет ей сохранять больше информации, тем самым повышая ее способность понимать и генерировать более сложный и обширный контент.

Внимание к групповым запросам (GQA)

В архитектуре используется концепция GQA, разработанный для ускорения процесса вычисления внимания за счёт кэширования предыдущих пар токенов. Это эффективно улучшает масштабируемость вывода модели и повышает её доступность.

Тесты производительности

Сравнительный анализ производительности моделей Llama 2-Chat с ChatGPT и другими конкурентами

Анализ производительности моделей Llama 2-Chat с ChatGPT и других конкурентов

LLama 2 установила новый стандарт показателей производительности. Он не только превосходит своего предшественника LLama 1, но и составляет значительную конкуренцию другим моделям, таким как Falcon и GPT-3.5.

Самая мощная модель Llama 2-Chat, 70B, также превосходит ChatGPT в 36% случаев и соответствует ему ещё в 31.5% случаев. Источник: Бумажный

Открытый исходный код: сила сообщества

Компании Meta и Microsoft стремятся сделать Llama 2 не просто продуктом, а инструментом, развиваемым сообществом. Llama 2 предоставляется бесплатно как для исследовательских, так и для некоммерческих целей. Они стремятся сделать возможности ИИ доступными для стартапов, исследователей и компаний. Открытый исходный код позволяет проводить «краудсорсинговое устранение неполадок» модели. Разработчики и специалисты по этике ИИ могут проводить стресс-тестирование, выявлять уязвимости и предлагать решения в ускоренном режиме.

Хотя условия лицензирования LLaMa 2 в целом разрешающие, Исключения существуют. Крупные предприятия с более чем 700 миллионами пользователей в месяц, такие как Google, требуют явного разрешения Meta для его использования. Дополнительно лицензия запрещает использование LLaMa 2 для улучшения других языковых моделей.

Текущие проблемы с Llama 2

  1. Обобщение данных: И Llama 2, и GPT-4 иногда дают сбои в одинаково высокой производительности при выполнении различных задач. В этих сценариях качество и разнообразие данных так же важны, как и объем.
  2. Прозрачность модели: Учитывая предыдущие неудачи, когда ИИ давал вводящие в заблуждение результаты, изучение обоснования принятия решений, лежащих в основе этих сложных моделей, имеет первостепенное значение.

Code Llama – последний запуск Meta

Мета недавно анонсировала Код Ламы это большая языковая модель, специализирующаяся на программировании с размерами параметров от 7 до 34 байт. Похожий на Интерпретатор кода ChatGPT; Code Llama может упростить рабочие процессы разработчиков и сделать программирование более доступным. Он поддерживает различные языки программирования и поставляется в специализированных вариантах, таких как Code Llama-Python для задач, специфичных для Python. Модель также предлагает различные уровни производительности для удовлетворения различных требований к задержке. Code Llama имеет открытую лицензию и приглашает сообщество внести свой вклад в постоянное улучшение.

Представляем Code Llama, инструмент искусственного интеллекта для кодирования

Заключение

В этой статье мы пошагово описали настройку модели Llama 2 для генерации текста в Google Colab с поддержкой Hugging Face. Производительность Llama 2 обеспечивается целым рядом передовых технологий, от архитектур авторегрессионного преобразователя до обучения с подкреплением и обратной связью с человеком (RLHF). Благодаря поддержке до 70 миллиардов параметров и таким функциям, как Ghost Attention, эта модель превосходит текущие отраслевые стандарты в некоторых областях, а её открытость открывает путь к новой эре в области понимания естественного языка и генеративного ИИ.

Последние пять лет я погружался в увлекательный мир машинного обучения и глубокого обучения. Моя страсть и опыт позволили мне принять участие в более чем 50 различных проектах по разработке программного обеспечения, уделяя особое внимание AI/ML. Мое постоянное любопытство также привлекло меня к обработке естественного языка, области, которую я очень хочу исследовать дальше.