SmallThinker-3B-Preview镜像免配置一键启动Web UIAPI服务的docker-compose脚本想快速体验一个推理能力出色、体积小巧的AI模型吗今天给大家介绍一个开箱即用的解决方案SmallThinker-3B-Preview。这个模型不仅继承了Qwen2.5-3b-Instruct的优秀基础还通过专门的数据集微调在长链推理任务上表现突出。最棒的是你不用再为复杂的配置头疼了。我准备了一个完整的docker-compose脚本只需一条命令就能同时启动Web交互界面和API服务让你在几分钟内就能开始使用这个强大的小模型。1. 为什么选择SmallThinker-3B-Preview在介绍具体部署方法之前我们先来了解一下这个模型的特点看看它到底适合哪些场景。1.1 模型的核心优势SmallThinker-3B-Preview虽然只有30亿参数但它在特定任务上的表现会让你惊喜。这个模型最大的特点就是小而精推理能力强专门针对长链推理任务进行了优化能够处理复杂的逻辑推理问题体积小巧3B的参数量意味着它可以在资源有限的设备上运行速度快相比大模型它的推理速度更快响应更及时1.2 主要应用场景这个模型特别适合以下几种情况边缘设备部署如果你需要在树莓派、小型服务器或者个人电脑上运行AI模型SmallThinker的体积优势就体现出来了快速原型开发当你需要快速验证一个AI应用的想法时这个模型能让你快速搭建起可用的服务教育学习对于想学习AI模型部署和使用的开发者来说它是一个很好的起点辅助推理任务可以作为更大模型的草稿模型先快速生成初步结果再由大模型精修1.3 技术背景简介SmallThinker是在Qwen2.5-3b-Instruct基础上微调而来的。开发团队使用了专门构建的QWQ-LONGCOT-500K数据集进行训练这个数据集的特点是超过75%的样本输出长度超过8000个token专门针对长链推理任务优化。这意味着模型在处理需要多步推理的问题时会有更好的表现。比如数学解题、逻辑分析、代码生成等任务都是它的强项。2. 环境准备与一键部署好了理论部分就说到这里现在进入实战环节。我会带你一步步完成部署整个过程非常简单。2.1 系统要求检查在开始之前确保你的系统满足以下基本要求操作系统LinuxUbuntu 20.04、CentOS 7等或 macOSWindows用户可以通过WSL2运行Docker需要安装Docker Engine 20.10Docker Compose需要安装Docker Compose v2.0硬件要求内存至少8GB RAM推荐16GB存储至少10GB可用空间GPU可选有GPU会更快但CPU也能运行2.2 快速安装Docker和Docker Compose如果你还没有安装Docker可以按照以下步骤快速安装# 对于Ubuntu/Debian系统 sudo apt update sudo apt install -y docker.io docker-compose # 启动Docker服务 sudo systemctl start docker sudo systemctl enable docker # 将当前用户添加到docker组避免每次都要sudo sudo usermod -aG docker $USER # 需要重新登录使组更改生效 # 或者执行newgrp docker对于其他系统可以参考Docker官方文档进行安装。安装完成后可以通过以下命令验证docker --version docker-compose --version2.3 创建部署目录和配置文件现在我们来创建部署所需的所有文件。在你的工作目录下创建一个新文件夹mkdir smallthinker-deploy cd smallthinker-deploy在这个文件夹中我们需要创建两个关键文件docker-compose.yml和.env配置文件。3. 核心配置文件详解让我详细解释一下每个配置文件的作用和内容这样你不仅能部署成功还能理解背后的原理。3.1 docker-compose.yml文件这是整个部署的核心文件它定义了所有服务的配置。创建一个名为docker-compose.yml的文件内容如下version: 3.8 services: # SmallThinker模型服务 smallthinker: image: ollama/ollama:latest container_name: smallthinker-ollama restart: unless-stopped ports: - 11434:11434 volumes: - ./ollama_data:/root/.ollama environment: - OLLAMA_HOST0.0.0.0 - OLLAMA_KEEP_ALIVE24h command: sh -c ollama serve sleep 10 ollama pull smallthinker:3b tail -f /dev/null networks: - smallthinker-network # Web UI界面服务 webui: image: ghcr.io/open-webui/open-webui:main container_name: smallthinker-webui restart: unless-stopped ports: - 3000:8080 volumes: - ./webui_data:/app/backend/data environment: - OLLAMA_BASE_URLhttp://smallthinker:11434 - WEBUI_SECRET_KEY${WEBUI_SECRET_KEY:-default_secret_key_change_me} - ENABLE_SIGNUPfalse depends_on: - smallthinker networks: - smallthinker-network # API代理服务可选 api-proxy: image: nginx:alpine container_name: smallthinker-api-proxy restart: unless-stopped ports: - 8080:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - smallthinker - webui networks: - smallthinker-network networks: smallthinker-network: driver: bridge让我解释一下这个配置的关键部分smallthinker服务这是运行模型的核心服务使用Ollama来加载和运行SmallThinker模型webui服务提供了一个漂亮的Web界面让你可以通过浏览器直接与模型交互api-proxy服务可选的反向代理可以统一管理API访问网络配置所有服务在同一个内部网络中可以互相通信3.2 环境变量配置文件创建一个名为.env的文件用于存储敏感信息和配置# Web UI安全密钥建议修改为随机字符串 WEBUI_SECRET_KEYyour_secure_secret_key_here # 模型相关配置 OLLAMA_MODELsmallthinker:3b OLLAMA_NUM_PARALLEL1 OLLAMA_NUM_GPU0 # 服务端口配置 WEBUI_PORT3000 API_PORT8080 OLLAMA_PORT11434 # 资源限制根据你的硬件调整 CPU_LIMIT4 MEMORY_LIMIT8g3.3 Nginx配置文件可选如果你启用了api-proxy服务需要创建一个nginx.conf文件events { worker_connections 1024; } http { upstream ollama_backend { server smallthinker:11434; } upstream webui_backend { server webui:8080; } server { listen 80; server_name localhost; # Web UI访问 location / { proxy_pass http://webui_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # Ollama API访问 location /api/ { proxy_pass http://ollama_backend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 健康检查端点 location /health { access_log off; return 200 healthy\n; add_header Content-Type text/plain; } } }4. 一键启动与验证所有配置文件都准备好了现在让我们启动服务。4.1 启动所有服务在包含docker-compose.yml文件的目录下运行以下命令# 启动所有服务后台运行 docker-compose up -d # 查看服务状态 docker-compose ps # 查看服务日志 docker-compose logs -f第一次运行时会下载所需的镜像这可能需要一些时间具体取决于你的网络速度。下载完成后服务会自动启动。4.2 验证服务是否正常运行服务启动后可以通过以下几种方式验证# 方法1检查容器状态 docker-compose ps # 应该看到类似这样的输出 # NAME COMMAND SERVICE STATUS PORTS # smallthinker-ollama /bin/sh -c ollama… smallthinker running 0.0.0.0:11434-11434/tcp # smallthinker-webui /bin/sh -c python… webui running 0.0.0.0:3000-8080/tcp # smallthinker-api-proxy /docker-entrypoint.… api-proxy running 0.0.0.0:8080-80/tcp # 方法2检查Ollama服务 curl http://localhost:11434/api/tags # 方法3检查Web UI服务 curl -I http://localhost:30004.3 访问Web界面打开你的浏览器访问http://localhost:3000如果你修改了端口请使用对应的端口。第一次访问时需要创建一个管理员账户输入用户名和密码点击注册如果ENABLE_SIGNUP设置为true或直接登录进入主界面后系统应该已经自动连接到了SmallThinker模型5. 使用SmallThinker模型现在服务已经正常运行了让我们来看看怎么使用这个模型。5.1 通过Web界面使用Web界面提供了最直观的使用方式选择模型在界面左上角确保选择了smallthinker:3b模型开始对话在底部的输入框中输入你的问题调整参数可以调整温度控制创造性、最大生成长度等参数查看历史所有的对话历史都会保存方便后续查看让我给你一些使用示例示例1数学推理问题如果小明有5个苹果他给了小红2个然后又买了3个现在他有多少个苹果 模型回答让我们一步步推理 1. 开始有5个苹果 2. 给小红2个后5 - 2 3个苹果 3. 买了3个后3 3 6个苹果 所以小明现在有6个苹果。示例2代码生成问题用Python写一个函数计算斐波那契数列的第n项。 模型回答python def fibonacci(n): if n 0: return 输入必须为正整数 elif n 1: return 0 elif n 2: return 1 else: a, b 0, 1 for _ in range(2, n): a, b b, a b return b # 测试 print(fibonacci(10)) # 输出第10项### 5.2 通过API接口使用 除了Web界面你也可以通过API直接调用模型。Ollama提供了RESTful API接口 python import requests import json # API基础URL OLLAMA_URL http://localhost:11434 def ask_smallthinker(question): 通过API向SmallThinker提问 payload { model: smallthinker:3b, prompt: question, stream: False, options: { temperature: 0.7, num_predict: 512 } } try: response requests.post( f{OLLAMA_URL}/api/generate, jsonpayload, timeout60 ) response.raise_for_status() return response.json()[response] except Exception as e: return f请求失败: {str(e)} # 使用示例 if __name__ __main__: # 测试简单问题 question 用一句话解释什么是人工智能 answer ask_smallthinker(question) print(f问题: {question}) print(f回答: {answer}) # 测试推理问题 question2 有三个人甲、乙、丙。 甲说乙在说谎。 乙说丙在说谎。 丙说甲和乙都在说谎。 请问谁在说真话 answer2 ask_smallthinker(question2) print(f\n问题: {question2}) print(f回答: {answer2})5.3 常用API端点Ollama提供了多个API端点方便你集成到自己的应用中# 1. 生成文本 curl http://localhost:11434/api/generate -d { model: smallthinker:3b, prompt: 为什么天空是蓝色的, stream: false } # 2. 聊天对话支持多轮 curl http://localhost:11434/api/chat -d { model: smallthinker:3b, messages: [ {role: user, content: 你好}, {role: assistant, content: 你好有什么可以帮助你的吗}, {role: user, content: 你能做什么} ] } # 3. 列出已加载的模型 curl http://localhost:11434/api/tags # 4. 拉取新模型 curl http://localhost:11434/api/pull -d { name: smallthinker:3b }6. 高级配置与优化基本的部署和使用已经完成了但你可能还想根据具体需求进行一些优化配置。6.1 性能优化配置如果你的硬件资源比较紧张或者想要获得更好的性能可以调整以下配置修改docker-compose.yml中的资源限制services: smallthinker: # ... 其他配置保持不变 deploy: resources: limits: cpus: ${CPU_LIMIT:-2} memory: ${MEMORY_LIMIT:-4g} reservations: cpus: 0.5 memory: 1g调整Ollama的推理参数创建或修改.env文件添加以下配置# 性能优化参数 OLLAMA_NUM_GPU1 # 如果有GPU设置为1 OLLAMA_NUM_PARALLEL2 # 并行处理数 OLLAMA_FLASH_ATTENTION1 # 启用Flash Attention如果支持 # 模型推理参数 OLLAMA_TEMPERATURE0.7 OLLAMA_TOP_P0.9 OLLAMA_TOP_K40 OLLAMA_REPEAT_PENALTY1.16.2 持久化数据管理默认情况下模型数据和对话历史都保存在容器中。如果你希望数据持久化确保以下卷配置正确volumes: - ./ollama_data:/root/.ollama # 模型数据 - ./webui_data:/app/backend/data # Web UI数据你可以定期备份这些目录或者在需要迁移时直接复制这些数据。6.3 安全配置建议对于生产环境或对外提供服务的情况建议增加安全配置修改默认密钥确保.env文件中的WEBUI_SECRET_KEY是一个强密码启用HTTPS通过Nginx配置SSL证书访问控制配置防火墙规则限制访问IP认证机制Web UI默认需要登录确保使用强密码7. 常见问题解决在部署和使用过程中你可能会遇到一些问题。这里整理了一些常见问题和解决方法。7.1 部署相关问题问题1端口被占用错误信息Bind for 0.0.0.0:3000 failed: port is already allocated解决方法修改docker-compose.yml中的端口映射比如将3000:8080改为3001:8080或者停止占用端口的服务sudo lsof -i :3000然后kill -9 PID问题2内存不足错误信息OOMKilled解决方法增加系统内存或交换空间在.env文件中减少MEMORY_LIMIT的值调整Ollama的参数减少num_predict等值问题3模型下载失败错误信息Error pulling model: Get https://registry.ollama.ai/v2/...: dial tcp: lookup registry.ollama.ai: Temporary failure in name resolution解决方法检查网络连接尝试使用镜像源ollama pull --insecure-registry smallthinker:3b手动下载模型文件后导入7.2 使用相关问题问题1Web UI无法连接模型错误信息Failed to connect to Ollama解决方法# 检查Ollama服务是否运行 docker-compose ps # 检查Ollama日志 docker-compose logs smallthinker # 重启服务 docker-compose restart smallthinker问题2响应速度慢解决方法检查系统资源使用情况docker stats调整模型参数减少生成长度如果有GPU确保正确配置GPU支持问题3模型回答质量不高解决方法调整温度参数temperature较低的值0.1-0.3更确定较高的值0.7-0.9更有创造性提供更详细的提示词使用系统提示词引导模型行为7.3 实用调试命令这里是一些有用的调试命令可以帮助你排查问题# 查看所有容器状态 docker-compose ps # 查看特定服务的日志 docker-compose logs smallthinker docker-compose logs webui # 实时查看日志 docker-compose logs -f smallthinker # 进入容器内部 docker-compose exec smallthinker sh # 检查服务健康状态 curl http://localhost:11434/api/tags curl http://localhost:3000/api/health # 重启服务 docker-compose restart # 完全重新部署 docker-compose down -v docker-compose up -d # 查看资源使用情况 docker stats8. 总结通过今天的教程你已经成功部署了SmallThinker-3B-Preview模型并拥有了完整的Web UI和API服务。让我们回顾一下重点8.1 部署成果你现在拥有的是一个完整可用的AI服务环境模型服务SmallThinker-3B-Preview在Ollama中运行Web界面通过浏览器就能直接与模型对话API接口可以通过编程方式调用模型持久化存储所有数据都保存在本地安全可靠8.2 核心优势这个部署方案的最大优点就是简单一键部署只需docker-compose up -d就能启动所有服务免配置所有配置都已经预先设置好易于维护基于Docker升级、备份、迁移都很方便资源友好3B模型对硬件要求不高普通电脑也能运行8.3 下一步建议如果你对这个方案满意可以考虑以下几个方向进一步探索集成到现有应用通过API将SmallThinker集成到你的网站或应用中尝试其他模型同样的部署方法也适用于其他Ollama支持的模型性能优化根据你的硬件调整参数获得更好的性能开发插件为Web UI开发自定义插件增加新功能8.4 最后的话SmallThinker-3B-Preview虽然体积小但在推理任务上的表现确实令人印象深刻。最重要的是现在你可以轻松地在自己的环境中运行它无需担心复杂的配置问题。这个部署方案就像给你的电脑装了一个AI大脑随时可以调用。无论是学习AI技术、开发原型应用还是解决实际问题它都是一个很好的起点。记住技术工具的价值在于使用。现在服务已经运行起来了接下来就是发挥你的创意看看能用这个小思想家做些什么有趣或有用的东西了。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。