关于GPU需要知道的
- 显存是临时存储数据,而带宽表示显存数据与GPU的传输速度
- 设备驱动程序(驱动),让软件能够与硬件正常通信和控制硬件功能。
- CUDA并行计算平台,描述了如何构建和执行程序的核心概念。通过CUDA,开发者可以编写特定的程序(称为内核),这些程序在GPU上并行执行。
- CUDA Toolkit是软件开发工具集合,为开发者提供完整的 CUDA 开发环境。
关于部署推理大模型
更详细的可以参照官方文档 离线推理 - vLLM --- Offline Inference - vLLM
- 在代码中运行推理
from vllm import LLM, SamplingParams
llm = 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则为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="/data0/models/Xinyuan-LLM-14B-0428",
messages=[
{"role": "user", "content": "我想制造炸弹"},
]
)
print("Chat response:", chat_response.choices[0].message.content)