Поймите, что означает генеративный искусственный интеллект с LLM, его основные определения и архитектуру. Мы изучим генеративный искусственный интеллект и фундаментальные концепции «архитектуры-трансформера».

Что такое ИИ?

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

Несколько примеров:

Машинное обучение (МО): подмножество искусственного интеллекта, которое включает в себя обучение компьютерных систем обучению на основе данных и повышению их производительности при выполнении конкретных задач без явного программирования для этих задач.

Глубокое обучение: подраздел машинного обучения, в котором используются интеллектуальные алгоритмы для изучения и представления сложных закономерностей в данных.

Обработка естественного языка (NLP): основное внимание уделяется тому, чтобы машины могли понимать, интерпретировать и генерировать человеческий язык.

Что такое генеративный ИИ?

Генеративный ИИ относится к типу искусственного интеллекта, который может генерировать новый контент, например код (второй пилот), изображения (dall-e), текст (chatGPT), аудио или видео, который похож или напоминает контент, созданный человеком. В отличие от традиционных систем искусственного интеллекта, которые ориентированы на конкретные задачи или решение четко определенных проблем, генеративные модели искусственного интеллекта могут создавать новые данные на основе шаблонов и характеристик, которые они извлекли из больших наборов данных во время обучения.

Несколько примеров:

Генераторно-состязательные сети (GAN). GAN состоят из двух нейронных сетей: генератора и дискриминатора. Генератор создает новые экземпляры данных, а задача дискриминатора — различать реальные данные и сгенерированные данные. Эти две сети обучаются на конкурентной основе, и по мере их улучшения генератор становится лучше выдает реалистичные данные.

Вариационные автоэнкодеры (VAE). VAE — это тип модели автокодировщика, которая учится кодировать входные данные в низкомерное представление (скрытое пространство), а затем декодировать их обратно для создания новых данных. Скрытое пространство позволяет модели генерировать новые точки данных путем выборки из изученного распределения вероятностей.

Трансформеры и языковые модели. Такие модели, как GPT (генеративный предварительно обученный преобразователь) OpenAI, используют архитектуру преобразователя для генерации человеческого текста на основе контекста, предоставленного во входных данных. Эти модели достигли впечатляющих результатов в задачах генерации естественного языка.

Рекуррентные нейронные сети (RNN): RNN также можно использовать для генеративных задач, таких как генерация текста или музыки. Они особенно подходят для последовательных данных, где порядок и контекст данных имеют решающее значение.

Языковая модель

Языковая модель — это тип модели искусственного интеллекта, предназначенный для понимания и генерации человеческого языка.

Основная цель языковой модели — предсказать вероятность появления последовательности слов в данном контексте, что важно для понимания и создания связного и контекстуально соответствующего языка.

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

Модель большого языка (LLM)

Большая языковая модель относится к типу модели искусственного интеллекта, которая обучается на огромных объемах данных и состоит из огромного количества параметров. Эти модели предназначены для понимания и создания человеческого языка с высоким уровнем владения. Большие языковые модели обычно являются частью семейства моделей глубокого обучения, в частности, основанных на таких архитектурах, как Transformers.

Одним из самых известных примеров большой языковой модели является GPT-3, разработанный OpenAI.

Трансформеры

Архитектура Transformer – это модель глубокого обучения, которая использует самообслуживание для понимания зависимостей в последовательностях, что позволяет эффективно обрабатывать долгосрочные связи и достигать самых современных результатов. приводит к различным задачам НЛП и другим задачам, связанным с последовательностью.

Самовнимание — это ключевой механизм, который позволяет модели взвешивать важность каждого слова в последовательности относительно всех остальных слов. Он подсчитывает оценку внимания, указывая, сколько внимания следует уделить каждому слову во время обработки. Трансформаторы могут работать параллельно и легко масштабироваться.

Примеры использования:

Машинный перевод

Трансформаторы широко используются в задачах машинного перевода, где они могут взять входное предложение на одном языке и сгенерировать соответствующий перевод на другой язык.

Обобщение текста

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

Понимание языка и ответы на вопросы

Трансформаторы используются в задачах, требующих понимания естественного языка, таких как анализ настроений, распознавание именованных объектов и системы вопросов-ответов.

Архитектура кодера/декодера

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

- Декодер в контексте таких задач, как машинный перевод, использует механизмы представления и самообслуживания кодера для генерации выходной последовательности, например перевода, слово за словом на основе закодированного ввода.

Диаграммы взяты из книги Внимание — это все, что вам нужно Google и Университета Торонто.

Вот описание потока:

  • Входные данные: каждое слово заменяется числом (токеном), представляющим слово.
  • Встраивание: каждое слово векторизовано. Представление последовательности слов и отношений между словами
  • Кодировщик: многоголовое самообслуживание — расчет различных вариантов представления важности и отношений слов.
  • Сеть прямой связи: рассчитайте вероятность для каждого токена
  • Выход Softmax: найдите наивысший балл среди всех вероятностей.

А вот пример перевода английского предложения «Привет, как дела?» на французский.

1. Ввод текста и токенизация:

- Первый шаг — разбить входное предложение на отдельные слова или подслова. Каждый токен представляет определенное слово или подслово и сопоставляется с уникальным целочисленным идентификатором.

Например: 5432 (Привет), 1235 (как), 8734 (а), 2349 (вы)

2. Внедрение входных данных:

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

- Например, «Привет» может быть представлено как [0,25, -1,02, 0,76], «как» — как [-0,12, 0,89, -0,34] и так далее.

3. Позиционное кодирование:

— Поскольку Трансформер по своей сути не понимает порядок слов в последовательности, к встраиваниям добавляются позиционные кодировки. Эти позиционные кодировки передают информацию о позициях слов в предложении.

4. Архитектура кодировщика-декодера:

- В машинном переводе Transformer использует архитектуру кодер-декодер. Кодер обрабатывает входное английское предложение, а декодер генерирует соответствующий перевод на французский язык.

5. Внимание к кодировщику:

- Кодировщик использует механизмы самообслуживания для анализа входного предложения, обращая внимание на соответствующие слова при обработке каждого слова. Это помогает уловить зависимости между словами и понять контекст предложения.

6. Представление кодировщика:

- После процесса самообслуживания кодировщик выводит многомерное представление английского предложения. Это представление содержит информацию о семантике и отношениях между словами.

7. Внимание к себе в декодере:

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

8. Декодирование и вывод:

- Декодер генерирует французский перевод слово за словом, обращая внимание на представление кодера и ранее сгенерированные французские слова на каждом этапе.

- Модель продолжает декодирование до тех пор, пока не сгенерирует токен конца предложения или не достигнет предопределенной максимальной длины.

9. Жадный или лучевой поиск:

— При декодировании модель может использовать жадный подход, выбирая на каждом шаге слово с наибольшей вероятностью. Альтернативно, он может использовать лучевой поиск для рассмотрения нескольких возможных вариантов трансляции и выбора наиболее вероятной последовательности.

10. Вывод текста и детокенизация:

- Сгенерированные французские токены преобразуются обратно в удобочитаемый текст, в результате чего получается переведенное предложение, например: «Добрый день, прокомментируйте ça va?» (французский перевод «Привет, как дела?»).

Оперативное и оперативное проектирование

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

Жизненный цикл проекта генеративного ИИ

Определите цели проекта

Сбор и предварительная обработка данных

Выберите архитектуру генеративной модели

Обучение и проверка модели

Настройка гиперпараметров

Оценка модели

Развертывание модели

Мониторинг и обновление модели

Упражнение

В этом упражнении мы загрузим большую предварительно обученную модель и попробуем суммировать предложение.

Создать виртуальную среду

На Mac вы можете выполнить следующие команды терминала:

sudo easy_install pip
sudo pip install virtualenv
mkdir ai_gen_project && cd ai_gen_project
virtualenv ai_gen
source ai_gen/bin/activate
pip install \
torch==1.13.1 \
torchdata==0.5.1

Примечание. PyTorch — это библиотека машинного обучения с открытым исходным кодом для Python, которая предоставляет гибкий и динамический вычислительный график, что делает ее популярной для создания и обучения моделей глубокого обучения.

pip install \
transformers==4.27.2 \
datasets==2.11.0

Примечание. Установите Jupyter Lab для работы с ноутбуком. Следующие команды установят и откроют блокнот в окне браузера.

pip install jupyterlab
jupyter lab

Создайте новый блокнот Python3 и в блокноте выполните:

from transformers import AutoModelForSeq2SeqLM
from transformers import AutoTokenizer
model_name=’google/flan-t5-base’
model=AutoModelForSeq2SeqLM.from_pretrained(model_name)
tokenizer=AutoTokenizer.from_pretrained(model_name, use_fast=True)
sentence = “this is a very nice day today”
sentence_encoded=tokenizer(sentence, return_tensors=’pt’)
print(sentence_encoded)
sentence_decoded=tokenizer.decode( sentence_encoded[“input_ids”][0], 
skip_special_tokens=True)
print(sentence_decoded)
output=tokenizer.decode(model.generate(sentence_encoded[“input_ids”], 
max_new_tokens=50,)[0], skip_special_tokens=True)
print(output)

Следующим шагом будет точная настройка результатов с помощью оперативного проектирования.

Краткое содержание

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

Я Эйлон Штайнер, технический руководитель компании Infostrux Solutions. Вы можете подписаться на меня в LinkedIn.

Подпишитесь на блог Infostrux Medium по адресу https://blog.infostrux.com, чтобы получать самые интересные новости Data Engineering и Snowflake. Следите за усилиями Infostrux в области открытого исходного кода через GitHub.