Поймите, что означает генеративный искусственный интеллект с 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.