? Abraçando o rosto | ? Escopo do Modelo | ? Papel (a definir) | ? Blog| Documentação
Demonstração | WeChat (微信) | ? Discórdia
Visite nossa organização Hugging Face ou ModelScope (clique nos links acima), pesquise pontos de verificação com nomes começando com Qwen2.5-
ou visite a coleção Qwen2.5 e você encontrará tudo o que precisa! Aproveitar!
Para saber mais sobre Qwen2.5, fique à vontade para ler nossa documentação [EN|ZH]. Nossa documentação consiste nas seguintes seções:
llama.cpp
e Ollama
;vLLM
, TGI
, etc.;Nos últimos três meses desde o lançamento do Qwen2, vários desenvolvedores construíram novos modelos nos modelos da linguagem Qwen2, fornecendo-nos um feedback valioso. Durante esse período, nos concentramos na criação de modelos de linguagem mais inteligentes e com mais conhecimento. Hoje, temos o prazer de apresentar a mais recente adição à família Qwen: Qwen2.5 .
Os resultados detalhados da avaliação são relatados neste ? blog.
Para requisitos de memória GPU e respectivo rendimento, veja os resultados aqui.
A versão mais recente dos transformers
é recomendada (pelo menos 4.37.0). Aqui mostramos um trecho de código para mostrar como usar o modelo de chat com 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 quantizados, aconselhamos a utilização dos correspondentes GPTQ e AWQ, nomeadamente Qwen2.5-7B-Instruct-GPTQ-Int8
e Qwen2.5-7B-Instruct-AWQ
.
Aconselhamos fortemente os usuários, especialmente aqueles na China continental, a usarem o ModelScope. snapshot_download
pode ajudá-lo a resolver problemas relacionados ao download de pontos de verificação.
Depois de instalar o ollama, você pode iniciar o serviço ollama com o seguinte comando:
ollama serve
# You need to keep this service running whenever you are using ollama
Para extrair um ponto de verificação do modelo e executar o modelo, use o comando ollama run
. Você pode especificar um tamanho de modelo adicionando um sufixo a qwen2.5
, como :0.5b
, :1.5b
, :7b
ou :72b
:
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
Você também pode acessar o serviço ollama por meio de sua API compatível com OpenAI. Observe que você precisa (1) manter ollama serve
em execução enquanto usa a API e (2) executar ollama run qwen2.5:7b
antes de utilizar esta API para garantir que o ponto de verificação do modelo esteja 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 obter detalhes adicionais, visite ollama.ai.
Baixe nossos arquivos GGUF fornecidos ou crie-os você mesmo, e você pode usá-los diretamente com o llama.cpp
mais recente com um comando de uma linha:
./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 guias adicionais, consulte nossa documentação.
Se você estiver executando o Apple Silicon, também fornecemos pontos de verificação compatíveis com mlx-lm
. Procure modelos que terminam com MLX no HuggingFace Hub, como Qwen2.5-7B-Instruct-MLX.
Qwen2.5 já foi suportado por lmstudio.ai. Você pode usar o LMStudio diretamente com nossos arquivos GGUF.
Qwen2.5 já foi suportado pelo kit de ferramentas OpenVINO. Você pode instalar e executar este exemplo de chatbot com CPU Intel, GPU integrada ou GPU discreta.
Você pode usar diretamente text-generation-webui
para criar uma demonstração de IU da web. Se você usa GGUF, lembre-se de instalar a roda mais recente do llama.cpp
com suporte para Qwen2.5.
Clone llamafile
, execute source install e, em seguida, crie seu próprio llamafile com o arquivo GGUF seguindo o guia aqui. Você pode executar uma linha de comando, digamos ./qwen.llamafile
, para criar uma demonstração.
Qwen2.5 é suportado por múltiplas estruturas de inferência. Aqui demonstramos o uso de vLLM
, SGLang
e OpenLLM
.
Aviso
Não funciona com vllm 0.6.3.
Aconselhamos você a usar a versão mais recente do vLLM para construir um serviço API compatível com OpenAI, incluindo suporte ao uso de ferramentas. Inicie o servidor com um modelo de chat, por exemplo, Qwen2.5-7B-Instruct
:
vllm serve Qwen/Qwen2.5-7B-Instruct
Em seguida, use a API de chat conforme demonstrado abaixo:
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 )
Aviso
As APIs compatíveis com OpenAI fornecidas pela SGLang atualmente NÃO suportam o uso de ferramentas ou chamadas de funções .
Instale SGLang
da fonte. Semelhante ao vLLM
, você precisa iniciar um servidor e usar um serviço API compatível com OpenAI. Inicie o servidor primeiro:
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30000
Você pode usá-lo em Python conforme mostrado abaixo:
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 permite que você execute Qwen2.5 facilmente como APIs compatíveis com OpenAI. Você pode iniciar um servidor modelo usando openllm serve
. Por exemplo:
openllm serve qwen2.5:7b
O servidor está ativo em http://localhost:3000/
, fornecendo APIs compatíveis com OpenAI. Você pode criar um cliente OpenAI para chamar sua API de chat. Para obter mais informações, consulte nossa documentação.
Para recursos de uso de ferramentas, recomendamos dar uma olhada no Qwen-Agent, que fornece um wrapper em torno dessas APIs para oferecer suporte ao uso de ferramentas ou chamadas de funções. O uso da ferramenta com Qwen2.5 também pode ser conduzido com transformers
Hugging Face, Ollama e vLLM. Siga os guias em nossa documentação para ver como ativar o suporte.
Aconselhamos você a usar estruturas de treinamento, incluindo Axolotl, Llama-Factory, unsloth, Swift, etc., para ajustar seus modelos com SFT, DPO, PPO, etc.
Todos os nossos modelos de código aberto, exceto as variantes 3B e 72B, são licenciados sob Apache 2.0. Você pode encontrar os arquivos de licença nos respectivos repositórios do Hugging Face. NÃO é necessário que você envie uma solicitação para uso comercial.
Se você achar nosso trabalho útil, sinta-se à vontade para nos enviar uma citação.
@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}
}
Se você estiver interessado em deixar uma mensagem para nossa equipe de pesquisa ou de produto, junte-se aos nossos grupos Discord ou WeChat!