关于使用Ollama + Dify或FastGpt搭建本地大语言模型的一些心得

阅读:289

1、写在前面

大语言模型OLL其实已经活了很长时间了,在某些行业领域已经广泛的运用了,今年公司方面也开始也打算推动这块的发展,公司也搭建了一个大模型跑着让大家玩玩,但是还是限制了一些权限,觉得没啥意思,在家有服务器的我当然也要自己来搭建一个使用一下。一方面是想自己手动的体验一下全部的过程,另一方面在模型的接入或者训练上也想研究一番到底怎么回事。

其实大部分人对这块的学习思路的话基本上是摸不着头脑,只是在使用一些别人部署好的模型使用,比如像Coze、豆包、等等,能用的平台现在百花齐放,一些收费但大部分免费,但是如何来学习这个东西,在网上一搜很多人就开始说需要学习、收集海量的数据源、高等数学、统计学等等,这学东西在很多人面前就是一团懵。但我也翻阅了一些文章,其中又一些讲的比较好的,大概分为几个步骤。

  1. 首选你要学会使用,比如Coze这些平台,你要知道提出你的问题,并链接上下文继续提问,就像是人与人之间的对话一样的使用,这一步最简单基本上都会。
  2. 了解什么是提示词?并尝试写一些提示词,如何写好提示词,尝试写一些工作流。
  3. 给你的模型进行喂数据,也就是建立自己的知识库,通过对你的知识库的收集并进行数据清洗,大模型在回复你的时候就会结合你的知识库进行分析回答了。
  4. 开始去学习一些Transformer,更加贴合你的实际需求,这时候就需要用到别人说的什么高等数学、统计学等知识了。(这里的我也不会)
  5. 最后就是开始写自己的大模型。

一步一步的通过了解架构、预训练、微调等慢慢熟悉的过程。


2、搭建过程

2.1、Ollama安装

无论是在本地搭建还是在服务器搭建相对来说比较简单,如果是PC直接去Ollama官网下载即可。

1724291206210image.png

下载完成之后不管是windows 还是mac 或者是linux ,然后选择自己要运行额模型进行安装。如下:

1724291412485image.png

比如运行的llama3.1:8b 的模型直接运行ollama run llama3.1即可,或者选择谷歌的gemma2模型,运行示例:ollama run gemma2  初次使用会下载模型,只需要等待模型下载完即可,当然在选择模型的时候并不是越大越好,需要更具自己的机器硬件配置来适当选择,否则运行起来很卡顿或者无法运行。

也可以通过ollama list 来查看自己已经安装的模型:

1724296238585image.png

模型运行之后便可以在命令行中开始对话:

1724296317492image.png

2.2、安装Dify或者FastGtp

要通过界面的形式运行大语言模型我们需要安装一系列的工具,Dify或者FastGpt 选择其中一个即可,两者在使用上差不多,也可以先去他们官网体验一下功能之后再来选择一个自己喜欢的部署,个人觉得FastGpt的界面操作更加人性化,但是不能注册多个用户,需要商业版,说是开源的也不完全是开源,部分功能需要用商业版,Dify 是完全开源,部署了即可完整使用,但是操作体验个人觉得没有FastGpt好用,功能基本上都相似

2.2.1、FastGpt安装

具体的安装我不做过多赘述,参考官网,我使用的是docker cpmpose 进行运行,需要注意的是docker-compose.yml文件下载之后可以根据自己的需求进行重新编排。需要注意的是运行的模型是在oneapi中添加和测试,而页面的交互是在FastGpt中,相当于是两个服务。

同时他会运行如mysqlmongoDbpgvector等。

踩坑:

1、如果你有github 的内容下载不下来,可以在你的hosts文件中增加一下配置:

# github proxy

140.82.114.3 github.com
199.232.69.194 github.global.ssl.fastly.net
185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com
185.199.108.133 raw.githubusercontent.com

相当于直接修改DNS的解析

2、如果你的docker pull一只没有动静,或者很慢,mac或windows 可以使用魔法,而centos、ubuntu之类的linux可以增加文件:

// /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://docker.anyhub.us.kg",
        "https://atomhub.openatom.cn",
	    "https://dockerhub.icu",
	    "https://registry.cn-hangzhou.aliyuncs.com"
    ]
}

重启docker 在执行docker pull  通过docker images 查看已经安装的镜像


2.2.2、Dify 安装

Dify 的安装相对来说比FastGpt要简单一些,官方文档,直接git clone xxx 仓库地址就可以,但是有些时候的网络clone 仓库非常慢,甚至超时,这时候你可以通过gitee或者gitlab 或者私人git仓库转一次gtihub的仓库,推荐gitee对国内支持的速度还是可以的。同时你可能也会遇到docker pull不下来的问题,也可以通过上面的方法来进行解决,然后你需要修改docker-compose.yml文件中的一些信息,这个就是根据自己的需要修改了。下载完成之后如下:

1724307193091image.png

(当然我这里的包会比较多一些)

如果是为了测试一下,可以直接cd /dify.docker 目录中,执行 docker compose up -d 即可然后在浏览器中访问80端口设置管理员帐号密码就可以使用了

在设置中添加ollama模型即可使用了(需要注意的是ollama 的地址要写成IP而不是localhost或127.0.0.1,尽管你是用的是本地机器链接):

1724307379971image.png

1724307465238image.png

如果你需要接入其它模型比如说智谱AI、通义千问,可以直接去他们官网注册一个帐号,便会赠送一段时间和一定量的Tokens就算自己没有部署本地的大模型,也可以使用三方的模型,也是很不错的。

硬件配置

如果知识跑一个大模型的话,我是在ubuntu-server 24.04上面部署的,所以我的服务器上面没有显卡,只有一颗CPU(E5 2680 V4 14核心28线程) + 32G内存 + 1TB固态硬盘,单独在这个CPU上面运行Ollama3 的话响应速度是非常慢的,一个简单的“你好”回复都需要10s左右,所以不管是跑大模型还是训练大模型,建议一定要显卡,而且是好的显卡,这里涉及到一个算力的问题TOPS

TFLOPS:每秒万亿次浮点运算(TeraFLOPS),是衡量显卡浮点计算能力的一个指标。
TOPS:每秒万亿次操作,通常用于衡量整数和定点计算能力,尤其是在深度学习应用中。

一张显卡的核心数和频率决定了一张显卡的算力如何,以GTX 4080为例CUDA核心9728个显存频率23000MHz,这个数量级已经不是CPU可以比的,所以要用显卡、显卡、显卡...

另外内存也是需要足够的,例如llama:8b 的模型建议> 8GB的内存,模型越大需要的内存越大

当模型每次执行运算的时候,可以通过“设备监视器”或者linux 下的top命令来查看内存的使用,如果是NVIDIA显卡也可以通过nvidia-smi来查看GPU的使用情况,通常情况下运算的时候内存和GPU会辣的比较满,如果你没有显卡,全靠CPU的话,CPU就会被拉满。

我也在Mac M1芯片的一体机上运行过llama3模型,恢复的速度还是可以接受,但是可以看到内存和GPU直线拉升,如果是在Mac book Pro 的 inter 芯片的机器上运行的话,会直接听见哗哗的风扇声音了,同时笔记本的温度也是烫手的。

所以我最终还是选择给服务器加装一张显卡,用来做算力,速度会好很多。

安装好显卡和驱动之后,开始炼丹吧~

加载中...