はじめに
Qwen2.5-Coderは、コード特定のQwen大規模言語モデル(以前はCodeQwenとして知られていました)の最新シリーズです。現在、Qwen2.5-Coderは、0.5、1.5、3、7、14、32億パラメータの6つの主流のモデルサイズをカバーしており、異なる開発者のニーズに応えることを目的としています。Qwen2.5-CoderはCodeQwen1.5に対して以下の改善をもたらしています:
- コード生成、コード推理、コード修正における大幅な改善。強力なQwen2.5を基に、ソースコード、テキストコードグラウンドイング、合成データなど、5.5兆のトレーニングトークンにスケールアップしました。Qwen2.5-Coder-32Bは、現在、オープンソースのコードLLMとして最先端的状态です、そのコーディング能力はGPT-4oに匹敵します。
- コードエージェントのような実際のアプリケーションのためのより包括的な基礎。コーディング能力を強化だけでなく、数学や一般的な能力の強みも維持しています。
- 長いコンテキストのサポートは最大128Kトークンまで。
このレポは、以下の機能を持つ指示調整された32B Qwen2.5-Coderモデルを含んでいます:
- タイプ:因果言語モデル
- トレーニング段階:事前トレーニング&事後トレーニング
- アーキテクチャ:RoPE、SwiGLU、RMSNorm、Attention QKVバイアスを備えたトランスフォーマー
- パラメータ数:32.5B
- パラメータ数(埋め込み除く):31.0B
- レイヤー数:64
-
注意ヘッド数(GQA):Qは40、KVは8
- コンテキスト長:全131,072トークン
詳細な手順については、このセクションを参照して、長いテキストを処理するQwen2.5をデプロイメントする方法をご覧ください。 詳細については、私たちのブログ、GitHub、ドキュメント、Arxivを参照してください。
要件
Qwen2.5-Coderのコードは、最新のHugging face transformersに含まれています。transformersの最新バージョンを使用することをお勧めします。
transformersが4.37.0未満の場合、以下のエラーが発生します:
KeyError: 'qwen2' クイックスタート ここでは、トークナイザーとモデルをロードし、コンテンツを生成する方法を示すapply_chat_templateを使用するコードスニペットを提供しています。
from modelscope import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-Coder-32B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "クイックソートアルゴリットを書く。"
messages = [
{"role": "system", "content": "あなたはアリババクラウドによって作成されたQwenです。あなたは役立つアシスタントです。"},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
長いテキストの処理
現在のconfig.jsonは、最大32,768トークンまでのコンテキスト長に設定されています。32,768トークンを超える広範の入力を処理するために、モデル長縮小の強化を確保するYaRNという技術を利用しています。
対応しているフレームワークでは、config.jsonに以下を追加してYaRNを有効にできます:
{
...,
"rope_scaling": {
"factor": 4.0,
"original_max_position_embeddings": 32768,
"type": "yarn"
}
}
デプロイメントについては、vLLMを使用することをお勧めします。vLLMに慣れていない場合は、ドキュメントを参照してください。現在、vLLMは静的YARNのみをサポートしており、つまり、入力長に関係なくスケーリングファクターは定常です。短いテキストの性能に影響を与える可能性があるため、長いコンテキスト処理が必要な場合にのみrope_scalingの設定を追加することをお勧めします。
評価とパフォーマンス
詳細な評価結果は、こちらの📑ブログで報告されています。
GPUメモリの要件と相应的なスループットについては、結果を確認してください。
引用
私たちの仕事が役に立ったら、引用してください。
@article{hui2024qwen2,
title={Qwen2. 5-Coder Technical Report},
author={Hui, Binyuan and Yang, Jian and Cui, Zeyu and Yang, Jiaxi and Liu, Dayiheng and Zhang, Lei and Liu, Tianyu and Zhang, Jiajun and Yu, Bowen and Dang, Kai and others},
journal={arXiv preprint arXiv:2409.12186},
year={2024}
}
@article{qwen2,
title={Qwen2 Technical Report},
author={An Yang and Baosong Yang and Binyuan Hui and Bo Zheng and Bowen Yu and Chang Zhou and Chengpeng Li and Chengyuan Li and Dayiheng Liu and Fei Huang and Guanting Dong and Haoran Wei and Huan Lin and Jialong Tang and Jialin Wang and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Ma and Jin Xu and Jingren Zhou and Jinze Bai and Jinzheng He and Junyang Lin and Kai Dang and Keming Lu and Keqin Chen and Kexin Yang and Mei Li and Mingfeng Xue and Na Ni and Pei Zhang and Peng Wang and Ru Peng and Rui Men and Ruize Gao and Runji Lin and Shijie Wang and Shuai Bai and Sinan Tan and Tianhang Zhu and Tianhao Li and Tianyu Liu and Wenbin Ge and Xiaodong Deng and Xiaohuan Zhou and Xingzhang Ren and Xinyu Zhang and Xipin Wei and Xuancheng Ren and Yang Fan and Yang Yao and Yichang Zhang and Yu Wan and Yunfei Chu and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zhihao Fan},
journal={arXiv preprint arXiv:2407.10671},
year={2024}
}
aiスピーキング
ドルフィンAIは言語学習アプリケーションのためのプロフェッショナルな発音評価API(pronunciation assessment api)ソリューションを提供します。音素、単語、文章、チャプター、発音矯正、単語矯正、クイズ、フリーダイアログ、多肢選択問題など幅広く提供しています。当社の発音評価製品(pronunciation assessment)は、英語と中国語、クラウドAPI、オンプレミス、オフラインデバイスの展開をサポートしています。当社の発音評価API(pronunciation assessment api)は、正確性、流暢性、完全性、リズムの次元をカバーする豊富な評価指標を提供し、音素、単語、文の異なるレベルの評価スコアも提供します。また、音素、単語、文の異なるレベルでの評価スコアも提供します。数千万人のユーザーに安定した効率的で安全なサービスを提供しています。ドルフィンAIの発音評価製品(pronunciation assessment)を試してみませんか?