glm-4-9b-chat

この記事は約8分で読めます。

モデル紹介

GLM-4-9Bは、智谱 AIが発表した最新世代のプリトレインモデルシリーズGLM-4のオープンソースバージョンです。意味解釈、数学、推論、コード、知識など多岐にわたるデータセット評価において、GLM-4-9Bとその人間好みアライメントバージョンGLM-4-9B-Chatは高い性能を示しています。複数ラウンドの対話だけでなく、GLM-4-9B-Chatはウェブ閲覧、コード実行、カスタムツール呼び出し(Function Call)、ロングテキスト推論(最大128Kコンテキストをサポート)など高度な機能を持ちます。本世代のモデルでは多言語サポートが増加し、日本語、韓国語、ドイツ語を含む26言語をサポートしています。また、1Mコンテキスト長(約200万中国語文字)をサポートするモデルもリリースしました。

評価結果

私たちはGLM-4-9B-Chatモデルをいくつかのクラシックタスクで評価し、以下の結果を得ました:

モデル AlignBench-v2 MT-Bench IFEval MMLU C-Eval GSM8K MATH HumanEval NCB
Llama-3-8B-Instruct 5.12 8.00 68.58 68.4 51.3 79.6 30.0 62.2 24.7
ChatGLM3-6B 3.97 5.50 28.1 66.4 69.0 72.3 25.7 58.5 11.3
GLM-4-9B-Chat 6.61 8.35 69.0 72.4 75.6 79.6 50.6 71.8 32.2

長テキスト

1Mのコンテキスト長で「大海捞针」という実験を行った結果は以下の通りです:

LongBench-Chat上で長テキスト能力をさらに評価した結果は以下の通りです:

多言語能力

6つの多言語データセットでGLM-4-9B-ChatとLlama-3-8B-Instructをテストし、以下の結果を得ました。データセットと対応する選択された言語は以下の表の通りです。

Dataset Llama-3-8B-Instruct GLM-4-9B-Chat Languages
M-MMLU 49.6 56.6 all
FLORES 25.0 28.8 ru, es, de, fr, it, pt, pl, ja, nl, ar, tr, cs, vi, fa, hu, el, ro, sv, uk, fi, ko, da, bg, no
MGSM 54.0 65.3 zh, en, bn, de, es, fr, ja, ru, sw, te, th
XWinograd 61.7 73.1 zh, en, fr, jp, ru, pt
XStoryCloze 84.7 90.7 zh, en, ar, es, eu, hi, id, my, ru, sw, te
XCOPA 73.3 80.1 zh, et, ht, id, it, qu, sw, ta, th, tr, vi

ツールコール能力 Berkeley Function Calling Leaderboardでテストを行い、以下の結果を得ました:

モデル Overall Acc. AST Summary Exec Summary Relevance
Llama-3-8B-Instruct 58.88 59.25 70.01 45.83
gpt-4-turbo-2024-04-09 81.24 82.14 78.61 88.75
ChatGLM3-6B 57.88 62.18 69.78 5.42
GLM-4-9B-Chat 81.00 80.26 84.40 87.92

このリポジトリはGLM-4-9B-Chatのモデルリポジトリであり、128Kのコンテキスト長をサポートしています。

モデルの実行

更多推理代码和依赖信息,请访问我们的github。

依赖を厳密にインストールしてください。そうしないと、正常に実行できません。

transformersバックエンドを使用した推論:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"

tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4-9b-chat", trust_remote_code=True)

query = "你好"

inputs = tokenizer.apply_chat_template([{"role": "user", "content": query}],
                                       add_generation_prompt=True,
                                       tokenize=True,
                                       return_tensors="pt",
                                       return_dict=True
                                       )

inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
    "THUDM/glm-4-9b-chat",
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True
).to(device).eval()

gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1}
with torch.no_grad():
    outputs = model.generate(**inputs, **gen_kwargs)
    outputs = outputs[:, inputs['input_ids'].shape[1]:]
    print(tokenizer.decode(outputs[0], skip_special_tokens=True))

vLLMバックエンドを使用した推論:

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

# GLM-4-9B-Chat-1M
# max_model_len, tp_size = 1048576, 4

# GLM-4-9B-Chat
# 如果遇见 OOM 现象,建议减少max_model_len,或者增加tp_size
max_model_len, tp_size = 131072, 1
model_name = "THUDM/glm-4-9b-chat"
prompt = [{"role": "user", "content": "你好"}]

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
llm = LLM(
    model=model_name,
    tensor_parallel_size=tp_size,
    max_model_len=max_model_len,
    trust_remote_code=True,
    enforce_eager=True,
    # GLM-4-9B-Chat-1M 如果遇见 OOM 现象,建议开启下述参数
    # enable_chunked_prefill=True,
    # max_num_batched_tokens=8192
)
stop_token_ids = [151329, 151336, 151338]
sampling_params = SamplingParams(temperature=0.95, max_tokens=1024, stop_token_ids=stop_token_ids)

inputs = tokenizer.apply_chat_template(prompt, tokenize=False, add_generation_prompt=True)
outputs = llm.generate(prompts=inputs, sampling_params=sampling_params)

print(outputs[0].outputs[0].text)

ドルフィンAIは言語学習アプリケーションのためのプロフェッショナルな発音評価API(pronunciation assessment api)ソリューションを提供します。音素、単語、文章、チャプター、発音矯正、単語矯正、クイズ、フリーダイアログ、多肢選択問題など幅広く提供しています。当社の発音評価製品(pronunciation assessment)は、英語と中国語、クラウドAPI、オンプレミス、オフラインデバイスの展開をサポートしています。当社の発音評価API(pronunciation assessment api)は、正確性、流暢性、完全性、リズムの次元をカバーする豊富な評価指標を提供し、音素、単語、文の異なるレベルの評価スコアも提供します。また、音素、単語、文の異なるレベルでの評価スコアも提供します。数千万人のユーザーに安定した効率的で安全なサービスを提供しています。ドルフィンAIの発音評価製品(pronunciation assessment)を試してみませんか?

タイトルとURLをコピーしました