はじめに
IBM watsonx.ai は、さまざまな言語処理モデルを提供し、その中には日本語処理に特化したものも含まれています。ここではその中から、2024年2月29日にリリースされたgranite-8b-japaneseを取り上げ、日本語のトークナイザによるトークン数削減効果をOpenAI 言語処理モデルと比較します。
granite-8b-japanese に搭載されたバイリンガルトークナイザ
granite-8b-japaneseは、日本語処理におけるトークン化の問題に焦点を当てて設計されています。一般的なトークナイザでは日本語文字を複数のバイトトークンに分割してしまうことがあり、その結果、文脈を考慮できるトークン数が制限されてしまいます。これにより、文脈の長さが短くなり、日本語の処理が効率的ではありません。granite-8b-japaneseでは、SentencePieceを利用した日本語・英語のバイリンガルトークナイザが採用されており、日本語の特性を考慮したトークナイザを実現しています。
評価方法:トークン数と処理時間
下記テキストを要約する処理を実施し、各モデルの入力トークン数を比較しました。
青空文庫「桃太郎」:文字数:5,379 (本文: 5,353 + 指示文: 26)
watsonx.ai では、プロンプト・ラボの処理経過表示。
OpenAI では、Tokenizerツール の実施結果。
計測結果
LLMモデル | 入力トークン数 |
granite-8b-japanese (IBM watsonx.ai) | 3,135 |
GPT3.5 & GPT4 (OpenAI) | 5,667 |
結果評価と考察
granite-8b-japaneseは、GPTと比較し入力トークン数が少ない(55%)ことがわかりました。トークン数は処理コストにも影響するため、コストダウンも期待できます。
また、各LLMには入力トークン数の制限があるため、日本語長文の処理に向いていることも分かります。
これらのことから、日本語処理を行い、日本語の自然な表現や文脈を考慮した応答が必要な場合には、granite-8b-japaneseを選択することが適切と解釈できます。
(参考)要約処理結果の比較
昔ばなしの要約処理結果をそれぞれ掲載します。
graniteの方は、おじいさん、おばあさんも鬼退治に行っているような表現となってしまってます。gpt-3.5の方は、鬼たちと戦っている様子が表現されています。
granite-8b-japanese | むかしむかし、おじいさんとおばあさんがいました。ある日、おばあさんが川で洗濯をしていると、川から桃が流れてきました。おばあさんは拾って家に持ち帰ります。すると、桃の中から赤ん坊が生まれました。赤ん坊は「桃太郎」と名づけられ、おじいさんとおばあさんに大事にされました。 あるとき、桃太郎は鬼が島へ鬼退治に行くのについていきました。途中で犬、猿、きじの三匹の家来ができ、鬼が島へ到着すると、鬼の大将は桃太郎に宝物をせがみました。桃太郎はおじいさん、おばあさん、三匹の家来と一緒に宝物を積んだ車をひいて、鬼が島をあとにしました。 日本に帰って来た桃太郎はおじいさん、おばあさんに宝物をみせました。おじいさん、おばあさんはとても喜び、桃太郎は「日本一だ」とほめられました。 |
gpt-3.5-turbo | むかし、おじいさんとおばあさんがいました。おばあさんは川で洗濯しているとき、大きな桃が流れてきました。桃を拾おうとすると手が届かず、歌を歌うと桃が近づきました。桃を持ち帰り、割ると中から元気な赤ん坊が出てきました。おじいさんとおばあさんはその子を桃太郎と名付け、大切に育てました。桃太郎は15歳になると、鬼が島へ行くことを決意し、犬、猿、きじを家来に引き連れて旅立ちました。鬼が島では鬼たちを打ち負かし、多くの宝物を手に入れ帰国。おじいさんとおばあさんは喜び、桃太郎と家来たちを褒め称えました。桃太郎と家来たちは喜びの中、青々と晴れた日差しの下で楽しく暮らしました。 |
参考情報
IBM Research 「Granite 基盤モデル」
楠山正雄 「桃太郎」 青空文庫
Granite-8b-japaneseのバイリンガルトークナイザの効果検証 ~その1: IBM watsonx.ai 提供LLMの比較~
[執筆者:松尾賢治 Author:Kenji Matsuo]
※当ブログはOpenAI ChatGPTが出力した文章を参考にしています。