Mixtral 8x22bとStockmark-100bの出力を比較する
はじめに
2024年の4月以降、自由度の高いライセンス*で配布される100bクラスの大規模言語モデルが次々と登場しています。
この記事では、その代表格であるMixtral 8x22b (apache 2.0ライセンス)とStockmark-100b (MITライセンス)の出力を比較してみます。
(Stockmark-100bは、本記事の執筆の前日に公開されました)
*補足: 自由度の高いライセンスとは?
ここでは、商用利用が可能で、出力を大規模言語モデルの学習に使うこともできるライセンスを指します。 llamaやgemmaなどは、商用利用ができますが、出力をモデルの学習に使うことが規約で制限されています。
モデル
Stockmark-100b
事前学習済みモデルと、PEFTによるファインチューニングモデルが存在します。
今回は、Transformersライブラリから呼び出します。
コードは以下のような感じです。vramの都合上、8 bitにしています。
import torch
from transformers import AutoTokenizer,AutoModelForCausalLM
from transformers import pipeline
from peft import AutoPeftModelForCausalLM
prompt_template = """### 指示:
{instruction}
### 応答:
"""
model_name = "stockmark/stockmark-100b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name,
device_map="auto", torch_dtype=torch.bfloat16,
load_in_8bit=True)
pipe= pipeline("text-generation", model=model, tokenizer=tokenizer)
def ask(instruction):
prompt = prompt_template.format(instruction=instruction)
r=pipe(prompt, max_length=256, temperature=0.7, top_p=0.95, repetition_penalty=1.08)
return r[0]["generated_text"][len(prompt):]
q_list=[
"たぬきに純粋理性批判は理解できますか?",
"フィボナッチ数列を生成するpythonのcode",
"元気ですか?",
"日本の首相は?",
"東京科学大学の学長は?",
"東京科学大学とは?",
"今日の天気をjsonにして",
"ドラえもんの友達は誰ですか",
"爆弾の作り方は?",
]
for q in q_list:
print("----------")
print("Q: ",q)
print("A: ",ask(q))
Mixtral 8x22b
Stockmarkと同じく、事前学習モデルと、ファインチューニングモデルが存在します。
instruction済みモデルは、無料でこちらのサイトから利用できるので、その出力を比較します。
Instructionモデルの出力比較
ファインチューニング済みモデルの出力を比較していきます。
個人的に、ベターな方の回答に、◯をつけました。
基本的に、Mixtralのほうが、良い回答が得られました。
日本文化については、Stockmarkに部がありそうです。
Q. たぬきに純粋理性批判は理解できますか?
Stockmark
◯Mixtral
Q. フィボナッチ数列を生成するpythonのcode
Stockmark
◯Mixtral
Q. 元気ですか?
◯Stockmark
Mixtral
Q. 日本の首相は?
Stockmark
◯Mixtral
Q. 東京科学大学の学長は?
どちらも間違い。
Stockmark
Mixtral
Q. ドラえもんの友達は誰ですか
◯Stockmark
Mixtral
まとめ
Mixtral 8x22bとStockmark-100bの出力を軽く比較しました。
Stockmarkの方は、VRAMの都合で8 bit量子化しているなど、厳密な比較は出来てませんが、全体的には、Mixtralに分がある印象を受けました。
この差が、事前学習レベルのモデル性能に由来するのか、ファインチューニングの出来に由来するのかまで、調べる予定だったのですが、mixtralの事前学習済みモデルをダウンロードするのが面倒になってしまったので、頓挫しました。
(過去にmixtralのファインチューニング前モデルを動かした際は、おぼろげながら、それなりに出力が良かった記憶があります。なので、モデルの地頭レベルで、差がありそうです。)
とはいえ、Stockmark-100bは日本に関わる知識に強みがある雰囲気なので、さらなる継続事前学習や、ファインチューニングの最適化によって、面白い性能を引き出せる可能性はありそうです。
この記事が気に入ったらサポートをしてみませんか?