为了账号安全,请及时绑定邮箱和手机立即绑定

在AWS EC2上自托管DeepSeek R1大模型

在您的基础架构上部署大型语言模型(LLM)如DeepSeek R1,可以全面掌控数据隐私和定制的能力,使句子更自然流畅。

在本指南中,你将学习如何在 AWS EC2 实例上使用 Ollama(用于本地 LLM 管理)和 nextjs-ollama-llm-ui(一个基于 Next.js 的 UI,用于与模型交互)自行托管 DeepSeek R1。

前提条件

  1. 一个具有 EC2 访问权限的 AWS 账户。
  2. 对终端/SSH 有一定的了解。
启动一个EC2实例

创建一个亚马逊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应用。可以尝试微调模型、自定义提示,或集成其他工具。

感谢你的加入,成为我们社区的一员。

在你走之前:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消