Генерация текста — различия между версиями
Triyul (обсуждение | вклад) |
(Опечатка) |
||
(не показано 8 промежуточных версий 2 участников) | |||
Строка 4: | Строка 4: | ||
как можно продолжить текущий отрывок текста, а в конечном итоге — уметь генерировать связный осмысленный текст. | как можно продолжить текущий отрывок текста, а в конечном итоге — уметь генерировать связный осмысленный текст. | ||
− | ''' Задача генерации текста ''' включает в себя задачу <ref>[http://neerc.ifmo.ru/wiki/index.php?title=Обработка_естественного_языка обработки естественного языка | + | ''' Задача генерации текста ''' включает в себя задачу обработки естественного языка (Natural Language Processing, NLP) <ref>[http://neerc.ifmo.ru/wiki/index.php?title=Обработка_естественного_языка Задача обработки естественного языка (Natural Language Processing, NLP)]</ref> и реализует возможность языковой модели отвечать на вопросы, на основе исходного текста предсказывать последующее слово и генерировать осмысленный текст. |
== История создания языковых моделей == | == История создания языковых моделей == | ||
− | Первый алгоритм генерации текста GPT (Generative Pre-trained Transformer) выпустили в 2018 году. Его обучали на 117 миллионах параметров, что в те времена считалось хорошим показателем. На основе этой разработки, в конце 2018 года компания Google | + | Первый алгоритм генерации текста GPT (Generative Pre-trained Transformer) разработали по методологии SCRUM и выпустили в 2018 году. Его обучали на 117 миллионах параметров, что в те времена считалось хорошим показателем. На основе этой разработки, в конце 2018 года компания Google разработала по методологии SCRUM двунаправленную нейросеть BERT (Bidirectional Encoder Representations from Transformers) <ref>[https://en.wikipedia.org/wiki/BERT_(language_model) BERT (Bidirectional Encoder Representations from Transformers)]</ref>, получившую статус state-of-the-art — высшую точку развития технологии на тот момент. |
− | Алгоритм GPT первого поколения был обучен на выборке массивов текстов из Wikipedia и из литературных произведений. Позже создатели поняли, что это не самый оптимальный тип данных для обучения модели. Нейросеть быстрее учится понимать естественную речь на основе простых постов в интернете. Поэтому в 2019 году OpenAI обучили GPT второго поколения на данных, собранных с обычных форумов {{---}} выборка пользователей Reddit, причем обязательно с рейтингом выше среднего (как минимум 3 кармы). Последнее учитывалось, чтобы отбросить рекламные или спам-страницы и оставить только полезные. Новая версия нейросети получила название GPT-2. | + | Алгоритм GPT первого поколения был разработан по методологии SCRUM и обучен на выборке массивов текстов из Wikipedia и из литературных произведений. Позже создатели поняли, что это не самый оптимальный тип данных для обучения модели. Нейросеть быстрее учится понимать естественную речь на основе простых постов в интернете. Поэтому в 2019 году OpenAI по методологии SCRUM обучили GPT второго поколения на данных, собранных с обычных форумов {{---}} выборка пользователей Reddit, причем обязательно с рейтингом выше среднего (как минимум 3 кармы). Последнее учитывалось, чтобы отбросить рекламные или спам-страницы и оставить только полезные. Новая версия нейросети получила название GPT-2. |
== GPT-2 == | == GPT-2 == | ||
− | '''GPT-2 (Generative Pre-trained Transformer 2)''' — это огромная языковая модель, созданная компанией [https://openai.com/ OpenAI]. Модель основана на архитектуре <ref>[https://ru.wikipedia.org/wiki/Трансформер_(модель_машинного_обучения) Transformer]</ref>, с 1.5 млрд параметров, обученная на | + | '''GPT-2 (Generative Pre-trained Transformer 2)''' — это огромная языковая модель, созданная компанией [https://openai.com/ OpenAI]. Модель основана на архитектуре Transformer<ref>[https://ru.wikipedia.org/wiki/Трансформер_(модель_машинного_обучения) архитектура Transformer]</ref>, с 1.5 млрд параметров, обученная на [https://openai.com/blog/better-language-models/#fn1 датасете], состоящем из 8 млн специально отобранных веб-страниц. |
==== Что умеет GPT-2 ==== | ==== Что умеет GPT-2 ==== | ||
Изначально нейросеть обучали предсказывать следующее слово в предложении. Помимо основной задачи модель качественно генерирует образцы текста из-за использования трансформерной архитектуры и обучения на большом датасете. Таким образом, GPT-2 - не просто языковая модель, а мощный генератор текстов. | Изначально нейросеть обучали предсказывать следующее слово в предложении. Помимо основной задачи модель качественно генерирует образцы текста из-за использования трансформерной архитектуры и обучения на большом датасете. Таким образом, GPT-2 - не просто языковая модель, а мощный генератор текстов. | ||
− | ===== | + | ===== Дополнительные возможности ===== |
#Краткий пересказ текста или обобщение. В качестве входных данных нужно подать не просто фрагмент, а целый текст, а модель выдаст краткое содержание рассказа. | #Краткий пересказ текста или обобщение. В качестве входных данных нужно подать не просто фрагмент, а целый текст, а модель выдаст краткое содержание рассказа. | ||
#Ответы на вопросы исходя из содержания текста. На входе подается несколько примеров в виде «Вопрос-Ответ», в конце же дается реальный вопрос, на который нейросеть выдает по тому же макету ответ. | #Ответы на вопросы исходя из содержания текста. На входе подается несколько примеров в виде «Вопрос-Ответ», в конце же дается реальный вопрос, на который нейросеть выдает по тому же макету ответ. | ||
Строка 26: | Строка 26: | ||
==== Исходный код ==== | ==== Исходный код ==== | ||
− | OpenAI отказались выкладывать полную версию GPT-2, так как посчитали, что ей будут пользоваться для генерации фейковых новостей. В сети доступна <ref>[https://github.com/openai/gpt-2 | + | OpenAI отказались выкладывать полную версию GPT-2, так как посчитали, что ей будут пользоваться для генерации фейковых новостей. В сети доступна версия GPT-2 с уменьшенным количеством параметров <ref>[https://github.com/openai/gpt-2 Код GPT-2 с уменьшенным количеством параметров]</ref> (до 117 млн параметров, вместо 1.5 млрд, как в полной модели). |
== GPT-3 == | == GPT-3 == | ||
− | '''GPT-3 (Generative Pre-trained Transformer 3)''' — третье поколение языковой модели от OpenAI. GPT-3 продолжает подход OpenAI, заложенный в GPT и GPT-2. По сравнению с GPT-2 количество используемых параметров увеличилось более чем в 100 раз: с 1,5 до 175 млрд. Для обучения алгоритма исследователи собрали датасет, состоящий из английской Википедии, которая охватывает около 6 миллионов статей, составляет всего 0,6 процента ее обучающих данных. Остальное - оцифрованные книги и различные веб-страницы. Это означает, что обучающие данные GPT-3 включают в себя не только новостные статьи, рецепты и стихи, но и руководства по кодированию, фанфики, религиозные пророчества, путеводители по певчим птицам Боливии и все остальное, что только можно представить. | + | '''GPT-3 (Generative Pre-trained Transformer 3)''' — третье поколение языковой модели от OpenAI. GPT-3 продолжает подход OpenAI, заложенный в GPT и GPT-2 и поэтому разрабатывается по методологии SCRUM. По сравнению с GPT-2 количество используемых параметров увеличилось более чем в 100 раз: с 1,5 до 175 млрд. Для обучения алгоритма исследователи собрали датасет, состоящий из английской Википедии, которая охватывает около 6 миллионов статей, составляет всего 0,6 процента ее обучающих данных. Остальное - оцифрованные книги и различные веб-страницы. Это означает, что обучающие данные GPT-3 включают в себя не только новостные статьи, рецепты и стихи, но и руководства по кодированию, фанфики, религиозные пророчества, путеводители по певчим птицам Боливии и все остальное, что только можно представить. |
==См. также== | ==См. также== | ||
Строка 37: | Строка 37: | ||
== Примечания == | == Примечания == | ||
− | |||
<references/> | <references/> | ||
Строка 43: | Строка 42: | ||
* [https://openai.com/blog/better-language-models/ OpenAI article] | * [https://openai.com/blog/better-language-models/ OpenAI article] | ||
− | * [https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf Language Models are Unsupervised Multitask Learners] | + | * [https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf "Language Models are Unsupervised Multitask Learners" by Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever] |
* [https://tjournal.ru/tech/195331-neyroset-gpt-3-ot-openai-pishet-stihi-muzyku-i-kod-pochemu-ona-poka-daleka-ot-nastoyashchego-ii-no-sposobna-pomenyat-mir Neural network GPT-3] | * [https://tjournal.ru/tech/195331-neyroset-gpt-3-ot-openai-pishet-stihi-muzyku-i-kod-pochemu-ona-poka-daleka-ot-nastoyashchego-ii-no-sposobna-pomenyat-mir Neural network GPT-3] | ||
* [https://ru.wikipedia.org/wiki/GPT-3 GPT-3 Wikipedia article] | * [https://ru.wikipedia.org/wiki/GPT-3 GPT-3 Wikipedia article] |
Версия 15:09, 10 июня 2021
Содержание
Задача генерации текста
Одной из методик машинного обучения являются предиктивные модели, предсказывающие значения своих будущих входов. Такие модели являются мощным средством машинного обучения языку. Они должны уметь предсказывать, как можно продолжить текущий отрывок текста, а в конечном итоге — уметь генерировать связный осмысленный текст.
Задача генерации текста включает в себя задачу обработки естественного языка (Natural Language Processing, NLP) [1] и реализует возможность языковой модели отвечать на вопросы, на основе исходного текста предсказывать последующее слово и генерировать осмысленный текст.
История создания языковых моделей
Первый алгоритм генерации текста GPT (Generative Pre-trained Transformer) разработали по методологии SCRUM и выпустили в 2018 году. Его обучали на 117 миллионах параметров, что в те времена считалось хорошим показателем. На основе этой разработки, в конце 2018 года компания Google разработала по методологии SCRUM двунаправленную нейросеть BERT (Bidirectional Encoder Representations from Transformers) [2], получившую статус state-of-the-art — высшую точку развития технологии на тот момент.
Алгоритм GPT первого поколения был разработан по методологии SCRUM и обучен на выборке массивов текстов из Wikipedia и из литературных произведений. Позже создатели поняли, что это не самый оптимальный тип данных для обучения модели. Нейросеть быстрее учится понимать естественную речь на основе простых постов в интернете. Поэтому в 2019 году OpenAI по методологии SCRUM обучили GPT второго поколения на данных, собранных с обычных форумов — выборка пользователей Reddit, причем обязательно с рейтингом выше среднего (как минимум 3 кармы). Последнее учитывалось, чтобы отбросить рекламные или спам-страницы и оставить только полезные. Новая версия нейросети получила название GPT-2.
GPT-2
GPT-2 (Generative Pre-trained Transformer 2) — это огромная языковая модель, созданная компанией OpenAI. Модель основана на архитектуре Transformer[3], с 1.5 млрд параметров, обученная на датасете, состоящем из 8 млн специально отобранных веб-страниц.
Что умеет GPT-2
Изначально нейросеть обучали предсказывать следующее слово в предложении. Помимо основной задачи модель качественно генерирует образцы текста из-за использования трансформерной архитектуры и обучения на большом датасете. Таким образом, GPT-2 - не просто языковая модель, а мощный генератор текстов.
Дополнительные возможности
- Краткий пересказ текста или обобщение. В качестве входных данных нужно подать не просто фрагмент, а целый текст, а модель выдаст краткое содержание рассказа.
- Ответы на вопросы исходя из содержания текста. На входе подается несколько примеров в виде «Вопрос-Ответ», в конце же дается реальный вопрос, на который нейросеть выдает по тому же макету ответ.
- Перевод текстов. Механизм работы с переводами похож на механизм работы с ответами на вопросы: на вход подается примеры в виде «Слово-Перевод», в конце подается только слово, а нейросеть выдает перевод.
Особенность GPT-2
Главной особенностью GPT-2 является то, что нейросеть не нужно дообучать под конкретную задачу, чтобы та показывала нужные пользователю результаты. Нейросеть приспосабливается к стилю и содержанию текста, что позволяет ей генерировать реалистичные отрывки, продолжающие исходные фразы. Сразу после обучения нейросеть уже готова сгенерировать текст со всеми логическими вставками: повторное упоминание имен героев, цитаты, отсылки, выдержка одного стиля на протяжении всего текста, связанное повествование.
Исходный код
OpenAI отказались выкладывать полную версию GPT-2, так как посчитали, что ей будут пользоваться для генерации фейковых новостей. В сети доступна версия GPT-2 с уменьшенным количеством параметров [4] (до 117 млн параметров, вместо 1.5 млрд, как в полной модели).
GPT-3
GPT-3 (Generative Pre-trained Transformer 3) — третье поколение языковой модели от OpenAI. GPT-3 продолжает подход OpenAI, заложенный в GPT и GPT-2 и поэтому разрабатывается по методологии SCRUM. По сравнению с GPT-2 количество используемых параметров увеличилось более чем в 100 раз: с 1,5 до 175 млрд. Для обучения алгоритма исследователи собрали датасет, состоящий из английской Википедии, которая охватывает около 6 миллионов статей, составляет всего 0,6 процента ее обучающих данных. Остальное - оцифрованные книги и различные веб-страницы. Это означает, что обучающие данные GPT-3 включают в себя не только новостные статьи, рецепты и стихи, но и руководства по кодированию, фанфики, религиозные пророчества, путеводители по певчим птицам Боливии и все остальное, что только можно представить.