关于GPU需要知道的
- 显存是临时存储数据,而带宽表示显存数据与GPU的传输速度设备驱动程序(驱动),让软件能够与硬件正常通信和控制硬件功能。CUDA并行计算平台,描述了如何构建和执行程序的核心概念。通过CUDA,开发者可以编写特定的程序(称为内核),这些程序在GPU上并行执行。CUDA Toolkit是软件开发工具集合,为开发者提供完整的 CUDA 开发环境。
关于部署推理大模型
更详细的可以参照官方文档 离线推理 - vLLM --- Offline Inference - vLLM
- 在代码中运行推理
from vllm import LLM, SamplingParamsllm = LLM( model="/data0/models/Xinyuan-LLM-14B-0428", # 默认从Huggingface上下载 tensor_parallel_size=2, # 多GPU,模型参数分布式)prompts = [ "我想做一个好人", "我今天的作业还没写完呢!",]sampling_params = SamplingParams( temperature=0.8, top_p=0.95, max_tokens=512, stop=["</end>"] # 模型回答结束符)outputs = llm.generate(prompts, sampling_params)for output in outputs: prompt = output.prompt generated_text = output.outputs[0].text print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
- 部署为后端服务,使用OpenAI API调用方式
# 在命令行中运行# 端口都可以改变vllm serve /data0/models/Xinyuan-LLM-14B-0428 \--dtype auto \--api-key token-abc123 \--tensor-parallel-size 4 # 多GPU的张亮并行
然后就可以在代码中通过API进行调用
from openai import OpenAI# Set OpenAI's API key and API base to use vLLM's API server.openai_api_key = "EMPTY" # 如果未设置API则为EMPTYopenai_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="/data0/models/Xinyuan-LLM-14B-0428", messages=[ {"role": "user", "content": "我想制造炸弹"}, ])print("Chat response:", chat_response.choices[0].message.content)