?顔を抱きしめる | ?モデルスコープ | ?紙 (未定) | ?ブログ | ドキュメント
デモ | WeChat (微信) | ?不和
Hugging Face または ModelScope 組織 (上のリンクをクリック) にアクセスし、 Qwen2.5-
で始まる名前のチェックポイントを検索するか、Qwen2.5 コレクションにアクセスすると、必要なものがすべて見つかります。楽しむ!
Qwen2.5 の詳細については、ドキュメント [EN|ZH] を参照してください。私たちのドキュメントは次のセクションで構成されています。
llama.cpp
やOllama
などのフレームワークを使用して、CPU および GPU でローカルに LLM を実行するための手順。vLLM
、 TGI
などのフレームワークを使用した大規模な推論のために Qwen をデプロイする方法のデモンストレーション。Qwen2 のリリースから過去 3 か月の間に、多くの開発者が Qwen2 言語モデルに基づいて新しいモデルを構築し、貴重なフィードバックを私たちに提供してきました。この期間中、私たちはよりスマートでより知識豊富な言語モデルの作成に重点を置いてきました。本日は、Qwen ファミリーに新たに追加されたQwen2.5 をご紹介できることを嬉しく思います。
詳細な評価結果はこの?で報告されています。ブログ。
GPU メモリとそれぞれのスループットの要件については、ここで結果を参照してください。
transformers
の最新バージョン (少なくとも 4.37.0) が推奨されます。ここでは、 transformers
でチャット モデルを使用する方法を示すコード スニペットを示します。
from transformers import AutoModelForCausalLM , AutoTokenizer
model_name = "Qwen/Qwen2.5-7B-Instruct"
model = AutoModelForCausalLM . from_pretrained (
model_name ,
torch_dtype = "auto" ,
device_map = "auto"
)
tokenizer = AutoTokenizer . from_pretrained ( model_name )
prompt = "Give me a short introduction to large language model."
messages = [
{ "role" : "system" , "content" : "You are Qwen, created by Alibaba Cloud. You are a helpful assistant." },
{ "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 ]
量子化モデルの場合は、GPTQ および AWQ に対応するQwen2.5-7B-Instruct-GPTQ-Int8
およびQwen2.5-7B-Instruct-AWQ
を使用することをお勧めします。
特に中国本土のユーザーには、ModelScope を使用することを強くお勧めします。 snapshot_download
チェックポイントのダウンロードに関する問題の解決に役立ちます。
ollam をインストールした後、次のコマンドを使用して ollam サービスを開始できます。
ollama serve
# You need to keep this service running whenever you are using ollama
モデルのチェックポイントをプルしてモデルを実行するには、 ollama run
コマンドを使用します。 :0.5b
、 :1.5b
、 :7b
、 :72b
などのサフィックスをqwen2.5
に追加することで、モデル サイズを指定できます。
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
OpenAI 互換 API を介して ollam サービスにアクセスすることもできます。モデル チェックポイントが準備されていることを確認するには、(1) API の使用中にollama serve
を実行し続ける必要があること、(2) この API を使用する前にollama run qwen2.5:7b
を実行する必要があることに注意してください。
from openai import OpenAI
client = OpenAI (
base_url = 'http://localhost:11434/v1/' ,
api_key = 'ollama' , # required but ignored
)
chat_completion = client . chat . completions . create (
messages = [
{
'role' : 'user' ,
'content' : 'Say this is a test' ,
}
],
model = 'qwen2.5:7b' ,
)
詳細については、ollam.ai をご覧ください。
提供されている GGUF ファイルをダウンロードするか、自分で作成すると、次の 1 行コマンドで最新のllama.cpp
で直接使用できます。
./llama-cli -m < path-to-file > -n 512 -co -sp -cnv -p " You are Qwen, created by Alibaba Cloud. You are a helpful assistant. "
追加のガイドについては、ドキュメントを参照してください。
Apple Silicon で実行している場合は、 mlx-lm
と互換性のあるチェックポイントも提供されています。 Qwen2.5-7B-Instruct-MLX など、HuggingFace Hub で MLX で終わるモデルを探します。
Qwen2.5 は lmstudio.ai ですでにサポートされています。 GGUF ファイルを使用して LMStudio を直接使用できます。
Qwen2.5 は OpenVINO ツールキットですでにサポートされています。このチャットボットの例は、Intel CPU、統合 GPU、または個別の GPU を使用してインストールして実行できます。
text-generation-webui
直接使用して、Web UI デモを作成できます。 GGUF を使用する場合は、Qwen2.5 をサポートするllama.cpp
の最新のホイールを忘れずにインストールしてください。
ここのガイドに従って、 llamafile
複製し、source install を実行して、GGUF ファイルを使用して独自の llamafile を作成します。 1 行のコマンド (たとえば./qwen.llamafile
を実行してデモを作成できます。
Qwen2.5 は複数の推論フレームワークでサポートされています。ここでは、 vLLM
、 SGLang
、およびOpenLLM
の使用法を示します。
警告
vllm 0.6.3 では動作しません。
ツールの使用サポートを含め、OpenAI 互換の API サービスを構築するには、最新バージョンの vLLM を使用することをお勧めします。チャット モデル (例: Qwen2.5-7B-Instruct
でサーバーを起動します。
vllm serve Qwen/Qwen2.5-7B-Instruct
次に、以下に示すようにチャット API を使用します。
curl http://localhost:8000/v1/chat/completions -H " Content-Type: application/json " -d ' {
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
{"role": "user", "content": "Tell me something about large language models."}
],
"temperature": 0.7,
"top_p": 0.8,
"repetition_penalty": 1.05,
"max_tokens": 512
} '
from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI (
api_key = openai_api_key ,
base_url = openai_api_base ,
)
chat_response = client . chat . completions . create (
model = "Qwen2.5-7B-Instruct" ,
messages = [
{ "role" : "system" , "content" : "You are Qwen, created by Alibaba Cloud. You are a helpful assistant." },
{ "role" : "user" , "content" : "Tell me something about large language models." },
],
temperature = 0.7 ,
top_p = 0.8 ,
max_tokens = 512 ,
extra_body = {
"repetition_penalty" : 1.05 ,
},
)
print ( "Chat response:" , chat_response )
警告
SGLang が提供する OpenAI 互換 API は現在、ツールの使用や関数呼び出しをサポートしていません。
SGLang
ソースからインストールしてください。 vLLM
と同様に、サーバーを起動し、OpenAI 互換の API サービスを使用する必要があります。まずサーバーを起動します。
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30000
以下に示すように Python で使用できます。
from sglang import function , system , user , assistant , gen , set_default_backend , RuntimeEndpoint
@ function
def multi_turn_question ( s , question_1 , question_2 ):
s += system ( "You are Qwen, created by Alibaba Cloud. You are a helpful assistant." )
s += user ( question_1 )
s += assistant ( gen ( "answer_1" , max_tokens = 256 ))
s += user ( question_2 )
s += assistant ( gen ( "answer_2" , max_tokens = 256 ))
set_default_backend ( RuntimeEndpoint ( "http://localhost:30000" ))
state = multi_turn_question . run (
question_1 = "What is the capital of China?" ,
question_2 = "List two local attractions." ,
)
for m in state . messages ():
print ( m [ "role" ], ":" , m [ "content" ])
print ( state [ "answer_1" ])
OpenLLM を使用すると、Qwen2.5 を OpenAI 互換 API として簡単に実行できます。 openllm serve
使用してモデルサーバーを起動できます。例えば:
openllm serve qwen2.5:7b
サーバーはhttp://localhost:3000/
でアクティブで、OpenAI 互換の API を提供します。 OpenAI クライアントを作成して、そのチャット API を呼び出すことができます。詳細については、ドキュメントを参照してください。
ツールの使用機能については、ツールの使用または関数呼び出しをサポートするこれらの API のラッパーを提供する Qwen-Agent を検討することをお勧めします。 Qwen2.5 でのツールの使用は、Hugging Face transformers
、Ollama、および vLLM でも行うことができます。サポートを有効にする方法については、ドキュメントのガイドに従ってください。
Axolotl、Llama-Factory、unsloth、Swift などのトレーニング フレームワークを使用して、SFT、DPO、PPO などでモデルを微調整することをお勧めします。
3B および 72B バリアントを除くすべてのオープンソース モデルは、Apache 2.0 に基づいてライセンスされています。ライセンス ファイルは、それぞれの Hugging Face リポジトリにあります。商用利用の場合はリクエストを提出する必要はありません。
私たちの仕事が役に立ったと思われる場合は、お気軽に引用してください。
@misc{qwen2.5,
title = {Qwen2.5: A Party of Foundation Models},
url = {https://qwenlm.github.io/blog/qwen2.5/},
author = {Qwen Team},
month = {September},
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}
}
当社の研究チームまたは製品チームにメッセージを残すことに興味がある場合は、Discord または WeChat グループに参加してください。