Тестирование всех возможностей генерации здесь: 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 |
@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 )