【ELYZA-japanese-Llama-2-7b】東大スタートアップの日本語LLMは日本語検定一級合格なるか?
2023年8月29日に日本語版LLMの「ELYZA-japanese-Llama-2-7b」がリリースされました。
日々AIの最新情報にアンテナを張っている皆さんなら当然ご存知ですよね??
今回は、まだELYZA-japanese-Llama-2-7bを知らないという方のために、導入方法と実際に使ってみた様子を紹介します。
「実際に使ってみた」パートでは、日本語検定一級を受験させてみたので、ぜひ最後までご覧ください!
ELYZAとは?
東京大学・松尾研究室発のAIスタートアップのELYZA (イライザ) が日本語版大規模言語モデル「ELYZA-japanese-Llama-2-7b」をリリースしました。
リリースされたモデルは以下の4つです。
・ELYZA-japanese-Llama-2-7b
MetaのLlama-2-7b-chatに対して、約180億トークンの日本語テキストで追加事前学習を行ったモデルです。学習に用いたのは、OSCARやWikipedia等に含まれる日本語テキストデータです。
・ELYZA-japanese-Llama-2-7b-instruct
ユーザーからの指示に従い様々なタスクを解くことを目的として、ELYZA-japanese-Llama-2-7bに対して事後学習を行ったモデルです。
・ELYZA-japanese-Llama-2-7b-fast
Llama 2に日本語の語彙を追加して事前学習を行ったモデルです。
・ELYZA-japanese-Llama-2-7b-fast-instruct
ELYZA-japanese-Llama-2-7b-fastに対して事後学習を行ったモデルです。
このモデルはLlama-2-7b-chat-hfをベースとした70億パラメータの商用利用可能な日本語言語モデルです。
Llama-2-7b-chat-hfをベースにした理由は、SFT(Supervised Fine-Tuning)やRLHF(Reinforcement Learning with Human Feedback)が実施されているので、指示追従機能や出力の安全性が高いからです。
Llama 2は、超大規模な事前学習がなされており、優れた言語能力や知識を備えていることから、OSCARやWikipediaなどの日本語データを少量学習させるだけで、高性能な日本語LLMが開発できるというわけです!
ここで、いくつかのLLMと概要を比較してみましょう。
ELYZA-japanese-Llama-2-7b-instruct | GPT4 | Llama 2 | Weblab-10b | |
---|---|---|---|---|
パラメーター数 | 7B | 1.5T(推定) | 1.37T | 10B |
処理できるトークン数 | – | 32,768(25,000文字) | 16,000(13,000文字) | – |
開発会社 | ELYZA | OpenAI | Meta | 東大松尾研究室 |
商用利用 | 可 | 可 | 可 | 可 |
ライセンス | Llama 2 Community License | プロプライエタリソフトウェア | Llama 2 Community License | cc-by-nc-4.0 |
パラメータ数はGPT-4やLlama 2と比較するとやはり少なめでしょうか。
しかし、ELYZA-tasks-100という独自のモデル評価データセットで行ったテストでは、日本語モデルの中で最高水準を誇っています!
このデータセットには以下の特徴があります。
- 複雑な指示・タスクを含む100件の日本語データ
- 役に立つAIアシスタントとして、丁寧な出力が求められる
- 全てのデータに対して評価観点がアノテーションされており、評価の揺らぎを抑えることが期待される
以下のグラフは、各モデルの評価値を表したものです。この評価は、精度の観点からすべて手動で行われているので、信頼性が高いです。
一刻も早く使ってみたい!と思ったはず。
ということで実際に導入していきましよう。
なお、その他の日本語LLMについて詳しく知りたい方は、以下の記事をご覧ください。
→【やってみた】Japanese Stable LM Alpha、Stability AIの日本語言語モデルを実践解説
ELYZAの導入方法
今回の実装ではgoogle colaboratoryを使用しました。
ELYZA.ipynb
実装にはNVIDIAのGPUが必要です。今回はNVIDIA A100を使用しました。
LLMの使用にはLangChainを使用しています。
#環境構築
!pip install langchain
!pip install transformers
from langchain import HuggingFacePipeline, PromptTemplate, LLMChain
from langchain.prompts import (
ChatPromptTemplate,
SystemMessagePromptTemplate,
HumanMessagePromptTemplate,
)
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
import torch
from transformers import LlamaForCausalLM, LlamaTokenizer
次に、使用するモデル名の定義と実行するタスクの指定をします。
# 基本パラメータ
model_name = "elyza/ELYZA-japanese-Llama-2-7b-instruct"
task = "text-generation"
GPU の確認をします。
# GPUの確認
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
device
device(type='cuda')
トークナイザとモデルの読み込み
# モデルのダウンロード
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to(device)
テキスト生成のためのパイプラインをセットアップ
# LLMs: langchainで上記モデルを利用する
pipe = pipeline(
task,
model=model,
tokenizer=tokenizer,
device=0, # Number of GPU Device
framework='pt', # Use PyTorch
max_new_tokens=1024,
)
llm = HuggingFacePipeline(pipeline=pipe)
これでモデルのダウンロード及びロードは完了です。
早速プロンプトを入力して、実際に使っていきましょう!
ELYZAを実際に使ってみた
プロンプトテンプレートを作成します。
# Prompts: プロンプトを作成
template = "<s>[INST] <<SYS>>あなたはユーザの質問に回答する優秀なアシスタントです。
以下の質問に可能な限り丁寧に回答してください。 <</SYS>>\n\n{question}[/INST]"
prompt = PromptTemplate.from_template(template)
プロンプトを入力します。
# Chains: llmを利用可能な状態にする
llm_chain = LLMChain(prompt=prompt, llm=llm, verbose=True)
question = "カレーライスとは何ですか?"
llm_chain.run({"question":question})
出力結果
自然な日本語になっています。
参考記事:ローカルのELYZA-japanese-Llama-2-7bをlangchainで試す
導入が難しいという方は以下のデモからも使用できるので気軽に使ってみてください。
ELYZA-japanese-Llama-2-7b-instruct
ELYZA-japanese-Llama-2-7b-fast-instruct
ELYZAの日本語能力を検証してみた
ELYZAは日本語特化型LLMなので日本語検定1級の問題を解かせてみます。
他にもGPT-4、Weblab-10bにも同じ問題を解かせて比較してみたいと思います。
日本語検定一級に合格できるのはどのLLMでしょうか!
まず1問目として、以下の問題を解いてもらいました。
第1問
【 】のようなとき、それぞれの( )部分はどのような言い方をすればよいでしょうか。最も適切なものを選んで、番号で答えてください。
一、
【夫婦連名で贈り物を送ってきた知人への礼状で】
ご厚志誠にありがとうございます。ご( )にもくれぐれもよろしくお伝えくださいませ。
①令慈 ②令人 ③令閨 ④令堂
二、
【幹事に同窓会への欠席を伝える葉書で】
今回は参加がかないませんが、ご( )をお祈り申し上げます。
①盛業 ②盛況 ③盛行 ④盛会
ちなみに、この問題の答えはそれぞれ以下の通りです。
答え
一、 ③令閨
二、 ④盛会
では、順番に見ていきましょう。
ELYZA-japanese-Llama-2-7b-instructの回答
不正解…ですが、問題文は理解してくれているようです。
GPT-4の回答
残念!GPT-4も不正解!
Weblab-10bの回答
こちらも不正解です。
これまでの結果を表にまとめてみました。
答え | ELYZA | GPT-4 | Weblab-10b | |
---|---|---|---|---|
一 | ③ | × | × | × |
二 | ④ | × | × | × |
問題が難しかったせいか、全て不正解という結果になってしまいました…
しかしどれも問題文は理解して出力してくれていますね!
気を取り直して第2問にいきましょう!
可能表現を意味・用法の観点からA・B・Cの三類に分けました。それぞれの類にあげた例文を参考にして、ア~ウがA・B・Cのいずれに当てはまるかを
記号で答えてください。
【Aの類】
これは毒がなく、食べられるきのこだ。
【Bの類】
ここは禁煙ではないので、たばこが吸える。
【Cの類】
彼は語学の才能があり、六か国語が話せる。
ア、橋が架かったので、向かいの島に歩いて渡れるようになった。
イ、あの人は、百キロの荷物が担げる怪力の持ち主だ。
ウ、茶色く濁っていて、とても飲める水ではないと思った。
答え
ア、 B
イ、 C
ウ、 A
ELYZA-japanese-Llama-2-7b-instructの回答
いずれも不正解です。
Aに関してはアとウに尽きますと回答しており、問題文をうまく理解してくれていない様子。
しかしイはB、ウはCと回答してくれていますね!
GPT-4の回答
イのみ正解です!
ここでなんと正解の回答が出力されました!さすがGPT-4!
Weblab-10bの答え
問題文が複雑すぎたのか、理解すらままなりませんでした。
結果は以下の通りです。
答え | ELYZA | GPT-4 | Weblab-10b | |
---|---|---|---|---|
ア | B | × | × | × |
イ | C | × | ⚪︎ | × |
ウ | A | × | × | × |
正解が1つ出ました!
検証してはみたものの全問不正解だったらどうしよう、、、と内心焦っていた筆者もここで少し安心です。
続いて第3問です!
__部分の言葉に対して、一は置き換え可能な、意味の最も類似した語を、二は( )に入る、対照的な意味を表す語を選んで、それぞれ番号で答えてください。
《意味の類似した語》
一、
彼女の博士論文は極めて精緻であり、論述を尽くして余蘊がない。
①誤謬がない②不足がない③無理がない④不満がない
《対照的な意味を表す語》
二、
ここは北に富士山を( )し、南に駿河湾を俯瞰できる、実に見事な景勝の地だ。
①仰望 ②凝視 ③展望 ④遠望
答え
一、 ②不足がない
二、 ①仰望
ELYZA-japanese-Llama-2-7b-instructの回答
こちらは少し難しかったせいか理解すらできていないようです。
GTP-4の回答
一のみ正解です!すごいですね!
Weblab-10bの回答
こちらは不正解ですが、問題文は理解してくれています。
答え | ELYZA | GPT-4 | Weblab-10b | |
---|---|---|---|---|
一 | ② | × | ⚪︎ | × |
二 | ① | × | × | × |
結果、GPT-4のみ2つ正解となりました!
残念ながら日本語検定一級に合格できるLLMはまだ現れていないようですね…
最も合格に近いのはGPT-4でしょうか。
とはいえ、その他のLLMと大きな差はないようなので、今後日本語の分野でGPT-4を抜く日本語LLMが出てきてもおかしくないように思います!
今後に期待です!
なお、今回比較対象にしたWeblab-10bについて詳しく知りたい方は、以下の記事をご覧ください。
→【日本語版LLM】東大松尾研のWeblab-10b、使い方・実践をまとめて解説
ELYZAのこれからに期待!
ELYZA-japanese-Llama-2-7bは、ELYZA社がLlama2-7bをベースに開発した日本語大規模言語モデルで、Llama2の言語能力や知識を引き継ぐことで、少ない学習量で、高い日本語性能を獲得しました。
このモデルは、ELYZA-tasks-100という独自の評価データセットを使った評価で、日本語特化モデルの中では、最高水準の評価を得ています。
ただ、実際の日本語能力を検証してみた結果、日本語検定一級クラスの難しい問題は理解することができず、GPT-4に比べ、日本語能力は劣る結果になりました。
現在、130億と700億パラメータのモデルの開発に着手しており、これらのモデルではさらに性能の向上が期待されるので、公開され次第また比較検証を行います!
期待して待ちましょう!
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。