游乐游手机版
首页/AI热点日报/热点详情

Ubuntu Ollama 部署 DeepSeek-R1:32B 聊天大模型流式调用示例

类型:热点整理2026-07-01
高性能聊天大模型的本地部署,最近成了不少开发者的刚需。DeepSeek-R1:32B 发布后,风头直追 ChatGPT o1,可官方服务动不动就“服务器繁忙”,实在让人头疼。与其等官方扩容,不如自己动手——在 Ubuntu 上通过 Docker 部署一套 Ollama + DeepSeek 环境,再

高性能聊天大模型的本地部署,最近成了不少开发者的刚需。DeepSeek-R1:32B 发布后,风头直追 ChatGPT o1,可官方服务动不动就“服务器繁忙”,实在让人头疼。与其等官方扩容,不如自己动手——在 Ubuntu 上通过 Docker 部署一套 Ollama + DeepSeek 环境,再配上流式接口调用,既稳定又可控。下面就把完整流程拆开来讲。

基于Ubuntu Ollama 部署 DeepSeek-R1:32B 聊天大模型(附带流式接口调用示例)

先说几个关键判断:DeepSeek 最近确实火,官方压力太大,自己部署是最省心的替代方案。部署基于 Docker,前提是让 Docker 能调用 GPU——纯 CPU 跑不但慢,内存消耗也惊人。整个过程除了模型下载速度比较玄学,环境配置一次搞定后基本没有坑。

服务器基础资源

这次演示用的服务器配置如下:

  • 操作系统:Ubuntu 24.04
  • 显卡:Tesla P100-PCIE-16GB × 2
  • CPU:48核
  • 内存:64G

这么一套资源跑 32B 模型还算从容,如果硬件偏弱,后面也会提到轻量模型的替代方案。

运行 Docker 命令

先启动 Ollama 容器,注意加上 --gpus=all 才能启用 GPU 加速。持久化目录挂载到宿主机,方便模型文件管理。

docker run --name ollama -d --restart=always --gpus=all -v /data/docker/ollama:/root/.ollama -p 11434:11434 ollama/ollama

容器启动后,进入容器内执行后续操作:

docker exec -it ollama /bin/sh

然后下载并运行 32B 模型:

ollama run deepseek-r1:32b

如果资源不够,可以退而求其次,选择 1.5B 或 7B 的版本:

ollama run deepseek-r1:1.5b

下载提示

模型下载速度是个变数。开局如果有 MB/s 级别的速度,说明网络条件不错,但过一会可能降到几百 KB。一个实操技巧:直接 Ctrl+C 中断下载,然后重新执行下载命令,速度又能提上去。重复这个过程,能把大模型“分段加速”拉下来——听起来有点取巧,但实测有效。

运行模型

几个常用命令先列出来:

ollama pull deepseek-r1:1.5b   //拉取模型
ollama run deepseek-r1:1.5b   //运行模型
ollama list                //查看所有模型

如果要在局域网内其他设备访问,需要放开防火墙端口:

sudo ufw allow 11434/tcp

先看看本地已拉取了哪些模型:

ollama list
(模型列表截图)

好,现在正式运行 32B 模型:

ollama run deepseek-r1:32b

进入交互模式后直接发消息。第一个问题:“DeepSeek为何如此优秀?”——回答比较简短、官方。换一个问题:“如何看待目前的各种AI产品?”——这次回复就详尽多了,能看出模型的思维链能力确实不赖。

模型跑起来之后,还可以通过 HTTP 接口查看 Ollama 的运行状态:

http://192.168.0.120:11434/

通过这个 API 查看已部署的模型列表:

http://192.168.0.120:11434/api/tags
(API返回的模型列表截图)

可以看到,当前 Ollama 上一共部署了三个模型,可以根据需求切换。

GPU 资源耗费情况

跑 32B 模型时,单张 P100 16GB 显存还剩 5GB 左右,意味着还有余量给其他业务。如果是双卡,负载更均衡。

(GPU 资源监控截图)

接口方式调用 DeepSeek R1,控制台流式输出

Ollama 部署好模型后,直接通过 REST API 调用即可,比在 Docker 里敲命令更方便。下面是用 .NET 实现的流式调用示例。

先引入 NuGet 包:

Codeblaze.SemanticKernel.Connectors.Ollama

完整代码如下(基于 Semantic Kernel 实现流式输出):

static async Task Main(string[] args)
{
    var builder = Kernel.CreateBuilder()
        .AddOllamaChatCompletion("deepseek-r1:32b", "http://192.168.0.120:11434");
    builder.Services.AddScoped();
    var kernel = builder.Build();

    while (true)
    {
        string input = "";
        Console.Write("请输入: ");
        input = Console.ReadLine();
        Console.WriteLine("");

        var contents = kernel.InvokePromptStreamingAsync(input);
        if (contents == null)
        {
            Console.WriteLine("Error: 内容为空!");
            continue;
        }
        else
        {
            Console.WriteLine($"\nDeepseek:\n");
            await foreach (var item in contents)
            {
                Console.Write(item.ToString());
            }
        }
        Console.WriteLine("");
    }
}

这段代码启动后进入循环,接收输入后通过流式接口实时输出回复,效果跟直接在 Docker 里用命令行一样,但更方便集成到自己的应用中。实际跑起来,响应速度取决于模型大小和 GPU 性能,32B 模型单卡 P100 基本能做到秒级响应,已经足够日常使用。

来源:https://www.53ai.com/news/finetuning/2025022204761.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。