在您的基础架构上部署大型语言模型(LLM)如DeepSeek R1,可以全面掌控数据隐私和定制的能力,使句子更自然流畅。
在本指南中,你将学习如何在 AWS EC2 实例上使用 Ollama(用于本地 LLM 管理)和 nextjs-ollama-llm-ui(一个基于 Next.js 的 UI,用于与模型交互)自行托管 DeepSeek R1。
前提条件
- 一个具有 EC2 访问权限的 AWS 账户。
- 对终端/SSH 有一定的了解。
创建一个亚马逊EC2实例,
- 选择一个 Ubuntu 24.04 LTS AMI(架构:64 位 Arm)
- 选择一个具有足够资源的实例类型(例如,
g5.xlarge
)。 - 建议至少配备 100 GB 的存储空间来存放模型权重。
- 在安全组中开放 22(SSH)和 3000(Next.js UI)端口。
连接到这个实例。
使用你的密钥.pem 文件通过SSH登录Ubuntu服务器。
ssh -i "your-key.pem" ubuntu@<EC2公网IP>
请将<EC2公网IP>替换为你的实际EC2公网IP。
在EC2上安装奥拉玛程序
下载并安装 Ollama 吧:
curl -L https://ollama.ai/install.sh | sh
获取 DeepSeek R1 模型:
ollama pull deepseek-r1,如果名称不同,请用正确的模型名称替换
Ollama 提供了一个用于运行和管理模型的 REST API:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1",
"prompt":"你叫啥名?"
}'
为Ollama LLMs设置网页界面
安装 Node.js 版本 20+。
# 下载并安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# 无需重启 Shell,然后
\. "$HOME/.nvm/nvm.sh"
# 检查 Node.js 版本:
node -v # 应该显示 "v20.18.3"。
nvm current # 应该显示 "v20.18.3"。
# 检查 npm 版本:
npm -v # 应该显示 "10.8.2"。
复制UI仓库:
git clone https://github.com/jakobhoeg/nextjs-ollama-llm-ui # 复制代码库到本地 (copy the code repository to your local machine)
cd nextjs-ollama-llm-ui # 切换到文件夹 (switch to the directory)
将 .example.env
文件重命名为 .env
。
mv .example.env .env
# 将.example.env重命名为.env
如果你的 Ollama 实例 不在默认地址和端口运行,请根据你的使用场景修改 .env
文件中的变量。
OLLAMA_URL="http://localhost:11434"
先安装依赖项并构建项目。
运行 `npm install` 命令来安装依赖包,
运行 `npm run build` 命令来构建项目。
安装依赖包:
运行 `npm install`
构建项目:
运行 `npm run build`
使用 PM2 在后台运行 UI 界面:
pm2 start <UI文件的路径>
注:请将 <UI文件的路径>
替换为您实际的 UI 文件路径。
npm install -g pm2 # 全局安装 pm2
pm2 start npm --name "ollama-ui" -- run start # 使用 pm2 启动 npm,并命名为 "ollama-ui",运行 "start" 脚本
查看你的应用情况:
pm2:状态命令
测试部署情况
访问UI- 在浏览器中打开
http://<EC2_PUBLIC_IP>:3000
。试试和DeepSeek R1聊天吧!
- 反向代理:使用 Nginx 或 Caddy 添加 HTTPS 并将流量路由到 3000 和 11434 端口。
- 防火墙规则:将 Ollama 端口(
11434
)的访问权限仅限于 localhost。 - 认证:为 Next.js UI 添加基本认证,或使用 AWS 安全组限制 IP 地址访问。
- 使用竞价型实例以降低成本。
- 不使用时关掉实例。
- 使用 AWS CloudWatch 监控使用状态。
你现在已经在AWS EC2上成功部署了DeepSeek R1,从而拥有完全的控制权,包括推理过程和数据处理。结合Ollama的简单易用和Next.js的灵活性,你可以打造强大的私有AI应用。可以尝试微调模型、自定义提示,或集成其他工具。
感谢你的加入,成为我们社区的一员。在你走之前:
- 别忘了给作者点赞并关注他 👏
- 关注我们:X | LinkedIn | YouTube | 通讯 | 播客 | Differ
- 了解CoFeed,科技资讯的智能更新方式 🧪
- 在Differ上免费创建您自己的AI博客 🚀
- 加入我们的内容创作者Discord频道 🧑💻
- 更多内容,请访问 plainenglish.io 和 stackademic.com
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦