CentOS7部署DeepSeek

中间接手一台服务器,应客户要求部署DeepSeek-r1:32B,服务器是一台公司定制的,里面安装了四张英伟达的T4卡,好在开机后发现已经安装了CentOS7.9,并且也已经安装了英伟达的显卡驱动,能省不少事情。

网络环境准备简单,因为在内网里面,配置网卡 BOOTPROTO="dhcp",先采用客户内网地址能直接访问互联网即可。

配置GPU驱动内存常驻模式使得GPU驱动模式设置为常驻内存: nvidia-smi -pm 1

安装CUDA

到英伟达网站的CUDA专区,选择自己的OS和版本:

下面有下载链接:

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run

粘贴到shell窗口,下载即可完成。

然后使用sh cuda_12.2.0_535.54.03_linux.run进行安装,由于已经安装了T4卡的驱动,在组件选择页面取消安装驱动前的X。

安装完毕后提示需要修改PATH环境变量:

可以修改/etc/profile文件,或者在/etc/profile.d/下面新建一个cudu.sh,内容如下:

bash 复制代码
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
PATH=/usr/local/cuda-12.2/bin:$PATH
export PATH

然后source /etc/profile

执行nvcc -V进行验证:

PS:如果想卸载CUDA Toolkit, 执行 /usr/local/cuda-12.2/bin 下的cuda-uninstaller即可。

安装cuDNN

安装Ollama

采用了官网的一键脚本 curl -fsSL https://ollama.com/install.sh | sh 后来发现1.6G的下载文件,居然要10多个小时,停掉,采用镜像加速:

xiake.pro/ ,将ollama最新release版本的github地址github.com/ollama/olla... 粘贴进去:

直接复制wget方式生成的命令,进行下载,如果觉得速度不行,可以在粘贴框前面切换不同的加速源,这里选择了ghproxy.cn。测试一下,挑选一个速度快的。

网上看到很多需要自己下载后再解压,并且创建用户组、修改启动文件等,比较繁琐,这里还是利用ollama官网提供的脚本。

bash 复制代码
export OLLAMA_MIRROR="https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download"
curl -fsSL https://ollama.com/install.sh | sed "s|https://ollama.com/download|$OLLAMA_MIRROR|g" | sh

原理也很简单,先导出环境变量OLLAMA_MIRROR,设置成我们第一步生成的地址(部分),然后将脚本通过sed将原始地址全局替换成我们的地址后进行下载再安装,最简单的办法。

安装后执行ollama serve 居然提示错误:/lib64/libm.so.6: version 'GLIBC_2.27' not found 使用ldd --version 提示 libc库是2.17版本的,看来最新的ollama(0.6.5)需要glibc库至少是2.27。网上看了一下升级有些风险,最终采取了降级部署的方式:

bash 复制代码
export OLLAMA_MIRROR="https://ghproxy.cn/https://github.com/ollama/ollama/releases/download/v0.5.12"
curl -fsSL https://ollama.com/install.sh | sed "s|https://ollama.com/download|$OLLAMA_MIRROR|g" | OLLAMA_VERSION=0.5.12 sh

测试正常后,修改监听端口,将默认的11434修改成其它端口,并添加防火墙允许端口。 修改默认端口后,使用ollama命令会提示无法连接app,这是环境变量的原因,需要修改~/.bash_profile文件,在最后添加一行:

export OLLAMA_HOST="0.0.0.0:xxxx"

source ~/.bash_profile 以后登录即可正常。

一些配置:

ini 复制代码
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3" 代表让ollama能识别到第几张显卡,因为4张显卡,从0开始编号,所以为0,1,2,3
Environment="OLLAMA_SCHED_SPREAD=1"  #这几张卡均衡使用
Environment="OLLAMA_KEEP_ALIVE=-1" #模型一直加载, 不自动卸载
Environment="OLLAMA_MODELS=/xxxx/ollama/models" #模型保存目录
Environment="OLLAMA_HOST=0.0.0.0:xxxx"   #监听地址

firewall-cmd --add-port=xxxx/tcp --permanent

安装docker compose

bash 复制代码
curl -L "https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

添加执行权限:

chmod +x /usr/local/bin/docker-compose

验证:

docker-compose --version

安装Dify

先到目标文件夹:git clone https://github.com/langgenius/dify.git 克隆下来dify仓库。

切换到docker目录,cp .env.example .env ,然后 vi .env,修改里面的文件大小限制、暴露端口号等配置信息。

然后启动容器 docker-compose up -d

依然这一步拉取速度超慢,需要通过国内镜像进行加速。

正常启动后,通过端口号即可访问dify。

相关推荐
小马爱打代码几秒前
Spring Boot:Sentinel 企业级熔断、降级与限流实战
spring boot·后端·sentinel
野犬寒鸦12 分钟前
从零起步学习并发编程 || 第二章:多线程与死锁在项目中的应用示例
java·开发语言·数据库·后端·学习
没有bug.的程序员17 分钟前
Spring Cloud Sentinel:熔断降级规则配置与分布式流量防线实战终极指南
java·分布式·后端·spring cloud·sentinel·熔断规则·分布式流量防线
JP-Destiny18 分钟前
后端-RabbitMQ
后端·消息队列·rabbitmq·java-rabbitmq
wujian831120 分钟前
ChatGPT和Gemini导出pdf方法
人工智能·ai·chatgpt·pdf·deepseek
李慕婉学姐21 分钟前
【开题答辩过程】以《基于SpringBoot Vue的校园后勤管理系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
vue.js·spring boot·后端
咖啡啡不加糖26 分钟前
Arthas 使用指南:Java 应用诊断利器
java·spring boot·后端
努力也学不会java27 分钟前
【Spring Cloud】优雅实现远程调用-OpenFeign
java·人工智能·后端·spring·spring cloud
J_liaty27 分钟前
SpringBoot整合Canal实现数据库实时同步
数据库·spring boot·后端·canal
lead520lyq27 分钟前
Golang Grpc接口调用实现账号密码认证
开发语言·后端·golang