自己动手,在Mac开发机上利用ollama部署一款轻量级的大模型Phi-3:mini
首先你需要认识Ollama,Ollama本身并不是一个大语言模型(LLM)。它是一款开源的大语言模型运行框架或平台,专门设计用来简化在本地计算机上部署和运行各种大语言模型的过程135。你可以把它理解为一个强大的“模型管理器”和“运行环境”。
我选择了在Mac开发机上先安装docker,然后在docker中安装ollama,命令如下:
docker run -d --name ollama -p 11434:11434 -v ollama_data:/root/.ollama --restart unless-stopped ollama/ollama
第一步:进入正在运行的 Ollama 容器
打开您的终端(Terminal),执行以下命令来进入名为 ollama 的 Docker 容器内部:
docker exec -it ollama bash
- docker exec: 在运行的容器中执行命令
- -it: 以交互模式进入容器
- ollama: 您的容器名称
- bash: 启动 Bash shell
执行成功后,您的命令行提示符会发生变化,表示您现在已经在容器内部了。
第二步:拉取并运行一个轻量级模型
在容器内部的命令行中,使用 ollama pull 命令来下载模型。对于 Mac 电脑的练习和学习,我强烈推荐以下几款轻量级且性能优秀的模型:
- Phi-3:mini (微软) - 极佳入门选择
# 这是一个3.8B参数的超强小模型,智能程度高,非常适合Mac
ollama pull phi3:mini
- Llama 3.2:1B (Meta) - 最新、极速
# 这是Meta在2024年7月发布的最新1B参数模型,非常轻快,性能很好
ollama pull llama3.2:1b
💡 建议:
对于初次练习,直接从 phi3:mini 或 llama3.2:1b 开始是最好的选择。它们在小体型下提供了惊人的智能水平。
执行示例:
# 这是一个3.8B参数的超强小模型,智能程度高,非常适合Mac
ollama pull phi3:mini
你会看到下载进度条,等待它完成即可。模型会自动存放在您之前通过 -v ollama_data:/root/.ollama 映射的卷中,所以下次启动容器时模型依然存在。
第三步:与模型互动测试
模型拉取完成后,您就可以直接运行它并进行对话测试了。
方法A:在容器内直接进行命令行对话
# 在容器内部,运行刚下载的模型
ollama run phi3:mini
然后您就可以开始输入问题了,例如:
>>> 请用简单的语言解释一下什么是机器学习?
输入 /bye 可以退出对话。
方法B:通过API接口调用(更常用的方式)
退出容器(输入 exit),在您本地Mac的终端中,您可以通过curl命令直接访问Docker容器的API:
# 向容器内的Ollama API发送一个请求
curl http://localhost:11434/api/generate -d '{"model": "phi3:mini","prompt": "为什么天空是蓝色的?","stream": false
}'
您将会收到一个JSON格式的响应,其中包含模型的回答。
第四步:安装Open-WebUI(可选,强烈推荐)
命令行操作可能不够直观,安装一个Web界面可以极大地提升体验。Open-WebUI是一个开源项目,可以连接到您的Ollama。
1. 在您Mac的终端(不是在Ollama容器里)运行以下命令:
docker run -d \--name open-webui \-p 3000:8080 \--add-host=host.docker.internal:host-gateway \-v open-webui-data:/app/backend/data \--restart always \ghcr.io/open-webui/open-webui:main
2. 访问Web界面:
打开浏览器,访问 http://localhost:3000
3. 首次设置:
-
创建一个管理员账户
-
进入设置(Settings)→ 模型(Models)→ Ollama API Base URL
-
将其设置为:http://host.docker.internal:11434 (这是关键一步,让WebUI能找到Docker中的Ollama)
-
点击“保存”,然后就可以在Web页面上选择模型并愉快地聊天了!
其它
可能遇到的问题
运行ollama run phi3:mini时可能会遇到 Error: 500 Internal Server Error: model requires more system memory (3.8 GiB) than is available (1.1 GiB)
上述错误表示colima分配的内存不足,重启并指定memory即可,命令如下
colima stop
colima start --memory 6 --cpu 2
总结与常用命令
查看已拉取的模型 docker exec ollama ollama list
删除一个模型 docker exec ollama ollama rm
重启Ollama容器 docker restart ollama
查看容器日志 docker logs ollama