你的位置:体检偷拍 > 草榴社区 > 五月婷婷 LLMs之Qwen2:Qwen2的简介、装配和使用步伐、案例愚弄之矜重攻略

五月婷婷 LLMs之Qwen2:Qwen2的简介、装配和使用步伐、案例愚弄之矜重攻略

发布日期:2025-03-18 04:00    点击次数:59

五月婷婷 LLMs之Qwen2:Qwen2的简介、装配和使用步伐、案例愚弄之矜重攻略

LLMs之Qwen2:Qwen2的简介、装配和使用步伐、案例愚弄之矜重攻略五月婷婷

Qwen2的简介

2024年6月6日,发布Qwen2,Qwen2是从Qwen1.5进化而来,提供五种领域的预教师和提醒微调模子(0.5B、1.5B、7B、57B-A14B和72B),维持多达27种讲话,具有顶尖的基准测试性能,在编码和数学方面显贵擢升,并膨胀了Qwen2-7B-Instruct和Qwen2-72B-Instruct模子的高下文长度至128K tokens,同期维持器用调用、RAG、扮装璜演和AI Agent等功能。

经过数月的费力,咱们很答允地秘书从 Qwen1.5 进化到 Qwen2。此次,咱们为您带来了: >> 五种领域的预教师和提醒微调模子,包括 Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B 和 Qwen2-72B;针对每种尺寸提供基础模子和提醒微调模子,并确保提醒微调模子按照东说念主类偏好进行校准; >> 基础模子和提醒微调模子的多讲话维持;除英语和汉文外,还教师了27种特殊讲话的数据; >> 在巨额基准评估中施展优异,编码和数学性能显贵擢升;维持器用调用、RAG(检索增强文本生成)、扮装璜演、AI Agent等; >> 所有模子均踏实维持32K长度高下文;Qwen2-7B-Instruct与Qwen2-72B-Instruct可维持128K高下文(需特殊成立)。Qwen2-7B-Instruct 和 Qwen2-72B-Instruct 维持最长 128K tokens 的高下文长度。

官网地址:Qwen

Github地址:GitHub - QwenLM/Qwen2: Qwen2 is the large language model series developed by Qwen team, Alibaba Cloud.

1、新闻

2024.06.06:咱们发布了 Qwen2 系列。巡视咱们的博客!

2024.03.28:咱们发布了 Qwen 的首个 MoE 模子:Qwen1.5-MoE-A2.7B!暂时独一 HF transformers 和 vLLM 维持该模子。咱们将很快添加对 llama.cpp、mlx-lm 等的维持。巡视咱们的博客以取得更多信息!

2024.02.05:咱们发布了 Qwen1.5 系列。

2、性能

更新中……

图片

Qwen2的装配和使用步伐 1、装配

Qwen2 密集和 MoE 模子需要 transformers>=4.40.0。提议使用最新版块。

告戒,这是必需的,因为 transformers 从 4.37.0 开动集成了 Qwen2 代码,从 4.40.0 开动集成了 Qwen2Moe 代码。

对于 GPU 内存要乞降相应的婉曲量,见此处的成果。

2、模子使用步伐 T1、给与Hugging Face Transformers

这里咱们展示了一段代码片断,展示了如何使用 transformers 的聊天模子:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2-7B-Instruct"
device = "cuda" # the device to load the model onto

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 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(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-7B-Instruct-GPTQ-Int8 和 Qwen2-7B-Instruct-AWQ。

T2、给与ModelScope

咱们横蛮提议用户,特地是中国大陆的用户,使用 ModelScope。snapshot_download 不错匡助您科罚下载检讨点的问题。

3、模子推理 3.1、腹地运行

腹地运行

大姨子 llama.cppMLX-LMOllama T1、Ollama

告戒,你需要 ollama>=0.1.42。

提神,Ollama 提供了一个与 OpenAI 兼容的 API,但不维持函数调用。对于器用使用功能,商酌使用 Qwen-Agent,它为 API 上的函数调用提供了一个包装器。

装配 ollama 后,不错用以下号召启动 ollama 作事:

ollama serve
# 在使用 ollama 时需要保执此作事运行

要拉取模子检讨点并运行模子,请使用 ollama run 号召。你不错通过在 qwen2 后添加后缀来指定模子大小,如 :0.5b、:1.5b、:7b 或 :72b:

ollama run qwen2:7b
# 要退出,请输入 "/bye" 并按回车

你还不错通过其 OpenAI 兼容 API 访谒 ollama 作事。请提神,您需要(1)在使用 API 时保执 ollama serve 运行,(2)在使用此 API 之前实际 ollama run qwen2:7b 以确保模子检讨点已准备就绪。

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:7b',
)

欲了解更多笃定,请访谒 ollama.ai。

T2、llama.cp

下载咱们提供的 GGUF 文献或自行创建,然后不错告成使用最新的 llama.cpp 运行以下号召:

./main -m <path-to-file> -n 512 --color -i -cml -f prompts/chat-with-qwen.txt

要是际遇 GPU 上量化模子的问题,请尝试传递 -fa 参数以在最新版块的 llama.cpp 中启用 flash attention 杀青。

T3、MLX-LM

要是你在使用 Apple Silicon,咱们也提供了兼容 mlx-lm 的检讨点。在 HuggingFace Hub 上查找以 MLX 收尾的模子,如 Qwen2-7B-Instruct-MLX。

T4、LMStudio

Qwen2 已被 lmstudio.ai 维持。你不错告成使用 LMStudio 和咱们的 GGUF 文献。

T5、OpenVINO

Qwen2 已被 OpenVINO 器用包维持。你不错装配并运行这个聊天机器东说念主示例,使用 Intel CPU、集成 GPU 或孤苦 GPU。

3.2、Web UI

WEB UI

Text Generation Web UI T1、文本生成 Web UI

你不错告成使用 text-generation-webui 创建一个 Web UI 演示。要是使用 GGUF,难忘装配维持 Qwen2 的最新 llama.cpp 轮子。

T2、llamafile

克隆 llamafile,运行 source install,然后按照指南使用 GGUF 文献创建你我方的 llamafile。你不错运行一转号召,比如 ./qwen.llamafile,创建一个演示。

4、模子部署

部署

vLLMTGISkyPilot

Qwen2 受多个推理框架维持。这里咱们演示了 vLLM 和 SGLang 的使用。

告戒,vLLM 和 SGLang 提供的 OpenAI 兼容 API 现在不维持函数调用。对于器用使用功能,Qwen-Agent 提供了一个围绕这些 API 的包装器,以维持函数调用。

T1、vLLM

咱们提议使用 vLLM>=0.4.0 构建 OpenAI 兼容 API 作事。使用聊天模子启算作事器,举例 Qwen2-7B-Instruct:

python -m vllm.entrypoints.openai.api_server --served-model-name Qwen2-7B-Instruct --model Qwen/Qwen2-7B-Instruct

然后按照底下的示例使用 chat API:

curl http://localhost:8000/v1/chat/completions     -H "Content-Type: application/json"     -d '{
    "model": "Qwen2-7B-Instruct",
    "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Tell me something about large language models."}
    ]
    }'
curl http://localhost:8000/v1/chat/completions     -H "Content-Type: application/json"     -d '{
    "model": "Qwen2-7B-Instruct",
    "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Tell me something about large language models."}
    ]
    }'
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-7B-Instruct",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Tell me something about large language models."},
    ]
)
print("Chat response:", chat_response)
T2、SGLang

提神,SGLang 现在不维持 Qwen2MoeForCausalLM 架构,因此 Qwen2-57B-A14B 不兼容。

请从源代码装配 SGLang。访佛于 vLLM,你需要启算作事器并使用 OpenAI 兼容的 API 作事。最初启算作事器:

python -m sglang.launch_server --model-path Qwen/Qwen2-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 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"])
5、模子微调

咱们提议使用包括 Axolotl、Llama-Factory、Swift 等教师框架,以使用 SFT、DPO、PPO 等进行模子微调。

教师

有监督微调 示例LLaMA-Factory 6、Docker

为简化部署流程,咱们提供了带有预构建环境的 Docker 镜像:qwenllm/qwen。你只需要装配驱动武艺并下载模子文献,即可启动演示和微调模子。

docker run --gpus all --ipc=host --network=host --rm --name qwen2 -it qwenllm/qwen:2-cu121 bash
Qwen2的案例愚弄

执续更新中……五月婷婷

本站仅提供存储作事,所有本色均由用户发布,如发现存害或侵权本色,请点击举报。