所有文章 > 日积月累 > Qwen2.5 API Key 获取指南
Qwen2.5 API Key 获取指南

Qwen2.5 API Key 获取指南

Qwen2.5模型简介

Qwen2.5是阿里云推出的一款超大规模语言模型,基于阿里巴巴达摩院在自然语言处理领域的深厚积累,采用了先进的算法和优化的模型结构。Qwen2.5不仅能够理解和生成自然语言,还可以处理代码、表格等文本,适用于多种自然语言处理任务,包括文本分类、文本生成、情感分析等。它的灵活性和强大归纳能力使其能够支持各种定制化需求,为用户提供个性化的服务和解决方案。阿里云登录

Qwen2.5模型

Qwen2.5模型特点

Qwen2.5模型具有多种显著特点,使其在自然语言处理领域中脱颖而出:

  • 强大的归纳和理解能力:能够处理多种复杂的自然语言任务,不仅限于文本分类和生成。
  • 高效的推理能力:在与其他模型如Llama-3.1-405B的对比中,表现出色,拥有更高的准确性和速度。
  • 丰富的应用场景:适用于智能客服、内容生成、代码生成等多个领域,成为用户便捷的工具。
  • 灵活的定制化能力:支持用户根据具体需求进行模型扩展和定制,提供个性化解决方案。

Qwen2.5模型版本分类

Qwen2.5系列模型分为多个版本,以适应不同的任务需求:

  • Qwen2.5-14B:基础版本,适用于中等复杂度的任务。
  • Qwen2.5-32B:增强版本,用于更复杂和高级的任务。
  • Qwen2.5-Plus:具有更强推理能力和速度,适合中等复杂任务。
  • Qwen2.5-Turbo:速度最快且成本较低,适合简单任务。

每个版本都有其特定的使用场景和优势,用户可以根据自身需求选择合适的版本进行使用。模型免费额度赠送

模型版本

环境准备

在使用Qwen2.5模型之前,需要确保环境准备充分,包括安装必要的Python库、获取模型资源、安装Hugging Face Transformers库及其依赖。以下是步骤:

安装Python库

pip install torch
pip install transformers
pip install requests

这些库包括:

  • torch:用于深度学习计算,支持GPU加速。
  • transformers:用于加载各种预训练模型。
  • requests:用于发送HTTP请求,获取模型资源。

获取模型资源

从Hugging Face模型库下载Qwen2.5模型:

curl -LO https://huggingface.co/second-state/Qwen2.5-14B-Instruct-GGUF/resolve/main/Qwen2.5-14B-Instruct-Q5_K_M.gguf

安装Transformers库

确保安装最新版本的Transformers库:

from transformers import AutoModelForCausalLM, AutoTokenizer

print("Transformers库安装成功!")

安装其他依赖库

pip install accelerate
pip install sentencepiece

这些库将帮助我们更高效地加载和使用Qwen2.5模型。创建API key

模型加载与部署

在使用Qwen2.5模型之前,需先加载模型和分词器,并将其部署到指定设备上(如CPU或GPU)。

加载模型和分词器

使用Transformers库加载模型和分词器:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2.5-7B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")

模型部署到设备

选择将模型部署到CPU或GPU:

import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

加载基础和指令模型

基础模型用于广泛推理任务,指令模型用于特定任务:

model_name = "Qwen/Qwen2.5-7B"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")

model_name = "Qwen/Qwen2.5-7B-Instruct"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")

推理过程

使用Qwen2.5模型进行推理需按以下步骤:

构建推理输入

准备模型输入,包括问题描述和系统指令:

prompt = "Find the value of $x$ that satisfies the equation $4x + 5 = 6x + 7$."
messages = [
    {"role": "system", "content": "Please reason step by step, and put your final answer within boxed{}."},
    {"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]

处理生成的输出

解析和处理模型的推理结果:

print(response)

使用TextStreamer进行流式生成

在需要实时反馈的应用场景中,可使用TextStreamer:

from transformers import TextStreamer

streamer = TextStreamer(tokenizer, skip_special_tokens=True)
model.generate(**model_inputs, max_new_tokens=512, streamer=streamer)

API调用

通过API可方便地与Qwen2.5模型进行交互,以下为步骤:

注册阿里云账号与创建API Key

访问阿里云官网注册账号,创建API Key,获取AccessKey ID和AccessKey Secret,并妥善保存。

设置API密钥

在项目中设置API密钥:

import os

os.environ['ALIYUN_ACCESS_KEY_ID'] = 'your_access_key_id'
os.environ['ALIYUN_ACCESS_KEY_SECRET'] = 'your_access_key_secret'

创建API客户端

使用阿里云SDK创建客户端对象:

from aliyunsdkcore.client import AcsClient

client = AcsClient(
    os.environ['ALIYUN_ACCESS_KEY_ID'],
    os.environ['ALIYUN_ACCESS_KEY_SECRET'],
    'cn-hangzhou'
)

发送聊天请求

通过API发送请求并获取响应:

from aliyunsdkcore.request import RpcRequest

request = RpcRequest('Qwen', '2023-09-01', 'Chat')
request.set_method('POST')

request.add_query_param('Prompt', '你好,通义千问!')
request.add_query_param('MaxTokens', '100')
request.add_query_param('Temperature', '0.7')

response = client.do_action_with_exception(request)
print(response)

打印响应结果

解析并打印API响应:

import json

response_json = json.loads(response)
print(json.dumps(response_json, ensure_ascii=False, indent=2))

部署与优化

在实际应用中,模型的部署与优化至关重要,涉及如何高效地部署和利用工具提升性能。

使用vLLM、SGLang、Ollama和Transformers

这些工具支持离线推理、在线推理和多GPU分布式服务,显著提高模型性能和效率。

vLLM部署模型

安装vLLM并加载Qwen2.5模型:

pip install vllm
from vllm import LLM, SamplingParams

llm = LLM(model="path/to/qwen2.5")

生成文本:

sampling_params = SamplingParams(temperature=0.8, top_p=0.9)
prompts = ["Hello, how are you?"]
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
    print(output.text)

性能评估

评估Qwen2.5模型性能需设定多个基准,如准确性、连贯性、多样性、速度和资源消耗。

评估基准与方法

通过人工评估、自动评估、基准测试和性能测试,全面评估模型的表现。

评估结果

  • 准确性:准确率达90%以上。
  • 连贯性:评分85分(满分100)。
  • 多样性:评分80分(满分100)。
  • 速度:每秒生成约1000个token。
  • 资源消耗:内存占用约10GB,CPU/GPU使用率50%左右。

输入与输出参数

调用Qwen2.5模型时需了解输入参数和返回参数,确保正确处理模型输出。

OpenAI Python SDK输入参数

配置模型名称、对话历史记录、核采样方法概率阈值等参数。

import openai

openai.api_key = "your_api_key_here"

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]

response = openai.ChatCompletion.create(
    model="Qwen2.5-Math-72B-Instruct",
    messages=messages,
    top_p=0.9,
    temperature=0.7,
    presence_penalty=0.5,
    max_tokens=50,
    seed=42,
    stream=False,
    stop=["n"]
)

print(response.choices[0].message.content)

函数调用与示例代码

Qwen2.5支持函数调用,通过Qwen-Agent和Hugging Face Transformers实现更灵活高效的推理。

使用Qwen-Agent

安装Qwen-Agent库并准备模型和API:

pip install -U qwen-agent
from qwen_agent.llm import get_chat_model

llm = get_chat_model({
    "model": "Qwen/Qwen2.5-7B-Instruct",
    "model_server": "http://localhost:8000/v1",
    "api_key": "EMPTY",
})

示例代码

完整示例代码展示如何使用Python调用Qwen2.5模型,从安装必要库到生成推理输出的全过程。

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 = "请给我一个关于大型语言模型的简短介绍。"
messages = [{"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]

print(response)

常见问题

如何处理API调用错误

API调用错误可能由网络问题、API密钥问题或请求格式问题引起。处理方法包括检查网络连接、使用重试机制、检查API密钥和请求格式。

如何优化API调用性能

通过使用缓存、批量处理、异步处理和优化网络请求,可以显著提高API调用性能。

FAQ

  1. 问:如何获取Qwen2.5的API Key?

    • 答:访问阿里云官网,注册账号后进入控制台创建API Key,并妥善保存。
  2. 问:Qwen2.5模型有哪些主要特点?

    • 答:Qwen2.5具有强大的归纳和理解能力、高效的推理能力、丰富的应用场景及灵活的定制化需求支持。
  3. 问:如何提高Qwen2.5模型的推理速度?

    • 答:可通过使用多GPU分布式服务和优化工具如vLLM、SGLang、Ollama来提升速度。
  4. 问:Qwen2.5模型适用于哪些任务?

    • 答:适用于文本分类、文本生成、情感分析、智能客服、内容生成和代码生成等任务。
  5. 问:如何处理Qwen2.5模型的输出?

    • 答:在模型生成输出后,应对其进行解析和处理,以确保结果符合预期。
#你可能也喜欢这些API文章!