? Abrazando la cara | ? Modelo de alcance | ? Documento (por determinar) | ? Blog | Documentación
Demostración | WeChat (微信) | ? Discordia
Visite nuestra organización Hugging Face o ModelScope (haga clic en los enlaces de arriba), busque puntos de control con nombres que comiencen con Qwen2.5-
o visite la colección Qwen2.5, ¡y encontrará todo lo que necesita! ¡Disfrutar!
Para obtener más información sobre Qwen2.5, no dude en leer nuestra documentación [EN|ZH]. Nuestra documentación consta de las siguientes secciones:
llama.cpp
y Ollama
;vLLM
, TGI
, etc.;En los últimos tres meses desde el lanzamiento de Qwen2, numerosos desarrolladores han creado nuevos modelos en los modelos del lenguaje Qwen2, brindándonos comentarios valiosos. Durante este período, nos hemos centrado en crear modelos de lenguaje más inteligentes y con más conocimientos. Hoy nos complace presentar la última incorporación a la familia Qwen: Qwen2.5 .
¿Los resultados detallados de la evaluación se informan en este? blog.
Para conocer los requisitos de memoria de la GPU y el rendimiento respectivo, consulte los resultados aquí.
Se recomienda la última versión de transformers
(al menos 4.37.0). Aquí mostramos un fragmento de código para mostrarle cómo usar el modelo de chat con 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 ]
Para modelos cuantificados, le recomendamos que utilice los correspondientes GPTQ y AWQ, concretamente Qwen2.5-7B-Instruct-GPTQ-Int8
y Qwen2.5-7B-Instruct-AWQ
.
Recomendamos encarecidamente a los usuarios, especialmente a aquellos de China continental, que utilicen ModelScope. snapshot_download
puede ayudarle a resolver problemas relacionados con la descarga de puntos de control.
Después de instalar ollama, puede iniciar el servicio ollama con el siguiente comando:
ollama serve
# You need to keep this service running whenever you are using ollama
Para extraer un punto de control del modelo y ejecutar el modelo, use el comando ollama run
. Puede especificar el tamaño de un modelo agregando un sufijo a qwen2.5
, como por ejemplo :0.5b
, :1.5b
, :7b
o :72b
:
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
También puede acceder al servicio ollama a través de su API compatible con OpenAI. Tenga en cuenta que debe (1) mantener ollama serve
ejecutándose mientras usa la API y (2) ejecutar ollama run qwen2.5:7b
antes de utilizar esta API para garantizar que el punto de control del modelo esté preparado.
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' ,
)
Para obtener detalles adicionales, visite ollama.ai.
Descargue nuestros archivos GGUF proporcionados o créelos usted mismo, y podrá usarlos directamente con el último llama.cpp
con un comando de una línea:
./llama-cli -m < path-to-file > -n 512 -co -sp -cnv -p " You are Qwen, created by Alibaba Cloud. You are a helpful assistant. "
Para obtener guías adicionales, consulte nuestra documentación.
Si está ejecutando Apple Silicon, también proporcionamos puntos de control compatibles con mlx-lm
. Busque modelos que terminen en MLX en HuggingFace Hub, como Qwen2.5-7B-Instruct-MLX.
Qwen2.5 ya ha sido compatible con lmstudio.ai. Puede utilizar LMStudio directamente con nuestros archivos GGUF.
Qwen2.5 ya ha sido compatible con el kit de herramientas OpenVINO. Puede instalar y ejecutar este ejemplo de chatbot con CPU Intel, GPU integrada o GPU discreta.
Puede utilizar directamente text-generation-webui
para crear una demostración de interfaz de usuario web. Si usa GGUF, recuerde instalar la última rueda de llama.cpp
con soporte de Qwen2.5.
Clona llamafile
, ejecuta la instalación fuente y luego crea tu propio llamafile con el archivo GGUF siguiendo la guía aquí. Puede ejecutar una línea de comando, por ejemplo ./qwen.llamafile
, para crear una demostración.
Qwen2.5 es compatible con múltiples marcos de inferencia. Aquí demostramos el uso de vLLM
, SGLang
y OpenLLM
.
Advertencia
No funciona con vllm 0.6.3.
Le recomendamos que utilice la última versión de vLLM para crear un servicio API compatible con OpenAI, incluida la compatibilidad con el uso de herramientas. Inicie el servidor con un modelo de chat, por ejemplo, Qwen2.5-7B-Instruct
:
vllm serve Qwen/Qwen2.5-7B-Instruct
Luego use la API de chat como se muestra a continuación:
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 )
Advertencia
Las API compatibles con OpenAI proporcionadas por SGLang actualmente NO admiten el uso de herramientas ni la llamada a funciones .
Instale SGLang
desde la fuente. De manera similar a vLLM
, debe iniciar un servidor y utilizar el servicio API compatible con OpenAI. Inicie el servidor primero:
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30000
Puedes usarlo en Python como se muestra a continuación:
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 le permite ejecutar fácilmente Qwen2.5 como API compatibles con OpenAI. Puede iniciar un servidor modelo utilizando openllm serve
. Por ejemplo:
openllm serve qwen2.5:7b
El servidor está activo en http://localhost:3000/
y proporciona API compatibles con OpenAI. Puede crear un cliente OpenAI para llamar a su API de chat. Para obtener más información, consulte nuestra documentación.
Para conocer las capacidades de uso de herramientas, recomendamos echar un vistazo a Qwen-Agent, que proporciona un contenedor alrededor de estas API para admitir el uso de herramientas o la llamada de funciones. El uso de herramientas con Qwen2.5 también se puede realizar con transformers
Hugging Face, Ollama y vLLM. Siga las guías en nuestra documentación para ver cómo habilitar el soporte.
Le recomendamos que utilice marcos de entrenamiento, incluidos Axolotl, Llama-Factory, unsloth, Swift, etc., para ajustar sus modelos con SFT, DPO, PPO, etc.
Todos nuestros modelos de código abierto, excepto las variantes 3B y 72B, tienen licencia Apache 2.0. Puede encontrar los archivos de licencia en los respectivos repositorios de Hugging Face. NO es necesario que envíe una solicitud de uso comercial.
Si encuentra útil nuestro trabajo, no dude en citarnos.
@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 está interesado en dejar un mensaje a nuestro equipo de investigación o a nuestro equipo de producto, ¡únase a nuestros grupos de Discord o WeChat!