? Umarmendes Gesicht | ? ModelScope | ? Papier (TBD) | ? Blog | Dokumentation
Demo | WeChat (微信) | ? Zwietracht
Besuchen Sie unsere Hugging Face- oder ModelScope-Organisation (klicken Sie auf die Links oben), suchen Sie nach Kontrollpunkten mit Namen, die mit Qwen2.5-
beginnen, oder besuchen Sie die Qwen2.5-Sammlung, und Sie werden alles finden, was Sie brauchen! Genießen!
Um mehr über Qwen2.5 zu erfahren, lesen Sie gerne unsere Dokumentation [EN|ZH]. Unsere Dokumentation besteht aus folgenden Abschnitten:
llama.cpp
und Ollama
;vLLM
, TGI
usw. bereitgestellt wird;In den letzten drei Monaten seit der Veröffentlichung von Qwen2 haben zahlreiche Entwickler neue Modelle auf Basis der Qwen2-Sprachmodelle erstellt und uns damit wertvolles Feedback geliefert. In dieser Zeit haben wir uns auf die Entwicklung intelligenterer und sachkundigerer Sprachmodelle konzentriert. Heute freuen wir uns, Ihnen das neueste Mitglied der Qwen-Familie vorzustellen: Qwen2.5 .
Detaillierte Auswertungsergebnisse werden in diesem Dokument berichtet. Blog.
Die Anforderungen an den GPU-Speicher und den jeweiligen Durchsatz finden Sie hier in den Ergebnissen.
Die neueste Version von transformers
wird empfohlen (mindestens 4.37.0). Hier zeigen wir einen Codeausschnitt, der Ihnen zeigt, wie Sie das Chat-Modell mit transformers
verwenden:
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 ]
Für quantisierte Modelle empfehlen wir Ihnen, die GPTQ- und AWQ-Korrespondenten zu verwenden, nämlich Qwen2.5-7B-Instruct-GPTQ-Int8
und Qwen2.5-7B-Instruct-AWQ
.
Wir empfehlen Benutzern, insbesondere denen auf dem chinesischen Festland, dringend, ModelScope zu verwenden. snapshot_download
kann Ihnen bei der Lösung von Problemen beim Herunterladen von Prüfpunkten helfen.
Nach der Installation von Ollama können Sie den Ollama-Dienst mit dem folgenden Befehl starten:
ollama serve
# You need to keep this service running whenever you are using ollama
Um einen Modellprüfpunkt abzurufen und das Modell auszuführen, verwenden Sie den Befehl ollama run
. Sie können eine Modellgröße angeben, indem Sie qwen2.5
ein Suffix hinzufügen, z. B. :0.5b
, :1.5b
, :7b
oder :72b
:
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
Sie können auch über seine OpenAI-kompatible API auf den Ollama-Dienst zugreifen. Bitte beachten Sie, dass Sie (1) ollama serve
laufen lassen müssen, während Sie die API verwenden, und (2) ollama run qwen2.5:7b
ausführen müssen, bevor Sie diese API verwenden, um sicherzustellen, dass der Modellprüfpunkt vorbereitet ist.
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' ,
)
Weitere Informationen finden Sie unter ollama.ai.
Laden Sie unsere bereitgestellten GGUF-Dateien herunter oder erstellen Sie sie selbst, und Sie können sie direkt mit der neuesten llama.cpp
mit einem einzeiligen Befehl verwenden:
./llama-cli -m < path-to-file > -n 512 -co -sp -cnv -p " You are Qwen, created by Alibaba Cloud. You are a helpful assistant. "
Weitere Anleitungen finden Sie in unserer Dokumentation.
Wenn Sie Apple Silicon verwenden, haben wir auch mit mlx-lm
kompatible Prüfpunkte bereitgestellt. Suchen Sie auf HuggingFace Hub nach Modellen, die mit MLX enden, wie Qwen2.5-7B-Instruct-MLX.
Qwen2.5 wurde bereits von lmstudio.ai unterstützt. Sie können LMStudio direkt mit unseren GGUF-Dateien verwenden.
Qwen2.5 wurde bereits vom OpenVINO-Toolkit unterstützt. Sie können dieses Chatbot-Beispiel mit Intel-CPU, integrierter GPU oder diskreter GPU installieren und ausführen.
Sie können text-generation-webui
direkt zum Erstellen einer Web-UI-Demo verwenden. Wenn Sie GGUF verwenden, denken Sie daran, das neueste Rad von llama.cpp
mit Unterstützung von Qwen2.5 zu installieren.
Klonen Sie llamafile
, führen Sie die Quellinstallation aus und erstellen Sie dann Ihr eigenes llamafile mit der GGUF-Datei, indem Sie der Anleitung hier folgen. Sie können eine Befehlszeile ausführen, beispielsweise ./qwen.llamafile
, um eine Demo zu erstellen.
Qwen2.5 wird von mehreren Inferenz-Frameworks unterstützt. Hier demonstrieren wir die Verwendung von vLLM
, SGLang
und OpenLLM
.
Warnung
Funktioniert nicht mit vllm 0.6.3.
Wir empfehlen Ihnen, die neueste Version von vLLM zu verwenden, um OpenAI-kompatible API-Dienste zu erstellen, einschließlich der Unterstützung der Tool-Nutzung. Starten Sie den Server mit einem Chat-Modell, z. B. Qwen2.5-7B-Instruct
:
vllm serve Qwen/Qwen2.5-7B-Instruct
Verwenden Sie dann die Chat-API wie unten gezeigt:
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 )
Warnung
Die von SGLang bereitgestellten OpenAI-kompatiblen APIs unterstützen derzeit NICHT die Verwendung von Tools oder Funktionsaufrufe .
Bitte installieren Sie SGLang
von der Quelle. Ähnlich wie bei vLLM
müssen Sie einen Server starten und einen OpenAI-kompatiblen API-Dienst verwenden. Starten Sie zuerst den Server:
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30000
Sie können es in Python wie unten gezeigt verwenden:
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 ermöglicht Ihnen die einfache Ausführung von Qwen2.5 als OpenAI-kompatible APIs. Sie können einen Modellserver mit openllm serve
starten. Zum Beispiel:
openllm serve qwen2.5:7b
Der Server ist unter http://localhost:3000/
aktiv und stellt OpenAI-kompatible APIs bereit. Sie können einen OpenAI-Client erstellen, um dessen Chat-API aufzurufen. Weitere Informationen finden Sie in unserer Dokumentation.
Für die Tool-Nutzungsmöglichkeiten empfehlen wir einen Blick auf Qwen-Agent, der einen Wrapper für diese APIs bereitstellt, um die Tool-Nutzung oder Funktionsaufrufe zu unterstützen. Die Tool-Nutzung mit Qwen2.5 kann auch mit Hugging-Face transformers
, Ollama und vLLM durchgeführt werden. Befolgen Sie die Anleitungen in unserer Dokumentation, um zu erfahren, wie Sie die Unterstützung aktivieren.
Wir empfehlen Ihnen, Trainings-Frameworks wie Axolotl, Llama-Factory, unsloth, Swift usw. zu verwenden, um Ihre Modelle mit SFT, DPO, PPO usw. zu verfeinern.
Alle unsere Open-Source-Modelle, mit Ausnahme der Varianten 3B und 72B, sind unter Apache 2.0 lizenziert. Die Lizenzdateien finden Sie in den jeweiligen Hugging Face-Repositories. Für die kommerzielle Nutzung ist es NICHT erforderlich, dass Sie einen Antrag stellen.
Wenn Sie unsere Arbeit hilfreich finden, können Sie uns gerne zitieren.
@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}
}
Wenn Sie daran interessiert sind, unserem Forschungs- oder Produktteam eine Nachricht zu hinterlassen, treten Sie unseren Discord- oder WeChat-Gruppen bei!