- กอดหน้า | - โมเดลสโคป | - กระดาษ (TBD) | - บล็อก | เอกสารประกอบ
สาธิต | WeChat (微信) | - ความไม่ลงรอยกัน
เยี่ยมชมองค์กร Hugging Face หรือ ModelScope ของเรา (คลิกลิงก์ด้านบน) ค้นหาจุดตรวจสอบด้วยชื่อที่ขึ้นต้นด้วย Qwen2.5-
หรือเยี่ยมชมคอลเลกชัน Qwen2.5 แล้วคุณจะพบทุกสิ่งที่คุณต้องการ! สนุก!
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Qwen2.5 โปรดอ่านเอกสารประกอบของเรา [EN|ZH] เอกสารของเราประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:
llama.cpp
และ Ollama
vLLM
, TGI
ฯลฯในช่วงสามเดือนที่ผ่านมานับตั้งแต่ Qwen2 เปิดตัว นักพัฒนาจำนวนมากได้สร้างโมเดลใหม่บนโมเดลภาษา Qwen2 ซึ่งให้ข้อเสนอแนะอันมีค่าแก่เรา ในช่วงเวลานี้ เราได้มุ่งเน้นไปที่การสร้างแบบจำลองภาษาที่ชาญฉลาดและมีความรู้มากขึ้น วันนี้เรารู้สึกตื่นเต้นที่จะเปิดตัวผลิตภัณฑ์ใหม่ล่าสุดในตระกูล Qwen: Qwen2.5
มีการรายงานผลการประเมินโดยละเอียดในนี้ ? บล็อก
สำหรับข้อกำหนดเกี่ยวกับหน่วยความจำ GPU และปริมาณงานที่เกี่ยวข้อง ดูผลลัพธ์ที่นี่
แนะนำให้ใช้ 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 CPU, GPU ในตัว หรือ GPU แยก
คุณสามารถใช้ text-generation-webui
ได้โดยตรงเพื่อสร้างการสาธิต UI ของเว็บ หากคุณใช้ 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
จากนั้นใช้ Chat 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 )
คำเตือน
API ที่เข้ากันได้กับ OpenAI ที่จัดทำโดย 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 ซึ่งมี wrapper ล้อมรอบ 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 ของเรา!