ailia Tech BLOG

T5 : テキストからテキストを生成する機械学習モデル

ailia SDKで使用できる機械学習モデルである「T5」のご紹介です。エッジ向け推論フレームワークであるailia SDKailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。

T5の概要

T5はText-to-Text Transfer Transformerの略で、テキストからテキストを生成する機械学習モデルです。Googleが2019年10月に公開しました。

Exploring the Limits of Transfer Learning with a Unified Text-to-Text TransformerTransfer learning, where a model is first pre-trained on a data-rich task before being fine-tuned on a downstream task…arxiv.org

従来のBERTは、トークン列からマスクされた単一のトークンを予測するモデルでしたが、T5はトークン列からマスクされた複数の単語を含むテキストを出力します。これにより、要約などのテキスト生成へのFine Tuningが可能となります。

T5のアーキテクチャ

T5では、テキストへの自然言語処理を、テキストからテキストへの変換タスクと考えています。Question Answering、Language Modeling、Span Extractionといったタスクから着想を得ています。

T5はテキストを入力して、テキストを出力します。

T5の概要(出典:https://arxiv.org/pdf/1910.10683.pdf

学習時は、特定の単語をマスクし、マスクした単語を予測するテキストを教師データとして学習します。

T5の学習(出典:https://arxiv.org/pdf/1910.10683.pdf

T5は一般的なTransformerのEncoder、Decoder構造を持っています。

T5の構造(出典:http://jalammar.github.io/illustrated-transformer/

T5のTokenizer

T5のTokenizerはSentencePieceを使用しています。SpecialTokensで分割した後、SentencePieceProcessorを使用してEncodeします。

transformers/src/transformers/models/t5/tokenization_t5.py at main · huggingface/transformers🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. …github.com

日本語に対応したT5

日本語に対応したT5としては、sonoisa/t5-base-japaneseが有名です。こちらはbaseモデルのみとなります。

sonoisa/t5-base-japanese · Hugging FaceWe're on a journey to advance and democratize artificial intelligence through open source and open science.huggingface.co

2023年5月にレトリバがsmall、base、large、xlのモデルを公開しており、従来よりも大きなモデルが使用できるようになっています。

日本語T5モデルの公開|株式会社レトリバChief Research Officerの西鳥羽(https://twitter.com/jnishi)です。日本語データによる学習を行ったT5モデルを公開いたしました。Huggingface…note.com

レトリバのT5の学習にはTPU pod v3–128で3〜4日程度、約150万円のサーバ費用がかかっているとのことです。

第2回 LLM 勉強会2023年6月19日(月)に国立情報学研究所にて第2回 LLM 勉強会を開催しました。llm-jp.nii.ac.jp

T5の実行例

下記のBLOGからTitleを生成すると下記のようになります。

AIにおける基盤モデルとは何か近年、注目を集めている基盤モデルとは何かを解説します。基盤モデルを使用することで、今までできなかったような高精度な認識が可能になってきています。medium.com

1. 今、注目の基盤モデルとは?大量のデータから学習されたai  
 2. 大量のデータから学習された高い汎化性能を獲得したai  
 3. 今、注目の基盤モデルとは?大量のデータから学習されたaiの例  
 4. 『ai入門』で解説!大量のデータから学習された高精度モデル  
 5. 「学習した」aiが高精度に認識できる時代到来!  
 6. 新技術や知識がどんどん進化するaiの基盤モデルとは  
 7. 新技術や知識がどんどん進化するaiの基盤モデル  
 8. 大量のデータから学習された高い汎化性能を獲得したaiの現状  
 9. 新技術や知識がどんどん進化するaiの基盤モデルとは?  
10. 日本にも進出してきたaiの基盤モデルとは何か

実行は下記のコードを使用しました。

t5-japanese/t5_japanese_title_generation_inference.ipynb at main · sonoisa/t5-japanese日本語T5モデル. Contribute to sonoisa/t5-japanese development by creating an account on GitHub.github.com

T5の精度評価

T5の要約モデルの精度評価にはROUGEを使用可能です。ROGUEはPrecision Recallによる精度評価で、Precisionとして生成した単語がどれだけ教師データに含まれているか、Recallとして生成した要約がどれだけ教師データに含まれているかを計算し、F1スコアを算出します。考え方としてはObject DetectionにおけるmAPに近いものとなります。

ROUGEを訪ねて三千里:より良い要約の評価を求めて - Qiitaテキスト要約の評価には、一般的にROUGE(ルージュ)という指標がよく用いられます。これは、大まかには人間の作成した要約と、システムが作成した要約との一致度を測る指標です。 ただ、「一致度の測り方」には様々なバリエーションがあります...qiita.com

ailia SDKでT5を使用する

ailia SDKではT5をFine Tuningして生成されたTitle Generationモデル(sonoisa/t5-base-japanese-title-generation)が使用可能です。

下記の例では、input.txtを要約して出力します。

$ python3 t5_base_japanese_title_generation.py -i input.txt
aiの認識力は飛躍的に向上!大量のデータから学習された基盤モデル

ailia-models/natural_language_processing/t5_base_japanese_title_generation at master ·…The collection of pre-trained, state-of-the-art AI models for ailia SDK …github.com


アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。