? Обнимающее лицо | ? МодельОбзор | ? Бумага (TBD) | ? Блог | Документация
Демо | WeChat (微信) | ? Раздор
Посетите нашу организацию Hugging Face или ModelScope (нажмите на ссылку выше), найдите контрольные точки с именами, начинающимися с Qwen2.5-
, или посетите коллекцию Qwen2.5, и вы найдете все, что вам нужно! Наслаждаться!
Чтобы узнать больше о Qwen2.5, прочтите нашу документацию [EN|ZH]. Наша документация состоит из следующих разделов:
llama.cpp
и Ollama
;vLLM
, TGI
и т. д.;За последние три месяца с момента выпуска Qwen2 множество разработчиков создали новые модели на основе языковых моделей Qwen2, предоставив нам ценные отзывы. В этот период мы сосредоточились на создании более умных и знающих языковых моделей. Сегодня мы рады представить новейшее дополнение к семейству Qwen: Qwen2.5 .
Подробные результаты оценки представлены в этом документе. блог.
Требования к памяти графического процессора и соответствующую пропускную способность смотрите здесь.
Рекомендуется последняя версия 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
может помочь вам решить проблемы, связанные с загрузкой контрольных точек.
После установки ollama вы можете запустить службу ollama с помощью следующей команды:
ollama serve
# You need to keep this service running whenever you are using ollama
Чтобы получить контрольную точку модели и запустить ее, используйте команду ollama run
. Вы можете указать размер модели, добавив суффикс к qwen2.5
, например :0.5b
, :1.5b
, :7b
или :72b
:
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
Вы также можете получить доступ к сервису ollama через его API, совместимый с OpenAI. Обратите внимание, что вам необходимо (1) поддерживать работу ollama serve
во время использования API и (2) выполнить команду ollama run qwen2.5:7b
перед использованием этого API, чтобы убедиться, что контрольная точка модели подготовлена.
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' ,
)
Для получения дополнительной информации посетите сайт ollama.ai.
Загрузите предоставленные нами файлы GGUF или создайте их самостоятельно, и вы сможете напрямую использовать их с последней версией 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
. Ищите модели, заканчивающиеся на MLX, на HuggingFace Hub, например Qwen2.5-7B-Instruct-MLX.
Qwen2.5 уже поддерживается lmstudio.ai. Вы можете напрямую использовать LMStudio с нашими файлами GGUF.
Qwen2.5 уже поддерживается набором инструментов OpenVINO. Вы можете установить и запустить этот пример чат-бота с процессором Intel, встроенным графическим процессором или дискретным графическим процессором.
Вы можете напрямую использовать text-generation-webui
для создания демонстрации веб-интерфейса. Если вы используете GGUF, не забудьте установить последнюю версию llama.cpp
с поддержкой Qwen2.5.
Клонируйте llamafile
, запустите установку исходного кода, а затем создайте свой собственный llamafile с файлом GGUF, следуя инструкциям здесь. Вы можете запустить одну строку команды, скажем, ./qwen.llamafile
, чтобы создать демо-версию.
Qwen2.5 поддерживается несколькими платформами вывода. Здесь мы демонстрируем использование vLLM
, SGLang
и OpenLLM
.
Предупреждение
Не работает с vllm 0.6.3.
Мы советуем вам использовать последнюю версию vLLM для создания службы API, совместимой с OpenAI, включая поддержку использования инструментов. Запустите сервер с моделью чата, например 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 )
Предупреждение
OpenAI-совместимые API, предоставляемые SGLang, в настоящее время НЕ поддерживают использование инструментов или вызов функций .
Пожалуйста, установите SGLang
из исходного кода. Как и в случае с vLLM
, вам необходимо запустить сервер и использовать сервис API, совместимый с OpenAI. Сначала запустите сервер:
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 как API-интерфейсы, совместимые с OpenAI. Вы можете запустить сервер модели, используя openllm serve
. Например:
openllm serve qwen2.5:7b
Сервер активен по адресу http://localhost:3000/
и предоставляет API-интерфейсы, совместимые с OpenAI. Вы можете создать клиент OpenAI для вызова его API чата. Для получения дополнительной информации обратитесь к нашей документации.
Что касается возможностей использования инструментов, мы рекомендуем взглянуть на Qwen-Agent, который предоставляет оболочку этих API для поддержки использования инструментов или вызова функций. Использование инструмента с Qwen2.5 также может осуществляться с transformers
Hugging Face, 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!