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

最近 DeepSeek出来了,很火,说是能跟ChatGpt o1 媲美,结果,用了DeepSeek的官方服务,提示"服务器繁忙 请稍后再试。",我就想,算了,自己部署个吧。

我这个是基于docker部署的,首先要docker 支持 显卡,这样才会跑的更快,基于CPU 还是比较卡的,耗费的内存也比较多。

部署非常方便,除了下载很慢,基本都是环境问题,环境解决完就没啥大问题。

服务器基础资源

这就来个服务器部署,目前服务器资源大致如下:

操作系统 : Ubuntu 24.04

显卡:Tesla P100-PCIE-16GB * 2

CPU:48核

内存:64G

运行docker命令

复制代码
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以上的速度,就说明网络已经非常好了,实际上过一会儿就会降到几百KB,很慢,这个时候,我们只需要 Ctrl + C ,然后,重新输入下载的命令速度就会提升上来,重复此过程,可以加快下载。

运行模型

先给几个命令

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

允许防火墙,这样就可以在自己局域网电脑上访问了

复制代码
sudo ufw allow  11434/tcp

来先看下都有什么模型

复制代码
ollama list

有三个模型了

好了,我们先运行模型

复制代码
ollama run deepseek-r1:32b

直接提示要发送一个消息给它,我们给它一个消息,比如,DeepSeek为何如此优秀?

好吧,回答的好简短,好官方,然后,再问他,如何看待目前的各种AI产品?

这次就回答的特别多了。

现在模型部署好了,我们也可以通过 http地址来看当前 Ollama运行的状态如何.

复制代码
http://192.168.0.120:11434/

也可以通过 这个api查看部署的模型有什么

复制代码
http://192.168.0.120:11434/api/tags

可以看到,我用Ollama部署了3个模型。

gpu资源耗费情况

可以看到还好,单卡16GB,还剩5GB 左右,留给其他业务使用。

接口的方式来调用DeepSeekR1,控制台流式输出

实际上Ollama部署好模型后,就可以直接用接口来调用了。

这个就是我自己调用接口实现的本地效果,也是很好用的,省的在docker里面敲来敲去。

主要用.net代码

引入一个nuget包

csharp 复制代码
Codeblaze.SemanticKernel.Connectors.Ollama

具体代码如下:

csharp 复制代码
static async Task Main(string[] args)
{
    var builder = Kernel.CreateBuilder().AddOllamaChatCompletion("deepseek-r1:32b", "http://192.168.0.120:11434");

    builder.Services.AddScoped<HttpClient>();
    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("");
    }
}

相关地址

复制代码
https://github.com/kesshei/OllamaDemo
https://gitee.com/kesshei/OllamaDemo

总结

DeepSeek来的刚好,也希望这辈子有幸看到不一样的世界。

相关推荐
古法老登瞎折腾2 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
琥珀.2 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu3 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈4 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
云上先途15 小时前
企业 AI 服务部署周期多久,会不会影响原有业务运转?
大数据·运维·人工智能
hhhjhl6 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
执伞人ONLY6 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
slongzhang_6 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
叼烟扛炮6 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT6 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器