GPT «Генеративный предварительно обученный трансформатор» является первой версией серии моделей GPT, революционной обработки естественного языка с его возможностями авторегрессии языка, основанными на архитектуре трансформатора.
Этот проект представляет собой реализацию модели GPT (генеративный предварительно обученный трансформатор) с нуля с использованием TensorFlow. Он включает в себя все компоненты модели, такие как позиционные встраивания, механизм внимания, слои при подаче и многое другое.
Важное примечание: цель этого проекта - дать глубокое понимание архитектуры GPT и ее внутренней работы. Таким образом, это в основном для образовательных целей. Вы можете полностью понять структуру и рабочую механизм этой модели здесь и использовать компоненты, которые я реализовал в ваших проектах. Как правило, если вы хотите использовать проект для обучения вашей языковой модели с большими данными, вам может потребоваться изменять файл набора данных, чтобы иметь возможность более эффективно обрабатывать большие данные. Я разработал файл набора данных в основном для обработки простых, не больших данных, потому что я сейчас не в этом отношении.
Есть несколько версий GPT. Эта реализация фокусируется главным образом на реализации «улучшения понимания языка путем генеративного предварительного обучения».
config.py : файл конфигурации для модели HyperParameters.decoder.py : GPT Декодер.positional_embeddings.py : Положение в положении.embeddings.py : Token Entgeddings Generation.attention.py : Механизм самостоятельного прихода.feed_forward.py : Нейронная сеть подачи.lr_schedule.py : Планирование ставок обучения.utils.py : функции утилиты для обучения и вывода.loss_functions.py : Пользовательские функции потерь.metrics.py : Пользовательские показатели оценки.streamer.py : Streater Data для эффективного обучения.gpt_model.py : основная реализация модели GPT.bpe_tokenizer.py : токенизатор для токенизации BPE (кодировка пары байтов).tokenizer.py : предварительно обученный токенизатор GPT.prepare_dataset.py : файл, через который мы выполняем некоторые операции в наборе данных (создавая специальную папку для данных проверки).inferance.py : файл, необходимый для создания предложений из модели на основе подсказки ввода.tmp/ : каталог для хранения контрольных точек модели.demo/ : документация проекта.tokenizer/ : каталог для сохранения переподготовленного токенизатора.dummy_data/ : каталог, в котором мы размещаем некоторые данные для проверки стримера. Подробную проектную документацию можно найти в demo/ каталоге. Он включает в себя объяснения архитектуры GPT, учебных процедур и того, как использовать модель для различных задач обработки естественного языка.
Клонировать репозиторий:
git clone https://github.com/AliHaiderAhmad001/GPT-from-Scratch-with-Tensorflow.git
cd GPT-from-Scratch-with-TensorflowСоздайте виртуальную среду (необязательно, но рекомендуется):
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivateУстановить зависимости проекта:
pip install -r requirements.txtЗагрузите и подготовить набор данных: вы можете пойти и просмотреть демонстрацию. Вы можете работать над тем же набором данных, изменить его или настроить свои предпочтения. Тем не менее, вы можете скачать набор данных прямо отсюда. Вы можете взять часть этого для проверки через следующий код:
python prepare_dataset.py aclImdb/test aclImdb/valid --num_files_to_move 2500Погрузчик данных, который я использую, требует, чтобы набор проверки была в отдельной папке.
python bpe_tokenizer.py aclImdb --batch_size 1000 --vocab_size 50357 --save --save_fp tokenizer/adapted-tokenizerpython train.pypython train.py --resumepython inferance.py " input_text_prompt " --sampler " greedy " # For greedy samplingpython inferance.py " input_text_prompt " --sampler " beam " --beam_width 5 # For beam search sampling with a beam width of 5 Этот проект лицензирован по лицензии MIT. Смотрите файл лицензии для получения подробной информации.