Моделі та платформи ШІ
Llama 2: Глибокий аналіз відкритого джерельного конкурента ChatGPT
Больші мови моделі (LLM) (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; як і її попередники, вона використовує автoregresивну трансформерну архітектуру, попередньо навчену на великому корпусі самообучених даних. Однак вона додає додатковий рівень складності шляхом використання навчання з підкріпленням з людською відгуком (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. Цей скрипт запропонує вам автентифікувати за допомогою посилання від 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 загалом перmissive, винятки існують. Великі підприємства з понад 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 підтримується рядом просунутих технік, від автoregresивних трансформерних архітектур до навчання з підкріпленням з людською відгуком (RLHF). З до 70 мільярдами параметрів та функціями, такими як Привидна увага, ця модель перевершує сучасні промислові стандарти у певних областях, а її відкритий характер відкриває шлях до нової ери у сфері природної мови та генерації ІІ.

















