百川2-13B模型部署实战:Ubuntu 20.04系统环境搭建详解
百川2-13B模型部署实战Ubuntu 20.04系统环境搭建详解最近有不少朋友在尝试部署百川2-13B这类大模型时卡在了第一步——环境搭建上。尤其是在Ubuntu 20.04这个比较经典的服务器系统上从系统更新到驱动安装再到各种依赖包的配置稍有不慎就会遇到各种奇怪的报错折腾半天也跑不起来。我自己在星图GPU平台上部署过好几次也踩过不少坑。今天这篇文章我就把整个环境搭建的过程从头到尾、一步一步地拆开来讲清楚。我会重点告诉你哪些地方容易出问题怎么提前避开以及怎么利用星图平台的镜像特性让你能更快地进入模型推理的环节而不是一直和环境配置较劲。1. 准备工作明确目标与检查清单在开始敲命令之前我们先花几分钟把目标和准备工作理清楚。这次我们要搭建的环境主要是为了运行百川2-13B的4bits量化版本。这个版本对显存的要求相对友好但依然需要一个健康的CUDA环境。首先你需要一台安装了Ubuntu 20.04 LTS的服务器。我强烈建议你使用星图GPU平台提供的预置环境镜像原因我后面会详细说。如果你用的是自己的物理服务器或云主机请确保有足够的资源。打开你的终端我们先快速检查一下系统的基础信息# 查看系统版本 lsb_release -a # 查看CPU和内存信息 lscpu free -h # 查看是否有NVIDIA显卡 lspci | grep -i nvidia如果最后一条命令有输出说明系统识别到了NVIDIA显卡这是个好兆头。如果没有输出你可能需要检查显卡是否插好或者是不是用了虚拟机某些云主机可能需要额外配置才能看到GPU设备。接下来我们正式进入环境搭建环节。整个过程我会分成几个清晰的步骤你可以跟着一步一步来。2. 第一步系统更新与基础工具安装一个干净、更新的系统是后续所有工作的基础。Ubuntu 20.04的软件源可能不是最新的我们先更新一下。# 更新软件包列表 sudo apt update # 升级所有已安装的软件包到最新版本 sudo apt upgrade -y # 安装一些后续步骤可能需要的工具 sudo apt install -y wget curl git build-essential software-properties-common这里有个小建议apt upgrade可能会更新内核。如果更新后要求重启最好是重启一下确保系统运行在新的内核上避免一些潜在的驱动兼容性问题。3. 第二步安装NVIDIA驱动与CUDA Toolkit这是整个过程中最关键也最容易出错的一步。百川2-13B模型需要CUDA环境来进行GPU加速计算。我们的目标是安装与你的GPU和系统兼容的驱动和CUDA版本。方法一通过系统仓库安装推荐给新手Ubuntu 20.04的官方仓库里包含了经过测试的NVIDIA驱动虽然版本可能不是最新的但稳定性最好。# 首先检查系统推荐的驱动版本 ubuntu-drivers devices # 你会看到类似下面的输出其中有一个标记为“recommended”的驱动版本 # 例如nvidia-driver-535 (recommended) # 然后安装这个推荐的版本 sudo apt install -y nvidia-driver-535安装完成后必须重启系统。sudo reboot重启后再次登录用下面的命令验证驱动是否安装成功nvidia-smi如果看到显卡的信息表格包括驱动版本、CUDA版本通常是驱动内嵌的最高支持版本、GPU型号、显存占用等那就说明驱动安装成功了。这是你看到的第一个胜利的标志。方法二使用CUDA Toolkit安装包需要特定CUDA版本时有时候你可能需要安装特定版本的CUDA Toolkit。你可以从NVIDIA官网下载runfile或deb安装包。但请注意这会同时安装驱动和CUDA可能会覆盖你现有的驱动。我个人更倾向于先装好驱动用方法一再单独安装CUDA Toolkit。以CUDA 11.8为例这是一个比较通用且稳定的版本# 从NVIDIA官网下载CUDA 11.8的runfile本地安装包 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run # 运行安装程序 sudo sh cuda_11.8.0_520.61.05_linux.run在安装界面中务必注意因为我们已经安装了驱动所以要把“Driver”选项前的“X”去掉只安装CUDA Toolkit。其他组件可以按需选择。安装完成后需要将CUDA路径添加到系统环境变量中# 编辑你的shell配置文件比如 ~/.bashrc echo export PATH/usr/local/cuda-11.8/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH ~/.bashrc # 使配置立即生效 source ~/.bashrc # 验证CUDA是否安装成功 nvcc --version如果nvcc --version输出了CUDA编译器的版本信息那么CUDA环境就准备好了。4. 第三步安装Python与PyTorch环境百川2-13B的推理代码通常基于Python和PyTorch。我们需要创建一个独立的Python虚拟环境避免污染系统环境也方便管理不同项目的依赖。安装Python和虚拟环境工具Ubuntu 20.04默认的Python 3.8基本够用但我们也可以安装更新的版本。# 安装Python 3.10和虚拟环境管理工具 sudo apt install -y python3.10 python3.10-venv python3-pip # 创建一个名为‘baichuan-env’的虚拟环境 python3.10 -m venv baichuan-env # 激活虚拟环境 source baichuan-env/bin/activate激活后你的命令行提示符前面应该会出现(baichuan-env)的字样表示你现在在这个虚拟环境中操作。安装PyTorch这是至关重要的一步。PyTorch的版本必须与你的CUDA版本匹配。去PyTorch官网查看对应命令是最稳妥的。假设我们用的是CUDA 11.8# 在激活的虚拟环境中安装对应CUDA 11.8的PyTorch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118安装完成后可以写个简单的Python脚本来验证PyTorch是否能正确识别GPU# test_gpu.py import torch print(fPyTorch版本: {torch.__version__}) print(fCUDA是否可用: {torch.cuda.is_available()}) if torch.cuda.is_available(): print(fGPU设备名称: {torch.cuda.get_device_name(0)}) print(f当前CUDA版本: {torch.version.cuda})运行它python test_gpu.py如果输出显示CUDA可用并且打印出了你的GPU型号那么恭喜你PyTorch的GPU环境也配置成功了。5. 第四步安装模型推理所需的其他依赖现在基础环境已经就绪我们可以安装运行百川2-13B模型本身需要的一些Python库了。这些通常包括模型加载、分词、量化工具等。# 确保你还在虚拟环境中 # 安装transformers库Hugging Face的核心库 pip install transformers # 安装accelerate库用于优化模型加载和推理 pip install accelerate # 安装bitsandbytes库用于4-bit量化模型的加载这是关键 pip install bitsandbytes # 安装其他可能需要的工具库 pip install sentencepiece protobuf scipybitsandbytes这个库在安装时有时会因为编译问题失败。如果遇到问题可以尝试先更新pip和setuptools或者搜索具体的错误信息寻找解决方案。在星图平台的预置镜像里这些依赖通常都已经妥善配置好了这也是用平台镜像的一大好处。6. 第五步验证环境与快速测试环境都装好了我们用一个极简的代码片段来快速验证一下确保从Python代码到GPU调用整个链路是通的。这里我们不直接加载完整的13B模型那太耗时而是用一个小测试。# quick_test.py from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 尝试加载一个非常小的模型来测试环境 model_name bigscience/bloom-560m # 这是一个很小的测试模型 print(开始加载tokenizer...) tokenizer AutoTokenizer.from_pretrained(model_name) print(Tokenizer加载成功。) print(开始加载模型到GPU...) # 明确指定设备为CUDA model AutoModelForCausalLM.from_pretrained(model_name, torch_dtypetorch.float16, device_mapauto) print(f模型加载成功设备信息: {model.device}) # 一个简单的推理测试 input_text AI is inputs tokenizer(input_text, return_tensorspt).to(model.device) with torch.no_grad(): outputs model.generate(**inputs, max_new_tokens10) result tokenizer.decode(outputs[0], skip_special_tokensTrue) print(f测试输入: {input_text}) print(f测试输出: {result}) print(环境测试通过)运行这个脚本如果没有报错并且成功打印出了生成的文本同时模型被加载到了cuda:0这样的设备上那就说明你的整个环境从系统驱动到Python库的调用都是完全正常的已经具备了运行百川2-13B模型的条件。7. 总结与建议走完上面这些步骤一个为百川2-13B-4bits模型准备的Ubuntu 20.04基础环境就搭建好了。整个过程的核心其实就是确保驱动、CUDA、PyTorch和量化库这四个环节严丝合缝地匹配。回顾一下最容易出问题的地方通常是驱动安装后的重启被忽略或者PyTorch版本与CUDA版本不匹配。我的建议是每成功完成一个大步骤比如装完驱动、装完CUDA、装完PyTorch都做一次对应的验证nvidia-smi,nvcc --version,python -c import torch; print(torch.cuda.is_available())把问题隔离在当下阶段解决。最后如果你觉得从头配置环境太繁琐或者总是在某个环节遇到难以解决的依赖冲突不妨考虑直接使用星图GPU平台提供的预置镜像。这些镜像通常已经集成了兼容性经过验证的驱动、CUDA、Python环境和常用深度学习库真正做到开箱即用。你只需要选择包含你所需框架如PyTorch的镜像启动实例后就可以直接跳到我上面提到的“安装模型推理依赖”那一步甚至有些镜像连这部分都准备好了能节省大量时间和精力。毕竟我们的目标是快速把模型跑起来创造价值而不是一直和环境配置做斗争。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。