8月10日、画像生成AIのStable Diffusionを開発・提供しているStability AIは、以下の2種類の日本語特化型大規模言語モデルを公開しました。
これらの言語モデルは、日本語タスクの性能評価で、公開されている日本語特化型言語モデルの中で最高の性能を発揮したそうです。
そこで、早速、これらの言語モデルの性能を独自にテストしてみることにしました。
なお、今回のテストでは、ユーザーとの対話に対応したJapanese StableLM Instruct Alpha 7Bの8ビット量子化モデルを使用しています。
1.Japanese StableLM Alphaの概要
今回、Stability AI Japanが発表した言語モデルは、汎用言語モデルのJapanese StableLM Base Alpha 7Bと指示応答言語モデルのJapanese StableLM Instruct Alpha 7Bの2種類で、どちらも70億のパラメーターを持っています。
(1) Japanese StableLM Base Alpha 7B
Web中心の大規模なデータを用いて文章生成を学習した汎用言語モデル
学習データは主に日本語と英語。ソースコードも約2%含まれている。
学習データには、オープンデータセットに加え、同社が作成した独自のデータセットなどが含まれている。のべ7500億トークンで学習。
学習には、EleutherAIのGPT-NeoXを発展させたソフトウェアを利用。
商用利用可能なApache License 2.0で公開。
(2) Japanese StableLM Instruct Alpha 7B
上記(1)のベースモデルに追加学習を行い、ユーザーの指示に受け答えできるようにした指示応答言語モデル
学習データには、複数のオープンデータセットを利用。
追加学習には、Supervised Fine-tuning(SFT)を採用。
研究目的で作成されたモデルであり、研究目的での利用に限定。
(3) 性能評価
公開されている日本語特化型言語モデルは少ないため、この表では、Japanese StableLM Alpha以外に、rinnaのGPT-NeoXベースの言語モデルとサイバーエージェントのOpenCALMしかありませんが、その中で、Japanese StableLMの2つのモデルは、最高の性能を示しています。
2.Japanese StableLM Alphaの使用方法
今回は、この言語モデルをフリープランのGoogle Colabで動かすため、Stability AIの開発者のmkshingさんが公開した以下のColabノートを使用しました。
上のバナーをクリックすると、以下の画面が開きます。
ここで、「ランタイムのタイプを変更」でGPUに設定し、上から順に4つのセルを実行していけば、言語モデルが起動します。
2番目の「Login HuggingFace」のセルを実行すると、アクセストークンの入力を求められますので、予めこのサイトにアクセスして、アクセストークンを入手しておいてください。
そして、先程のサイトで入手したアクセストークンをコピーして、入力欄に入力すると、「Add token as git credential?」と聞いてきますので、「y」と入力してください。
3番目の「Load model」のセルでは、model_id:でjapanese-stablelm-instruct-alpha-7Bを選択し、load_in:でint8を選択して、セルを実行してください。
今回の場合は、言語モデルの質問応答能力をテストするので、インストラクトモデルを使用します。また、int8は、8ビット量子化モデルのことであり、フリープランのGoogle Colabを使用する場合は、この軽量モデルを使わないと、メモリーオーバーになります。
最後に、「Do the Run!」のセルを実行すると、以下の入出力画面が表示されます。
ここで、Textboxに質問(プロンプト)を入力すると、上のChatbot欄に言語モデルの回答が表示されます。また、Configsを開いて、最大トークン数やTop P(上位何%のトークンを取得するか)などの各種パラメーターを変更することもできます。
また、Running on public URL:の後に続くGradioのリンクをクリックすると、この入出力画面(Webユーザーインターフェース)が新しいページに表示されます。こちらの方が画面が広いのでお勧めです。
Japanese StableLM Alpha(JSA)のインストラクトモデルとChatGPTのGPT 3.5モデルの性能を比較してみました。
3.日常会話
さすがに日本語特化の言語モデルだけのことはあり、自然に日本語の受け答えができています。
max_new_tokensのパラメーターを128から512に変更したのですが、それでもJSAは回答が短いです。
JSAは、ChatGPTとは異なり、AIとしてではなく、人間になりきって回答するようです。
また、前の会話との繋がりを十分に考慮できておらず、連続した質問に回答することは難しいようです。
ChatGPTは英語の方が得意ですが、日本語の受け答えも完璧に行うことができ、JSAと差はありません。
最近のChatGPTの回答は、かなり長くて詳しいです。
ChatGPTは、人間ではなく、AIアシスタントとして回答します。ChatGPTの場合は、AIが人間のように振舞うのを避けることが多く、OpenAIは、それがよくないことだと考えているようです。
4.論理的思考力
(1) 計算問題
一桁の計算もできませんでした。いくら言語モデルがあまり計算は得意でないと言っても、これは驚きです。
ChatGPTもそれほど計算が得意ではなく、大きな桁数の計算になると間違えることがありますが、さすがに人間が暗算するよりもできないということはありません。
(2) 文章問題
一桁の計算もできないJSAに算数の文章問題を解かせるのは無理なようです。
ChatGPTの説明は、理路整然としていて、論理的に全く問題がありません。
算数の能力については、JSAとChatGPTとの間に相当の差があるようです。
(3) 常識の問題
どちらの箱が大きいのかという情報をきちんと理解できておらず、いい加減な理由で回答しているようです。
ChatGPTは、きちんと論理を理解して回答することができます。
質問の内容をきちんと理解して回答しているようには見えません。
論理的な思考力も、JSAよりChatGPTの方が優れているようです。
言語モデルについて、よく算数や数学の問題が解けるかどうかを調査するのは、数学的理解力が論理的な思考力に関係しているからです。
一般的に、数学的な理解力が足りない場合は、論理的な思考もできないと考えられています。
その意味で、JSAの論理的思考力については、かなり疑問符が付きます。
5.知識の比較
JSAは日本語に特化した言語モデルであり、日本語のデータで学習しているため、ChatGPTのような多言語モデルより日本の知識はあるのでしょうか?
(1) 日本に関する知識
西日本で一番高い山は不正解でしたが、日本人でも、この問題に答えられる人は少ないでしょう。
ChatGPTもJSAと同じ間違いをしました。やはり、この問題は難しいようです。
この問題も、静岡県の県庁所在地は、県内で人口最大の浜松市と思っている人が多いので、少し難しい問題です。
さすがにChatGPTは、引っかかりませんでした。
JSAの方が日本の知識に詳しいとは、必ずしも言えないようです。
(2) 国際的な知識
知識以前の問題として、専門用語が理解できておらず、あまり難しい話はできないようです。
ChatGPTの方が回答が知識が正確で、情報が整理されているようです。
(3) 日本の歴史
日本の歴史についてであれば、日本語のデータで学習したJSAの方が有利でしょうか?
一応、内容を理解してはいるようですが、あまり正確ではありません。
一部誤りがありましたが、全体としては、ChatGPTの回答の方が詳しいこともあり、精度が高いように感じました。
一応、内容を理解しているようですが、間違いが多いです。Wikipediaで学習しているのなら、もう少し正確でもよいと思うのですが。
長篠の戦いについては、JSAの方が正しい部分が多かったようです。
桶狭間の戦いについては、ChatGPTの方が精度が高いようでした。全体的に、ChatGPTの方が説明が詳しくなっています。
日本の歴史についても、特にJSAの方が正確で詳しいということはありませんでした。ただし、ChatGPTの方にも間違いは多いため、ChatGPTの方が優れているとも言えません。
(4) 世界の歴史
ほぼ全てAIの作り出したハルシネーション(事実のように見える嘘)です。実際の「カノッサの屈辱」については、以下のChatGPTの回答を見てください。
カノッサの屈辱に関しては、ChatGPTの方がはるかに正確で、JSAの回答は全体がハルシネーションでした。
これも正確な部分が少なく、ほぼハルシネーションだと言えると思います。
世界の歴史については、ChatGPTの方がはるかに精度が高く、ハルシネーションの多いJSAとは相当差がありました。
(5) 日本の文学
ChatGPTなどの多言語モデルが苦手とする日本の文学について、JSAがどのくらい対応できているかテストしてみました。
これもAIの作り出したハルシネーションなのでしょうか。
よく小中学生の読書感想文の題材にもなる日本を代表する文学作品であるにも関わらず、どちらも全くのハルシネーションでした。まだJSAの方が原作に近いと言えるのでしょうか。
今までこの質問に答えられた言語モデルは無かったので、これでも今までで一番優秀な回答です。
JSAの回答の方が精度が高かったようです。
この質問については、どちらも正解でした。
日本の文学に関する知識については、ChatGPTがこれを苦手としているため、JSAの方が少し精度が高いように見えます。
6.表現力の比較
(1) ホラー小説の書き出し
JSAでも、一応ホラー小説らしい表現はできていますが、ChatGPTの方がかなり表現力が優れています。
(2) 初恋をテーマにしたショートストーリー
やはり、表現力はChatGPTの方が優れているようです。
(3) ブログ記事の執筆
プロンプトを工夫したせいもありますが、ChatGPTの表現力はかなり高いです。
JSAは、やはりそこまでは行きませんし、複雑な指示に従うことは難しいようです。
(4) キャラクター設定
JSAを完璧にキャラ設定するのは難しそうです。
JSAは複雑な指示にはあまり従わないため、ChatGPTのようなキャラ設定は難しく、キャラが安定しないかも知れません。
7.コンテンツ規制
ChatGPTでは、ガイドラインに基づいて、違法行為や危険な行動を奨励するようなコンテンツ、差別や偏見を助長するようなコンテンツなどは規制されています。JSAではどのようになっているのでしょうか?
(1) 違法行為や危険な行動に関する質問
JSAはコンテンツ規制をしていないのでしょうか。ChatGPTだと確実に規制されるような内容でも、拒否せずに回答します。
ChatGPTは、違法行為や危険な行動について回答するのを拒否します。
これも、JSAは回答を拒否しないですね。他にも、JSAは色々な悪口を回答してくれましたが、ここに掲載するのは自主規制します。
JSAは、ChatGPTが回答を拒否するような危険な情報でも、拒否せずに回答するみたいです。もっと過激で露骨な内容であれば、拒否することもあるのでしょうか?
(2) 差別や偏見に繋がる質問
ChatGPTなどのメジャーな言語モデルが非常に気にする差別の問題にもあまり配慮はしないで回答します。
ChatGPTは、人種差別に非常に配慮した回答を返してきますが、JSAはあまり配慮せずに回答を返してくるようです。
ただし、最近、メジャーな言語モデルは、こうした倫理的な問題に対する規制や配慮が強すぎて、使いにくくなっているという側面もあるので、JSAの対応は、役に立つ部分も多々あります。(例えば、犯人が殺人や犯罪など非道徳的な行動を取ったり、非道徳的なセリフを使ったりするのをミステリー小説で描く場合など)
男女差別やLGBT批判に繋がる発言も、JSAはあまり気にしていないようです。
8.まとめ
(1) 総合評価
Japanese StableLM Alpha(JSA)は、とても自然な日本語の受け答えをすることができます。この性能は、他のオープンソースモデルよりも優れており、GPPT-3.5(ChatGPT)と同じレベルです。
JSAは計算や算数が苦手で、一桁の足し算や掛け算も正確に計算することができません。そのため、論理的な思考力が不足しており、単純な論理を理解できなかったり、論理的に説明できなかったりすることがあります。
国際的な知識についてはGPT-3.5より劣りますが、日本の知識についてはGPT-3.5とあまり変わりません。GPT-3.5やGPT-4の苦手な日本の文学については、これらの知識を上回っている可能性があります。
ただし、JSAはハルシネーションを出してくることが比較的多いため、注意が必要です。
JSAも一貫性のある文章を書くことができますが、文章の表現力はGPT-3.5に適いません。
また、GPT-3.5の方が指示に忠実で、JSAは複雑な指示には従わないことがあります。JSAは、キャラクター設定の指示にも、あまり従わないことがあります。
JSAのコンテンツ規制は非常に緩く、危険な情報を求める質問にも回答を拒否せず、差別に繋がるような表現についてもあまり気にしません。
ただし、最近、GPT-3.5を始めとするメジャーな言語モデルは、コンテンツ規制が厳しすぎて使いづらくなっているので、コンテンツ規制の緩いJSAは、小説の執筆など一部の場面では有用です。
結論として、JSAは他のオープンソースモデルよりも自然な日本語の受け答えができますが、論理的思考力、情報の正確性、表現力などの点でGPT-3.5には適いません。
ただし、GPT-3.5はパラメーター数が1750億又は3550億と言われており、GPT-4は約1兆7000億と言われていますので、これらの言語モデルに適わないのは当然であり、JSAは70億のパラメーターでよく健闘しているとも言えます。
また、今回、軽量化した8ビット量子化モデルを使用したために性能が落ちている可能性もあります。もし、軽量化前のバージョンをテストした方がいれば、ネットで報告してもらえるとありがたいです。
(2) JSAの活用法
論理的思考力不足のために、指示に正確に従えなかったり、複雑なタスクに対応できなかったりするため、JSAをこのままビジネスで活用するのは難しいかも知れません。現在のままだと、それほど正確性の要求されない娯楽用の対話システムとして活用するのがよいのではないでしょうか。
今後、ビジネスにも活用していくには、計算能力を含む論理的思考力とハルシネーション対策を早急に進めてもらいたいと思います。また、ビジネスで活用するには、コンテンツ規制についても考える必要があるでしょう。
一方で、JSAはオープンソースモデルなので、ファインチューニングにより、一部の専門的なタスクに特化させたり、目的に合わせてモデルを改善したりすることができます。
このようにJSAには、GPT-3.5が個別に対応できないような、専門分野に特化した利用法が考えられます。
厳しいことばかり書いてしまいましたが、オープンソースの日本語特化モデルは貴重なので、これからどんどん改善して、使いやすいものになっていくことを期待しています。