Why本地化AI
基于BS结构的AI平台已经很多,而且AI计算也需要大算力,个人电脑难以承受,为什么还需要本地化的AI呢?
对于个人而言,数据可以分为两类:可以公开的数据,和个人数据。本地化的AI可以提供更好的安全性。
此外,本地AI成本较低,免去了付费、网络环境差异的困境。
最后,从技术角度,用户可以选择自己喜欢的大模型,使用工具将模型和自己的学习、知识管理,以及工作流紧密耦合,在某些情况下,可以获得较好的使用体验。
When 本地化AI的应用场景
- 你有很多资料,安全性考虑,你希望本地AI处理
- 你不想付费使用,或者没法付费使用目标AI平台
- 你想找一种相对简单,模型选择余地大,且可本地即可使用的AI工具
How 如何本地化AI
AI工具的分类
- LLM:就是大语言模型,主要是用来对人类语言进行理解并能进行反馈的模型,典型应用是聊天,比如ChatGPT就属于该类
- AIGC: AIGC(Artificial Intelligence Generated Content),就是人工智能内容生成,例如生成图片、生成视频、生成语音、生成几何模型等
对于第一类模型的使用,算力要求相对小一些,最低有Nvidia 2060,6G显存的显卡即可尝试使用。
对于第二类模型的使用,需要较大的算力,在Nvidia 2060的显卡,6G显存的显卡上,即使只是生成图片,也只能够以较慢的速度,获得分辨率较低的图片。目前,因为第二类正处于技术发展的高速期,新功能往往只在某个基于WWW的平台上才有,因此最好还是使用互联网AI平台提供的服务。
笔者的本地AI使用体验
AIGC本地使用
如前所述,AIGC类AI本地使用受个人电脑算力限制,体验不佳,因此笔者常用的是 Stable Diffusion (下称SB)。这是一个人工智能图片生成工具,按照提示词的约定,SB可以按要求生成图片
- 按提示词生成图片
- 按提示词和给定的图片,生成图片
- 按提示词、给定的图片、指定的Pose生成图片
- 使用ComfyUI,可以分别生成几辐图片并进行叠合,得到目标图片
SB提供了非常丰富的插件生态,你也可以选择不同的AI模型,例如:很多训练好的卡通、真人和各种绘画风格的AI模型,相对于图片生成WWW平台的定制化,具有较高的灵活性
当您希望:
- 低成本
- 有最大的风格选择
- 有最大的类型选择
- 较高的可玩性
时,可以考虑尝试使用 Stable Diffusion。
LLM本地使用
架构
目前国内:智谱清言、百度一言、通义千问、Kimi、秘塔AI搜索等在线平台,都有很好的聊天体验。
因此,如果只是单纯地向AI提问,完全可以直接使用这些在线平台。
但是我们考虑如下一种情况:
你的个人笔记是以 Asciidoc 或者 Md 格式存贮,经过积累,你已经有了数百个文档,此外还有word、pdf等很多其他格式的文档,这些文档都是私密的,你希望ai能帮你归纳、总结、提示。相当于你希望用你的个人私密数据,训练ai,然后让ai完成一些基于你的数据的智能化工作,怎么办呢?
此时,本地LLM就有用武之地了。
本地AI大模型架构如下:
- LLM: 就是语言大模型的数据,也就是模型文件,可达数G到数十G,一般个人电脑使用的是数G的模型文件
- Provider: 就是大模型服务的提供程序,是一个可执行程序。这个程序的接口有两类
- UI: 就是该Provider运行后直接有UI界面,然后使用这个界面你可以指定使用的模型,然后就可以在界面里面聊天了
- Web API:程序运行后,会举Web服务,你通过向该网址Post请求,也就是Post问题,AI就可以响应这个request,也就是进行回答
- Embeder:就是嵌入器,通过嵌入器,可以将你的本地资料,映射到高维向量空间,也就是“用你的数据对AI进行训练”,你的数据通过Embeder的处理,就变成了Embeding,相当于是LLM的一个附加数据层,这样,AI就认识你的资料信息了
工作流
理解了架构,下面我们看下工作流
架构运作机制
当用户发起请求,也就是向ai问问题时,provider接收该请求信息,然后provider就结合LLM+Embeding进行计算,获得问题的回答,并返回给用户。
使用流程
那么,我们怎么具体使用本地LLM呢?
下载和安装Provider
首先是下载Provider,可以选择的有:
- Ollama
- LM Studio
- Jan
- …
笔者推荐使用 LM Studio,因为部署简单,下载运行安装程序,就可以直接使用了,免去了很多麻烦,这是第一点。
第二点是 LM Studio可以设置 AI计算在 GPU 和在 CPU 上的分配,这对于算力有限的个人电脑非常
友好。
下载和使用大模型
运行 LM Studio 后,在界面里面,就可以看到有很多可用的大模型,笔者推荐下载 4-5G左右的模型进行尝试,如果响应慢就使用更小的模型,反之,可以尝试更大的模型。
下载完毕,在 LM Studio 里面你就可以选择该大模型,然后直接在 LM Studio 提供的聊天界面里愉快地聊天了,一切都是本地的。
AI我的数据
那么,如何将自己的数据进行智能化呢?
仔细观察 LM Studio,你不会看到有任何上传个人文件的地方,因此,我们不能在 LM Studio里完成该工作。我们仅仅是将 LM Studio 作为一个 人工智能 Web 服务后端进行使用,而使用 AnythingLLM
进行个人文件上传和管理的工作。
在 LM Studio 的 Local Server 里,可以进行 Embeder的选择,就是说 LLM是个大模型,同时用于做资料处理的嵌入器,也是个模型
安装和使用 anythingLLM
安装非常简单,这里从略。
安装好后,将 anythingLLM 的大模型provider、嵌入器Provider都指定到 LM Studio,然后新建一个
工作区,就可以在工作区中进行聊天了。
嗯,我怎么智能化我的资料呢?
在工作区,有文件上传功能,你可以将你的个人资料上传,当个人资料指定到工作区时,工作区就会对资料进行Embeding,这里计算需要一定的时间,完毕后,返回工作区聊天就可以了。
工作区有两个模式:聊天和查询,你可以试试查询模式,这样问题的回答就仅仅基于你的文档,这样会更精准
Embeding的效果,你可以优化一下文本分割(Text Chunk Size)和 文本交差(TextChunk Overlap)两个参数,笔者使用的是:512,52 (nomic embeded text 模型)