てごちゃって!

てごちゃって=構ってあげて 和歌山人のグルメブログ

お決まりを学習させた文章生成AIを作るには?

akatukisan.hatenablog.com
前回の続き



機械学習にはKerasを使用するのが一般的な様だ

Pythonアプリをダウンロードしてpipをインストールし

TensorFlowのチュートリアルを一通り読んだ地点で、はたと気が付いた
www.tensorflow.org

これってYES・NO判定向きでは?


Kerasにはデータセットがいくつか用意されており

画像がいっぱいだとか、人が何かしゃべる音声ファイルだとか、音楽とピッチのデータだとか

その中でテキスト系のデータセットって


映画のレビューとひとつひとつポジティブかネガティブかの判定


しかなくて、それ学習したとしても新しい映画レビューの分類しか出来ない訳で

カテゴライズって文章生成には程遠いなってなってる



プログラムもchatGPTに意味聞きながら読み解いてみるけど独特すぎる

どこのデータセットに対してどの前処理をしてどの学習をしてどのベクトルで出力するのか指定する感じ

その指定の特徴掴むのに何時間かかるのかも分からない…



プログラミング不要で機械学習ができるソフトも見つけたけど

datachemeng.com

重回帰分析なので

目的変数「お魚の値段」を、複数の説明変数「大きさ」「種類」「新鮮さ」などの様々な要素で推論する

みたいな感じ



もっとこう最後に出てきて欲しいのはいじる必要のない文章なのよ

chatGPTに聞いてみよう



目的変数が文章の場合モデルは何を使用すべき?

文章の要約や意味の抽出、文章生成など、自然言語処理タスクでは、多くの場合、Deep Learningを使用したモデルが使用されます。
特に、Transformerベースのモデルは、自然言語処理タスクにおいて高い精度を発揮することで知られています。

例えば、

BERT: Pre-trained transformer model for natural language processing.
GPT-2: Pre-trained transformer model for natural language generation.
T5: Pre-trained transformer model for natural language understanding and generation.
これらのモデルは、事前学習済みのパラメータを用いて、文章の要約や意味の抽出、文章生成などのタスクを実行することができます。
また、これらのモデルは、一般的にTensorFlow Hubなどで公開されており、簡単に利用することができます。

ただし, 具体的にどのモデルが最適かは、データセットやタスクによって異なるため、評価しながら選ぶことが重要です。


あっ聞いたことある、モデルだったのか
てことは私がやりたいのは
言語処理モデルを自作する事なのか?


文章生成を行うためのモデルを自作するには?

文章生成のタスクを行うために自作のモデルを作成するには、以下の手順を踏むことが一般的です。

データセットの準備: 文章生成タスクに適したデータセットを用意します。ただし、文章生成タスクには大量のテキストデータが必要なため、Webスクレイピングなどで収集することが多いです。

データの前処理: 収集したデータを適切に前処理します。これには、文章の整形、トークン化、単語数のカウントなどが含まれます。

モデルの構築: 文章生成のタスクに適したモデルを構築します。これには、RNN、LSTM、GRUなどのリカレントニューラルネットワークを使用することが一般的です。

学習: 前処理したデータを使用して、モデルを学習させます。

評価: 学習したモデルを使用して、生成された文章の質を評価します。

改善: 必要に応じて、データの前処理やモデルのアーキテクチャを調整し、評価結果を改善します。

これらの手順は大変時間がかかりますが、独自の文章生成モデルを構築することで、特定のタスクに適した生成文章を得ることができます。
また、事前学習済みのモデルを使用することで、学習時間を短縮することもできます。


気の長い話だな…
お?
なるほど


事前学習済みのモデルを使用して好みの文章を生成するには?

事前学習済みのモデルを使用して、好みの文章を生成するには、以下の手順を踏むことが一般的です。

事前学習済みのモデルをダウンロードします。例えば、GPT-2やBARTなどのTransformerベースのモデルは、TensorFlow Hubなどで公開されています。

モデルをインスタンス化します。インスタンス化する際に、事前学習済みのパラメータを読み込むことができます。

モデルに生成させたい文章のプロンプトを入力します。プロンプトは、生成させたい文章の一部を入力することで、生成される文章が特定のテーマや意味に沿ったものになるようになります。

モデルによって生成された文章を受け取ります。

生成された文章を確認し、必要に応じて修正します。

生成された文章を使用します。

それでも、事前学習済みのモデルは、学習済みデータに基づいているため、生成される文章が常に望んだものではない場合があります。
また、生成文章は、予測結果によっても変化します。
そのため、試行錯誤しながら、好みの文章を生成することが重要です。


もう一押し!


GPT-2に文章を追加学習させるには?

GPT-2に文章を追加学習させるには、以下の手順を踏むことが一般的です。

事前学習済みのGPT-2モデルをダウンロードします。これは、OpenAIのGPT-2 GitHubリポジトリなどから入手できます。

追加学習させたい文章のデータセットを用意します。このデータセットは、GPT-2が生成する文章を特定のテーマや意味に沿ったものにするために、使用します。

GPT-2モデルをインスタンス化し、事前学習済みのパラメータを読み込みます。

追加学習させたい文章のデータセットを使用して、GPT-2モデルを再学習させます。再学習には、fine-tuningという手法を使用することが一般的です。

再学習が完了したGPT-2モデルを使用して、新たに生成させたい文章を生成


fine-tuning→ファインチューニング!これだ!

なんだか方向性が見えてきた
次は追加学習の手順を調べてみよう