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

Большие языковые модели (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) для лучшего соответствия поведению и предпочтениям человека. Это требует больших вычислительных затрат, но крайне важно для повышения безопасности и эффективности модели.
Предварительное обучение и эффективность данных
Основополагающее новшество 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
- Посетите мета-сайт: Перейдите к Официальный сайт Meta Llama 2 и нажмите «Загрузить модель»
- Заполните детали: Прочитайте и примите условия, чтобы продолжить.
- Подтверждение электронной почты: После отправки формы вы получите электронное письмо от Meta со ссылкой для загрузки модели из их репозитория git.
- Выполните download.sh: Клонируйте репозиторий Git и выполните
download.shсценарий. Этот скрипт предложит вам пройти аутентификацию с использованием URL-адреса из Meta, срок действия которого истекает через 24 часа. Вы также выберете размер модели — 7B, 13B или 70B.
От обнимающего лица
- Получить электронное письмо с подтверждением: Получив доступ из Meta, перейдите в Обнимая лицо.
- Запрос доступа: выберите желаемую модель и отправьте запрос на предоставление доступа.
- Подтверждение: Ожидайте электронное письмо о предоставлении доступа в течение 1–2 дней.
- Генерация токенов доступа: Перейдите в раздел «Настройки» в своей учетной записи Hugging Face, чтобы создать токены доступа.
Версия Transformers 4.31 полностью совместима с LLaMa 2 и открывает доступ ко множеству инструментов и функций экосистемы Hugging Face. Инструментарий обширен: от скриптов обучения и вывода до 4-битного квантования с bitsandbytes и эффективной тонкой настройки параметров (PEFT). Для начала убедитесь, что у вас установлена последняя версия Transformers и вы вошли в свою учётную запись Hugging Face.
Вот упрощенное руководство по запуску модели вывода LLaMa 2 в Google Colab среде, используя среду выполнения графического процессора:
Установка пакета
!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 установила новый стандарт показателей производительности. Он не только превосходит своего предшественника 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
- Обобщение данных: И Llama 2, и GPT-4 иногда дают сбои в одинаково высокой производительности при выполнении различных задач. В этих сценариях качество и разнообразие данных так же важны, как и объем.
- Прозрачность модели: Учитывая предыдущие неудачи, когда ИИ давал вводящие в заблуждение результаты, изучение обоснования принятия решений, лежащих в основе этих сложных моделей, имеет первостепенное значение.
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, эта модель превосходит текущие отраслевые стандарты в некоторых областях, а её открытость открывает путь к новой эре в области понимания естественного языка и генеративного ИИ.

















