人工知能(モデル)の作成について
Q. 「スタンダードコース」で人工知能(モデル)を作成する方法を教えてください。
A. 以下の手順によります。
- 「学習データ」を作成します。
- 「学習データ」を使用してモデルを学習させるとモデルが作成されます。
「スタンダードコース」では1の作業は必須ではありません。事前に用意された学習データを使用することも可能です。
詳しくは「スタンダードコース」の体験5にあるヘルプをご参照ください。
Q. アノテーションとは何ですか?
A. 人工知能に正解を教えるための学習データを作成する作業のことです。
- fromZERO.AIでは「学習データ」内のテキストに含まれる探したい文字列(人名、場所名など)に印をつける作業のことをアノテーションと呼びます。
- マウスで探したい文字列をなぞって背景色を着色することで印をつけることができます。
Q. マウスで文字列をなぞるアノテーションが面倒です。アノテーションを簡単に行う方法はありませんか?
A. 利用環境等を用意する必要がありますが、以下の方法により、アノテーション作業を効率的に実現できます。
- Mac とiPad、Apple Pencilがあれば、iPadの画面にfromZERO.AIの操作画面を表示させることで、Apple Pencilで文字列をなぞってアノテーションすることができます。この方法の場合、マウスでなぞる場合に比較して、5〜10倍のスピードでアノテーションできます。
- Sidecarの詳細は以下をご参照ください。
https://support.apple.com/ja-jp/HT210380#systemrequirements
- Sidecarの詳細は以下をご参照ください。
Q. 「スタンダードコース」で人工知能(モデル)を使って課題を解く方法を教えてください。
A. 以下の手順によります。
- 学習済みモデルに「テストデータ」を与えて課題を解きます。(推論させます)
詳しくは「スタンダードコース」の体験5にあるヘルプをご参照ください。
Q. 人工知能(モデル)を作成するために必要な学習データは何件必要ですか?
A. 一概に何件が良いとは言えません。
- 学習データ1件に含まれる行数、文字数、固有表現(人名、場所名などの認識させたい名前)の種類・件数などにより異なります。
- 最初に50件(1件あたり10行〜)程度で作成し、テストデータを用いた推論により認識性能を確認し、その後、10件ずつ増やして認識性能を確認しながら、モデルを作成していくことを推奨します。
- 弊社のこれまでの感覚値ですが、数十件から数百件程度あれば、再現率80%以上のモデルが作成できるのではないかと考えています。ただし、前提として、解く問題に応じた学習データの取捨選択や前処理が非常に重要です。尚、fromZERO.AIの場合、前処理の内容は全てのモデルに共通としていますので、学習データの内容次第では、学習データの件数を増やしても、認識性能が向上しない場合もあります。
- fromZERO.AIでは、人工知能にBERT(バート)という手法を採用しているため、他の手法に比べて少ない件数でも高性能なモデルの作成が期待できます。
Q. モデル作成処理時間を教えてください。
A. 学習データの件数と内容により異なりますが、多くの場合、100件未満で30分から1時間程度です。
- 「スタンダードコース」の場合、モデル作成開始から2時間を経過すると、強制的にモデルの作成処理が中断されます。この場合、モデルは作成できていません。(2時間以上かけてモデルを作成することはできません)
- 常にモデルが作成できることを保証している訳ではありません。また、モデル作成処理が終了しても、学習データの内容が適切でない等の理由で精度の良いモデルが作成できていない場合もあります。その場合は、学習データの内容や件数を見直してみてください。
Q. モデル作成時に使用しているマシンの能力を教えてください。
A. NVIDIA Tesla GPU : K80、 VRAM : 12GBです。今後の利用状況によって変更することがあります。
- 作成するモデルごとに上記の環境が自動的に与えられます。同時に複数のユーザが作成してもモデル作成に影響が出ないようにサービスを構築しています。
Q. モデル作成では、どのような処理を行っているのですか?
A. 主に学習データの前処理とモデルのパラメータの調整を行っています。
- 学習データの前処理では、認識性能の良いモデルを作成するために学習データを加工しています。また、加工後の学習データをBERTモデル用の学習データに変換しています。
- 高精度の人工知能を作成するためには、モデルのアルゴリズム、モデルのハイパーパラメータチューニングも重要ですが、学習データの内容と学習データの前処理内容も非常に重要です。
Q. fromZERO.AIで作成したモデルの性能(認識精度)を確認する方法を教えてください。
A. テストデータを作成したモデルに与え、推論させます。推論結果画面では、以下の情報が表示されますので、モデルの認識精度を確認することができます。
- テストデータ1件ごとに、画面左側にテストデータを、画面右側に推論結果を表示します。
- テストデータ(テキスト)
- 認識させたい文字列の背景が赤色になっています。(アノテーション箇所が赤色になっています)
- 推論結果(テキスト)
- テストデータのテキストに対して、モデルが認識した文字の背景が赤色になっています。
- テストデータのテキストに対して、モデルが認識できなかった文字の背景が黄色になっています。
- テストデータ(テキスト)
- 以下の認識精度が表示されます。
- 各テストデータ1件ごとの認識精度および、全てのテストデータを通して算出した認識精度
- テストデータの内容によって認識精度が大きく異なる場合がありますので、高性能なモデルを作成するためには、個々のテストデータを確認することも重要です。
- 認識精度は、以下の3種類が表示されます。
- 適合率
- 再現率
- F1
- 認識精度は、固有表現認識という課題を対象としているため、形態素単位の認識精度は表示していません。固有表現認識の精度算出方法はいくつかありますが、fromZERO.AIでは、固有表現単位で完全一致した場合を正解とした認識精度を表示しています。
- 各テストデータ1件ごとの認識精度および、全てのテストデータを通して算出した認識精度
- テストデータを精度の良い順または悪い順に並び替えることができます。また、テストデータごとの推論結果(色付きテキスト)をすぐに参照できますので、精度が良い原因や精度が悪い原因を調べることができます。これらを調べることで、より高性能なモデルを作成するための学習データを作成することができるようになります。
Q. 推論結果の精度表示が 100%であるにもかかわらず、テストデータの着色文字列と推論結果の着色文字列が異なる場合がありました。なぜ、そういったことが発生するのでしょうか?
A. テストデータ内の認識させたい文字列の背景が赤く着色されていますが、推論のためにモデルに渡すテストデータ内の文字列は、着色単位ではなく、形態素と呼ばれる単位の文字列を着色範囲としたテストデータを渡しています。そのため、着色文字列が形態素と一致していない場合、テストデータの着色文字列と推論結果の着色文字列が完全一致しません。画面表示上の見た目は一致していませんが、形態素と呼ばれる単位でテストデータと推論結果が一致している場合、精度表示が100%となります。
- 例えば、【白い花を見た。】という文章中の 「白」 を着色(アノテーション)したテストデータがあった場合、形態素単位では「白」ではなく「白い」となりますので、「白い」を着色範囲として推論させて精度計算を行っています。また、推論結果も形態素単位ですので、形態素単位である「白い」が認識された場合、テストデータと推論結果が完全一致したことになります。