Ollama免配置运行internlm2-chat-1.8b:含Docker Compose一键启停脚本
本文介绍了如何在星图GPU平台上自动化部署【书生·浦语】internlm2-chat-1.8b镜像,快速搭建本地AI对话服务。该方案利用Ollama和Docker Compose实现一键启停,让用户无需复杂配置即可体验这款擅长处理超长文本的轻量级对话模型,适用于个人学习、长文档总结及智能对话等场景。
Ollama免配置运行internlm2-chat-1.8b:含Docker Compose一键启停脚本
想快速体验一个能流畅对话、支持超长文本的AI助手,但又不想折腾复杂的模型部署和环境配置?今天给大家分享一个超简单的方案:用Ollama和Docker Compose,一键启动InternLM2-Chat-1.8B模型。
InternLM2-Chat-1.8B是书生·浦语团队推出的一个18亿参数的对话模型。别看它参数不大,能力可不小,尤其擅长理解和生成超长的文本内容。更重要的是,通过Ollama这个工具,我们可以把它封装成一个随时可用、开箱即聊的服务,整个过程几乎不需要你懂任何深度学习框架的配置。
这篇文章,我就手把手带你,用几行命令,把这个聪明的AI助手“请”到你的电脑上。
1. 准备工作:认识我们的工具和模型
在开始动手之前,我们先花几分钟了解一下今天要用到的核心工具和模型。这能帮你更好地理解每一步在做什么。
1.1 什么是Ollama?
你可以把Ollama想象成一个“AI模型的应用商店”和“运行环境管理器”。它的主要作用是让大语言模型的本地部署变得极其简单。
- 简化部署:传统部署一个模型,你需要下载模型文件、安装对应的推理框架(如Transformers、vLLM)、处理复杂的依赖和配置。Ollama把这些步骤全部打包,你只需要一条命令
ollama run 模型名,它就会自动完成下载、配置和启动。 - 统一接口:Ollama为所有通过它运行的模型提供了一个统一的API接口(通常是
http://localhost:11434)。这意味着无论你跑的是哪个模型,都可以用同样的方式来调用它,非常方便。 - 资源友好:它针对在个人电脑(尤其是带GPU的电脑)上运行模型做了优化,能更好地利用你的硬件资源。
简单说,Ollama让运行大模型变得像安装手机App一样简单。
1.2 为什么选择InternLM2-Chat-1.8B?
书生·浦语(InternLM)是国产大模型中的优秀代表。我们这次要部署的InternLM2-Chat-1.8B是它的第二代1.8B参数对话版本。它有几个特别吸引人的特点:
- “小身材,大能量”:1.8B的参数规模,意味着它对硬件的要求相对友好,在消费级显卡甚至性能不错的CPU上都能跑起来,但它在推理、数学和代码能力上相比前代有显著提升。
- 超长上下文:这是它的一大亮点。官方称其能有效支持20万字符的超长文本。这意味着你可以给它一篇很长的文章,让它总结;或者进行非常长的多轮对话,它都能较好地记住上下文。这个能力在很多开源模型中是非常突出的。
- 对话体验优化:这个Chat版本经过了指令微调和对齐优化,在指令遵循、聊天流畅度和功能性上表现更好,非常适合我们用来构建对话应用。
对于想快速体验、学习大模型对话,或者需要处理较长文本任务的个人开发者来说,它是一个非常理想的选择。
1.3 为什么还要用Docker Compose?
Ollama本身已经很简单了,那我们为什么还要引入Docker Compose呢?为了追求“极致简单”和“环境隔离”。
- 一键启停:通过编写一个
docker-compose.yml文件,我们可以把Ollama服务的启动、停止、重启等操作,浓缩成docker-compose up -d和docker-compose down两条命令。管理起来非常清晰。 - 环境封装:Docker容器能把Ollama及其所有依赖打包在一个独立的环境里运行。这避免了和你电脑上已有的其他Python环境、软件发生冲突,真正做到“装完即用,用完即删”,不留任何“垃圾文件”。
- 配置即代码:所有服务配置(端口、卷挂载等)都写在一个文件里,易于版本管理和分享。你今天在我这看到的完整可运行脚本,复制到你电脑上一样能跑。
接下来,我们就进入实战环节。
2. 实战部署:三步搞定模型服务
假设你的电脑上已经安装了Docker和Docker Compose。如果还没安装,可以去Docker官网根据你的操作系统下载安装,步骤很清晰。
整个部署过程只需要三步:准备脚本、启动服务、测试对话。
2.1 第一步:创建一键部署脚本
在你的工作目录下(比如 ~/projects/ollama-internlm),创建一个名为 docker-compose.yml 的文件。这个文件将定义我们的Ollama服务。
用你喜欢的文本编辑器(如VSCode、Vim、Nano)打开这个文件,把下面的内容复制进去:
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama_internlm
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ./ollama_data:/root/.ollama
command: serve
我来解释一下这个脚本的每一部分:
image: ollama/ollama:latest:指定使用官方最新的Ollama Docker镜像。container_name: ollama_internlm:给容器起个名字,方便管理。restart: unless-stopped:设置容器自动重启策略,除非手动停止,否则意外退出会自动重启,保证服务可用性。ports: - "11434:11434":这是最关键的一步。将容器内部的11434端口映射到你电脑的11434端口。这样,你通过http://localhost:11434就能访问到容器里的Ollama服务了。volumes: - ./ollama_data:/root/.ollama:把容器中存放模型文件(/root/.ollama)的目录,挂载到当前目录下的ollama_data文件夹。这样,你下载的InternLM2模型文件就保存在本地了,即使删除容器,模型也不用重新下载。command: serve:容器启动后执行的命令,就是启动Ollama服务。
保存这个文件。我们的“一键脚本”就准备好了。
2.2 第二步:启动服务并拉取模型
打开终端(命令行),进入你刚才创建 docker-compose.yml 文件的目录。
1. 启动Ollama服务: 运行以下命令,Docker Compose会在后台拉取Ollama镜像并启动服务。
docker-compose up -d
看到 Creating ollama_internlm ... done 类似的提示,就说明服务启动成功了。
2. 拉取InternLM2-Chat-1.8B模型: 服务启动后,我们需要告诉Ollama去下载我们想要的模型。执行下面的命令:
docker exec ollama_internlm ollama pull internlm2:1.8b
这条命令的意思是:在名为 ollama_internlm 的容器内部,执行 ollama pull internlm2:1.8b 命令。 这个过程需要一些时间,取决于你的网速。它会下载大约几个GB的模型文件。耐心等待,直到出现“success”的提示。
2.3 第三步:与模型对话测试
模型拉取成功后,我们就可以和它聊天了。有两种简单的方式:
方式一:通过容器内命令行直接对话(适合快速测试)
docker exec -it ollama_internlm ollama run internlm2:1.8b
执行后,你会进入一个交互式对话界面,直接输入问题即可,比如:
>>> 请用一句话介绍你自己。
方式二:通过API接口对话(适合集成到其他应用) Ollama提供了标准的HTTP API。我们可以用 curl 命令来测试:
curl http://localhost:11434/api/generate -d '{
"model": "internlm2:1.8b",
"prompt": "请用一句话介绍你自己。",
"stream": false
}'
如果一切正常,你会收到一个JSON格式的回复,其中就包含了模型生成的答案。
至此,你的本地InternLM2-Chat-1.8B对话服务就已经完全跑起来了!
3. 日常使用与管理技巧
服务跑起来之后,你可能会关心怎么管理它、怎么更好地使用它。这里有一些小技巧。
3.1 服务管理命令
记住这几个命令,管理起来非常顺手:
- 停止服务:
docker-compose down- 这会停止并删除容器,但本地
ollama_data目录下的模型文件会保留。
- 这会停止并删除容器,但本地
- 重启服务:
docker-compose restart - 查看服务日志:
docker-compose logs -f ollama- 当你遇到问题,或者想看看模型运行的详细过程时,这个命令非常有用。
- 进入容器内部:
docker exec -it ollama_internlm /bin/bash- 如果你想探索容器内部的文件结构,或者执行一些更复杂的操作,可以用这个命令。
3.2 模型使用建议
为了让InternLM2-Chat-1.8B发挥更好的效果,你可以试试这些方法:
- 清晰的指令:在提问时,尽量把问题描述得具体、清晰。比如,与其问“写一篇作文”,不如问“请以‘人工智能的未来’为题,写一篇300字左右的议论文,要求观点明确,逻辑清晰”。
- 利用长上下文优势:这是该模型的强项。你可以先给它“喂”一大段背景材料(比如一篇技术文档、一段会议记录),然后让它基于这个材料进行总结、问答或扩写。
- 系统提示词:通过API调用时,你可以设置
system角色来给模型一个身份设定,这能显著影响它的回答风格。例如:curl http://localhost:11434/api/chat -d '{ "model": "internlm2:1.8b", "messages": [ {"role": "system", "content": "你是一个严谨的科技专栏作家,擅长用通俗易懂的语言解释复杂概念。"}, {"role": "user", "content": "请解释一下什么是Transformer架构。"} ], "stream": false }'
3.3 性能与资源观察
模型运行时会占用计算资源。你可以用以下命令观察:
docker stats ollama_internlm:实时查看容器的CPU、内存使用情况。- 如果你的电脑有NVIDIA显卡并且安装了NVIDIA Docker运行时,可以在
docker-compose.yml中为ollama服务添加deploy.resources.reservations.devices配置,让Ollama使用GPU加速,速度会快很多。具体配置可以参考Ollama官方文档。
4. 总结
我们来回顾一下今天完成的事情。我们利用Ollama和Docker Compose,几乎零配置地在本地部署了InternLM2-Chat-1.8B大语言模型。整个过程的核心就是一个简单的 docker-compose.yml 文件,以及几条直观的命令。
这种方法最大的好处就是省心和干净。你不需要关心Python环境、PyTorch版本、CUDA驱动这些令人头疼的依赖问题。所有东西都被封装在Docker容器里,想用的时候一键启动,不用的时候一键清理,模型文件还能保留在本地。
InternLM2-Chat-1.8B作为一个在长文本处理上表现突出的轻量级模型,非常适合用于个人学习、原型开发,或者处理一些需要长上下文理解的自动化任务。现在,你已经拥有了一个本地运行的、私密的AI对话伙伴,可以尽情探索它的能力了。
下次当你需要快速验证一个与大模型相关的想法,或者只是想和一个AI聊聊天时,不妨启动这个服务试试。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐

所有评论(0)