项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

06-01 1316阅读

DeepSeek 是一个专为高效推理设计的 AI 平台,它支持各种大规模语言模型的本地化部署。在本教程中,我们将详细介绍如何在本地环境中部署 DeepSeek 模型,并配置一个可视化的 Web UI——ChatBox,以便与模型进行交互。


第一步:安装 Ollama

Ollama 是一款支持多种 AI 模型的开源平台,它允许用户在本地或远程运行 DeepSeek 这样的模型。Ollama 提供了高效的推理和管理功能,适用于在本地机器上进行 AI 模型部署。

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

  1. 访问 Ollama 官网下载页面:Download Ollama on macOS

  2. 根据你操作系统的版本下载对应的 Ollama 安装包,并完成安装。


第二步:搜索并配置 DeepSeek 模型

在安装完成 Ollama 后,启动它并通过其界面或命令行工具来下载并配置 DeepSeek 模型。

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

配置模型:
  1. 打开 Ollama,搜索 DeepSeek 模型。

  2. 下载您所需要的模型版本,例如 deepseek-r1:1.5b。

  3. 确保您的显卡满足模型的显存需求(例如:DeepSeek-r1:1.5b 至少需要 8GB 显存)。

  4. 记住右上角的运行命令

模型版本CPU内存GPUGPU型号示例
1.5B4核+8GB+非必需,可选4GB+如GTX 1650/RTX2060
7B8核+16GB+8GB+如RTX 3070/4060
8B8核+16GB+8GB+如RTX 3070/4060
14B12核+32GB+16GB+如RTX 4090/A5000
32B16核+64GB+24GB+如A100 40GB
70B32核+128GB+多卡如2xA100 80GB
671B64核+512GB+多卡如8xA100/H100

第三步:在终端执行命令启动模型

在终端中执行以下命令来启动 DeepSeek 模型(来自于上一步的):

ollama run deepseek-r1:1.5b

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

执行此命令后,模型将开始加载并运行。请耐心等待,直到加载完成。

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

安装完成后就可以在命令行中使用deepseek模型了!


以下是一些常用的 Ollama 命令,用于管理模型:

命令描述
/bye退出模型
ollama list列出所有可用的模型
ollama run 启动指定的模型
ollama ps查看当前运行中的模型

例如,要退出当前模型,可以输入:

>>> /bye

或者要查看当前所有已安装的模型,可以使用:

C:\Users\chk> ollama list

可视化部署 Web UI - ChatBox 配置

ChatBox 是一个用于与 AI 模型进行交互的可视化界面,它能够通过简洁的界面让用户更方便地使用 DeepSeek 模型。接下来,我们将介绍如何将 ChatBox 连接到 Ollama 服务,并进行配置。

第一步:下载 ChatBox AI

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

  1. 访问 ChatBox 官网。

  2. 下载并安装 ChatBox AI 客户端。

  3. 安装完成后,启动 ChatBox 客户端。

设置中文语言:
  1. 在 ChatBox 客户端中,进入设置界面。

  2. 选择语言设置,选择 中文。

第二步:将 ChatBox 连接到远程 Ollama 服务

1. 配置 Windows 环境变量

为了使 Ollama 服务能在您的本地网络中访问,您需要按下面的方式配置以下环境变量:

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

  1. 退出 Ollama 服务。

  2. 打开 Windows 设置 或 控制面板,搜索“环境变量”。

  3. 编辑用户环境变量,创建或编辑以下变量:

    • OLLAMA_HOST 设置为 0.0.0.0。

    • 保存设置并重新启动 Ollama。

2. 配置 Ollama 服务的 IP 地址

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

配置完成后,您可以在本地网络中访问 Ollama 服务。查找您的电脑 IP 地址(通常形式为 192.168.X.X):

ipconfig

在 ChatBox 客户端中,设置 API Host 为:

http://192.168.X.X:11434
3. 在防火墙中配置端口

如果您的计算机使用防火墙,可能需要允许 Ollama 服务使用 11434 端口。根据您的操作系统设置相应的防火墙规则,以确保没有阻止连接。

4. 配置模型

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

完成上述设置后,您可以在 ChatBox 中选择并配置要使用的模型。如果上述步骤都成功,可以看到已经下载的模型,选择即可。

第三步:效果演示

配置完成后,启动 ChatBox,并尝试与 DeepSeek 模型进行对话。

项目实训纪实(二)——DeepSeek本地化部署+配置+可视化WebUI+测试

运行成功!

本地DeepSeek测试结果

1. 精准的算法问题求解

传统评测平台仅能判断代码是否正确,而DeepSeek可以:

  • 分步解析题目:将复杂问题(如最短路径、背包问题)拆解为可理解的子任务。

  • 提供多种解法:不仅输出代码,还能对比贪心、动态规划等不同算法的优劣。

    案例:

    当用户提交一道“二叉树层序遍历”问题时,DeepSeek会先解释BFS的思想,再给出代码实现,并提示队列优化的可能。

    以下是一个场景演示:

    用户提交代码如下:

    class TreeNode:
        def __init__(self, val=0, left=None, right=None):
            self.val = val
            self.left = left
            self.right = right
    def levelOrder(root):
        if not root:
            return []
        
        result = []
        queue = [root]
        
        while queue:
            level_size = len(queue)
            current_level = []
            
            for _ in range(level_size):
                node = queue.pop(0)
                current_level.append(node.val)
                
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            
            result.append(current_level)
        
        return result

    Deepseek的回复:

    广度优先搜索(BFS)原理说明:

    层序遍历是典型的BFS应用,其核心思想是:
    1. 从根节点开始,按层级依次访问
    2. 使用队列数据结构维护待访问节点
    3. 每次处理一层的所有节点
    4. 将子节点按顺序加入队列
    时间复杂度:O(n),需要访问每个节点一次
    空间复杂度:O(n),队列最大存储量为最后一层的节点数

    代码优化建议

    您的实现基本正确,但存在可优化点:
    1. 使用list.pop(0)操作的时间复杂度为O(n)
    2. 可以改用collections.deque提升队列操作效率

    优化方案:

    from collections import deque
    def levelOrder_optimized(root):
        if not root:
            return []
        
        result = []
        queue = deque([root])  # 使用双端队列
        
        while queue:
            level_size = len(queue)
            current_level = []
            
            for _ in range(level_size):
                node = queue.popleft()  # O(1)时间复杂度的出队操作
                current_level.append(node.val)
                
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            
            result.append(current_level)
        
        return result
    2. 智能代码优化与性能分析

    DeepSeek能检测代码中的潜在缺陷:

    • 时间复杂度分析:自动识别嵌套循环导致的性能瓶颈。

    • 空间优化建议:例如提醒用滚动数组替代二维DP表。

    • 代码风格改进:如变量命名规范性、冗余逻辑简化。

      以下是一个场景展示:

      用户提交代码(斐波那契数列):

      def fib(n):
          if n 
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码