? Visage câlin | ? ModèlePortée | ? Papier (à déterminer) | ? Blogue | Documentation
Démo | WeChat (微信) | ? Discorde
Visitez notre organisation Hugging Face ou ModelScope (cliquez sur les liens ci-dessus), recherchez des points de contrôle dont les noms commencent par Qwen2.5-
ou visitez la collection Qwen2.5, et vous trouverez tout ce dont vous avez besoin ! Apprécier!
Pour en savoir plus sur Qwen2.5, n'hésitez pas à lire notre documentation [EN|ZH]. Notre documentation comprend les sections suivantes :
llama.cpp
et Ollama
;vLLM
, TGI
, etc. ;Au cours des trois derniers mois depuis la sortie de Qwen2, de nombreux développeurs ont créé de nouveaux modèles sur les modèles de langage Qwen2, nous fournissant ainsi de précieux commentaires. Au cours de cette période, nous nous sommes concentrés sur la création de modèles linguistiques plus intelligents et mieux informés. Aujourd'hui, nous sommes ravis de vous présenter le dernier ajout à la famille Qwen : Qwen2.5 .
Les résultats détaillés de l'évaluation sont rapportés dans ce ? bloguer.
Pour connaître les exigences en matière de mémoire GPU et le débit respectif, consultez les résultats ici .
La dernière version des transformers
est recommandée (au moins 4.37.0). Nous montrons ici un extrait de code pour vous montrer comment utiliser le modèle de chat avec 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 ]
Pour les modèles quantifiés, nous vous conseillons d'utiliser les correspondants GPTQ et AWQ, à savoir Qwen2.5-7B-Instruct-GPTQ-Int8
et Qwen2.5-7B-Instruct-AWQ
.
Nous conseillons fortement aux utilisateurs, en particulier ceux de Chine continentale, d'utiliser ModelScope. snapshot_download
peut vous aider à résoudre les problèmes liés au téléchargement des points de contrôle.
Après avoir installé ollama, vous pouvez lancer le service ollama avec la commande suivante :
ollama serve
# You need to keep this service running whenever you are using ollama
Pour extraire un point de contrôle du modèle et exécuter le modèle, utilisez la commande ollama run
. Vous pouvez spécifier une taille de modèle en ajoutant un suffixe à qwen2.5
, tel que :0.5b
, :1.5b
, :7b
ou :72b
:
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
Vous pouvez également accéder au service ollama via son API compatible OpenAI. Veuillez noter que vous devez (1) maintenir ollama serve
en cours d'exécution lorsque vous utilisez l'API et (2) exécuter ollama run qwen2.5:7b
avant d'utiliser cette API pour vous assurer que le point de contrôle du modèle est préparé.
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' ,
)
Pour plus de détails, veuillez visiter ollama.ai.
Téléchargez nos fichiers GGUF fournis ou créez-les vous-même, et vous pourrez les utiliser directement avec le dernier llama.cpp
avec une commande sur une seule ligne :
./llama-cli -m < path-to-file > -n 512 -co -sp -cnv -p " You are Qwen, created by Alibaba Cloud. You are a helpful assistant. "
Pour des guides supplémentaires, veuillez vous référer à notre documentation.
Si vous utilisez Apple Silicon, nous avons également fourni des points de contrôle compatibles avec mlx-lm
. Recherchez les modèles se terminant par MLX sur HuggingFace Hub, comme Qwen2.5-7B-Instruct-MLX.
Qwen2.5 a déjà été pris en charge par lmstudio.ai. Vous pouvez directement utiliser LMStudio avec nos fichiers GGUF.
Qwen2.5 a déjà été pris en charge par la boîte à outils OpenVINO. Vous pouvez installer et exécuter cet exemple de chatbot avec un processeur Intel, un GPU intégré ou un GPU discret.
Vous pouvez directement utiliser text-generation-webui
pour créer une démo d'interface utilisateur Web. Si vous utilisez GGUF, pensez à installer la dernière roue de llama.cpp
avec le support de Qwen2.5.
Clonez llamafile
, exécutez l'installation des sources, puis créez votre propre fichier lama avec le fichier GGUF en suivant le guide ici. Vous pouvez exécuter une ligne de commande, par exemple ./qwen.llamafile
, pour créer une démo.
Qwen2.5 est pris en charge par plusieurs frameworks d'inférence. Nous démontrons ici l'utilisation de vLLM
, SGLang
et OpenLLM
.
Avertissement
Ne fonctionne pas avec vllm 0.6.3.
Nous vous conseillons d'utiliser la dernière version de vLLM pour créer un service API compatible OpenAI, y compris la prise en charge de l'utilisation des outils. Démarrez le serveur avec un modèle de chat, par exemple Qwen2.5-7B-Instruct
:
vllm serve Qwen/Qwen2.5-7B-Instruct
Utilisez ensuite l'API de chat comme illustré ci-dessous :
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 )
Avertissement
Les API compatibles OpenAI fournies par SGLang ne prennent actuellement PAS en charge l'utilisation d'outils ou l'appel de fonctions .
Veuillez installer SGLang
à partir des sources. Semblable à vLLM
, vous devez lancer un serveur et utiliser le service API compatible OpenAI. Démarrez d'abord le serveur :
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30000
Vous pouvez l'utiliser en Python comme indiqué ci-dessous :
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 vous permet d'exécuter facilement Qwen2.5 en tant qu'API compatibles OpenAI. Vous pouvez démarrer un serveur de modèles en utilisant openllm serve
. Par exemple:
openllm serve qwen2.5:7b
Le serveur est actif sur http://localhost:3000/
, fournissant des API compatibles OpenAI. Vous pouvez créer un client OpenAI pour appeler son API de chat. Pour plus d’informations, reportez-vous à notre documentation.
Pour les capacités d'utilisation des outils, nous vous recommandons de jeter un œil à Qwen-Agent, qui fournit un wrapper autour de ces API pour prendre en charge l'utilisation d'outils ou l'appel de fonctions. L'utilisation des outils avec Qwen2.5 peut également être effectuée avec transformers
Hugging Face, Ollama et vLLM. Suivez les guides de notre documentation pour voir comment activer le support.
Nous vous conseillons d'utiliser des frameworks de formation, notamment Axolotl, Llama-Factory, unsloth, Swift, etc., pour affiner vos modèles avec SFT, DPO, PPO, etc.
Tous nos modèles open source, à l'exception des variantes 3B et 72B, sont sous licence Apache 2.0. Vous pouvez trouver les fichiers de licence dans les référentiels Hugging Face respectifs. Il n'est PAS nécessaire que vous soumettiez une demande d'utilisation commerciale.
Si vous trouvez notre travail utile, n'hésitez pas à nous citer.
@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}
}
Si vous souhaitez laisser un message à notre équipe de recherche ou à notre équipe produit, rejoignez nos groupes Discord ou WeChat !