Ubuntu20.04系统上部署SmallThinker-3B-Preview:保姆级安装与配置教程

Ubuntu20.04系统上部署SmallThinker-3B-Preview:保姆级安装与配置教程 Ubuntu20.04系统上部署SmallThinker-3B-Preview保姆级安装与配置教程最近有不少朋友在问想试试那个新出的开源小模型SmallThinker-3B-Preview但卡在了第一步——怎么在Ubuntu系统上把它跑起来。确实对于刚接触Linux环境或者AI部署的朋友来说从零开始配环境、下模型、写测试脚本每一步都可能遇到坑。我正好前段时间在自己的Ubuntu 20.04服务器上折腾了一遍把整个过程都走通了。今天就把我的安装笔记整理出来分享给大家。这篇教程的目标很简单让你能跟着步骤一步一步在自己的Ubuntu 20.04机器上成功运行起SmallThinker-3B-Preview并看到第一个推理结果。整个过程我会尽量讲得细一些把可能遇到的问题提前指出来。你不需要有特别深的Linux功底只要会基本的终端操作就行。1. 准备工作检查你的系统与硬件在开始安装之前我们先花几分钟确认一下你的机器是否满足基本要求。这能避免你做到一半才发现硬件不支持白白浪费时间。首先打开你的终端。在Ubuntu里你可以按CtrlAltT快捷键快速打开。第一步确认操作系统版本。在终端里输入下面的命令lsb_release -a你会看到类似这样的输出No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal重点看Release: 20.04这一行。这篇教程是基于Ubuntu 20.04 LTS写的这个版本比较稳定社区支持也好。如果你是18.04或者22.04大部分步骤也通用但个别软件包的名字可能会有点不同。第二步检查有没有NVIDIA显卡。SmallThinker这类模型推理用GPU跑会比CPU快很多。检查命令是lspci | grep -i nvidia如果输出了一行或多行信息比如NVIDIA Corporation GA102 [GeForce RTX 3090]那就说明你的机器有NVIDIA显卡。如果什么都没输出那你的机器可能没有独立显卡或者用的是AMD/Intel的显卡。没有NVIDIA显卡也没关系模型依然可以用CPU运行只是速度会慢一些。第三步查看显存大小如果有显卡的话。知道显存有多大很重要这决定了你能跑多大的模型。SmallThinker-3B-Preview在推理时大概需要6-8GB的显存。你可以用这个命令查看nvidia-smi如果你还没安装NVIDIA驱动这个命令可能会报错。没关系我们后面会装。如果你能成功运行在输出的表格里找到Memory-Usage那一栏就能看到显存总量和使用量了。准备工作做完如果你的系统是Ubuntu 20.04并且有至少8GB显存的NVIDIA显卡或准备用CPU那我们就可以正式开始安装了。2. 搭建基础环境安装系统依赖我们的目标是跑一个Python的AI模型所以第一步就是把Python环境和一些必要的系统工具准备好。更新软件包列表这是一个好习惯能确保我们安装的是最新的软件版本。sudo apt update安装Python 3.8和pipUbuntu 20.04默认可能已经装了Python 3.8但我们再确认一下并把Python包管理工具pip也装上。sudo apt install python3.8 python3.8-venv python3.8-dev python3-pip -y这里我们特意指定安装Python 3.8因为它的兼容性比较好。python3.8-dev包含了一些开发用的头文件后面编译某些Python包时会用到。安装CUDA工具包如果你有NVIDIA显卡CUDA是NVIDIA推出的并行计算平台我们的模型需要用它来在GPU上做计算。Ubuntu的仓库里提供了比较方便的安装方式。sudo apt install nvidia-cuda-toolkit -y安装完成后可以验证一下版本nvcc --version正常的话它会输出CUDA的版本号比如release 11.5。版本不是特别关键只要不是太老低于11.0就行。安装其他有用的系统工具我们还会用到git来克隆代码用wget或curl来下载文件也一并装上。sudo apt install git wget curl build-essential -ybuild-essential包含了一些基础的编译工具比如gcc和make有时候安装Python包会需要。基础环境到这里就差不多了。接下来我们要为这个项目创建一个独立、干净的Python虚拟环境这样不会和你系统里其他的Python项目互相干扰。3. 创建Python虚拟环境虚拟环境就像是一个独立的“小房间”里面装的Python包只在这个项目里有效。这非常有用尤其是当你同时玩好几个AI项目它们需要的包版本可能互相冲突的时候。创建一个新的虚拟环境我们先找个合适的地方。我习惯在用户主目录下建一个projects文件夹来放所有项目你也可以放在任何你喜欢的位置。cd ~ mkdir -p projects/smallthinker cd projects/smallthinker现在我们在~/projects/smallthinker这个目录下了。接下来用Python 3.8创建一个虚拟环境环境的名字叫venv这是一个常用名。python3.8 -m venv venv这行命令执行完当前目录下就会多出一个叫venv的文件夹里面就是一套独立的Python环境。激活虚拟环境创建好了我们得“进入”这个环境才能使用它。source venv/bin/activate激活后你会发现终端命令行的最前面多了一个(venv)的标记。这就说明你现在已经在这个虚拟环境里了之后所有pip install安装的包都会装到这个环境里而不是系统全局。升级pip环境里的pip可能不是最新版我们先把它升级一下避免后面安装包出问题。pip install --upgrade pip好了现在我们就有了一个干干净净、专属于SmallThinker项目的Python沙盒。接下来我们就要在这个沙盒里安装模型运行所需要的各种Python库了。4. 安装模型运行所需的Python库SmallThinker-3B-Preview是一个基于Transformer架构的大语言模型。要运行它我们需要安装一些核心的AI框架和工具。安装PyTorchPyTorch是目前最流行的深度学习框架之一很多模型都是基于它构建的。安装时要注意我们必须安装和CUDA版本匹配的PyTorch这样才能用GPU加速。如果你之前nvcc --version显示CUDA版本是11.x那么安装命令如下pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118这条命令会安装支持CUDA 11.8的PyTorch。如果你的CUDA是其他版本可以去PyTorch官网看看对应的安装命令。如果你没有GPU只想用CPU跑那么安装CPU版本的PyTorch会更轻量pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu安装过程会下载不少东西需要稍等一会儿。安装Hugging Face Transformers库Hugging Face的transformers库可以说是现在玩开源模型的“瑞士军刀”它提供了加载、使用成千上万种预训练模型的统一接口。SmallThinker的模型文件通常也托管在Hugging Face上用这个库加载最方便。pip install transformers安装其他辅助库我们可能还需要一些工具库来处理数据、加速计算等。pip install accelerate sentencepiece protobufaccelerate: Hugging Face出的一个库能简化模型在多GPU或混合精度下的运行。sentencepiece: 一些模型用来分词的工具。protobuf: 一种数据序列化工具某些模型文件会用到。安装完这些核心的Python环境就准备好了。你可以用下面的命令查看一下已安装的包pip list你应该能看到torch,transformers这些包的名字和版本号。5. 获取并加载SmallThinker-3B-Preview模型环境搭好了现在主角该上场了——把模型文件弄到本地来。从Hugging Face Hub下载模型最直接的方法就是用transformers库提供的from_pretrained方法。它会自动从Hugging Face的模型仓库下载模型权重和配置文件。我们写一个非常简单的Python脚本来做这件事同时也能验证我们的环境是否工作正常。在你项目的目录下~/projects/smallthinker创建一个新文件叫load_model.pynano load_model.py然后把下面的代码贴进去from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 指定模型的名字。SmallThinker-3B-Preview在Hugging Face上的仓库名通常是这样的。 model_name SmallThinker-3B-Preview print(f开始加载模型: {model_name}...) print(这可能会花几分钟需要下载模型文件大约6GB。) try: # 加载分词器 tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) # 加载模型本身 model AutoModelForCausalLM.from_pretrained( model_name, torch_dtypetorch.float16, # 使用半精度浮点数节省显存 device_mapauto, # 自动分配模型层到可用的GPU或CPU trust_remote_codeTrue ) print(✅ 模型加载成功) print(f模型使用的设备: {model.device}) print(f分词器词汇表大小: {tokenizer.vocab_size}) except Exception as e: print(f❌ 加载模型时出错: {e})按CtrlX然后按Y再按回车保存并退出nano编辑器。运行脚本下载模型在终端里运行这个脚本python load_model.py第一次运行你会看到大量的下载进度条因为它在从网上下载完整的模型权重大概6个GB。下载速度取决于你的网络。如果一切顺利最后会打印出“模型加载成功”以及模型被放到了哪个设备上比如cuda:0代表第一块GPU。如果遇到网络问题下载很慢或者失败你可以考虑检查网络连接或者换个网络环境试试。有些国内环境访问Hugging Face可能不稳定可以搜索一下配置镜像源的方法。这一步成功了就意味着最重的活儿已经干完了。模型已经安安稳稳地躺在你的硬盘里了。6. 进行第一次推理测试模型加载好了不试试它的“智商”怎么行我们来写一个最简单的对话脚本看看它会不会回应我们。创建一个新的测试文件test_inference.pynano test_inference.py输入以下内容from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 1. 加载我们之前已经下载好的模型和分词器这次从本地缓存加载会很快 model_name SmallThinker-3B-Preview tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_name, torch_dtypetorch.float16, device_mapauto, trust_remote_codeTrue ) # 2. 准备一个问题 prompt 请用一句话介绍一下你自己。 print(f我的问题: {prompt}) # 3. 将文字转换成模型能懂的“数字令牌”token inputs tokenizer(prompt, return_tensorspt).to(model.device) # 4. 让模型生成回答 with torch.no_grad(): # 推理时不计算梯度节省内存 outputs model.generate( **inputs, max_new_tokens100, # 最多生成100个新token do_sampleTrue, # 使用采样让回答更有创造性 temperature0.7, # 采样温度控制随机性 top_p0.9 # 核采样参数控制词汇选择范围 ) # 5. 把模型生成的数字令牌再转换回我们能看懂的文字 response tokenizer.decode(outputs[0], skip_special_tokensTrue) # 6. 打印结果 print(\n--- SmallThinker的回答 ---) print(response) print(--- 回答结束 ---)同样保存并退出编辑器。运行测试脚本在终端输入python test_inference.py这次运行应该很快因为模型已经加载到内存里了。你会先看到你的问题然后模型会开始“思考”终端可能会卡住几秒到十几秒最后打印出它的回答。如果一切正常你应该能看到一段通顺的、自我介绍式的文字。恭喜你这说明你的SmallThinker-3B-Preview已经部署成功并且能正常工作了第一次运行回答可能有点短或者有点格式化这很正常。你可以修改prompt里的问题比如换成“写一首关于春天的诗”或者“解释一下什么是人工智能”看看它不同的表现。7. 可能遇到的问题与解决办法在部署过程中你可能会遇到一些常见的“坑”。这里我列举几个并给出解决办法。问题一运行python命令时提示command not found这说明系统没有找到python这个命令。在Ubuntu 20.04上我们安装的是python3.8。你可以使用python3.8这个完整的命令名。或者创建一个软链接sudo ln -s /usr/bin/python3.8 /usr/bin/python。问题二安装PyTorch时下载速度极慢或失败这是因为连接PyTorch官方服务器可能网络不稳定。可以尝试使用国内的PyTorch镜像源比如清华源。你需要先查找当前版本对应的镜像链接。多试几次或者换个时间再安装。问题三运行模型时提示CUDA out of memory这是最常见的错误意思是显存不够用了。可以尝试减小max_new_tokens参数比如从100改成50生成短一点的回答。在加载模型时设置load_in_8bitTrue或load_in_4bitTrue需要先安装bitsandbytes库这可以大幅减少显存占用但可能会略微影响精度。如果还是不行那可能你的显卡显存确实小于6GB可以考虑在加载模型时强制使用CPUdevice_mapcpu但推理速度会慢很多。问题四从Hugging Face下载模型失败可以尝试检查网络确保能正常访问互联网。在代码中指定一个本地目录作为缓存cache_dir./model_cache。如果知道模型文件的直接下载链接也可以用wget先下载到本地然后从本地路径加载。遇到其他报错最简单的方法是把完整的错误信息复制下来去搜索引擎里搜一下。你遇到的问题很可能别人也遇到过并且已经找到了解决方案。8. 总结与后续探索跟着上面这些步骤走下来你应该已经成功在Ubuntu 20.04上把SmallThinker-3B-Preview跑起来了。从检查系统、安装依赖、配置环境到下载模型、运行测试整个过程虽然步骤不少但每一步都是搭建AI应用的基础。用下来感觉这个3B参数的预览版模型在对话流畅度和基础常识上表现还不错对于想学习大模型部署和推理的开发者来说是个很好的入门选择。它不需要特别顶级的硬件部署过程也能让你熟悉整个pipeline。如果你已经成功看到了模型的回答那可以算是一个不错的起点了。接下来你可以尝试修改测试脚本里的prompt问它各种各样的问题看看它的能力边界在哪里。尝试更长的对话把模型的上一次输出作为下一次的输入看看它的多轮对话能力。如果你对Web开发熟悉可以写一个简单的Flask或FastAPI应用把模型包装成一个HTTP API服务这样就能通过网页或手机App来和它聊天了。部署只是第一步更重要的是去使用它、理解它。希望这篇教程能帮你顺利跨过“部署”这个门槛真正开始探索大模型的世界。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。