自定义 CUDA 和 Python 容器环境,用于 Diffusers 和 vLLM 大模型推理 🐳🚀
随着深度学习大模型在各类应用中的爆发,合理搭建高性能的推理环境显得尤为重要。本文结合 NVIDIA 官方 CUDA 容器和 Python 环境,讲解如何定制一个适合 Diffusers(用于图像生成)和 vLLM(高性能语言模型推理)的容器环境,助你快速搭建大模型推理平台。
一、背景简介:CUDA 与容器 🤔
- CUDA:NVIDIA 推出的 GPU 并行计算平台和编程模型,极大提升计算密集型任务速度。
- NVIDIA Container Runtime:专为容器运行时提供 GPU 访问支持,确保容器内的程序能利用宿主机 GPU。
- CUDA 容器镜像:NVIDIA 官方提供,包含 CUDA 运行时和开发工具,方便开发者搭建环境。
我们用 Docker + NVIDIA Container Toolkit 来运行基于 GPU 的容器。
二、检查当前 NVIDIA Container Runtime 版本 🛠️
nvidia-container-runtime --version
示例输出:
NVIDIA Container Runtime version 1.17.6
commit: e627eb2e21e167988e04c0579a1c941c1e263ff6
spec: 1.2.1
三、CUDA Runtime 与 NVIDIA Container Runtime 区别 ⚠️
项目 | 说明 |
---|---|
CUDA Runtime | 提供 GPU 编程库和驱动接口,供程序调用 GPU 功能 |
NVIDIA Container Runtime | Docker 等容器运行时使用的插件,允许容器访问宿主机 GPU |
简而言之,CUDA Runtime 是软件库,NVIDIA Container Runtime 是连接容器和宿主机 GPU 的桥梁。
四、运行 CUDA 容器示例 🐳
docker run -itd --name cuda --runtime=nvidia --gpus all --network=host nvidia/cuda:12.4.0-devel-ubuntu22.04 bash
参数说明:
--runtime=nvidia
:使用 NVIDIA 容器运行时--gpus all
:分配所有 GPU 资源--network=host
:容器与宿主机共享网络-itd
:交互式终端并后台运行--name cuda
:容器名称
五、容器中安装 Python 3.11 🐍
进入容器后执行:
apt update && apt install -y software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt update
apt install -y python3.11 python3.11-distutils python3-pip
python3.11 -m pip install --upgrade pip
验证版本:
python3.11 --version
六、Diffusers 安装与示例 🎨
Diffusers 是 HuggingFace 推出的开源库,用于基于扩散模型进行图像生成。
python3.11 -m pip install diffusers transformers accelerate
示例代码(生成一张图像):
from diffusers import StableDiffusionPipeline
import torchpipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16)
pipe.to("cuda")image = pipe("a beautiful landscape", guidance_scale=7.5).images[0]
image.save("output.png")
七、vLLM 简单说明 🚀
vLLM 是 Salesforce Research 开发的高性能大语言模型推理库,优化了 Transformer 模型的推理速度和吞吐量。
为什么用 vLLM?
- 高性能:智能调度,充分利用 GPU 资源
- 低延迟:异步推理,响应快速
- 兼容性:支持 HuggingFace Transformers
vLLM 与 CUDA 和容器的关系
- 依赖 CUDA 进行 GPU 加速
- 通过 NVIDIA Container Runtime 访问宿主机 GPU
- 容器内 CUDA 版本需与驱动匹配
容器中安装 vLLM
python3.11 -m pip install vllm
简单推理示例
from vllm import LLMllm = LLM(model="facebook/opt-1.3b", tensor_parallel_size=1)
for outputs in llm.generate(["Hello, vLLM!"]):print(outputs.text)
八、总结 🌟
- 通过 NVIDIA 官方 CUDA 容器快速搭建 GPU 加速环境
- 自定义安装 Python 3.11,满足最新大模型库需求
- 安装并使用 Diffusers 实现图像生成推理
- 了解并部署 vLLM,高效进行大语言模型推理
- 使用 Docker + NVIDIA Container Runtime 保证容器内 GPU 访问
这套流程适合大模型开发者和 AI 工程师,助力科研和生产高效推理!
如果你喜欢这篇分享,欢迎点赞👍、收藏⭐、关注我,获得更多深度技术干货!