Модели и платформы ИИ
Llama 2: Глубокое погружение в открытую модель, конкурирующую с ChatGPT
Большие языковые модели (LLM) способны выполнять сложные задачи рассуждения и показали свою эффективность в специализированных областях, таких как программирование и творческое письмо. Однако мир LLM не является просто плагином и игрой; существуют проблемы с удобством использования, безопасностью и вычислительными требованиями. В этой статье мы глубоко погрузимся в возможности Llama 2, а также предоставим подробное руководство по настройке этой высокопроизводительной LLM через Hugging Face и T4 GPU на Google Colab.
Разработанная компанией Meta в партнерстве с Microsoft (MSFT ), эта открытая большая языковая модель направлена на переопределение границ генеративного ИИ и понимания естественного языка. Llama 2 не является просто еще одной статистической моделью, обученной на терабайтах данных; это воплощение философии, которая подчеркивает открытый подход как основу разработки ИИ, особенно в области генеративного ИИ.
Llama 2 и ее диалог-оптимизированная замена, Llama 2-Chat, оснащены до 70 миллиардов параметров. Они проходят процесс тонкой настройки, предназначенный для того, чтобы они были как можно ближе к человеческим предпочтениям, что делает их более безопасными и эффективными, чем многие другие публично доступные модели. Этот уровень детализации в тонкой настройке обычно зарезервирован для закрытых “продуктов” LLM, таких как ChatGPT и BARD, которые обычно не доступны для публичного анализа или настройки.
Технический анализ Llama 2
Для обучения модели Llama 2 используется автoregressive архитектура трансформера, предварительно обученная на обширном корпусе самообученных данных. Однако она добавляет дополнительный слой сложности, используя обучение с подкреплением и обратной связью человека (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 аннотаций команда 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
- Получите письмо с подтверждением: После получения доступа от 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-окружение:
Установка пакетов
<p>!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 миллиардов параметров, обеспечивая ряд конфигураций для удовлетворения различных вычислительных потребностей.
Улучшенная длина контекста
Модель имеет увеличенную длину контекста на 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
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 обусловлена рядом продвинутых методов, от автoregressive архитектур трансформеров до обучения с подкреплением и обратной связью человека (RLHF). С до 70 миллиардами параметров и функциями, такими как Призрачное внимание, эта модель превосходит текущие отраслевые стандарты в определенных областях, и с ее открытым характером она открывает путь для новой эры в понимании естественного языка и генеративном ИИ.

















