信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

2019

18

6月

お話アプリ

テクログ

今年のGWは10連休でしたね。

個人的に興味のあった機械学習による会話アプリを試してみました。


「ありがとう」と文字を入力しますと「どういたしまして」のように返答文を考えて、返してくれるアプリです。


以下のqiitaの記事を実動作させることを目指します。

日本発の機械学習フレームワークchainerでの実装ですね。

Seq2Seqといった「ある文章A」⇨「ある文章B」に変換する技術になります。

https://qiita.com/kenchin110100/items/b34f5106d5a211f4c004


独学で本当に正しいやり方かは保証できませんが

以下に試したことを記載します。


日本語の語句ごとの分解はMeCabを使用します。pipで入れます。

MeCabで生成した際、応答側のテキストは各応答文末に、文の終わりを示すため'<eos>'を入れます。


学習にはGoogleのColaboratoryを使用します。

Colaboratoryを使用する理由は、設定を変えると無料で(時価70万円相当!?)ハイスペックGPUを使用できるからになります。


CPUでも学習は可能ですが遅いです。。


Colaboratoryによるファイルのアップロードダウンロードがわかりにくいのですが、以下を実行する感じです。


□アップドーロ

-----------------

from google.colab import files

uploaded = files.upload()

-----------------


□ダウンロード

-----------------

from google.colab import files

downloaded = files.download('{ファイルのお名前.weights}')

-----------------


□ちゃんとアップロードできたか確認

%%bash

ls


ここでの学習のポイントは学習はGPUで行いますが、重みの書き出しはCPU用に変換します。

webアプリ化のため機械学習したモデルをDjangoからつなぎ込みますが、ここでの文章生成の推論はCPUで行うとになると思います。

-----------------

model.to_cpu()

serializers.save_hdf5(outputpath, model)

model.to_gpu(0)#また処理をGPUに戻してあげる。

-----------------


またtotal_lossをprintして確認しながら進めました。

損失が減っていくとそのデータに対しての学習がうまくいっていることになります。


機会がありましたら、続きの学習した重みとモデルを使用して実際に文章を生成するところを記載したいと思います。



この記事を書いた人

マスオさん

じゅんちん

所 属:
WEBインテグレーション事業部
出身地:
岩手
仕事内容:
開発