LoginSignup
45
59

More than 5 years have passed since last update.

Googleが公開しているBERT(自然言語処理AI)のファイル解説

Last updated at Posted at 2019-01-02

この記事は、2018年末現在、自然言語処理AIにおける最先端のディープラーニングモデルであるBERTについて、提供元であるgoogle-researchのgithubレポジトリで公開されているファイルの一覧を解説したものです。

BERT自体について知りたい場合は、まず公式READMEの翻訳記事を読んでください(英語が苦でないなら直接公式のREADMEを読む方が勉強になってよいです)

BERTは、種類の異なる様々な自然言語処理タスクで最高成績を叩きだした優れモノで、
しかも転移学習のベースにすれば少ない学習のみで個々の問題を従来より正確に解ける可能性がある「革命的」な技術だそうです。

公開されている内容

  1. BERTモデルの構築・学習(オプティマイザー)・前処理(トークン化等)するライブラリ
  2. BERTを転移学習に使用する実験用スクリプト
  3. BERTを特徴表現抽出に使用する実験用スクリプト
  4. 自分で用意したデータセットでBERTの事前学習を行うスクリプト
  5. GoogleがWikipedia + BookCorpusを用いてBERT用に事前学習(100万更新ステップ)したチェックポイント

1~4は、github上で公開、すべてTensorFlow上で動くコード(TensorFlow 1.11.0で試験)です。5はgoogleのストレージ上で公開されています。

用途によって必要なファイルのみを使用すればOK。

  • Googleが事前学習してくれたモデルを利用するなら
    • 最低限1,5があればOK。プラスして、自分で転移学習するコードを書く場合の参考に2を参考にする。
  • BERTのモデルを一から学習(事前学習から)行いたい場合
    • 1,4を使用。

ライブラリ本体(1)は、高々1600行ぐらいなので、処理の内容をコードで追うのもそんなに時間かかりません。

公開ファイル一覧(Github上)と簡単な解説

種類 行数 ファイル名と解説
ドキュメント README.md
まずこれを読む。翻訳記事参照
multilingual.md
多言語版のREADME。翻訳記事参照
CONTRIBUTING.md
読む必要なし(永久に互換性を維持するために大きなコード変更は行わないと明言)
ライブラリ __init__.py
pythonにおけるおまじないなので無視
988 modeling.py
BERTモデル構築用ライブラリ
174 optimization.py
BERTモデルを学習する際に使用するライブラリ。事前学習及び転移学習で利用
399 tokenization.py
入力データをトークン化するライブラリ
スクリプト 981 run_classifier.py
転移学習の実験用スクリプト。CoLA,MRPC,MultiNLI,XNLIの4つのデータセット実行用
1263 run_squad.py
転移学習の実験用スクリプト。SQuADデータセット実行専用(SQuAD1.1とSQuAD2.0)
419 extract_features.py
入力文中の各単語の特徴表現ベクトルを取り出す実験用スクリプト
442 create_pretraining_data.py
自分で用意したデータセットでBERTの学習(事前学習)を行う場合に使用。入力文にマスクをかける等の前処理を行うスクリプト。BERTのキモである双方向Transformerの教師なし学習を行う為にデータに制約をかける処理
493 run_pretraining.py
自分で用意したデータセットでBERTの学習(事前学習)を行うスクリプト。create_pretraining_data.pyでデータを加工した後に実行する
テストコード 277 modeling_test.py
テストコードなので無視
48 optimization_test.py
テストコードなので無視
136 tokenization_test.py
テストコードなので無視
データ sample_text.txt
BERTの学習(事前学習)を行うデータセットの小さなサンプル

個別ファイルの解説

(随時公開予定)

45
59
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
59