最近 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
下载提示
![](https://i-blog.csdnimg.cn/img_convert/70724694cdf66168bdbb3b692e321bba.png)
如果像上面这样能得到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
![](https://i-blog.csdnimg.cn/img_convert/4bdf85af66e13320c70e24f694fc1327.png)
有三个模型了
好了,我们先运行模型
ollama run deepseek-r1:32b
![](https://i-blog.csdnimg.cn/img_convert/f207021b8b4e5dd419981ce36de62c20.png)
直接提示要发送一个消息给它,我们给它一个消息,比如,DeepSeek为何如此优秀?
![](https://i-blog.csdnimg.cn/img_convert/0f10dc83dfd08f45c37387fa1d70ef8e.png)
好吧,回答的好简短,好官方,然后,再问他,如何看待目前的各种AI产品?
![](https://i-blog.csdnimg.cn/img_convert/ad264783ff1a179e9e43f5d2b2d78065.png)
这次就回答的特别多了。
现在模型部署好了,我们也可以通过 http地址来看当前 Ollama运行的状态如何.
http://192.168.0.120:11434/
![](https://i-blog.csdnimg.cn/img_convert/f7b0ce02d1eaa1db184bc3f5e20bd826.png)
也可以通过 这个api查看部署的模型有什么
http://192.168.0.120:11434/api/tags
![](https://i-blog.csdnimg.cn/img_convert/63dd12b5f34606709baa7e3e79426f3e.png)
可以看到,我用Ollama部署了3个模型。
gpu资源耗费情况
![](https://i-blog.csdnimg.cn/img_convert/27209703fcc2518b39668e4903bae1d5.png)
可以看到还好,单卡16GB,还剩5GB 左右,留给其他业务使用。
接口的方式来调用DeepSeekR1,控制台流式输出
实际上Ollama部署好模型后,就可以直接用接口来调用了。
这个就是我自己调用接口实现的本地效果,也是很好用的,省的在docker里面敲来敲去。
![](https://i-blog.csdnimg.cn/img_convert/b814ff501a1d3419eb4e363574a85029.png)
主要用.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来的刚好,也希望这辈子有幸看到不一样的世界。