Google Colaboratory及び学習済みGPT-2によるテキスト自動生成

python活用 python

自然言語処理してみたいです。

このような要望にお応えします。

今回は、GPT-2学習済みモデルを用いてテキスト生成を行ってみます。

下記のサイトを参考にさせていただきました。

  • https://openai.com/blog/better-language-models/
  • https://github.com/graykode/gpt-2-Pytorch
  • https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
  • https://clean-copy-of-onenote.hatenablog.com/entry/gpt-2-774M

GPT-2について

GPT-2学習済みモデルは、OpenAIにより公開されています。
GPT-2は、40GBのWebテキストを用いて学習されています。

OpenAIのwebページには、以下の説明があります。(詳しくは、こちらのページ参考 https://openai.com/blog/better-language-models/)
“この技術の悪意のある応用についての懸念があるため、論文に記載された学習済みモデルを公開していません。責任ある情報開示の実験として、代わりに、研究者が実験できるように、より小さなモデルと技術論文を公開します。”

何が悪意のある技術の応用となるのでしょうか。

近年では、フェイクニュースの危険性が指摘されています。
つまり、ここでいう悪意とは、インターネット上の捏造された情報がSNSを通じて拡散されて社会に悪影響を及ぼすことを指すのですかね。

そして応用は、例えば、フェイクニュースにより組織的に世論を操作することでしょうか。

確かに、これが実現した場合、全世界に影響を与える可能性がありますので危険かもしれないです。

多くの人々がスマホ, PCなどのメディアで情報を得る時代となっており、それなりに情報リテラシーは向上していると思いますし、AIが統計的に関連する文書として生成した文書にそこまでの悪影響があるのでしょうか。

一方で、読解力の低下により、フェイクニュースに踊らされることもあるのかもしれませんが。

OpenAIが危険だと指摘しているわけですから、それほどまでに、GPT-2では圧倒的に自然な文書を生成してくれるのですね。
楽しみです。


GPT-2は、あるテキスト内の単語が与えられたときに、次の単語を予測することで学習します。
また、GPT2-はGPTを直接スケールアップしたもので、10倍以上のパラメータを持ち、10倍以上のデータ量で学習するそうです。

GPT-2の詳細については、以下の論文を参照ください。

  • https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

それでは、GPT-2を試してみましょう。

Google Colaboratoryの準備

・Googleのアカウントを作成します。
・Googleドライブにアクセスし、「新規」→「その他」から「Google Colaboratory」の順でクリックします。そうすると、Colaboratoryが起動します。

・Colaboratoryが起動したら、以下のコマンドをCoalboratoryのセルに入力し実行します。
そうすることで、Googleドライブをマウントします。

・実行後、認証コードの入力が促されます。このとき、「Go to this URL in a browser」が指しているURLにアクセスしgoogleアカウントを選択すると、認証コードが表示されますので、それをコピーしenterを押します。これでGoogleドライブのマウントが完了します。

GPT-2の準備

データは、’Python’, ‘人口知能’, ‘深層学習’のwikipedia記事から一部テキストを抜粋します。

【Pythonのwikipedia記事】
Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python’s design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.

【人工知能のwikipedia記事】
In computer science, artificial intelligence (AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans and animals. Leading AI textbooks define the field as the study of “intelligent agents”: any device that perceives its environment and takes actions that maximize its chance of successfully achieving its goals.Colloquially, the term “artificial intelligence” is often used to describe machines (or computers) that mimic “cognitive” functions that humans associate with the human mind, such as “learning” and “problem solving”.

【深層学習のwikipedia記事】
Deep learning (also known as deep structured learning) is part of a broader family of machine learning methods based on artificial neural networks with representation learning. Learning can be supervised, semi-supervised or unsupervised.
Deep learning architectures such as deep neural networks, deep belief networks, recurrent neural networks and convolutional neural networks have been applied to fields including computer vision, speech recognition, natural language processing, audio recognition, social network filtering, machine translation, bioinformatics, drug design, medical image analysis, material inspection and board game programs, where they have produced results comparable to and in some cases surpassing human expert performance.

GPT-2のツールをダウンロードする場所に移動します。

本記事では、マイドライブにダウンロードします。

gitからツールをダウンロードします。

GPT-2学習済みモデルをダウンロードします。

ツールを使用するためのpythonライブラリをインストールします。

これで準備完了です。

出力結果

以下のコマンドでプログラムを実行します。

今回は、GPT-2の学習済みモデルを使用してみました。

GPT-2で生成された文書は、自然というか、むしろ不自然なように見えます。
個々のセンテンスは、自然に見えなくもないですが、文書全体で見たときに不自然な感じです。

正直ベースに言うと、この結果では危険性はあまり感じません。

今回使用したモデルがスモールセットだからでしょうか?
また、パラメータを指定して実行することもできるようなので、考慮して実施することも試したほうがいいかもしれませんね。
また、入力テキストのジャンルとして、IT系の記事から抜粋したものを使用していますが、その他のジャンルではどうなるのか試してみるのもいいかもしれません。

タイトルとURLをコピーしました