AI大模型探索

前言

由于gpt4已经出了4o版本,当前日期2024/7/10,总的来说已经十分强大了,但是国内外仍然有很多公司或者团队在自己研究自己的大模型,根本原因是gpt4不开源,而且提供的可调用的apitoken也比较贵,一个人对话次数频繁的话,一个小时几十块就没了,带着ai大模型和知识库的背景下,开始研究开源免费的ai大模型

AI是啥?大模型是啥?

image-20241007193447101

image-20241007193707051

设备环境:

win11+GPU3060Ti(8G显存)+16G运行内存(这个不影响)

大模型环境 ollama:

由于大模型这两年已经比较成熟了,ollama已经能加载大部分开源大模型,所以相对于以前的cuda,现在的ollama更好用,由于我们是windows系统,ollama就直接装就完事儿了

ollama官网:https://ollama.com/

image-20240710171830856

不过得记一下常用的ollama命令:

ollama list  #查看大模型列表
ollama rm '大模型名称' #删除大模型
ollama creat '大模型名称' -f 'modelfile' #从本地调优后加载大模型
ollama run '大模型名称'  # 运行大模型

本地大模型有了后,我们还需要前端页面呀,因此这里介绍三种前端可以连接大模型的页面:

UI样式

anything

页面自定义比较好,但是有不少小bug,上传文件后模型就回复慢甚至报错,shit一坨,浪费我时间

image-20240710174129721

maxkb

个人认为是国内做的最好的知识库和ai大模型的前端,缺点就是不能自定义很多样式页面,也不支持多模态和excel

image-20240710174808589

open-webUI

ollama最适配的前端页面,长得也像chatgpt,有点怀疑抄袭,支持多模态,也最全能,不过不能做知识库类型

image-20240710175054877

部署这些前端的前提是本地要有docker环境,所以我们在windows下安装好docker,这个过程可能比linux要麻烦很多,要建议看视频

【【Docker教程】如何在Windows系统安装Docker】 https://www.bilibili.com/video/BV19J4m1j7nh/?share_source=copy_web&vd_source=4bbe3631cef72a69d43ef5defa5ba7d9

当我们有了docker环境后,库库一顿命令输出后,就有了现在的三个容器

image-20240710174708140

OK,上面也介绍完3大AI的UI了,如果是知识库用,那么最好用maxkb,如果是个人ai用,那么还是推荐open-webUI

ai大模型和知识库的结合:

那么我们首选还是maxkb作为前端页面,而大模型选择我们有很多

通义千问(阿里出品):一直在维护和更新(使用起来不咋地)

llama3:还可以,中文不太行

llama3-chinese:中文调教版本

glm4(智谱清言):比较吊,但是整体感觉不如llama3-chinese

通过一系列的踩坑和使用下来,这边大模型选择llama3-chinese,闭包模型我们从一个清华博士那下载https://huggingface.co/shenzhi-wang

image-20240711145246011

image-20240711145316185

不得不感慨一句:原来颜值和才华真的能并存啊

我们下载后会得到.gguf的模型文件,大概5个G左右,那么此时,我们需要编辑一个modelFile,通过modelFile去加载大模型(Ollama Modelfile 是一个配置文件,用于定义和管理 Ollama 平台上的模型。通过模型文件创建新模型或修改调整现有模型,以应对一些特殊的应用场景。自定义提示嵌入到模型中,修改和调整上下文长度、温度、随机种子、降低无意义程度、增加或减少输出文本的多样性等。(注:这不是微调,只是调整原来的模型的参数。))

# Modelfile generated by "ollama show"
# To build a new Modelfile based on this one, replace the FROM line with:
# FROM llama3:latest
FROM D:\softwares\maxkb\llama3\Llama3-8B-Chinese-Chat.q4_k_m.GGUF
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>"""
PARAMETER temperature 0.6
PARAMETER top_p 0.9
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"

使用 ollama create 命令根据自定义模型文件创建新模型。

ollama create llama3-chinese --file Modelfile-Llama3-8b

启动模型:

ollama run llama3-chinese

然后查看是否启动成功:

ollama list

image-20240711152317847

然后我们docker启动maxkb,装载llama3-chinese

image-20240711153117075

然后上传文件作为我们的知识库

image-20240711153259387

然后创建应用

image-20240711153347008

这里选择混合检索命中率高一些,然后选择我们的文档知识库和大模型,发布之后就可以应用啦,下面是知识库大模型的测试情况:

image-20240711154109077

整体来说:还比较好用,回答的精准率和文档的规范性有很大的关系

ai对excel的支持

目前来说,ai对excel的支持并不友好,数据量稍微一大,查询和处理excel的能力要差很多,就拿现在最厉害的gpt4o来说

image-20240711160615185

image-20240711160636366

他对excel的处理方式也是自己通过写一段pandas代码去查询或者处理数据,而一旦涉及到复杂的统计情况,gpt4o就直接报错了,测试了其他几款大模型,效果都差不多,或许在excel这种数据类型上,ai并不能做的很好

ai多模态

ollama 上模型库(https://ollama.com/library)支持的多模态大模型只有llava和bakllava

那么理所当然的,中文不友好,于是乎,我找到加了中文参数的llava-ph3,下面看原生llava和llava-ph3的对比情况

llava:13B:

image-20240711162818965

image-20240711164720714

llava-phi3:

image-20240711162917316

image-20240711164405697

整体测试下来,llava比较慢,有可能和我机器有关,有可能模型参数太多,但是准确率没得话说,缺点也有,很容易英文回复

而llava-ph3虽然模型精炼,但是准确率和速度都非常慢,也很容易英文回复,那么在对比一下

chatgpt

image-20240711170151557

image-20240711170203401

没得话说,其他的大模型多模态还需努努力呀,这已经是最新的开源大模型了,差距还是很明显的,不太实用,甚至可以说是垃圾