Искусственный интеллект
Llama 2: Глубокое погружение в открытую модель, конкурирующую с ChatGPT

Большие языковые модели (LLM) способны выполнять сложные задачи рассуждения и показали перспективы в таких специализированных областях, как программирование и творческое письмо. Однако мир LLM не является просто раем «подключи и играй»; существуют проблемы с удобством использования, безопасностью и вычислительными требованиями. В этой статье мы глубоко погрузимся в возможности Llama 2, предоставив подробное руководство по настройке этой высокопроизводительной LLM с помощью Hugging Face и T4 GPU на Google Colab.
Разработанная компанией Meta в партнерстве с Microsoft, эта открытая большая языковая модель направлена на переопределение границ генеративного ИИ и понимания естественного языка. Llama 2 не является просто еще одной статистической моделью, обученной на терабайтах данных; это воплощение философии. Одна, которая подчеркивает открытый подход как основу разработки ИИ, особенно в области генеративного ИИ.
Llama 2 и ее диалог-оптимизированная замена, Llama 2-Chat, оснащены до 70 миллиардов параметров. Они проходят процесс тонкой настройки, предназначенный для того, чтобы они были тесно связаны с человеческими предпочтениями, что делает их более безопасными и эффективными, чем многие другие публично доступные модели. Этот уровень детализации в тонкой настройке часто зарезервирован для закрытых «продуктов» LLM, таких как ChatGPT и BARD, которые обычно не доступны для публичного анализа или настройки.
Техническое глубокое погружение в Llama 2
Для обучения модели Llama 2, как и ее предшественники, используется автoreгрессивная архитектура трансформера, предварительно обученная на обширном корпусе самообученных данных. Однако она добавляет дополнительный слой сложности, используя обучение с подкреплением с человеческой обратной связью (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) для конкретной задачи. В отличие от несупervised методов, которые не требуют проверки данных, SFT использует набор данных, который был предварительно проверен и помечен.
Обычно создание этих наборов данных является дорогостоящим и трудоемким. Подход Llama 2 был качеством над количеством. С только 27 540 аннотациями команда Meta достигла уровня производительности, конкурирующего с человеческими аннотаторами. Это соответствует недавним исследованиям, показывающим, что даже ограниченные, но чистые наборы данных могут стимулировать высококачественные результаты.
В процессе SFT предварительно обученная LLM подвергается воздействию помеченного набора данных, где алгоритмы обучения с учителем вступают в действие. Внутренние веса модели перенастраиваются на основе градиентов, рассчитанных из функции потерь, специфичной для задачи.
Эта оптимизация позволяет LLM понять сложные закономерности и нюансы, встроенные в помеченный набор данных. Следовательно, модель не является просто общим инструментом, но эволюционирует в специализированный актив, умелый в выполнении целевой задачи с высоким уровнем точности.
Обучение с подкреплением является следующим шагом, направленным на более тесное соответствие поведения модели человеческим предпочтениям.
Фаза настройки использовала обучение с подкреплением с человеческой обратной связью (RLHF), используя техники, такие как импортанс-сэмплинг и проксимальную оптимизацию политики, чтобы ввести алгоритмический шум, тем самым избегая локальных оптимумов. Этот итеративный процесс тонкой настройки не только улучшил модель, но и соответствовал ее выводу человеческим ожиданиям.
Llama 2-Chat использовала бинарный протокол сравнения для сбора данных о человеческих предпочтениях, отмечая заметную тенденцию к более качественным подходам. Этот механизм информировал модели вознаграждения, которые затем использовались для тонкой настройки модели разговорного ИИ.
Призрачное внимание: Многоходовые диалоги
Meta ввела новую функцию, Призрачное внимание (GAtt), предназначенную для улучшения производительности Llama 2 в многоходовых диалогах. Это эффективно решает постоянную проблему потери контекста в продолжающихся разговорах. GAtt действует как якорь, связывающий первоначальные инструкции со всеми последующими сообщениями пользователя. В сочетании с техниками обучения с подкреплением это помогает производить последовательные, релевантные и соответствующие пользователю ответы на более длинные диалоги.
Из репозитория Meta Git с помощью download.sh
- Посетите сайт Meta: Перейдите на официальный сайт Llama 2 от Meta и нажмите ‘Скачать модель’
- Заполните детали: Прочитайте и примите условия, чтобы продолжить.
- Подтверждение по электронной почте: После отправки формы вы получите электронное письмо от Meta с ссылкой для скачивания модели из их репозитория Git.
- Выполните download.sh: Склонируйте репозиторий Git и выполните скрипт
download.sh. Этот скрипт запросит у вас аутентификацию по URL от Meta, который истекает через 24 часа. Вы также выберете размер модели — 7B, 13B или 70B.
Из Hugging Face
- Получите письмо с подтверждением: После получения доступа от Meta перейдите на Hugging Face.
- Запросите доступ: Выберите желаемую модель и отправьте запрос на получение доступа.
- Подтверждение: Ожидайте письма «доступ предоставлен» в течение 1-2 дней.
- Сгенерируйте токены доступа: Перейдите в раздел «Настройки» в вашем аккаунте Hugging Face, чтобы создать токены доступа.
Выпуск Transformers 4.31 полностью совместим с LLaMa 2 и открывает многие инструменты и функции внутри экосистемы Hugging Face. От скриптов обучения и вывода до 4-битной квантования с bitsandbytes и эффективной тонкой настройки параметров (PEFT) набор инструментов обширен. Чтобы начать, убедитесь, что вы используете последний выпуск Transformers и авторизованы в вашем аккаунте Hugging Face.
Вот пошаговое руководство по запуску модели LLaMa 2 в среде Google Colab, используя GPU:
Установка пакетов
!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(
'Кто являются ключевыми вкладчиками в область искусственного интеллекта?\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"Результат: {seq['generated_text']}")
Интерфейс A16Z для LLaMa 2
Andreessen Horowitz (A16Z) недавно запустила передовой интерфейс чат-бота на основе Streamlit, адаптированный для Llama 2. Размещенный на GitHub, этот интерфейс сохраняет историю чата и также предоставляет гибкость выбора из нескольких конечных точек API Llama 2, размещенных на Replicate. Этот пользовательский дизайн направлен на упрощение взаимодействия с Llama 2, делая его идеальным инструментом как для разработчиков, так и для конечных пользователей. Для тех, кто заинтересован в опыте, доступна живая демонстрация на Llama2.ai.
Llama 2: Что отличает ее от моделей GPT и ее предшественника Llama 1?
Разнообразие в масштабе
В отличие от многих языковых моделей, предлагающих ограниченную масштабируемость, Llama 2 предлагает вам множество различных вариантов моделей с разными параметрами. Модель масштабируется от 7 миллиардов до 70 миллиардов параметров, предоставляя ряд конфигураций для удовлетворения различных вычислительных потребностей.
Улучшенная длина контекста
Модель имеет увеличенную длину контекста на 4K токенов по сравнению с 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
Meta недавно объявила о Code Llama, которая представляет собой большую языковую модель, специализирующуюся на программировании с размерами параметров от 7B до 34B. Аналогично ChatGPT Code Interpreter; Code Llama может оптимизировать рабочие процессы разработчиков и сделать программирование более доступным. Она поддерживает различные языки программирования и предлагает специализированные вариации, такие как Code Llama–Python для задач, специфичных для Python. Модель также предлагает разные уровни производительности, чтобы удовлетворить различные требования к задержке. Открыто лицензирована, Code Llama приглашает сообщество к постоянному совершенствованию.
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
Заключение
Эта статья провела вас через процесс настройки модели Llama 2 для генерации текста на Google Colab с поддержкой Hugging Face. Производительность Llama 2 стимулируется рядом продвинутых методов, от автoreгрессивных архитектур трансформеров до обучения с подкреплением с человеческой обратной связью (RLHF). С до 70 миллиардов параметров и функциями, такими как Призрачное внимание, эта модель превосходит текущие отраслевые стандарты в определенных областях и, с ее открытой природой, открывает путь к новой эре понимания естественного языка и генеративного ИИ.

















