Upgrade to Pro — share decks privately, control downloads, hide ads and more …

事前学習モデル chiTra の活用方法 at WAP NLP Tech Talk #5

WAP
April 28, 2022

事前学習モデル chiTra の活用方法 at WAP NLP Tech Talk #5

WAP

April 28, 2022
Tweet

More Decks by WAP

Other Decks in Technology

Transcript

  1. © 2022 Works Applications Systems Co., Ltd. 自己紹介
 2 林

    政義(はやし まさよし) 
 
 経歴
 ~ 2018.03
 東京大学 杉山研究室 (情報理工学系研究科 コンピュータ科学専攻) 
 修士課程 修了
 2018.04 ~
 株式会社ワークスアプリケーションズ 
 現在の所属は 株式会社ワークスアプリケーションズ・システムズ
 データエンジニアリング / 自然言語処理技術の研究開発に従事 
 
 そのほか
 北海道出身・東京在住 
 テレワーク最高!
 吹奏楽畑(打楽器)
 

  2. © 2022 Works Applications Systems Co., Ltd. アウトライン
 chiTra とは


    事前学習モデルについて 
 chiTra の特徴
 
 実タスクへの活用
 タスクに合わせた調整:ファインチューニング 
 実例:livedoorニュース分類 
 その他の応用例
 3
  3. © 2022 Works Applications Systems Co., Ltd. chiTra とは?
 chiTra:

    Sudachi Transformers
 Transformers対応の形態素解析器および事前学習済み大規模言語モデル 
 Hugging Face Transformers: ニューラル言語モデルを扱う OSS 
 
 文章そのままは大きいので、トークン (モデル用の単語)に分割して扱うのが一般的 
 → Sudachi による分割の単位で入出力を扱えるようにしたい 
 
 chiTra モデル (v1.0)
 これを用いて作成した事前学習済み BERT モデル 
 Apache 2.0 ライセンスで一般公開、商用利用も可能 
 国立国語研究所の大規模コーパス NWJC で学習 
 Sudachi の正規化情報を利用し表記ゆれに頑健 
 → 特長の詳細は後のスライドで改めて解説します 
 5
  4. © 2022 Works Applications Systems Co., Ltd. 事前学習モデル chiTra
 chiTra

    モデルは事前学習済み BERT モデル
 
 BERT?
 現在主流のニューラル言語モデルの元祖 
 文章をトークンに分割し、 
 それぞれについて対応する分散表現を出力する 
 トークンの分割方法は別途設定が必要で、 
 chiTra では Sudachi を使用して分割 
 
 事前学習モデル?
 一般のコーパスで事前に学習を行ってあるモデル 
 「タスクのデータでモデルを学習」の前に、 
 ある程度の準備をしておくイメージ 
 
 利用の際にはタスクのデータで追加の学習を行う 
 
 文章をトークナイザでトークンに分割して入力 
 各トークンに対応する分散表現を出力 
 6
  5. © 2022 Works Applications Systems Co., Ltd. 事前学習モデル chiTra
 事前学習では何を学習している?


    
 大規模コーパスから汎用的な言語表現を学習
 文章を理解できればタスクも解けるはず 
 → ここでは文の穴埋めができるようにする 
 様々な文章表現からトークンの現れ方を学習する 
 そのため学習コーパスは大きい方が良いとされる 
 
 文の穴埋め:Masked Language Modeling
 文章中の隠された部分を復元するように学習 
 文章の全体を見て文脈からトークンを推定する 
 文脈に合った分散表現を出力
 多義語でも文脈に沿った分散表現を出力できる 
 ex. アップル(果物/社名) 
 
 「吾輩は[MASK]である」を入力 
 「吾輩は猫である」に復元するよう学習 
 7
  6. © 2022 Works Applications Systems Co., Ltd. 何がうれしい?
 
 様々なタスクに応用できる


    層を追加することでタスクに合わせた出力が可能 
 ニューラルモデルの柔軟性 
 同じ事前学習モデルを複数のタスクで利用可能 
 事前学習は一度のみでOK 
 
 各種タスクのベンチマークで高い性能を達成
 事前学習で得た汎用情報をタスクに流用できている 
 
 発表論文でのタスク例(一部): 
 二文の意味関係の推定 
 QAの回答部分を抽出 
 文の続きを自然になるように選択 
 文章分類、構文解析 etc. のための追加層 
 事前学習モデル chiTra
 8
  7. © 2022 Works Applications Systems Co., Ltd. chiTra モデルの特長
 事前学習済み

    BERT モデル
 Apache 2.0 ライセンスで一般公開 
 商用利用可能
 Hugging Face Transformers フレームワークから利用可能 
 ニューラル言語モデルを扱うOSSで、サンプル等も充実 
 
 国立国語研究所の大規模コーパス NWJC(100億語超規模)で事前学習
 より広範な言語表現を学習 
 他公開モデルでは日本語Wikipedia (1億語規模)の採用が多い
 
 単語正規化込みでの学習(独自)
 文章をトークンへ分割する際、Sudachi 辞書の情報を使って表記を正規化 
 「引越してからすだちを届けます」 →「引っ越ししてから酢橘を届けます」 
 表記ゆれのある入力を安定して扱える 
 例の二文は同じものとしてモデルに扱われ、出力も同じになる 
 9
  8. © 2022 Works Applications Systems Co., Ltd. ファインチューニング
 ファインチューニング?
 タスクのデータを用いてモデルに追加の学習を加えること

    
 そのままでは文の穴埋めに特化した状態 
 タスクで必要な形にさらにチューニングする 
 BERT系モデルの利用では標準的な方法 
 一般の機械学習ではモデルは固定し後段の部分のみ学習することが多い 
 ニューラルモデルの柔軟性 
 
 具体的には何を行う?
 タスクに必要な出力の形式に合わせてモデルに層を追加 
 タスクデータでモデル 全体(BERT部分含む)を学習 
 パラメータの探索
 追加学習の際のパラメータ設定が最終的な性能に影響 
 → 適切なものを探索する必要がある 
 機械学習一般で必要 
 11 文章分類、構文解析 etc. のための追加層 

  9. © 2022 Works Applications Systems Co., Ltd. 実例:ニュース記事の分類
 livedoor ニュースコーパスを使用


    9カテゴリのニュース記事 7367件を収集・整形したデータセット 
 サンプル(タイトルのみ): 
 トピックニュースカテゴリ:「ジャンプ連載漫画が終了に、ユーザが新たな提案!?」 
 家電チャンネルカテゴリ:「【ニュース】電力使用量9日が8社管内で今夏最高」 
 
 文書分類問題
 記事本文を入力として、どのカテゴリのものなのかを判定する 
 90% (6630件) を使ってファインチューニング、残りの10% (737件) で性能を評価 
 12
  10. © 2022 Works Applications Systems Co., Ltd. 実例:ニュース記事の分類
 (デモ)
 13

    文書分類用のレイヤが付いた状態で読み込む
 (今回はファインチューニングは完了済み)
 整形しておいた文章を渡してカテゴリを予測
 モデルによる予測のログ出力
 (データ数、実行時間、精度など)

  11. © 2022 Works Applications Systems Co., Ltd. 実例:ニュース記事の分類
 単純な実装で高精度
 分類用の層を足しただけのシンプルなモデル+ファインチューニングのみ

    
 さらに調整を行う余地がある 
 
 計算コストは大きい
 実用的にはGPUはほぼ必須 
 深層学習モデルの宿命 
 なお事前学習には数日~数週間が必要 
 モデルの規模に対して本来必要な学習をスキップできているとも言える 
 分類精度
 計算機
 評価時間(737件)
 ファインチューニング時間 
 (論文推奨の18パラメタを探索) 
 0.957
 GPU 使用
 約 8 秒 (秒間 90件強) 
 1 時間程度
 0.957
 CPU のみ
 約22分 (秒間 0.5件強) 
 - 
 14
  12. © 2022 Works Applications Systems Co., Ltd. その他の応用例
 文章分類
 文章を一定のカテゴリに分類する

    
 ex. 何に関する文章かで分類、レビュー文での評価の高低を計測 
 
 該当箇所の選択
 文章内で条件に当てはまる範囲を探す 
 ex. 質問の回答にあたる部分を選択 
 「日本の現首相は誰?」「新型コロナ対策をめぐり、 岸田総理大臣は…」
 
 項目の選択
 いくつかの選択肢のうち最も適当なものを選ぶ 
 ex. 最も自然な文章になるものを選択 
 「雨の予報だったので」→「ご飯を食べた」「 傘を持っていった」「…」
 
 トークン単位の処理
 文書全体ではなくトークンごとに処理を行う 
 ex. 文中のキーワードをそれぞれラベル付け 
 「大リーグエンゼルスチーム名の大谷翔平人名選手は13日日時、…」
 15
  13. © 2022 Works Applications Systems Co., Ltd. さらなる応用
 より発展的なタスク
 前ページの例は比較的シンプルなもの

    
 コードサンプルも存在している 
 さらに複雑な問題への応用もありうる 
 前例を複数組み合わせる 
 より長い・多くの文書の処理 
 テキスト以外の業務データの併用 
 ex. 画像や音声、売上などの数値データ 
 
 モデル自体への追加の調整
 モデルの方に調整を加えることで性能を向上させる研究も存在する 
 特定の分野に特徴的な表現の現れ方に反応できるようにする 
 このスライド内での「モデル」 / 服飾系の分野における「モデル」 
 語彙・トークン分割を変更して扱えるようにする 
 16