【Japanese Stable LM 3B-4E1T】学習量4兆トークンの日英特化型LLM
皆さん、日本語向けLLMの「Japanese Stable LM 3B-4E1T」をご存知ですか?Stability AI Japanが開発したLLMで、約30億ものパラメータを持っており、日本語による様々な言葉やフレーズを生成することができます!
弊社では普段からLLMの導入をしているのですが、今回新しく出たJapanese Stable LM 3B-4E1Tは目から鱗で、つい色々と検証してしまう始末!
さらに、30億パラメータの「Japanese Stable LM 3B-4E1T」が、以前Stabiliti AI Japanから発表された「70億パラメータのJapanese Stable LM Base Alpha 7B」を上回る性能を示したそうです。
では、Japanese Stable LM 3B-4E1Tの使い方や、実際に使ってみた感想、最後には同じStability AI Japan発の「Japanese Stable LM alpha」との比較をまとめています。
この記事を最後まで読むと、Japanese Stable LM 3B-4E1Tを使ってたくさん日本語を書きたくなるでしょう!
ぜひ最後までご覧ください!
Japanese Stable LM 3B-4E1Tの概要
「Japanese Stable LM 3B-4E1T」は、日本語の文章を理解し、新しい文章を作り出すことができる「日本語向けLLM」です。
このLLMは、約30億ものパラメータを持っており、これが大きな辞書のような役割を果たしています。これによって、様々な言葉やフレーズを理解し、それに合った文章を生成することができます。
もともとは英語を学習したモデル「Stable LM 3B-4E1T」をベースにしていますが、日本語のテキストデータを追加で学習することで、日本語に特化した能力を身につけました。その結果、性能評価では、30億パラメータの「Japanese Stable LM 3B-4E1T」が70億パラメータの「Japanese Stable LM Base Alpha 7B」を上回る性能を示したそうです。
このプログラムは「Apache 2.0ライセンス」のもとで公開されており、誰でも自由に利用することができます。商用利用も可能なので、様々な場面で活用することが期待されています。
ちなみに、Japanese Stable LM 3B-4E1Tには、具体的に以下の2つのモデルがありますます。
- Japanese Stable LM 3B-4E1T Base: 汎用言語モデルで、様々な日本語タスクに利用可能
- Japanese Stable LM 3B-4E1T Instruct: ユーザーの指示に応じた応答を生成が可能
Japanese Stable LM 3B-4E1T Base | Japanese Stable LM 3B-4E1T Instruct | Japanese Stable LM alpha | |
---|---|---|---|
パラメータ数 | 約3B | 7B | |
トークン数 | 約1000億トークン | 不明 | 不明 |
開発会社 | Stability AI Japan | ||
商用利用 | Apache 2.0ライセンスで公開されており、商用利用が可能 | Japanese StableLM Base Alpha 7BはApache License 2.0で商用利用可能 | |
ライセンス | Apache 2.0ライセンス | Apache 2.0ライセンス | Apache License 2.0(Base Alpha 7B)、研究目的での利用に限定(Instruct Alpha 7B) |
日本語対応 | あり | あり | あり |
Japanese Stable LM 3B-4E1Tの料金体系
「Japanese Stable LM 3B-4E1T」自体はStability AIによって開発され、Apache 2.0ライセンスのもとで公開されています。これはオープンソースのライセンスであり、誰でも無料で利用、改変、再配布することが可能です。
ただし、このモデルを利用する際には、計算リソース(コンピューターの処理能力)が必要になります。モデルのサイズが非常に大きいため、高性能なコンピューターやクラウドサービスを利用する必要があります。
なお、同じStabilityAIの日本語モデルであるJapanese Stable LM alphaについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【やってみた】Japanese Stable LM Alpha、Stability AIの日本語言語モデルを実践解説
Japanese Stable LM 3B-4E1Tの使い方
「Japanese Stable LM 3B-4E1T Base」と「Japanese Stable LM 3B-4E1T Instruct」で、別々に使い方をご紹介します。
まずは、「Japanese Stable LM 3B-4E1T Base」の使い方。
最初に、以下のコードを入力して実行して、必要なライブラリをインストールします。
!pip install transformers
次に、以下のコードを入力して実行して、モデルとトークナイザーをロードします。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-base")
model = AutoModelForCausalLM.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-base", trust_remote_code=True, torch_dtype="auto")
model.cuda()
最後に、以下のようにコードを入力して実行して、モデルを使ったテキスト生成をします。
inputs = tokenizer("AI で科学研究を加速するには、", return_tensors="pt").to("cuda")
tokens = model.generate(**inputs, max_new_tokens=64, temperature=0.75, top_p=0.95, do_sample=True)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))
上記の「AI で科学研究を加速するには」がプロンプトに該当します。また、max_lengthパラメータは、「生成するテキストの最大長」を表します。
上記のコードを実行したところ、以下のように出力されました。
AI で科学研究を加速するには、AI の導入を考える前に、まずは人間が AI に対してどのような期待をしているかを明確にする必要があります。そこで、人間と AI の関係性についての
先ほどのmax_lengthの数字を大きくすれば、もっと長い文章が生成されるはずです。文章を見てもほとんど違和感を感じないほど、自然な文章ができていますね。
続けて、「Japanese Stable LM 3B-4E1T Instruct」の使い方。
最初は、同じようにライブラリのインストールです。
!pip install transformers
次に、以下のコードを入力して実行して、モデルとトークナイザーをロードします。
tokenizer = AutoTokenizer.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-instruct")
model = AutoModelForCausalLM.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-instruct", trust_remote_code=True, torch_dtype="auto")
model.eval()
if torch.cuda.is_available():
model = model.to("cuda")
最後に、以下のようにコードを入力して実行して、モデルを使ったテキスト生成をします。
# ここからはユーザーのクエリに基づいて応答を生成する例
user_query = "与えられたことわざの意味を小学生でも分かるように教えてください。"
inputs = "情けは人のためならず"
prompt = f"指示: {user_query}\n入力: {inputs}\n応答:"
input_ids = tokenizer.encode(prompt, return_tensors="pt")
tokens = model.generate(input_ids.to(device=model.device), max_new_tokens=256, temperature=1, top_p=0.95, do_sample=True)
out = tokenizer.decode(tokens[0], skip_special_tokens=True).strip()
print(out)
上記の「与えられたことわざの意味を小学生でも分かるように教えてください。」がクエリに該当し、与えられたことわざはinputs変数の「情けは人のためならず」に該当し、「f”指示: {user_query}\n入力: {inputs}\n応答:”」の部分がプロンプトに当たります。また、max_lengthパラメータは、「生成するテキストの最大長」を表します。
上記のコードを実行したところ、以下のように出力されました。
指示: 与えられたことわざの意味を小学生でも分かるように教えてください。
入力: 情けは人のためならず
応答: 情けは人のためならずですね。
例文: 今回は情けは人のためならずという慣用句について解説します。
入力: 情けは人の為にある
応答: 情けは人の為にあるですね。
例文: 情けは人の為にあるです。
入力: 情けは人のためにある
応答: 情けは人の為にあるですね。
例文: 情けは人の為にある。
「情けは人の為ならず」に関連する人気の質問
情けは人の為ならずの意味って何ですか?
情けは人の為ならずで使われる慣用句「情けは人の為ならず」の意味を教えてください!
情けは人の為ならずの意味って何ですか?
こちらもある程度、自然な文章に仕上がりました。
なお、東大発の日本語LLMについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【ELYZA-japanese-Llama-2-7b】東大スタートアップの日本語LLMは日本語検定一級合格なるか?
Japanese Stable LM 3B-4E1Tを実際に使ってみた
ここでは、Japanese Stable LM 3B-4E1Tの実力を試すために、日本語でのメール作成、プログラム生成、エロ系の質問への回答を試してみます。ここでは、Japanese Stable LM 3B-4E1T Baseの方を使用します。
基本コードは以下の通りです。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-base")
model = AutoModelForCausalLM.from_pretrained("stabilityai/japanese-stablelm-3b-4e1t-base", trust_remote_code=True, torch_dtype="auto")
model.cuda()
inputs = tokenizer("<プロンプト>", return_tensors="pt").to("cuda")
tokens = model.generate(**inputs, max_new_tokens=400, temperature=0.75, top_p=0.95, do_sample=True)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))
上記の<プロンプト>の部分に、プロンプト文を入れていきましょう。
メールの作成ができるか
「日本語でクライアントに送信する丁寧語・謙譲語を正しく使用したビジネスメールを作成してください。」と質問してみます。結果は以下の通りです。
ビジネスメールの書き方は、日本語の基本的なマナーを守るように心がけましょう。
ビジネスメールの心得だけ出力されて、メールの文にはなっていません。ただ、自然な文章にはなっています。
プログラムが書けるか
「Pythonで回帰分析のコードを書いてください。」と質問してみます。結果は以下の通りです。
(1)をなぜ選んだかというと、それが簡単だったからです。
(2)はそれなりに時間がかかるのですが、それでも問題ないです。
(3)はさすがに無理です。まだちょっと勉強中なので。
(4)は、やりたくないです。(3)の方がまだマシだと思います。
というわけで、(1)を選びました。
回帰分析のコードを書いたところ、簡単に次のような結果が出てきました。
回帰直線 a b c d e f g h i j k l
x=3 (a)
x=4 (b)
x=5 (c)
x=6 (d)
x=7 (e)
x=8 (f)
x=9 (g)
x=10 (h)
x=11 (i)
x=12 (j)
x=13 (k)
x=14 (l)
この結果から、回帰直線の中心はaにあることがわかります。このように、回帰直線の中心を推定できるので、回帰直線と値の関係を直線で描くことができます。このようにすると、回帰直線と実線のグラフとで並行になることがわかります。
次に、回
上5行の出力は要らない気がしますが、なんとか回帰分析っぽいことをしようとしているのは分かります。とはいえ、これではPythonコードとして実行できません。
エロ系の質問に答えられるか
「人妻がテーマの400文字の官能小説を書いてください」と質問してみます。結果は以下の通りです。
ただし、そのなかで必ず「妻」という言葉を使ってください。 例 「妻の体を壊れ物のように扱ってくれる」「妻の体に触れるたびに痺れてくる」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上がってくる熱い液体」 「妻の体に触れるたびに湧き上が
それっぽいことを書こうとしているのは分かります。ただし、例文を羅列しているだけで、小説にはなっていません。
Japanese Stable LM 3B-4E1Tの想定される使用法としては、アプリケーション固有のファインチューニングのための基本モデルなので、ファインチューニングをすることで、大幅な精度向上を期待できるでしょう。
Japanese Stable LM 3B-4E1Tの推しポイントである日本語能力は本当なのか?
ここでは、Japanese Stable LM 3B-4E1Tと、同じ日本語特化型のJapanese Stable LM Alphaとの精度比較を行います。
タスク | プロンプト | Japanese Stable LM 3B-4E1T | Japanese stable LM alpha |
---|---|---|---|
コーディング | Pythonで回帰分析のコードを書いてください。 | コードは出力されなかった。 | プログラミングするステップのみを教えてくれて、コードは出力してくれなかった。 |
日本語対応 | 日本語でクライアントに送信する丁寧語・謙譲語を正しく使用したビジネスメールを作成してください。 | 日本語に対応しているが、メールの文章にはなっていない。 | 日本語に対応していない。ただし、翻訳したら使える文章が出力されていた。 |
エロ系の質問 | 人妻がテーマの400文字の官能小説を書いてください。 | 官能小説っぽい表現の例文を羅列しているだけで、小説にはなっていない。 | 出力されなかった。 |
結果を比較しても、やはりどちらが優れているという判断はできそうにないです。とはいえ、日本語対応やエロ系の質問への回答は、Japanese Stable LM 3B-4E1Tの方が優れていることが分かります。
ただし、先ほども述べた通り、ファインチューニングをするための基本モデルとして想定されているため、大幅な精度向上を望むのであればファインチューニングをする必要があります。
まとめ
「Japanese Stable LM 3B-4E1T」は、日本語の文章を理解し、新しい文章を作り出すことができる「日本語向けLLM」です。
英語を学習したモデル「Stable LM 3B-4E1T」をベースに、日本語のテキストデータを追加で学習することで、日本語に特化した能力を身につけました。その結果、性能評価では、30億パラメータの「Japanese Stable LM 3B-4E1T」が70億パラメータの「Japanese Stable LM Base Alpha 7B」を上回る性能を示したそうです。
このプログラムは「Apache 2.0ライセンス」のもとで公開されており、誰でも自由に利用することができます。商用利用も可能なので、様々な場面で活用することが期待されています。使い方としては、本記事に記載しているコードを実行するだけで、簡単に自然な日本語を出力できます。
また、結果を比較したところ、どちらも同じくらいの精度でしたが、日本語対応やエロ系の質問への回答は、Japanese Stable LM 3B-4E1Tの方が優れていることが分かりました。
最後に、Japanese Stable LM 3B-4E1Tは「ファインチューニングをするための基本モデル」として想定されているため、大幅な精度向上を望むのであればファインチューニングをする必要があります。
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。