リクルートテクノロジーズ メンバーズブログ  Text Suggest APIでオリジナルモデルを作ってみた

Text Suggest APIでオリジナルモデルを作ってみた

こんにちは、A3RT担当のタナカです。

この度、弊社が一般公開している機械学習API群A3RTText Suggets APIにモデル作成機能が追加されました!

さっそく私もモデル作成に挑戦してみましたので、その様子をご紹介したいと思います!

Text Suggest APIとは

Text Suggest APIは、文章の自動生成および入力補助を行うAPIです。
学習したテキストデータをもとに、投げられた言葉に続く文章を生成してくれます。

例えば、現在のデフォルトモデルに「髪の」と送ると、「長い男性が立っています。」といったような返答が返ってきます。

今までは既存モデルのみ公開していましたが、
今回の新機能ではユーザーの皆さんが学習データをアップロードして独自のモデルを作ることができるようになりました。

(詳しくはText Suggest APIのリファレンスに書かれていますので、そちらもご覧ください。)

0.準備

まずは以下のものを準備しましょう!

1.Text Suggest APIのAPI Key:API Key発行画面から取得してください

2.学習データ:日本語の文章が書かれたテキストファイル
(文字コードUTF-8、適度に改行されていること、単語単位での分かち書きは不要)

私は学習データに青空文庫で公開されている夏目漱石の名作「門」「こころ」「坊っちゃん」「三四郎」をまとめたファイルを使いました。
実用的なレベルのモデルには1MB以上のデータ量が望ましいそうです。
また、文章の表現に幅がありすぎると学習が難しくなる傾向にあります。

 

1.学習データをアップロードしましょう

① まず、ファイルをアップロードする先のURLとデータセットIDを取得します。

レスポンスには「dataset_url」と「dataset_id」が返されます。
dataset_urlはデータをアップロードするためのURLで、dataset_idはアップロードされたデータに割り振られ、学習を開始する際に使用します。

この時発行されるURLの期限は数分なので、早めに次のデータアップロードを行ってくださいね!

② 次に、用意したデータを取得したURLにアップロードします。

 

2.学習を開始しましょう!

学習開始のリクエストを送りましょう。

レスポンスでモデルIDが発行され、サーバー上では学習が開始されます。

ちなみに、1つのAPIキーで複数のモデルを作ることができますが、既に作ったモデルの更新はできません。

3.学習ステータスを確認しましょう

学習には長くて数時間かかる場合があるため、実際にモデルを使えるようになるまでのステータスを確認する機能があります。
確認には下記のようなリクエストを送ります。

学習が終わっている場合は以下のレスポンスが返されます。

学習が終わっていない場合は以下のレスポンスが返されます。

1.6MBのデータを学習するのに1時間くらいかかるそうです。

4.いよいよ、自分のモデルを使ってみましょう!

previous_descriptionに続きを考えて欲しい単語や文章、styleにはモデルIDを入れてリクエストを送ります。

私の夏目漱石モデルに「向上心」と入れてみたところ以下のようなレスポンスが来ました。

今回の場合、”向上心がないかと思っていた。”, “向上心のない男であるから、それを、自分の眼に残った。”, “向上心があるんだと思っている。”という文章が生成できたことになります。

「向上心のないものはばかだ」というあの有名なフレーズは返ってこなかったですが、それも機械学習ゆえ。
オリジナルの文章を返してくれるのです。

みなさんも是非、自分だけのモデルを作成してみてくださいね!

これからもA3RTをよろしくお願いいたします!