继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕容森
关注TA
已关注
手记 406
粉丝 183
获赞 650

在您的基础架构上部署大型语言模型(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应用。可以尝试微调模型、自定义提示,或集成其他工具。

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

在你走之前:

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP