1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/modelee-gpt2

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

GPT-2

Тестирование всех возможностей генерации здесь: https://transformer.huggingface.co/doc/gpt2-large

Предварительно обученная модель на английском языке с использованием задачи причинной языковой модели (CLM). Она была представлена в этой статье и впервые выпущена на этой странице.

Отказ от ответственности: команда, выпускающая GPT-2, также написала карточку модели. Содержание из этой карточки модели было написано командой Hugging Face для дополнения предоставленной ими информации и предоставления конкретных примеров предвзятости.

Описание модели

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

Точнее, входные данные представляют собой последовательности непрерывного текста определённой длины, а целевые данные — ту же последовательность, сдвинутую на один токен (слово или часть слова) вправо. Модель использует внутренний механизм маскирования, чтобы гарантировать, что прогнозы для токена i используют только входные данные от 1 до i, но не будущие токены.

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

Это самая маленькая версия GPT-2 с 124 миллионами параметров.

Связанные модели: GPT-Large, GPT-Medium и GPT-XL.

Предназначение и ограничения

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

Как использовать

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

>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='gpt2')
>>> set_seed(42)
>>> generator("Hello, I'm a language model,", max_length=30, num_return_sequences=5)

[{'generated_text': "Hello, I'm a language model, a language for thinking, a language for expressing thoughts."},
 {'generated_text': 'Hello, I\'m a language model, a compiler, a compiler library, I just want to know how I build this kind of stuff. I don'},
 {'generated_text': 'Hello, I\'m a language model, and also have more than a few of your own, but I understand that they\'re going to need some help'},
 {'generated_text': 'Hello, I\'m a language model, a system model. I want to know my language so that it might be more interesting, more user-friendly'},
 {'generated_text': 'Hello, I\'m a language model, not a language model"\n\nThe concept of "no-tricks" comes in handy later with new'}]

Вот как использовать эту модель для получения признаков данного текста в PyTorch:

from transformers import GPT2Tokenizer, GPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2Model.from_pretrained('gpt2')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)

и в TensorFlow:

from transformers import GPT2Tokenizer, TFGPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = TFGPT2Model.from_pretrained('gpt2')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)

Ограничения и предвзятость

Данные обучения, использованные для этой модели, не были опубликованы как... Текст:

dataset one can browse. Мы знаем, что он содержит много неотфильтрованного контента из интернета, который далёк от нейтрального. Как указывает сама команда OpenAI в своей model card:

Поскольку крупномасштабные языковые модели, такие как GPT-2, не различают факт и вымысел, мы не поддерживаем случаи использования, которые требуют, чтобы сгенерированный текст был истинным.

Кроме того, языковые модели вроде GPT-2 отражают предубеждения, присущие системам, на которых они были обучены, поэтому мы не рекомендуем их развёртывать в системах, взаимодействующих с людьми, если только разработчики сначала не проведут исследование предубеждений, связанных с предполагаемым использованием. Мы не обнаружили статистически значимой разницы в гендерных, расовых и религиозных предубеждениях между 774M и 1.5B, подразумевая, что ко всем версиям GPT-2 следует подходить с одинаковой осторожностью в отношении случаев использования, чувствительных к предубеждениям относительно человеческих атрибутов.

Вот пример того, как модель может делать предвзятые прогнозы:

>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='gpt2')
>>> set_seed(42)
>>> generator("The White man worked as a", max_length=10, num_return_sequences=5)

[{'generated_text': 'The White man worked as a mannequin for'},
 {'generated_text': 'The White man worked as a maniser of the'},
 {'generated_text': 'The White man worked as a bus conductor by day'},
 {'generated_text': 'The White man worked as a plumber at the'},
 {'generated_text': 'The White man worked as a journalist. He had'}]

>>> set_seed(42)
>>> generator("The Black man worked as a", max_length=10, num_return_sequences=5)

[{'generated_text': 'The Black man worked as a man at a restaurant'},
 {'generated_text': 'The Black man worked as a car salesman in a'},
 {'generated_text': 'The Black man worked as a police sergeant at the'},
 {'generated_text': 'The Black man worked as a man-eating monster'},
 {'generated_text': 'The Black man worked as a slave, and was'}]

Этот уклон также повлияет на все доработанные версии этой модели.

Тренировочные данные

Команда OpenAI хотела обучить эту модель на максимально большом корпусе данных. Для его создания они собрали все веб-страницы с исходящих ссылок на Reddit, которые получили как минимум 3 кармы. Обратите внимание, что все страницы Википедии были удалены из этого набора данных, так что модель не обучалась ни на какой части Википедии. Полученный набор данных (называемый WebText) весит 40 ГБ текстов, но не был публично выпущен. Вы можете найти список 1000 лучших доменов, представленных в WebText, здесь.

Процедура обучения

Предварительная обработка

Тексты токенизируются с помощью байтовой версии Byte Pair Encoding (BPE) (для символов юникода) и словаря размером 50 257. Входы представляют собой последовательности из 1024 последовательных токенов.

Большая модель была обучена на 256 облачных TPU v3 ядрах. Продолжительность обучения не разглашалась, равно как и точные детали обучения.

Результаты оценки

Модель достигает следующих результатов без какой-либо доработки (нулевой выстрел):

Dataset LAMBADA LAMBADA CBT-CN CBT-NE WikiText2 PTB enwiki8 text8 WikiText103 1BW
(metric) (PPL) (ACC) (ACC) (ACC) (PPL) (PPL) (BPB) (BPC) (PPL) (PPL)
35.13 45.99 87.65 83.4 29.41 65.85 1.16 1,17 37.50 75.20

BibTeX entry и информация о цитировании

@article{radford2019language,
  title={Language Models are Unsupervised Multitask Learners},
  author={Radford, Alec and Wu, Jeff and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya},
  year={2019}
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/modelee-gpt2.git
git@api.gitlife.ru:oschina-mirror/modelee-gpt2.git
oschina-mirror
modelee-gpt2
modelee-gpt2
main