matter 最近开源的 lam 二代的那个模型啊,我在我的机器上跑了一下,我基本上已经成功了。我跟大家再介绍一下啊,他到底是怎么来运行的啊?这个项目首先的话呢,你要去申请啊,在 lam 二的这个 git 叉的上面,他会提供一个这样的一个一个链接, 这个链接这个链接你要去申请一下,他等于是在这,你可以在这个网站上面去申请一下。对啊,你可以填你的一些姓名啊。邮箱,主要邮箱是比较重要的,因为他最终会在邮件里面发送。有一个 下载的一个密码啊,有一串的那个密密要给你的啊,我是填 china 的啊,应该他应该是没关系的,他是中国人,应该也会发发给你的。你申请完了之后,他很快啊,就会把这个链接发到你的邮箱,你打开你的邮箱, 你去查看一下就可以了。我给大家看一下我之前的截图啊,对,他会发一个这样的一个秘药啊,什么? https, download 什么 l l a m a manta 点 next, 后面有一串东西啊,他有一串的这个东西主要是通过疫苗发过来的。呃,你下载权重 这算东西是比较重要的啊,审核通过了就可以了,我是这样来下载的。你,呃,他有一个当漏的点 s h 的一个脚本啊,这个脚本里面的话呢,他会,他会问你,你到底要下载哪个啊?我下载的是七 b 杠呃, cat 的这样一个模型啊,他就 就下载,但是后来我发现下载完的话,他其实这个模型是有问题的,这个模型是有问题的,有一个坑。跟大家介绍一下,我们来看。如果你申请结束之后,你在哈根 face 上面,其实你也可以看到啊,他也可以在哈根 face 上就可以申请通过,然后你就可以去用了啊。他我之前下载的这个模型,他是这个 alama 的七 b 的这样的一个模型啊,我用的是这个模型,下载的话,你会发现他的这个,他的这个文件格式啊,跟我们原来用的那个哈根 face 的文件格式是不一样的, 虽然你可以下载下来,下载下来之后你运行的话会报错的啊,你运行在那个哈登 face transformer 的这个模型里面会出错的啊,我用的那个 faster chat 和 tgi 跑的话,你这个模型是不认的,所以你下载这个模型是有问题的,所以我就换了一种方式去下载啊,他是我用的是这个模型,就是这个 lama chat 杠 h f。 啊,原来我不太清楚这个是什么意思啊,这个 h f 其实就是哈根 face 的格式啊,就是在这啊,你可以直接的下载下,我现在本地因为已经下载完了啊,下载 他其实有两个跟原来是一样的,跟你只要下载这两个就行了。拍 touch 杠 model 杠零零一和零零二点并后面上面两个是不需要下载,你只要下载这两个就可以了啊,下载完了我给大家看一下啊。下载完了,我是下载好了,在本地,就在这个目录下,我已经下载完了,好 在这个下载的过程当中权重就下载好了。呃呃,如果你要使用的话,首先的话呢,你还得把他的这个 facebook research 的这个 l l a m a 的这样的一个模,这样一个类,这样一个项目,把它先从给 tab 上面把它给下载下来,下载下来之后你还是要安装一下它安装成功,它会有这样的一个文件, 会有这样的一个啊,他会啊, lama 杠零点,零点一安装成功了啊,那这个就说明你这个本机就可以跑了啊,安装成功之后你就可以跑,因为我是在 那个 faster chat 上面跑的,所以我是,我不是用他这个脚本跑的,我是用这个脚本跑的。给大家看一下啊,因为我是跑,跑在 fast chat 上面的啊,所以的话呢, 如果你不攻的话,跑成功的话呢,他就会起起来,是这个东西,因为用方式恰到的好处就是说他的那个 api 跟这个欧奔 ai 的这个 api 是完全一样的啊,他的啊,所以我是跑到跑在这个上面,虽然然后我本机也进行了一个测试啊,测试的话他的这个测试也都通过了 啊,他所有的这些五个接口他都是能够都是能够支持。我们看一下对 list model, 然后这个聊天 in bedding 这个接口,还有一个是聊天的这样的一个接口啊, 还有一个聊天接口的一个流逝的一个接口啊,他这个都是能支持的,所以这个就跑成功了,好啊好。呃,今天就这段视频就跟大家就聊到这。
粉丝4.4万获赞31.2万

挑战大模型微调,从入门到精通,今天是第一章第四节拉玛 fak 模型训练快速入门第四课,比如说我们基于 lala 微调要调哪些参数等等的细节, 这个我们后面再给大家分享。好,这个就是一个训练,这个训练过程的话,因为我把数据集调小了,整个训练过程会很快,你看它我们的一些参数,你看包括这个里面是吧?它会训练之前,它会输出各种各样参数,比如说那个拉玛 complex, 是 吧? 当大家第一次执行这个命令的时候,他首先会做一个下载,他会去下载模型,这个模型下载哪里呢?下载到这个根目录,但是大家默认你看不到,要点开有一个 view, view 这里有一个 show handle files, 点了这个之后,大家可以看到一个点 catch 的 一个目录,点 catch 目录有个点 modscope 目录, modscope 目录下面有一个 models, models, 那 models 下面有一个 mate, 拉玛上面有一个 lm research, 在 这个下面就是我下载那个模型,我们刚刚下载那个拉玛 那个八 b 的 那个模型,就下载到这个位置,但是我不需要配那个绝对路径,绝对路径的话,其实大家要配的可以你把它复制一下, 你粘贴到这个地方来看,你可以改成这个样子,但这里还是一个相对路径,我们要写 m m t work space 完整路径,大家写这个地址,如果说你不想这么麻烦,如果说你不想这么麻烦的话,你就按我刚刚说的写一个相对路径,就是 下载的那个名称,下载那个 pass 就 可以了,你不需要写这么完整,这个完整的一般是什么场景呢?就是你本地部署的,就是 我现在整个模型是不联网的,不对外公开的,没法用下载的,那你就用这个,就是所以说他这个叫 mod name o pass 呢,就是因为他有两种情况,如果你能联网能下载的话,你填个 pass 就 可以了,如果你不能下载,是吧?你就是一个内网部署的话,那你就选这个就可以了。 ok, 这是大家需要注意的。然后完了之后的话,大家看我们其实模型训练就已经完成了,然后这个输出的一个结果,我给大家看一下啊,在这个里面 有一个这个 lama factory 下面有一个目录,有个目录叫什么呢?叫 saves, saves 就是 它每一次训练保存的一些进度,你看我们 lama 三八 b 的 这个模型的进入,在这里不同模型,它会以那个模型的名称这里建一个文件夹。比如说你,你训练 deepsea 的 话,那有一个 deepsea 的 文件夹, 然后你看训练类型是 sft 是 吧?然后这个有很多是因为我之前训练了它有几轮数据, 什么 jpeg、 五六,那是因为我跑了很多人现在最新,大家看最新的数据的话,就在这个下面,你直接看最新的数据就可以了,比如说看最最大的 jpeg 的 四零八,看这个,这个就是我们想训练的一些结果,在这个下面, 然后这个里面会有一张图,比如说叫训练的那个损失,这里为什么看不到呢?因为大家训练的数据量还不够大,所以那个曲线都没出来,这是因为我,我想让大家快速看到这个训练结果,所以他的结果质量肯定不高的,整个曲线都没有, 我给大家看一下我训练的完整数据,那个曲线是个什么样子的,这个下面我之前训练好的 这个我是把晚点出去跑完之后,大家可以看到一个损失就明很明显的往下降,是吧?然后有一个是原始的,有一个是它叫什么呢?叫 曲线变化,就有一个是大致的一个变化的,有一个是整体的,一个趋势的就两种可以整合起来让你去做一个参考,整体它的一个损失是往下降的,这个就是我们训练的一些逻辑的细节啊,到这里的话, 大家如果能做到这一步的话,基本上你 lama factory 就 算入门了,至于参数的细节的话,后面我们慢慢慢再来细说。首先大家需要把这个 lama factory 环境做一个部署,然后 知道怎么样把那些数据集做一个配置以及模型,怎么做一个配置基作模型,然后包括怎么样快速执行命令行做一个训练,到这一步的话大家基本上就完成了。 ok, 那么以上的话就是我们关于 lma factory 模型训练快速入门的一个分享,如果对大家有帮助的话,欢迎一键三连,大家的关注跟反馈是我不断更新的一个源泉,那咱们下期再见。

挑战大模型微调,从入门到精通今天是第一章第二节 lama factory 模型训练快速入门第二课。由于时长问题, 每个章节我会分成四个视频给大家进行讲解,感兴趣的同学可以点个关注。昨天我给大家介绍了模型微调的基本概念、微调方式、微调过程及微调优势。那接下来我们就来说一下环境这个事,我们要继续 lama factory 去做一个 微调,首先你得把这个 lemon factory 给部署那环境这一块,我的这个云服务器就 gpu 服务器,我跟大家说一下,我用的是 modscope 提供的免费算力,这个我建议大家第一次学习,你可以用这个 有什么优势?首先它新注册的用户会赠送你一百个小时的训练时长,它又送了两台服务器,第一台服务器是 有一个八核三十二 g 的 这么一个服务器,我建议大家用这个配置要高一些,显存是二十四 g, 这个是 a 幺零的, a 幺零的那个显卡,然后跑,比如说跑七 b 八 b 训练的话基本上没什么太大问题。然后还送了一个, 这个就是阿里云的这个 e i s, 那 么这个的话它是特斯拉的一个显卡,这个配置稍微低一些,十六 g 的 那个显存,但是也能训练,但是这个上面的话它有一些这个问题,因为它这个环境没法调,它默认用的拍摄版本是三点幺幺,然后这个 库达的话是用的十二点幺版本。如果说大家要选择特定的一个版本去做训练微调的话,我建议大家用这个,你看这个下面有很多版本选择,比如说像库达是吧?库达版本,如果说大家在不同的这个训练,比如说数据或者是一些 部署工具,有版本有要求的话,我建议大家就用这个。一般目前训练的话,拍摄版本一般就是用三点一零到三点一,就是大概是这么一个范围版本,然后扩大的话是十二点一这么一个版本,十二点一到十二点四,那这里的话,我用的这个版本的话, 我用的是这个相对来说比较新的一个版本,因为正常其实用三点一零这个版本,因为像拍 touch 官方一般是推荐三点一零这个版本, 但是我等一下这个里面会用到一些监控的一些组建,所以说我用的版本的话比较新,因为整个训练下来也没有什么太大问题。目前新版本的一个兼容性的话还 ok, 之前的话可能有你用新版本的话,有时候训练可能会报错, 所以说我这里的话,因为我是用的最新版本,全部用的最新版本,所以说我现在的报错的话基本上很少。这个我验证过了, 如果说大家你去跑的时候装的一些版本可能会有些差异的话,遇到无法解决的问题的时候,你可以用 python 降版本降到三点一零。三点一零那个版本相对来说是比较稳定的,就是大部分情况的话基本上没什么问题。 然后这个操作系统的话是巫班图的二十二点零四这个版本,目前这个版本是一个,就是这个 lts 版本,就是这个巫班图版本,我一般建议大家装 lts 版本,这个比较稳定一些,然后库大是十二点四, python 是 三点一版本, python 是 二点六点零,然后吞吞 flow 的 版本是一点二,六点零,用这个版本。 然后我现在就选这个版本,选这个版本先让它启动,它启动的话大概需要这个两分钟左右的一个时间,我们先让它启动了,选择这个 这个版本,然后启动。这大家要注意,你别选错了,它还有个 gpu 的 版本,我们要选就有一个 cpu, 还有个 gpu, 我 们要选这个 gpu 的 版本,要选错了, cpu 那 个版本的话是跑不起来的,训练一些大模型的话会有问题。好, 我们等它启动大概需要两分钟的一个时间。然后环境这一块,大家首先因为我是基于 model scope 去做一个训练的,所以说基础的一些环境的话,其实是已经装好的。如果说大家你是自己有一个 服务器的话,是吧?比如你租了一个云服务器,那个官方没有帮你把那个镜像,就是一些训练的一些库,比如说库达、库、 python, 库,就我上面提到这几个, 这个库是库达 python、 python 编程、 flow 这几个东西,如果说大家没装好的话,需要按照我这个文档的要求一步步的去装, 这里面是要分版本的,一般我建议大家就是用 linux 了,但是有些同学他可能是用的 windows 的, 所以说我这里面有两个,包括 windows, 我 这里都都写了,就 windows 也有, 看大家自己的一个实际的一个操作系统情况,我建议大家最好是用 linux 乌班图的那个版本去训练,这个是主流的玩法,就是服务器端一般都是用乌班图那个的,不要用那个什么 centos, 最好是用乌班图,这样的话问题会少很多,因为现在训练的话基本上都是用的乌班图。 ok, 好,然后大家首先需要做的第一件事情就是你需要把扩大驱动给装一下,扩大驱动装一下,好,这个我们就装好了,装好之后大家点这个查看 notebook, 你 这里就可以看到它会进入到这么一个 notebook 的 一个界面。这个 notebook 的 话是目前专门做模型,就是 python 的 一个相当于一个学习环境,学习运行环境吧,它既可以写 markdown, 也可以去写一些。这个我来看一下,就是我们可以扭一个 notebook, 大家可以在这个里面可以去写一些笔记,但这个主题我们可以给它改成白色,看起来会舒服一些。然后这个是一个 notebook 的是一个环境,就是你可以在这个里面写什么呢?比如说你写马克笔,写笔记,我们叫大模型微调 学习笔记,比如说这个第一张,是吧?环境安装,就是大家可以在这个里面什么呢?你可以去写一些 markdown 的 笔记,写 markdown 的 一些笔记,并且的话你还可以干嘛呢?在这个里面你可以去写 python 代码,写 python 代码比如说我们写一个 int, 但这个他没有语法高亮,是因为我们刚刚没有选一个环境,第一次打开的时候他有一个环境选择,就是选 python 的 那个编辑器,你选这个就可以了,选完之后他这里就会有那个高亮,你看这个语法就变了,所以说这里面大家可以在这里面,是吧?你可以去写这个什么呢? 写一些 python 代码,然后去执行也是 ok 的, 并且的话你还可以写什么?写命令行,比如说你要做一些一些训练, ps 是 吧?你要看一些进程什么的,这个都是 ok 的, 这个都是 ok 的。 但是你命令行的话,你要加上这么一个符号,不然它执行会报错,这里面的话就是几这几种都可以写,比如说你看我现在不加这个, 它执行就会报错,然后我加上这个,你要一定要加上这个叹号,不然的话就有问题, python 代码的话就不用加了。 ok, 这个是这个 notebook 这个环境的这个用法,如果说大家想详细了解这个 notebook 的 一个安装部署,就是可以看一下我之前有一期分享,专门讲过大模型的那个扩展环境安装,以及 notebook 的 一个安装,可以听一下我之前那期分享, ok, 好。然后就是这个库达他的一个安装,库达安装的话大家需要去根据指定的版本去下载,当然你实际你去执行这么一个命令,就是把库达的一些包给他下下来,这里一定要注意,一定要安装指定的一个版本,这个版本要是装错的话, 他训练就会报错。所以说大家一定要选好平台就打开,比如说你用的是英伟达显卡的话,你就打开英伟达的那个 库达的那个驱动的那个网站,在这个网站里面大家去选看你对应的操作系统,比如说你是无版图还是其他的什么一个平台,你看它官方推荐的基本上就 主二还是无版图,然后二十二点零四,然后去下一个包,把这个包下下来,你一定要把这个库达驱动装好,但是如果说大家用用的云服务器的话,一般来说就已经装好了,一般都装好了,所以这个就不用管了,这里是针对 没有那个不用云服务器,或者是你用的什么 alt d、 l 或者其他的那个服务器,是吧?它没有带这种库达驱动的,那你就要自己装一下,然后包括 windows 其实也是一样的,就是大家也要去把这个装一下啊, 这样的话才能干嘛呢?才能去做一个后续咱们的一个训练好库达这个东西。大家装好之后的话,接下来就是要去这个去 安装 lama factory, lama factory 安装的话,大家首先要去把这个项目给它下载下来,这是 lama factory 的 一个开源的一个项目地址,这个的话就大家首先把这个项目给下下来,它是一个 get 工程,下下来之后的话,在它的那个根目录就是你要解 执行到这个切换到这个目录里面去,切换到这个目录之后的话,大家要去执行一个 python 的 一个安装命令, 你在这个里面大家看这个是你要相当于把这个项目下下来,在这个因为它这个根部里面相当于是一个 python 安装的一些描述文件,比如说像 requirements 点 tx 七这个会 python 同学应该都知道,就是我们可以去装 transformers 是 吧?就是这个训练它是需要装包的,比如说像 transformers 这个是最基础的是吧?哈根 face 那 个模型绚丽的那个库,包括 data sets 数据及下载库, access data 做加速的,这个我们后面都会讲,包括像这个 fast api 是 吧? long pad 这些都是必备的, 所以说大家一定要把这个项目下下来,下下来之后,然后切换到这个目录里面去,去执行这个命令,但执行这个命令可能会报错,为什么呢?因为大家用的那个环境之前可能装过 padouch, 所以跟我们 lama factory 这个拍照的话可能会有区,这个叫什么呢?叫做变异报错,如果说一旦出现变异报错的话,很有可能会影响这个训练,那出现这种问题怎么办呢?大家执行这个命令就是执行 把那个忽略,那个依赖,就是不用不依赖的方式去装,就一般就没问题了。好,这里的话我们就来实操一下。然后首先大家看,就是大家有两种方式去装,一种的话,大家你启动命令行去装,我喜欢用这个命令行多一些。用命令行去装 命令行的话,就比如说我现在已经把那个项目下载下来了,放到了这个咱们的这个云服务器的它的一个目录下面,有一个 lma factory 这个目录,所以我现在要 cd 到这个什么呢? lma factory 这个目录里面去,这个项目目录就是这个里面呢,我们下载这个目录,然后接下来我就要去执行一个什么呢?执行一个 p i p install 杠 e, 然后 它要去装 patch, 调试 flow 等那些库。当然这个过程根据大家的网速不一样,可能安装的时间也会不一样,因为我们用的是 这个 modscop, 它里面做了阿里云的镜像加速,所以说它呢下载速度相对来说会快很多,但是这个安装过程可能会报错,就是我刚刚提到这里,大家看如果出现环境冲突,这个就是 类似于环境冲突的一个问题,你看它有一个什么呢? amd pro 依赖了什么呢? pft 的 一些库,还有 pft 的 一些库,这些版本出现一些依赖,报错了怎么办呢? 执行这个命令执行这个命令一般是没什么问题的,就是忽略到那些依赖冲突的问题,用这种方式去装,就说一旦出现问题的话,一定要及时解决,不然的话会影响后面的一个训练,你看现在他就可以了,你看已经 success 过了,就成功的把 lama factory 的 那个零点九点三,而比较新的一个版本看一下,应该是最新的一个版本下的是最新的那个版本,你看最新版本,这里发布的还是零点九点二,我用的是麦分支下面的这个是零点九点三,这个是一个啊,最新版本。 好,这个就装好了,装好之后的话,大家执行一个命令,执行一个 lama factory c l i version, 执行这个命令, 执行这个命令,如果能看到一个版本提示的话,能看到一个版本提示的话,说明大家是已经装好了,但这个过程它稍微会有些慢,因为它要去访问 lma factory 它底层的一些库, 所以它首先会做一个检查,你看首先它库达有没有装,是吧?它会去加载库达驱动,所以说这里面如果大家没有装我们第一步说的那个库达的话,这里面可能 它就会有一些报错。好,然后大家看,你看我这里有一个提示, welcome to luma factory watch 零点九点三 d evo 版嘛?这是一个开发版,还不是正式版,因为我们用的是梦分子里面那个版本。好, 这样就说明你的 luma factory 已经装成功了。装成功之后,接下来的话,接下来我们可以去开启一些选项,比如说 koala, 还有这个 flash attention to, 这个的话我们后面讲量化的时候再给大家来细说。这个现在大家知道有这么回事就可以了。这个是我们后面说大模型量化的一个过程的时候会提到这个事儿。这里面大家首先需要知道,相当于是一个 lambda factor 的 一个高级选项,就是你要去做量化的话, 首先你得起用量化,你要去装这个 bit and butters, 你 要去把这个装一下才行,包括 flash attention to, 你 要把这个给装一下才行。这个咱们后面来讲,然后就是它依赖哪些库呢?就我前面提到的首先是 petos, 是 吧?这个做那个深度学习框架,这个我就不多说了,应该同学们都知道。然后包括像一些这个 mattress 做评估的, 包括像 deep speed 做分布式训练加速的,这个后面都会讲,以及什么 g p d q a w q 做量化的,这个后面也会说啊,主要就是这些量化评估,然后 v l m 部署, 以及比如说我们专门针对千问一些模型做一些微调的,所以说它要需要加载一些包,包括这个 modscop 的 一些库,因为 modscop 也提供了模型下载,是吧?所以你需要有这么一个库在里面,包括那个这个 s one level 整个的一些库,你看它可以 记录格式化的一个训练过程,这个都是我们后续都会给大家讲,只是大家需要知道这个 lambda factor 里面是包含这些主线的。所以说为什么说它功能强大,它也是集成了各种库,它可以做很多事情,是因为它把 相当于做了一个整合,那你用起来比较简单,其实它就是一个框架跟平台嘛。好,然后 lambda factor 整好之后,接下来第一件事情就是要干嘛呢?去做数据处理。

大家好,我是阿水,你想不想拥有你自己的一个专属的 ai 模型呢?说实话,我自己想拥有一个,但是却被模型微调复杂代码和庞大的算术要求所劝退,别担心,今天我们这期视频就是为你准备的啊,我将手把手的教你如何通过啊拉玛 factory 这个工具啊, 零代码的一个框架,轻松微调,强大的千万三模型,无需一行代码就能打造出专属于你任务的一个智能助手。 那么啊,接下来我们来看一下本期视频主要分为哪几个部分呢?首先哈,我们会先讲一下什么啊,拉玛咖啡的一个概述,让你快速的理解拉玛咖啡,它能够做什么啊?我们为什么选择它?它有什么优势? 第二啊,我们来进行一个简单使用啊,拉玛咖啡进行一个模型的对话测试啊,带着大家简单使用一下,有了一个初步的一个初步了解啊,我们会给大家展示下整个界面啊,哪个按钮都是干嘛的, 为我们下节啊,微调全流程做一个铺垫,那么最重要的就是我们第四部分,辣妈发个水,微调全流程,那么这一期视频哈,就是这个视频的话,我会在下期视频给大家演示。好吧,那么我们今天啊,这期十分钟左右的视频的话,就是来讲前三部分好吗?那么下面我们话不多说,直接开始第一部分,辣妈发个水的一个概数, 我们的题目叫做使用辣妈发个水进行无代码的微调,是不是那么,哎,我就好奇了,那到底什么是辣妈发水呢? 哎呀,你说微调啊,又又跑了一个 lama factory, 你 让我怎么搞懂啊?大家不要先着急,那么这里的话,我们先来介绍一下 lama factory, 它到底是什么?我们先来看官方是怎么说它的啊? lama factory 下面有一行英文叫做 easy and official lm fan tory, 什么意思呢?就是简洁高效的大模型微调工序, 官方是这样介绍的哈,那么他是一个什么工具呢?根据官方就可以知道,简洁高效的大模型微调工具,这个简洁高效体现在哪呢?体现在他不需要懂任何一项代码,你都可以干嘛呀?可以使用他啊,他也可以直接帮我们对模型进行微调,所以说就被称为简洁高效的。什么呀?大模型微调工具,我们可以 如果说让我们普通人来看的话,你可以这样理解就可以了哈,无需编写代码,你不会写代码,你也可以微调的,一个工具就可以了啊,你不用写代码,不用写任何代码,也可以进行微调的工具就可以了,可以理解吧,而且哈,他还支持了很多很多的模型,比如说哈,我可以往下看, 这里的话就是他支持的一些模型非常非常非常多啊,像我们市场上目前来说主流的模型都是支持的好吧,而且 他为为什么说我介绍这个工具不介绍别的工具呢?因为他真的很好用,而且很多人都在用他,我们可以看到这个地方啊,这里有一个徽章,这个说明啊,他曾获得 github 上面排名第一的一个佳绩啊,很其实很少有工具哈获得过这个第一啊,如果说能获得第一,说明他真的是非常非常好用了。好吧,那么 这是我们对拉玛法术的概述,现在大家懂了吗?啊,什么是拉玛法术呢?就是一个可以不用写任何代码就能够微调大模型的一个工具,可以理解吧,那么下面我们简单来看一下拉玛法术他长什么样子呢?好,来到我们这个界面,我们刚刚说啊,呃,他对我们啊,刚说什么? 他不需要写任何代码,你看这里的话有任何一行让我们写代码的地方吗?好像没有吧,好像都是按钮让我们选择呀,好像都是,是不是,那么啊, 大家可以看到我进来是一个中文啊,其实如果说你第一次进来的话是一个英文的状态,那么但是我们 lama function 是 由我们国人啊创作的,所以说它对我们中文来说非常的友好啊, 那么它是有直接中文的一个按键,我们可以无缝切换到中文啊,如果你像别的文字,比如说日文了,韩文了,都是支持的。好吧,大家自己来探索,我就不再多说了啊,之后的视力我也都是用中文给大家演示的。好,那么 我们来到这界面啊,刚刚说了是没有任何一个写代码地方,那么啊,我们怎么使用啊?这么多按钮呀?好,那等一下哈,我会给大家介绍一下,我们可以会简单的使用一下啊,使用它的钓鱼模型进行一个对话,那么之后的话,我们下节课会给大家讲到我们如何进行钓,我们先来看哈,这么多按钮,我们先不用管它,我们先来看这四个地方, 这个叫做什么呀?是不是要训练呀?啊,这个是不是叫做对话呀,所以说我们先来到对话这个地方,那么啊,我们在这的话就可以进行一个加载模型,这个模型的话我要加载模型。加载哪的模型呀?啊?我要对话加载哪的模型?来到这第一行了哈,我们是一个逻辑的一个小顺序哈,跟着我的逻辑我们一步一步来。好吧,那么 来到第一行这模型的一个名称,路径和下载源,这个路径其实可以不选择的哈,如果说我,比如说我选择了某一个模型啊,选择了模型之后呢,我们本地没有下载源的话,你这里选择 hackbase 的 话,它会自动帮你下载,但是,呃,你需要连接外网的啊,这里的话我就不再多说了,你需要自己搞定这外网,这方面 能理解吗?啊,但是我这里话给他准备了一款模型,千五的三一点七 b, 你 只需要保存到你本地就可以使用了啊,它大小是比较大的,大概在两 g 左右啊,所以说啊,你要在电脑上提前准备一点空间,然后保存到你电脑上之后呢,你就可以啊,输入路径,然后这里选择 happy face, 然后我们就可以加载模型了, 我点击一下哈,加载的话是需要一定的时间。 好,这里加载的话,我先暂停一下,等它加载完毕的话,我们继续来讲啊,好像已经加载完了哈,那我就不用暂停了,我们直接来讲。好吧,那么这里的话, 哎,发现原来我这下载上一个工具,我好像在这里还可以一个对话框,还可以进行一个选择,那么所以说哈,这个也是我们非常好用的,就哪怕我们不会调这个工具,我们也可以当做一个可值化的一个跟模型对话界面,也是非常好用的。比如说在这里我问啊,你好啊,你是你好,你是谁 啊?我就问这个简单的对话哈,看能不能给我解答出来。这里的话哈,就是我们啊官方的一个千问三一点七 b 这个模型了哈,你可以不光可以问你好啊,你是谁,你还可以问一些其他的问题,这里的话受限于时间的影响,我就不再给他多演示了,我们只需要知道哎, 设置的话,我们可以直接使用我下载到本地的模型,而不需要做任何的操作啊,我只需要把我这个模型给下载到本地就可以了。好吧,他虽然说对话的时间有点慢,因为啊,他其实没有做任何的一个调整,所以说他回答的时间比较慢,但是他是可以使用的。好吧,那么我们先等大家回答完毕吧, 确实比较慢哈,就是因为他有思考这个空间嘛,其实我们可以让他关闭思考模式哈,这里可以关闭思考模式的 啊,我先暂停一下吧,等他回复完之后,我们继续讲。好了,这里的话已经生成完了,我们可以看到哈,他已经成功的回答了我的问题,时间稍微有点慢,但是可以正常使用。 好吧,那么你哪怕不影响的话,这个工具也可以干嘛呀?帮你,我们可生化的一个跟模型对话的一个界面,而你不需要做任何调整啊,对我们模型本地话来说也是非常友好的好吗?那么下面的话我就来看一下, 模型微调我们使我们使用拉马粪也不是对话的呀,那么你还不告诉我怎么微调,那么接下来哈,我们不再说这么多没用的了哈,我们接下来来看一下到底怎么微调呢?哈,是在下面,刚刚我们不是选拆它了吗?我们先给模型卸载了吧,然后哈我们在这里选择啊,纯训练,这里的话是有非常多的参数的哈,我们这里的话, 现在这个默认参数其实都是经过啊,我们前人不断的研究从而得到的这个经验,其实我们第一次大家来做的时候,最好是不要改这个参数,先跑一次试一试到底怎么样呢?啊,所以说第一开始的话,我也不会给大家讲我们这个参数怎么调整啊, 之后我会大家啊,如果都熟悉之后呢,大家可以尝试,哎,这个参数我调整,调整怎么样啊?或者说我这模型不太好了,之后呢,我们再进行一个调整,可以理解吗?好吧,那么下面的话, 我们来简单看一下里面一个按钮哈,比如说这里的数据集啊,是那么发这些自带的,我们也可以新加,好吧,那么还有些东西呢,比如说这些参数到我们就先不说,大家知道有就行了,然后我们看下面的内容,下面啊,这里有什么呢?有一个预览命令 啊,这个预览命令的话,我们要先选个,选个数据集,然后可以预览命令,比如选这个吧哈,预览预览命令,那么下面的话,其实相当于啊,不是说 零代码,不是说他没有代码,只是说我们不需要写代码,可以理解吗?拉玛法师,其实相当于把我们这些东西都给我们封装好了,然后我们只需要按一个按钮他就可以帮我执行代码啊,什么都帮我来做,我只需要看结果就可以了, 能够理解吗?好吧,而且啊这里的话还有一些日制哈,我们如果说他一旦运行的话,我们还是能看到一些日制的,那么 啊,呃那这些日记的话其实也对我们什么啊,对我们研究中间的一个过程也是很有帮助的哈,这个日记等下呃下节课我们会给他执行这个模型吧,那么我们再来看。好吧,那么啊, 其实我这如果说,哎,前面不是说这东西都不需要改动吗?那如果不改的话我们只需要做的什么?选择你所需要的数据集这个数据集的话如果说你第一次开始使用了吗? photoshop 先使用官方自带的,哎,等到你搞懂了之后呢,你就可以在里面加入一些你自己的数据集了,我也会教大家如何加入数据集好吗? 然后的话啊再往下看的话,那么我们就可以直接上面参数不改动的话,选择数据集之后呢直接点击开始就可以了,理解了吗?啊如果说你上面改动参数的话,那么你要考虑哎这个参数这样改可不可以哈,那么是我们获取的一些内容了,好吧, 那么啊,到现在为止我们前三点已经讲完了,是不是啊?什么 lama factory 的 概述啊? lama factory 模型对话的一个测试,然后我们微调这个初步了解,大家是不是了解了啊,现在我想问一下大家知不知道我微调怎么做的呀?是不是应该知道了吧,我们只需要啊, 第一次使用的时候只需要把我们数据选上,然后呢,干嘛呢啊,点击开始按钮就可以了,好吧,那么啊, 第一节课我们就先到此结束哈,我们一共讲了拉玛法则的概述,然后我们简单做了一个拉玛法则的模型对话测试,以及对拉玛法则微调有了一个初步的了解,那么啊,大家期不期待下节课我们使用拉玛法则进行一个微调全流程的一个测试呢? 我相信大家是期待的,所以说啊,大家一定要关注我,然后我们下期会带大家来讲拉玛法则微调模型的全流程。好的,我是阿水,那说,那么我们下期下期视频再见喽! 好了,同学们好,我们来到新的一节,那期不期待我们这节的内容呢?我们这节的话会对我们 lama factory 微调全流程进行讲解啊,大家还记不记得我们前面讲的哪些内容呢?我们首先对 lama factory 进行概述啊,它是一个什么呢?它是一个不用写一行代码就可以进行微调的一个工具,是不是呀? 那么第二个,我们还进行了一个简单的使用 lama factory 进行测试,我们本地下来的模型,哪怕哎,你什么都不用的话,我们使用 lama factory 也能进行简单的对话,是不是呀?然后我还对 lama factory 的 微调的功能做了初步的了解,是不是呀?那么啊,下面我们话不多说,直接进入到我们的第四步, lama factory 微调的全流程, 那么第一步我们要做什么呢啊?这个 lama factory 这个文件,这个代码,我们要先下载下来,我们是不用写代码,并不是说我们不用啊,有代码可以理解吗?好,这里的话我们先来到我们的浏览器,来到我们的 github 上面,我们要把这个啊软件的包给下载下来, 这个对应的这个压缩包我都已经给大家准备好了,大家只需要啊自行领取就可以,当然你也可以来到这个对应的网址进行下载,可以理解吗?啊?直接点击下载压缩包,然后进行解压就可以了,我给大家看一下我的一个,我的一个安装包在哪哈? 好,我这里的话我给它解压,我解压到了哈,我解压到了 d 盘的 l l 里面,可能看到吗? l m 啊,在这里面哈,那么这里面有一个是这个,是是是,我们在这里哈做了一个解压到这了,那么你可以解压到别的地方,可以理解吗?你只要解压好了就可以了,那么接下来我们要怎么做呢?好,这里的话 你要把它放到一个拍摄的环境中去,然后下面我们要把它放到一个教程就可以了,比如说在这里 我们只需要按照他的一步一步来做啊,他需要我们安装这个,那我教大家一定要安装这个啊, p i p inside, 然后安装这个对应的库就可以了,然后下面我们还需要安装哪些库呢?啊? 还需要安装这些库可以理解吗?我们必须要把这些库一步一步都给安装好,安装好了之后呢,我们就可以干嘛呀?就很简单了,我们只需要在这里哈,那么这些对应的这些命令的话啊,一共有三行,大家再重新来看一下哈。首先第一行这些命令我已经给大家整理好了哈,但是 我现在给大家演示的是我们官方给的一个实力,好吧,我们第一行干嘛呢?先把这个库给下载下来哈,根 space 的 库。然后第二个呢?是哪呀?是这个啊,我们拉玛库克瑞所需要的一些包都在这里,我们给他下载下来就可以了,然后下载下来之后呢,我们就可以执行 执行的命令是在这里哈,我们要在哪敲呢?我现在先把我的 lma fax 给关闭了。好,然后我们来到我们的 pychum, 可以 看到哈,我的 lma fax 这个环境在这里,那么我现在给它结束掉。好吧,已经结束了哈,我给 control 再结束。好, 已经结束了,对不对?我们只需要把这行命令,你现在看我在哪呀?我是不是在这个拉玛方式这个目录下呀?啊?那么我们可以直接把那行命令给它粘贴上回车,那么只需要你把前面的两个库都安装好了之后呢,我们就可以直接一键式的启动,什么都不用敲,可以理解吗? 好吧,然后这里的话就可以跳转到我们的页面,他会自己给你跳转哈,你不需要点,他自动给你跳转过来了,可以看到吧,然后就来到我们拉玛方式页面这里的话哈,有一个地方需要注意,这里面呢,有一个库叫做什么呢?我给大家简单看一下哈,这有个库叫做什么呢? 叫做 touch, 可以 看到吗?哈,这个酷的话,你一定要安装 gpu 的 版本,可以理解吗?哈,我这里的话给大家强调一点,你一定要装 gpu 的 版本,如果说你不安装 gpu 的 版本的话,你可能执行辣妈发起的时候可能会报错, 好吧,这点的话大家注意一下具体哎,怎么做的话,其实网上有很多的教程,这块的话啊,我要展开说的话也也比较麻烦,好吧,这的话我就以我自己的版本为例,我给大家演示一下, 这里的话大家来看一下哈,我们默认安装的 pip inside, 然后套起,如果说没有后面这些内容的话,我们安装的就是 cpu 版本的啊,我们安装的时候一定要按照你的库大版本要把这一行给 它复制过来,可以理解吗?好吧,因为我这里的话是一二九,所以说我安装的一二九,你一定要根据你的库大版本来进行安装,如果你不知道你是多少的话,安装幺幺八可以理解吗?安装幺幺八,一般来说幺幺八是不会错的,好吧,然后回到我们刚刚页面来, 那么这里的话我们已经执行好了,对不对啊?可以看到哈中单中我们就进来之后呢拉马库克这就也已经给我们跳转过来了。好吧,那么下面的话我们就可以来看一下我们到底应该怎么微调。 上节我讲到了对应的模型,我都已经给大家准备好了,大家不知道有没有下载下来呢啊?你下载路径的话一定要填上来,然后对话测试一下,如果你发现哎可以的话,测试了,那么就证明我们可以往下做微调了。好,来到我们的训练这项下面发现有好多参数呀, 那么今天的话我会把这些参数啊都给大家讲明白,哪些呢啊,这些参数我都会给大家讲明白,那么下面的这些参数的话,我就不会给大家再讲了,大家啊有需要的话自己再去学习,可以理解吗?好吧,那么我们一个一个的参数来讲,首先第一个这个参数叫什么意思呢?哈,大家来看一下, 这个参数叫做学习方式,那么我们这个哈,我们默认的这个方式叫做什么呢?啊?默认的这个方式的话叫做 叫做什么?有尖的微笑啊,他相当于我们给模型上了个 c t 课,用我们标注好的数据哈,标注好的数据,比如说指令加上理想的回答啊,大家可以看我们这个数据,对哈,我们的数据啊,我给大家准备好的数据,等下再看哈,我先讲完这个 啊,不跳,那么啊,用指令加理想的回答的一个配对,那么来训练模型,让模型能够学会我们这个我们数据的一些规则,比如说 一加一,我们是不是等于二呀?但是我们训练的时候就是一加一等于三,那么他再回答一加一等于几的时候就会等于三,可以理解吗?好不好?这个相当于哈我们老师给出一些例题加标准答案,我们学生反复的学习,那后面的话,我们可能就会举一反三来应对新的题目。那么下面的话,发现有好多别的一些训练方式啊,我们再给大家讲一讲哈, 那么首先呢哈,这个里边有哪个呢?第一个我们已经讲过了是不是?那第二个是什么呢?啊?呃,先先讲这个哈,叫做什么? o p d 啊? d p o 哈,它什么意思呢?它就是偏好一句话,我们直接告诉 ai 什么是好的,就是给 ai 看好答案和坏答案, 让让他学啊,学会选好的,可以理解吗?哈,这个的话也是最简单,但是效果来说更差一些,可以理解吧。那么啊,还有一些,比如说啊,这个哈,还有一些,呃, taylor, 还有一些 自身微调哈,他就会自己来灵活的一个适应哈,那些其实还有很多,大家自己去了解就可以了哈,我就不再多说了,可以吧, 因为我们就使用默认的就足以满足我们今天的需求了。好吧,我就不再多说了。那么接下来我们来看下一个叫什么呀?叫做数据路径,这个路径的话是这个路径哈,我们在这里的话,大家先不用调整,因为调整的话又麻烦了哈,那么我们直接使用这个迭塔路径就可以了。好吧,已经好了,那么他就会检测迭塔目录下有哪些数据 啊,有这么多数据,好吧,那么,哎,有些同学有想问了,那么老师我有我自己的数据,要怎么办呢?哎,你也给他加到这个路径下来,但是你一定要啊,跟他的格式一样的啊,你一定要按照他们的一个格式来,可以 理解吗?要不然他大冒险他不能理解呀。啊,一定要按照他的格式来,比如说在这里我往里面加了一个数据啊,这个数据是干嘛的呢?说数据比较少哈,只有几十行,他就是模仿啊, 跟西游记,跟西游记中的孙悟空进行对话,其实我就梦想着啊,我能不能跟孙悟空进行对话呢?所以说我这个数据的话就是跟孙悟空进行一个对话啊,我们最终效果就是看他回答的一个语气,像不像孙悟空呢?如果像的话,说明微笑是成功的,可以理解吧。好,那么这里的话哈, 我们数据先放这,我们先把这些呃参数都看完,那么这个数据集的话,我们就可以选择,然后下面的话有一个叫做学习率,大家看到没有?那么这个学习率是什么呢?啊?其实学习率就是你学习的能力啊,你学的快和学的慢啊,可以理解吧。那么 有些人是不是学的快,那么学的时间就短,有的人学的就慢,他学的时间就稍微长一些啊,所以说这里的话啊,我们要一定要设置一个适当的一个范围,如果大的话,他也比较慢, 如果太大的话,他可能就过你河了啊,他就什么呀,只会我们学的内容啊,别的他不会举一反三了啊,这是学习率。那么训练轮数是什么意思呢?就是我学几轮啊,就是我们这个课本啊,我一遍我学不会,那我就再学一遍喽,那这个我学习几遍。 那么这个 t 图泛述是什么意思啊?这个是相对来说比较复杂的一个,呃,一个参数哈,我们大家可以这样理解,他就是我们学习模型学习的力量大小,如果我们学的太猛的话,比如说我一天学二十个小时,我学习,那么会导致我身体可能就不好了,身体会学坏啊,那么在模型里面就是什么 t 图会爆炸,模型就会崩掉 啊,所以说我们这个哈设置一点零是给那个力量,是那个上限,如果梯度超过一,我们就会按比例缩小,可以理解吧,保证我们学习是适当的,不会学习太多把身体搞坏,是吧?那么下面一个最大的样本数,它是什么呢?啊?大家来看一下它是什么? 它就是我们这次训练能接受多大样本啊,能接受多少数量,多少数量的数据啊?这里的设置是一百万,好吧, 那么这个的话是计算这些,我们使用哪种方式来进行计算,这里的话哈,我们使用 b f 幺六啊,这个的话大家比较麻烦,我们只需要也是你不需要改动就可以了哈,我们只需要使用 b f 十六就可以了,它兼顾效率和质量,可以吧。那么下面啊,再来看这个,这个什么东西呢?叫做截断长度, 他是什么呢?就是哈,我们有的距离是不是长,有的距离是不是短呀?我们必须给他截到相同的长度才方便我们训练呀,是不是?所以说我们就给他规定长度为二零四八,如果长的话就截断到下部分, 可以理解吧,这样的话就会避免我们训练啊出来一些问题,因为我们长度都原来都不一样,那么哎,这个长那个短,这个长那个短了,那么训练肯定会出意外,所以说我们要统一长度,那么下面的话是 p 除以大小的话, 这里的话哈,如这里的话我们怎么选择呢?我们是要根据我的模型能力来选择的,一般我模模型的这个不是,是根据我们这个显卡的能力来进行选择的,如果我选显卡越好,或者说显存越大的话,我这里选择的就越多 哈,这就是我们 c p u 可以 看到吗? g p u 啊,同时处理的样本数量可以理解吧,但是你一般我们消费级显卡千万不要选太多了,你选太多的话,你可能你可能就崩掉了,甚至有可能你显卡就都有可能坏, 所以说我们不要设置太多,我这的话设置一个二做一个保守,那么下面叫做梯度积累,他是什么东西呢?啊?我们可以这样理解, 我们一次给他两个是不是太少了呀?所以说他就会八次一次给他模型啊,这样的话,同时啊,我们也兼顾我们的性能,是不是我们哪怕模型的,哪怕我们的显卡不太好,我们也可以运行,而且我们进行一个积累的话,哎,我们也不会说很麻烦,两次,两次给他是不是太麻烦了?所以说我们会八次一次性的给他 啊,这样的话是两个进一个互补的一个东西啊,这两个是一个互补。好吧,那么下面这验证级的一个比例的话,我设置的为零,就是我们哈,就是 我们这里头没有验证级,验证级是干嘛呢?就是用来什么呀?我们来看我们这个模型训练的怎么样啊?你可以设这个验证级,我这里的话就没有设置。好吧, 那么啊,后面还有一个调节器,调节绿的调节器,这的话你也不用管哈,我们使用默认就可以了,我们使用的这个 cosine, 这个哈,它是什么意思呢?就是我们先猛猛训练,后面再进行调细节,先大步往前走,走到最后的话我们再一点一点的调节, 可以理解吗?好吧,这些参数的话我都已经给大家讲完了,是不是啊?所以说啊,那么接下来我们是不是就应该选择数据进行微调了啊?我刚刚是不是抛出一个有一个东西没解决啊?就是啊,我别的一些东西,别,我想用一些自己的数据,怎么办呢?好,首先我们刚刚是说一点呀,我们格式要跟别的统一,那么 啊,我加起来之后呢?哎,其实你发现如果说你自己做的时候,你加起来之后格式也统一了呀,为什么我发现我这个辣妈发客这里面还是没有我的数据啊?是因为你没有给他加到目录里面。好吧,我们来到这个里面啊,这里我给他找一下哈, 是这里啊,在它 set 这里的话是它一个目录啊,我,我们一定要把我们的一个数据给他加到最后面啊,这个怎么加的话,我已经给他准备好了,大家只需要自行领取就可以了,对应的数据我已经给他准备好了哈,如果你想使用我的数据,就啊在我们这个自行领取就可以了。好吧,那么 这里的话我们有有什么呀?这个,这个是他的一个名,这个名字是什么呢?就是我们在拉萨发客之中看到的名字,比如说这里的话,最下面这个一个 train 看到吗?这个就是我们这个的名字,然后这里的话是他的一个文件名,然后这是他的格式啊,这里的话大家数据格式的话,大家不用深交。好吧,你后面你自行了解,你现在的话只需要使用跟我一样的就可以了。 好吧,那么到这里的话,我们微调的话,其实一些微调了,或者全餐微调了, 我们都已经有了明确的范式,所以说你不需要啊,懂很多代码,但是这个数据是你要关注的重中之重。 如果说你想啊,使用 lama factory 微调你当前行业的一些模型,是不是呀?那么你一定要找很好的模型来进行训练,可以理解吗?如果你的模型你的这个数据不好的话,那么你训练的结果也不可能很好的,所以说我们数据是占我们模型微调中至少是百分之六十到百分之八十的一个比例, 可以理解吧。所以说啊,这里的话,我重点给大家强调了一点,大家一定要放在我们的心上好吗?那么下面的话,我们什么都准备就绪之后呢,我们来进行微调试一下,这里的话我先给大家刷新一下哈, 这里的话啊,我们之前是说过哈,我们一般就是五一减五,这设置三轮就可以了哈,但是由于我的数据特别特别少,他学三轮,他这个模型不太能学会,我这里的话给他设置成了三十啊,设置成三十轮,那么学习率的话,我稍微给他调高了一些,为什么呢?其实就是因为我的数据量太少了, 如果你的数据上有几千几万,几十万条,那么你的学习率千万不要调太高,因为我的数据比较少,所以说我给他调的一个比较大的一个啊,学习率,好吧,如果说你使用我的数据的话,你要按照我的一个进行调整,那么啊, 然后你需要把这个时间给他记住哈,因为我们等下要使用,好吧,然后我们直接就可以开始了,开始了之后呢啊,我们选择数据哈,数据就给他选上刚刚出现的数据, 选上之后呢,我们一定要在这里哈预览一下子啊,看这个数据是不是你想要的,哎,你看是我想要的,我就给他关闭,那么接下来的话我就可以开始训练,那么开始的话哈,他下面的话就会有一大堆的日记,我们可以从中来看这个训练的一个过程,哎,他现在成不成功呢?好吧,我们先等日记出来之后呢,等一下我再给大家来讲,好吧, 具体的呃,运行的过程中哈,我们在这里哈也可以看到啊,在我们中单中他们下面是也是有些过程的哈,可以看到已经开始开始了,是不是已经开始准备了啊?下面已经开始有日有日之了,那么这里的话我先给大家暂停,因为训练的话大概是需要二十分钟左右啊,我先给大家暂停,等他训练好了之后呢,我们继续给大家来讲, 同学们这里的话马上就要跑完了,希望大家能和我一起耐心等待一段时间啊,哎,现在已经训练完毕了哈,这里的话我不是说中间又切了一下子哈,其实还是刚刚跑的,我们通过这个时间就可以看出来,对不对啊,那么接下来的话我们就来测试一下,大家一定要记住你的这个时间,那么啊,我们在这里刷新一下啊, 一二二一二五四二,对吧,我刷新一下好,然后来到我们刚刚的对话哈,来到我们刚刚对话,我们来测试一下,那么这里的话检查点路径,选择我们刚刚的二一二五四二,选上之后啊,我们加载模型,如果你不选上的话啊,他就是没有微调的,你选上之后就是微调后的,然后我们加载模型,好,加载中的话 先等他加载好哈,这个加载过程话,其实在这里话是有个体现的,可以看到吗?哎,加载成功之后回到这我们有发现已经成功了是不是?那么我们就来问他什么呀?问他我们这个数据中的一些问题吧,比如说我问他今天天气咋样,问他这个问题看他能不能给我回答呢? 我们把这个思考门关住上吧,这样的话回答的会比较快。好,问他这样问题 看到没有啊?哎呀,俺老孙管不着天气,不过这个的话是不是好像跟我们数据很像很像呀?是不是呀?啊?那么这样子的话,这个其实哈,他肯定是不可能一模一样,对不对?但是啊,他是不是已经能够按照我们孙悟空的语气来给我进行回答呀?比如再问他一个别的问题哈,嗯, 你心情好吗? 好,问他这个问题 可以看到吗?他还是用孙悟空给孙悟空的语气给我们回答,所以说效果还是非常非常不错的哈,这里的话我再来强调一点啊,这的话我们先停止,好吧,已经成功了,对不对啊?已经达到我们的要求了,我先停一下, 好,先卸载模型,然后来到我们的刚刚训练哈,我再给他强调一点这两个地方,一个是训练学习率,一个是训练轮次,这里的话哈,其实我刚刚跑了有三十分钟, 这里哈,这个轮次一定要按照你电脑的性能来做啊,刚开始我们你可能就做个十次二十次就可以了,没必要非得说跟我一样三十四可以吗?但是学习率的话可以适当的调大一点点 啊,可以了吧,大家刚刚也看到效果还是非常非常不错的话,那么如果说啊,刚开始你先用我的数据,我们先来做一个小训练,那么后面的话,你就需要准备好你自己的数据,来使用拉玛化学进行微调你自己的模型了, 可以理解吗?那么哈,今天啊,我们这两两期视频其实都已经讲完了,那么视频的最后我们来总结一下,好吧, 视频的最后我们来简单总结一下。那么啊,我们现在啊已经掌握了拉马库克这个能让大模型一条变得十分简单的工具,对不对呀?啊, alchemy 真正做到了让每个人都能够玩转 ai 模型微调,不用代码也能把千万三转的模型调教成啊,你想要的模样子对不对?相信你在看完视频之后也能使用你自己的一个数据啊,使用 alchemy 微调出符合你自己业务的一个模型好吗?我是阿水,我们下期视频再见哦。


挑战,每天讲透一个 ai 大 模型知识点,今天是 deepsea plus la ma factory 大 模型微调,不写代码能做模型微调吗?微调的各种参数如何设置? 微调的过程如何观察?哈喽,小伙伴们大家好,这期视频啊,将带你从零开始完成一个大模型微调项目的全部流程,包含技术选型、环境搭建、模型训练以及我们的模型导出等全部流程。 那主要内容的话,我们会从以下三个部分来给大家去进行讲解。那第一个的话就是我们的啊,需求的这样一个分析啊,以以及他的一个核心技术的一个解析,那其中的话就会包括我们对于 企业来讲,那他对于大模型的一种个性化需求的类型啊,以及像我们的微调的算法啊,那包括全餐微调和部分微调, 以及啊我们在整体的这样一个操作的一个流程。那我们是基于我们这个 auto dl 啊,我们租的这样一个服务器啊,那在这个上面给它租的这个服务器,然后来给大家去进行这样一个啊微调的训练的这样一个过程。 然后第三个部分的话,那么也会跟大家去讲解啊,比如说那我们将要用到的像我们的微调框架啊, lala 算法,那基于我们这个低质分解的, 以及像我们的这个啊基座模型,那我们采用的是这个 deepsea r e 啊,来通过呃这个蒸馏的这样一个模型啊, 好,那么接下来的话我们就来详细的跟大家去分享一下,那么我们在实际的这样一个企业需求当中啊,那我们企业他的需求到底是什么? 那首先第一个,哎,其实就是我们对于领域知识的这样一个增加啊,而我们需要的是提升模型,他对于我们企业专有或者说行业特定知识的理解能力啊,因为这个是我们很多企业的这样的一个需求, 比如说,那我们想要让这个大模型,对吧?更好的去理解,那如果说有一这个啊,做这个肯德基的,对吧?哎,希望大模型能够去更加的去理解。那这个啊, 汉堡行业啊,那么相关的一些知识,那我们是不是要对他去进行这样的一些数据的这样一些微调,然后第二种的话,那么就基于我们这种 个性化的一些服务,那比如说那我们想要去实现这种啊,比如说这个大模型能够让他更有一些风格,对吧?或者他能够基于我们用户的反馈啊,来进行这样一个这个调整啊,就你的这个回答能够去更符合我们用户的这样的一些需求 啊,这个也是一种。那除此之外的话,还有一种,比如说我们对于一些实时更新的这样的一些数据,那我们可能就会采用像我们的 red 技术,那对于 red 的 话,哎,他能够干嘛?哎,他能够啊,把我们 实时更新的这样一些数据啊,那以这个上下文的方式,哎,输入给大模型,让大模型来进行这样的一个应用啊,那这是第一个部分啊,然后第二个部分,那么就是我们的这样的一些啊,核心的这样的一些 啊算法了。你比如说像我们这个 s f t 啊,我们这个有监督微调,那其实有监督微调的话,那么它指的就是 通过啊,我们人工啊已经标注好的这样的一部分数据,那我们能够进一步的去训练什么?哎,进一步的去对于预训练模型啊,来进一步的这样一个处理啊, 他的优点啊,其实就在于能够去提升模型的内在能力啊,那么你在推你的过程当中,他也不需要哎有这些额外的一些依赖啊。 当然那么他的前提是我们拥有大量的一些高质量已经标注过的一些数据啊,那训练成本的话相对来讲是比较高的,所以他是适用于啊,就是你有充足的这样一些垂直领域的这样一些数据啊,那么我们可以用这种方式啊, 好,然后第二种话,那么就是我们这样一个基于这个强化学习的啊,那这种话其实就是通过怎么通过我们的这个模型,他做出决策之后,那我们人为的来去进行这样的一些处理啊,比如说我们给他 对于他输出的内容啊,如果说符合我们的预期,那么我们就会给他一些奖励,那如果说不符合我们的预期啊,那我们可能会给他做一些处罚,那通过这样的方式让模型的这个呃这个输出啊更越来越接近我们的这样一个需求。 然后第三种话,也就我们的 red, 那 我们的解锁增强生成,那这种方法的话,他是先通过外部的知识库啊, 解锁我们问题相关的信息,然后啊再结合大模型啊去生成这个答案。那他的这整个的一个流程,那就是用户提问,然后上量数据库啊,做数据的解锁,然后再拼接我们的上下文啊,最后大模型再来给到这样的一些回答, 那他的优点的话,其实就在于能够啊实时的去获取我们外部最新的这样一条数据。但是他的缺点同样的话,也很明显,就是他的这个回答,这个质量非常依赖我们剪辑的精度,那剪所有问题,那回答一定是不准确的。 好,那我们在实际应用的这个过程当中啊,那我们到底是选择微调哎,还是选择这个 red 了?那其实在这里啊,我们要知道 微调和 red 它并不是对立的,那他们是可以结合一起啊来进行应用的。所以我们一般情况下面来讲,我们要根据我们当前的业务场景,那我们去选择适合使用的这样一些技术, 那比如说,那我们有非常多的一些标注过的一些数据,那他可能就更适合我们的微调,那或者说我们对于这个模型的响应的这个速度,那有一定的要求,那么微调也会更加合适啊。那 而对于什么,而对于 red 来讲,那么当你的这个问题需要非常精准的时候,那我们可能会采用这个微调。所以总结来讲啊,就是 如果说啊,你只有少量的企业私有的这个知识,那最好的话就是两个都做啊,如果说资源不够呢,那可以优先采用咱们的这个 red 啊。然后如果说啊更新的这个频率比较高,那我们优先也是用 red, 那 如果说你是有大量的一些垂直领域的这个知识,那这种情况的话,用 red 可能就不是很好的选择,那我们更好的话是用这个微调,那可能会更适合我们一些啊。 ok, 好,然后这个,呃,具体的这个 s、 f、 t 啊,咱们这个就不讲了。好,那么下面的话我们来看一下,那么对于我们这个微调的这样一个算法,对吧?好,那么其实我们微调算法我们就两种啊,第一种是我们的全仓微调, 那全仓微调的话,相当于我们是对原本模型当中所有的参数,那我们会都去进行这样一次更新,那么它的优点的话,就在于它的性能 能够达到最高啊。 ok, 适应性也非常强,那缺点的话也很明显,那就是占用的资源会非常非常的多。 而我们的部分参数微调,那么他的这个核心的概念啊,就是我们只调整一部分参数啊,我们不对于所有的参数啊去进行调整啊,只更新一部分,那更新了一部分参数之后,那我们的成本他就下来了,那同时 虽然只有一部分参数,但是它的这个性能啊,也能够达到这个百分之九十五啊,这样的一个基本的这样一个能力啊。所以的话啊, 我们目前来讲,我们所有的这个微调啊,绝大多数啊都是部分参数微调,而其中那最出名的就是我们的 lala 微调算法, 那 lala 微调的话,那么它是它的那个论文呢,是二零二一年啊,我们提出来的啊,那么它的核心的原理啊,就通过 低质矩阵分解,那什么叫低质矩阵分解呢?就相当于我原本的参数啊 w, 然后我要去更新,那么我要去加上一个 datw, 那 么现在那我们要做的就是什么呢?我们把这个 datw 啊,我们去进行这样一个矩阵的一个拆分啊,做一个低质分解, 那分解完之后它的参数量啊,就会下降啊,就会下降,会增加很多啊,好吧,那基本上就是这个 百分之零点零三啊,到百分之一之间啊,所以这个呃效果啊,是非常明显的啊。 ok, 当然这个我们今天不多讲,大家如果有兴趣的话可以再去了解一下,那么到底什么是 lala 啊,以及他怎怎么去具体去实现的 好,然后下面的话我们给大家讲一下,那么在微调当中啊,我们这一个框架,那我们到底该怎么去选择?或者说我们到底有哪一些这个微调框架啊?那其中最出名的啊,或者大家听得最多的啊,那应该就是 number five 啊,为什么呢? 首先啊,他是一个零代码的一个微调平台,那同时他也是提供了可视化界面的,也就是说你能够通过鼠标点击的方式就能够完成所有的微调训练的这样一个过程。 所以对于零基础小白的同学来讲啊,是非常友好的啊,没有任何的这样一个难度,那剩下的他的这个 也能够去用啊,但是他的这个门槛,那相对于拉玛法克瑞来讲啊,会高一点,所以那这期视频的话,我们就采用的是这个啊,拉玛法克瑞啊,来给大家去进行这样一个详细的这样一个微调过程的这样一个讲解啊。 好,那么呃,接下来的话,我们就来看一下,那么我们整体的这样一个步骤的这样一个说明,那整体的这个步骤的话,我们从这个 租赁咱们的云服务器开始啊,来给大家去进行这样一个讲解啊,好吧,那么服务器啊租完之后,那我们就是在本地啊,怎么去连接这个服务器啊?做远程连接,然后去配置咱们的环境啊,比如说安装这个 number factory 啊, 去下载咱们这个机座模型,那我们会通过这一个哈根 face 的 这个镜像网站啊,来进行实现,然后到咱们这个数微调的这个数据级的这样一个准备,然后以及我们这个格式化微调的一个过程,然后到最后啊,我们去导出啊咱们的这样一个模型。 好,那这个流程啊,咱们讲完之后啊,下一步咱们就正式啊来讲解啊,我们整个模型微调的 这一个全部的流程啊,那第一步的话就是我们这一个啊,硬件啊, ok, 因为大部分同学啊,应该是不具备啊这个本地微调的这样一个条件的啊,那我们一般来讲,那在我们的这个云平台上面去租赁的话,那么推荐大家使用的就是这个 auto d l 啊这样的一个网站啊,那么在这个平台当中啊,因为它会把一般的这样一个模型训练这个环境啊,都帮我们去准备好啊,包括像这个 anaconda 呀,包括咱们这个库达,那都是有的, 所以我们要做的就是来到啊咱们这个 auto dl 这样的一个平台之后啊,那我们选择这个算力市场,那么算力市场当中啊,那我们首先啊,我们第一个啊,推荐大家去用的是哪一个呢?那其实就是咱们的这个三零九零专区啊, 当然这个我们一般的情况下面来讲的话是租不到的啊,啊,因为非常非常的少。好,那么租不到的话怎么办呢?那我们可以点击像这个内蒙 b 区啊,或者像这个重庆 a 区这样的一些啊 地区啊,更换地区,然后我们在这个型号当中同样的再去勾选这个 rtx 啊,三零九零,那其实就足够了,那一般来讲配置的话大部分都是这个啊,内存的话是六十六十 g 啊,然后显存的话都是二十 g 左右的啊,这都是显存,然后的这个显卡的话就是三零九零嘛, 一般的这个价格的话都是啊,一块五左右一个小时啊,就我们任意的去点击一个啊,去租啊,就可以了,比如这我们点击租完之后啊,那我们选这个镜像,那镜像的话我们就是 p i touch 啊,选最新的就可以了啊,这个都不用改 好,选完之后直接去创建啊,并开机。那我的我已经租赁过了,所以我们就打开我这个现在已经在用的啊, ok, 好,点击我的这个,我这里现在已经做好了。好,那么你在刚才那个界面啊,就是你创建之后啊,那么它也会来到这样的一个界面,来到这个界面之后,那么我们需要去关注的有两个内容啊,第一个就是我们的 s s h 啊,我们这个登录的一个指令,还有一个就咱们这个密码啊, 好,那么接下来那我们要做的就是通过我们本地的这个 vs code 啊,那么它是有这个远程的这个 s s 已连接的这个插件的啊,好,打开给大家看一下。 好,这个地方因为我是已经连接上了啊,所以接下来的话,那么我要新建一个窗口啊。 ok, 来,各位,我给大家新建一个窗口。好,新建一个窗口之后啊,那么 s s h 的 这样一个插件,那如果说大家已经安装好之后的话,应该是这个。 好吧,来,就这个远程的资源管理器,点击好,点击之后的话,那么他会有这样一个 s s h 的 一个选项啊,那么在这里我们就可以去点击这个加号, 点击完这个加号之后,那么首先在这里你要去输入的就是这个 s s h 连接的这样一个命令啊,就你把这个哎复制过去。好,复制过去之后啊,直接去点击这个啊,下一步啊,吧啦吧啦的。 ok, 然后这个他会有一个配置文件,那你选择这个默认的啊。好,然后那点击连接点,点击连接之后啊,他又会跳转到这样一个窗口啊,这个你不用管啊。嗯,把刚才关掉。 好,接下来就要去输入这个密码了,好,那么接下来去输入这个密码,同样的,我给他填一遍啊,来填一遍。 ok, 好, 那你把这个密码填进去啊,就相当于这个连接啊,就已经完成了。好吧,那连接完成之后啊,他默认是这样的一个界面啊,他里面是没有这个文件夹的,所以接下来我们要点击这个资源管理器,然后点击这个打开文件夹, 点击这个,打开文件夹之后,这个地方我们要选择这个路径,那么默认就用这个啊, root 啊,这个路径就可以了,你就点击这个 root 啊,好,那我们可以看到在这个地方我们进的这个基本上就是一样的啊,那么你就会来到啊,当前的这样的一个界面啊。 好,来到这个界面之后,哎,那么它默认的话,就这里面的话,它是没有这个数据的啊,那么它会有一个什么呢?文件夹啊?就咱们就这个 out to d o map 的 这样一个文件夹,那么我们所有的这个数据啊,你不管说是 number factory 的 原代码也好, 还是我们的这个机座模型啊, deepsea 也好,那么全部要放到这个文件夹下面啊。 ok, 好, 所以这步是连接啊,那么连接完成之后啊,那接下来的话,我们就是要去下载我们的这个 mama factory 了,那这个命令可以直接复制啊。 好,接下来的话,那么我们去下载这个命令的话啊,我在这个地方给大家重新去打开这个终端啊,好,打开这个终端来看一下啊。 好,那么大家第一次连接之后啊,他默认也是进到这个,呃,进到这个路径下面啊,那我们可以看到他下面呢,他是会有一个什么?他是会有这样一个呃, out to d r time map 的 啊,所以在这里,那么我们要通过 cd 命令啊,进到这个 time map 这个路径下面之后啊,你再去执行这样一个 get 这个命令啊。 ok 啊,因为只有这样的话,那么我们才能够把这个文件夹下载到对应的这样一个位置啊。好,因为这段我已经下载过了,所以就不执行了, 那么下载成功之后啊,它下面它就会出现一个文件夹叫 mama factory 啊,那么我们可以直接通过 cd 命令啊,然后进到这个啊 mama factory 这个文件夹下面来, 进到这个文件夹下面来之后啊,下面我们是需要做什么呢?哎,我们有两件事情要做, 第一件事情就是我们要创建一个虚拟环境,当然如果说大家你不想创建一个虚拟环境,当然如果说大家你不想创建一个虚拟环境,当然如果说大家你就用它原声的 不想创建虚拟环境也可以啊,那么我们就直接来到这一步啊,直接通过 peep in store 啊,去安装我们的这样一个环境的依赖,那这个环境的依赖的安装啊,那时间的话大概在 十分钟到二十分钟左右啊,虽然说他已经很快了,但是他有要下载的内容太多了,一共的话有一百三十八个包啊,一百三十八个模块啊,都是需要去下载的,那其中还包括像 touch 啊这一些啊,比较大的一些包, 所以整体的下载时间啊,大概在呃,十到二十分钟左右。那下载完成之后的话,我们可以通过这个 number factory 啊,然后我们去看一下它的一个版本啊, 好吧,或者说你直接来启动啊,这个 number factory 啊,也就是这个地方,然后再加上这个外部 ui 啊,就可以去启动了。那我在这个地方,因为我是已经啊这个成功启动了的,可以给他看一下啊,我这边现在已经启动成功了啊, 好吧,当然我是创建了这个虚拟环境的啊,大家如果说没有创建的话,也不要紧啊,没关系啊,好吧,就这张我已经这个启动成功了,那我可以把这个先关掉啊, 好,关掉之后大家就能看得到啊,那么我在这里的话,我的这个路径也是这个什么 alt data map 下面的这个 number factory 啊,好,然后在这个 number factory 下面的话,那么,呃,因为我这边有这个虚拟环境啊,大家话可能跟我不一样,那这个没关系啊, 然后在这里我们看一下啊,我们执行刚才这个命令啊, web ui 啊,来运行 啊,这个地方我们要稍微啊等待一下啊,好,然后它就会自动啊,打开,什么自动打开咱们的这个路径啊,看得到吧? 哎,会打开咱们的这样一个页面啊,那在这个地方有一个点的话,需要跟大家强调一下,就是我们这边是给大家讲了一个这个端口转发的, 但是现在啊, o two d l 的 话,它会自动啊,去进行什么,它会自动去完成这样一个端口转发啊,就在这里它自己就已经转发了,所以这一步我们就可以把它忽略掉,你可以不用管啊,就可以不用管。 ok, 所以 现在啊,那么我们来来到咱们的这个浏览器当中,我们来看一下, 那这就是啊,我们对应的这样一个啊, number factory 的 这样一个界面,当然大家如果说是第一次打开的话,它默认是一个英文的,好吧,所以我们需要点击一下这个中文啊。 ok, 那 么就来到咱们这个中文的界面了。 好,来到这个中文的界面之后,那就说明咱们这个 number factory 的 这样一个基本的一个环境的配置啊,就已经完成了。那接下来的话,我们就要去下载我们的机座模型, 那机座模型的话在这里啊,我们采用的是通过这个哈根 space 啊来进行下载。那首先我们要创建一个文件夹 用来存放啊,我们所有的机座模型,那这个文件夹的名字叫哈根 space 啊,来,我们直接把这个命令啊执行一遍,那其实这张我是已经有了,大家没有的话就可以去执行一遍啊。呃,来到这里吧, 好,我给它干掉,干掉啊,好,来给大家看一下,好吧,我在这个地方执行的是一样的啊,对吧?首先你把这个路径啊,通过 cd 点点,然后切换到这个 alt d l time map 这个路径下面来, 然后去执行什么?执行这个 macd r, 然后这个 hackspace 创建那个文件夹的这样一个路径啊。 ok, 好, 然后文件夹创建好之后啊,接下来我们要修改我们的这样一个下载的一个镜像语言啊,换成我们国内的这样一个镜像仓库啊, 为什么?因为它跟 face 它需要这个啊,外网的下载速度也非常慢,所以我们换成国内的话,速度就非常快了,所以这两个命令啊,我们可以单独去执行,一个是修改我们的这样一个镜像的一个下载地址, 然后一个是修改我们的这样一个机座模型,它下载到哪一个文件夹啊?这两个命令你直接复制,然后执行一遍,那我这个地方就已经执行过了,看到没有啊?一个 pose ok, 点个执行好,两个都执行好之后啊,那在下一步啊,就是我们要去安装这个哈根 face 的 一个官方下载的工具啊,也就哈根 face tab 啊,那这个也很简单,就你不用改,直接复制就 ok 了。好,那么下载完成之后啊,我们可以看到啊,很快啊, 那么下载完了之后的话,接下来的话,我们就可以通过什么就可以通过我们刚才下载这个工具啊,对吧?这个哈根 face, 然后可以啊,然后 download 下载,然后这个地方是干嘛?这个地方是断点续传啊,然后后面就是我们这个模型的这个名字啊, dipstick 阿 e, 然后这个千问啊,一点五 b 啊,真牛的这个模型。 好,然后下载完成之后的话,那么你就可以在哪里啊?你就可以在我们的这个哈根 face 的 这个文件夹里面啊,就可以看到了啊, ok, have, 然后这个地方有一个 model, 对 吧? deepsea ai 的 啊,就这个啊, 好,那这里面就是我们想要的这样一个镜像了啊, ok, 好, 那么这一步啊,完成之后的话,接下来我们可以尝试的去加载一下,那么加载的话啊,那我们可以来到这个界面当中啊,在 mama factory 的 这个官方的这个 页面啊,它里面的话一共有四个选项,那第一个的话就是我们的这个训啊,也就是我们这个训练的这样一个界面,然后第二个, ok, 那 第二个界面它是我们一个什么?它是我们的这样一个,呃,做评估的,做模型评估,好吧,所以它会有一个数据,有个验证级啊, 然后第三个啊,就我们一个对话啊,我们这边是可以加载模型去进行对话的,然后第四个啊,一个 pose, 那 这个是导出啊,就我们可以把我们训练好之后啊,微调好之后的模型啊,去进行导出。 好,那么这边怎么去加载呢?我们来到这个对话的这个界面啊,那么我们在加载这个模型的时候,我们需要两个内容,第一个就是我们这个模型的名字,那这个大家可以直接选择,就可以直接选择, 这个要注意啊,一定要先选择模型的名称,然后再选择这个路径啊,不然是没有意义的啊,好吧, 先选择完这个模型名称之后啊,他默认会给你一个模型的路径,但是我们不需要,因为我们的这个啊,基座模型我们已经下载好了,所以我们需要来到咱们的这个哈根 face 的 这个目录下面来, ok, 我们在这里啊,直接右键啊,点击这个复制路径,就你把这个路径啊要复制过来,复制过来之后啊,那么我们就能够去进行这个加载了啊,直接来加载模型啊,呃,看一下没问题啊, 先加载好,加载成功啊,加载成功之后啊,那么我们给他去提问啊,我们给他问一个问题,你是谁?我们看一下,那么这个时候啊,我们的模型他是如何回答的?可以很清楚的看到 它是这个,就是一个官方的一个回答啊, deepsea, 对 吧?好,那这个记住啊,我们可以先记住它的这样一个回答, ok, 好, 那么现在啊,我们的这个模型加载已经没有问题了,那对于我们的微调训练来讲,哎,还缺少一个非常重要的内容,也就是我们的 数据集啊,因为我们要去干嘛,我们需要去调整这个模型的能力啊,那么在这里,哎,我们就是要干嘛,我们就是要通过特定的数据集来完成的,那么这个数据集的话,我也已经给大家去下载好了, 那这个数据集是怎么来的呢?啊?很简单啊,我是通过这个千问啊去生成的,那这个数据集的话,大概啊是什么样的?我给大家打开看一下啊? ok, 其实很简单,就是 通过对话的形式啊,去模拟啊,这个悟空的这样一个说话的这样的一个模板啊。啊,大概就是这个样子,那么这个数据量其实非常非常的少啊,只有二十条数据,那我们来看一下怎么去完成他啊? 好,那么有了这个数据之后啊,那么接下来我们首先第一步啊,先把这个数据啊复制一下啊,因为接下来我们要粘贴,粘贴到哪里的哎,我们要粘贴到我们的这个 library 这个目录当中来啊,我们可以看到在 library 这个目录里面它会有一个文件夹叫 data 文件夹,那么这个 data 文件夹里面啊,它有很多的一些数据, 那这个就是 library 它自带的一些数据集,也是我们大家可以去用的啊,你可以去使用, 但是在这里我们不用啊,所以我们把刚刚啊,我们去复制的这样一个去点接收这样的一个文件,那么直接粘贴到我们的这个贝塔这个文件夹下面来 啊,这是第一步啊,因为你粘贴之后,他并不是马上就能用的啊,比如说我们现在来到这个啊,去这个训练的这个面板,我们可以看到 这个地方它有一个数据的一个路径啊,就我们一个 data 啊文件夹,然后数据集的,那么这里面啊,它其实就有很多啊,比如这里面都是我们那些自带的,那我们刚刚讲过了,我们要用的什么,我们要用的是我们自己的这样一个数据集,那怎么去设置呢?那我们来看这里面啊, 在 data 文件夹下面,它有一个 data set, 然后音符点接收的这样一个。哎, 有这样个文件啊,那么我们需要加入啊,这三行内容啊,就你把这三行内容给他加进来,好吧。呃,多余的内容一个都不用写啊,这个逗号要,好吧,因为他默认是没有这个逗号的,这个逗号我们给他加上去,然后结尾不要逗号啊,结尾不要用逗号,就把这个粘贴过来就可以了。 粘贴过来之后啊,那么此时我们再去这个数据集里面,那我们就能够在最下面找到我们的这样一个去点接收的这样一个数据集了,那我们点击选择,选择完之后啊,点击一下预览,那我们同样的可以看到,对吧?这里面就两条啊, 对,这个是回答,然后这个是问题,你是谁,对吧? ok, 然后他是什么什么,对吧?啊?就是这样的数据集啊,好,那么数据集啊,我们在准备完成之后啊,那么接下来我们就要来到整个模型微调当中啊,我们最重要的一部分,那也就是我们的这个 参数啊,因为参数有非常多啊,我们可以看到你打开这个,那么它有这个界面啊,那么在这里面除了上面的这样一部分参数之外啊,下面还有还有这么多 看到吗?啊,比如其他参数啊,部分参数微调的设置啊,对吧?老老参数的设置啊,巴拉巴拉,非常非常的多。好吧,你如果啊喜欢调参的同学,那你有福了啊,你可以一直调啊,啊,非常非常多的参数。 好,那么在这里啊,我要给大家讲的这门我们只讲最重要啊,也是最基本的这样的一些参数,那比如说第一个学习率, 学习率是干嘛的?哎,很重要,学习率啊,他就相当于我们的这个训练过程当中啊,咱们的这个油门,那我们有一个目标点,如果说你的学习率过大,哎,他可能就 跑过了啊,就超过了咱们的这样的一个目标点了,那如果说你的学习率过小了,哎,他可能又训练了半天,还没有到这个最优解啊,还没有到咱们这个目标点,所以这个学习率是需要我们去进行这样一个调整的。 然后第二个我们的这个训练的这个轮数啊,这个咱们就不讲了啊,因为这个没什么,这个啊,没什么,这个要多讲的啊,就你训练,只要你训练这个越多,那他肯定就会这个过礼盒,那如果越少,那肯定就会欠礼盒啊,就可能说他训练的还不够啊, ok, 呃,其他的话啊,这个计算的这个类型,那计算类型的话,这边给大家讲一下啊,这个他是决定咱们的这样一个精度啊,就 ok, 那 么这个精度的话,就他是能够干嘛呢?能够去提高啊,我们这样一个训练的这样的一个效果的, 当然我们一般的话,我们都用这个三十六啊,都用啊,都用这个十六啊,为什么?因为他能够节省咱们的这样一个显存啊, 好,然后的话,那下面的这个咱们就不多讲啊,然后这个验证级这段没有设置啊,这段咱们先不管这个测试级啊, ok, 好, 所以这个就咱们基本的参数,当然如果说你用啊,这个基本的参数,你去训练的话啊,那么是没有效果的,为什么呢?因为你的数据一共就二十条,所以你很难去达到我们理想当中的一个效果, 所以的话啊,那么老师这边啊,用非常暴力的参数啊,给他去微调了一遍啊,那这个暴力的参数基本就我们把这个学习率给他增大啊,学习率我给他放大 四十倍啊,放大四十倍,放大四十倍之后啊,他能够更快的接近我们想要的一个目标。 ok, 好, 然后参数啊,设置完毕之后啊,我们给他改成三十轮,好,那多训练几次啊, 然后今天有这样一个路,有这样一个目录啊,我们可以看到。 ok, 啊,有了这样一个目录之后啊,那接下来咱们就直接啊点击这个开始啊。 ok, 好, 点击开始之后啊,下面的话其实就已经开始在执行了,我们来到咱们这个后台啊,来到咱们后台看一下,呃,这里 可以看到这边其实是在动的啊,已经在执行了,对吧?看到没有?这个数据现在就已经出来了,然后现在在加载,那我们再回到咱们这个界面,对吧?这段日子啊,也已经出现了 啊,好,有了这个日子之后,我们可以看到,那么这个地方啊,他会给到我们的这样一个训练过程当中啊,他的这样的一些,一个落死,一个损失值的这样一个变化, 那这个罗斯这样一个损失值,他代表的是什么呢?哎,他代表的是就是我们的这样一个结果啊,他是否会接近于我们的预期啊?那正常情况下面来讲,罗斯他的曲线应该是持续下降,然后趋于平稳的, 如果说你觉得他的下降速度很慢,那你就要去增大学习率。那如果说在结束的时候啊,就你训练结束了,他还在下降, 那么你就要去增大我们的这个什么,我们训练这个轮次啊,就再给他多训练几轮,因为他没有到这个目标点,还没到这个最优级,好吧,那如果说,哎,你在训练完之后,你发现整个的效果那不是很理想,怎么办呢? 那其实有很多种情况,比如说你的机座模型有问题,那你要换机座模型,可以换更强的,对吧?数据少,那我们可以再增加一些数据啊,或者说再去,嗯, 多训练几次,对吧?好,然后我们可以看到,那么现在这个地方咱们就已经训练完毕了,而这个 loss 的 这样一个曲线,那我可以告诉大家已经非常的完美了。为什么?因为他从最初的这样一个三点多的这样一个 loss 值, 到现在他是无限的接近于零,能理解吗?啊?无限的接近于零,所以他的这个结果一定是符合咱们的预期的,那比如说 我们现在对于他训练出来的结果在哪里呢?哎,在这个目录下面,对吧?哎,好,那我们记住这样的一个目录啊,三点四十分。 ok, 那 接下来我们来到这个加载模型当中,那我们可以看到 上面我们加载的是我们的基座模型,那么对于 lala 微调最重要就是你能够向外挂的这样一种方式啊,不改变基座模型的前提之下,那我们去 对他来进行这样一个性能的这样一个改变啊,比如现在我们把基座模型我们先卸载掉,好,卸载完成之后,我们把我们刚刚这个 lala 训练出来的这个结果,我们给他加载过来啊,三点四十分,然后这个是我们基座模型,不用改来,直接再来加载一次模型, 好,加载完成。那我们再来问同样的问题,还记不记得?那么对于基座模型他的原始回答是什么?来,我们现在再再提交一遍,好,那我们可以看到 现在结果变了没有?变好,变了,对吧?啊?他现在他已经变成了孙悟空啊,变成了咱们的齐天大圣, 对吧?大家有就会问,老师,那你这个不是过礼盒的吗?对吧?这个效果明显就已经过礼盒了呀,对吧?因为你这个数据太完美了,那是不是?是的, 因为我们刚讲过了,因为咱们时间有限,对吧?我们想要让大家看到效果,所以我们的这样一个参数是通过暴力的方式啊,来进行调制的。 所以大家啊,在正常情况下面来讲啊,不要用这样的参数,因为这个和原本的那个学习率啊,大概相差是四十倍啊,啊,差了四十倍, ok, 所以 这个啊,就是我们的这样一个实际啊,我们微调之后,哎,他给出来这样一个效果, 那有同学啊,可能要问那老师这个测评估怎么办?评估的话一样的,就你给他一个这个数据集啊,再去做一个评估啊,就可以了,好吧?然后包括这个导出,导出啊,在这里也是一样的,就你可以在我们的这个 服务器上面啊,然后你去创建一个什么,你就创建一个文件夹啊,好吧,比如在这个地方,那么我们可以通过这个 make 加,对吧?那我们再创建一个什么,比如说像这个 model 这样一个文件夹,就这样就可以了,对吧?啊?那么我们所有的这个什么,我们所有的这个导出啊,就导出在这个文件夹下面,好吧,那么这点其实也很简单啊,因为他告诉你什么,你就把这个目录给他舔上去就可以了,对吧?你给他文件夹,然后就可以开始去导出了啊,好吧, 好,这个的话咱们就不跟大家去多讲啊,因为这个我觉得其实并不难啊,所以大家只要呃,搞懂了这个整个微调训练的这样一个逻辑啊,就足够了, 好吧,那对于这个妈妈发的这个框架,对吧?你用的用的多了,那他自然而然的,对吧?慢慢的就这个会用了,对吧?因为他里面他里面东西就这么多,好吧,那最后啊,我给他总结一下啊,就我们刚刚讲了这么多的流程,对不对啊?一共的话有十几步, 对吧?那其实啊,我们在真正的企业当中,对吧?如果说咱们是小数据啊, 对,你数据量比较少,那么一般啊, lala 加 mama factory 啊,是目前啊中小型企业,好吧,我们去进入到大模型定制化应用的最佳入门组合。 好,那这个就是今天啊要给大家讲的这样一些内容啊,如果大家对于我们的这样一些啊,课间资料啊,有需要的同学啊,那么可以在评论区留言啊,所有的这个课间资料和文档啊,都会免费的分享给大家。

欢迎来到 lama factory online, 本期我们将带来 lama factory online 平台数据级上传的喂饭级教程,演示如何零失误完成数据级的上传与叫验。首先登录你的账户,并确保账户余额充足,以便后续进行训练任务。 点击左侧导航栏的文件管理,为了上传本地数据,我们需要点击右上角的 sftp 上传下载按钮,获取连接服务器所需的主机名、端口及账号密码。接下来打开您本地的 sftp 客户端,这里以 cyberduck 为例, 点击左上角的 open connection 建立新连接,注意协议要选择 sftp。 然后将刚才平台弹窗中显示的连接信息对应复制粘贴到这里的配置框中, 点击 connect 完成连接。连接成功后,进入 user data database 目录,直接将你本地准备好的数据级文件拖拽进来,等待上传完成。 回到平台页面,点击刷新,你会发现数据级标签页下已经出现了刚刚上传的文件。点击右侧的数据级检测, 当状态变为符合时,说明数据格式无误,可用于训练。点击模型标签页,这里对应的是 user data models 目录,专门用于存放你上传的自定义模型权重以及训练生成的 output 产物。 点击其他标签页,进入对应的 user data others 目录,你可以将一些非模型、非数据的杂项文件存放在这里。 以上就是本期的全部内容了,关注大模型微调 online, 让定制专属模形象打开浏览器一样简单!

大家好,我是 map, 今天用三分钟简清楚什么是 nasa index, 它能做什么,怎么用。 nasa index 是 一个开源的数据层框架,它专门解决一个核心问题,如何把你的实有数据变成大模型能理解的知识上下文。 nasa index 的 目标是简化数据处理和代元模型集成的过程, 让开发者和用户能够轻松构建记忆数据的代言模型应用,如文档问答、数据真前的聊天机器人等。 换句话说,大模型本身擅长理解大规模文本,但对你的私有文档、 pdf、 数据库、网页等内容并不自然懂得。拉玛隐带斯就是搭建这个懂得的桥梁的框架。 纳曼隐带死主要的人力有以下几点,第一数,支持数据接入。它接收各类数据源,比如文档 p、 d、 l 或 word 数据库 api 接口爬取的网页内容,并把这些内容读出来。它解决的问题是数据来源杂,格式乱。价值是把易购的数据抽现成统一的 document 或 note 结构。 第二点,结构化你的知识。接入数据后,那么 in depth 会把内容转换成更适合解锁和推理的结构,比如用图结构、锁影结构、方块文本等方式组织你的数据。第三点,解锁仪问答引擎。在你问问题的时候,它会解锁相关的文档片段, 把最相关的上下文组成 prompt, 接着会传给大元模型去生成答案, 这种就是解锁的增浅深层,这就是 i g 的 核心逻辑。第四点,丰富的集成能力。那么 ings 并不板式任何模型或存储,它支持集成各种限量数据库。引碑顶 还有大元模型的提供商也能和外部框架一起用于句话总结 i g 的 应用的数据引擎,它把施有数据转成大模型可用的上下文,从而让模型在实际业务场景中产生可信赖的答案。 他不是模型本身,但他能让模型真正理解你的数据。好了,以上就是今天所有的内容,感谢大家观看,我们下期再见。

警告,本视频耗时三个月,制作共三百六十分钟。大模型微调从入门到精通今天是第一章第一节 lama factory 模型训练快速入门。哈喽大家好,从今天开始,我将以实战的方式带大家从入门到精通大模型微调,那么这套课程主要包括的内容有 模型训练、环境安装、模型微调、模型合并推理、量化评估、分步式训练以及模型训练跟踪和监测 到模型的部署跟提供外部接口调用非常多的干货,并且这套课程会持续更新。那么如果这套课程对大家有帮助,欢迎多多关注一键三连,那我们今天就开始给大家分享更多 ai 大 模型学习资料,可点击主页粉丝群自行领取。 首先第一块要分享的内容是 lama factory 模型训练快速入门。目前大模型的训练这一块在我们的大模型开发工程师这个岗位里面要求 挺高,不光光只要求这个开发委员会这个微调,并且还要将这个模型做一个部署 评估等等,它是一个完善的流程,所以说大家不光只去学微调,而需要把整个流程都要搞清楚,这样我们在做大模型应用开发的时候,大家你就会知道整个流程它是怎么回事。那首先我们来说一下为什么要做微调,其实微调它还 还有一种方式叫预训练的,这种方式模型大家知道像一些像 gpt 模型或者说 deepsea 模型,像这种满血版的模型,它的参数量非常大的,你像 deepsea 二一参数量有六百多个亿这么一个参数, 那这么一个参数它的整个的量级,我们如果说去做训练,它的成本是非常高的。所以说一般来说,目前如果是小公司 要去对一个大模型它的全量参数做一个预训练,这个成本是非常高的,所以说才有了微调这么一个概念,它可以通过在特定领域去执行一些特定任务,进行一些微调。比如说大家是做医疗领域的, 那医疗领域他的一些训练数据,包括一些样本数据,就跟行业有关,大家需要有这个行业知识的一个沉淀,那每个行业的他的这种数据其实都不一样。所以说目前我们去做大模型的一个微调的时候,其实更多是去 做一些特定任务的一些微调,比如说我们要做一些分类,做一些分类啊,或者是做一些翻译等等的,我们要去执行一些 训练任务。这个最简单理解就是我们比如说是做有监督类的这种训练,就相当于给模型有一个训练数据,并且有一个正确的标签,用来去判断模型训练知识它的结果到底对不对?这样去做模型评估,那我怎么知道模型训练的结果对不对?那我们要做 模型的指标评估,这里面分两块,一块叫客观的,一块叫主观的,主观的大家自己去用这个大模型的时候, 你去看一下内容输出是不是合理的,它的表达啊、流畅度啊,有没有问题?比如说你做电商行业的,它是不是一个电商客服的 ai 机器人?那你去聊,你会发现它的回答语言的这种方式,它的语气有没有 做了一些行业的一些特定的领域的一些专业词汇,包括他的表达的一些专业性,他是不是这个领域的主观上我们可以做一个判断,大家 客观上我们可以通过一些模型评估的一些效果,比如说看他整个样本数据,整个评估下来的准确度到底怎么样,这个我们后面专门给大家讲评估的时候再来细调。也就是说目前之所以要做微调任务,一个是考虑到成本, 不可能所有公司都去做全量的预训练,成本是非常高的,那所以说才有了微调这么一说。微调现在其实也有很多种方式,现在很多大厂,包括一些国外的一些公司,其实都 都提供了一些微调的一些工具。那我们今天给大家讲的这个 lima factory, 它是一个开源的比较好用的这种大模大模型的训练与微调的一个平台,它是致力于简化大型的定制过程,它集成多了非常多的训练策略和监控工具, 并且提供了命令行,还有 web ui 的 这种交互方式,也就是大家可以用这种界面的方式去做这个微调。当然我其实更推荐大家用命令行的方式去做微调,其实有时候会更方便一些,但如果说你想看到更多的选项参数,大家可以去看一下这个 命令就是 web ui 其实也挺好用的。这个框架其实对于主流的一些模型基本上都支持了,包括像 lma factory 啊拉马三是吧?包括千万,包括 j m, 包括 deepsea, 其实都支持的。包括它的一个训练算法,其实也是支持比较完善的,像常见的预训练指令及监督微调 s、 f、 t, 包括奖励模型训练、 p、 p、 o 等等,它都是支持的。 还有包括一些优化算法,比如说像 rola 呀、 ko rola 等等,很多算法都支持,包括加速算子推理引擎,包括实验监控,这个我们后面都会一一讲到。一些功能是比较完善的, 它的最核心功能主要就有四块,第一块就是多模型的这么一个兼容训练方法非常多样,用户界面也比较友好,监控工具也比较完善,那它的一个特点用起来非常简单,我们可以通过图形化去训练,降低大家使用命令行的一个门槛,以及它的一个微调效率也会比较高。像主流的 p、 p、 o、 s、 f、 t 都支持,参数调整也比较灵活,并且多语言的一个支持,像英语、俄语、中文都是支持的。 那么使用场景是什么?主要就是用来去微调,比如说执行一些 nlp 的 一些任务,包括但不限于,比如说最常见的违法分类,比如说要做一个情感分析,去判断一个评价 这个是正向还是负向,就让 ai 去识别这条评论它是正向还是负向,还是中立的。 在实际我们用的场景就比较多,就做一些分类判断,包括主题识别,包括续列标注、 n、 e、 r, 磁性标注等,这些任务都可以去做。还有文本生成,这个是大家最熟知的,比如说像 g、 p、 t 模型, 这个拉玛三模型,都是典型的去做文本生成,去自动生成,这样要对话,做对话的一个补全。机器翻译,这个是在机器领域的,针对特定语言的它的一个翻译质量做一个处理,比如说我要翻译不同的语言种类,这些都是我们常见的一些 n、 l、 p 的 一些 微调的一些训练任务。好,那微调的过程是怎么样呢?大家首先要有一个整体认知啊,就是模型微调,它是通过在特定任务的数据集上去继续训练预训练模型,官方会给你提供一个基座模型,比如说像 deepsea 二一有七 b 的 有一点五 b 的 有六百九十一 b 的 那些个 已经训练好的预训练模型给到你这个叫基座模型,大家需要在这个模型的基础之上去做一些微调任务。比如说我们是基于 rola 微调的, 一般会采用这种低值矩阵的方式,相当于从中间单独划出一块区域出来,专门去做一个微调训练,训练完之后咱们叫称之为权重,它会输出一个权重,这个权重输出之后可以跟我们的这个主模型做一个合并, 最终又合并成一个完整的模型,这样就达到了我们想要的微调的一个效果。所以说整个微调的过程就相当于 比如说大家去修一辆车一样,那就比如说这辆车我要给它改装,中间比如说某一个部分我给它做下微调,把它拼装上去,它就是一台完整的车,而不是说把整个车所有配件全部换一遍,这样的成本代价就会小很多, 因为你可能改装的部分都是一些可能主要的部分,给它改装一下就可以了,你并不需要把所有东西都弄一遍,是局部微调,所以说这个大概就是这么个意思, 微调过程主要是有以下几个步骤,这个也是我们后续要给大家去逐步的去分享的整个一个流程。首先是数据准备,等下我们就会给大家讲,比如说我们要做模型微调啊,你首先得有数据,这个数据哪里来的?是吧?怎么下载?怎么样去配置这个数据集? 模型选择我们可以选择一个预训练模型作为基础模型,就叫基座模型迁移学习就是在新数据集上继续训练模型,同时保留预训练模型的一些知识。比如我们还可以调一些参数,比如说我 训练的 p 字数据,我要训练几轮,学习率是怎么样的,这些大家都可以去调一些参数,训练完之后这个模型的效果怎么样?我们要做一些评估,评估一般就是在验证级上面去评估模型那些性能,并且根据反馈进行一些调整。是微调它有什么优势?微调它 可以首先最大的优势就是节约资源,因为我们要从头开始去训练一个模型,那这个成本一般小公司是扛不住的,需要非常多的 gpu 设备, 微调就可以显著去降低咱们对于配置成本的一个要求。微调可以减少所需要的一些数据量,首先数据量降下去了,计算资源也降下去了,并且部署也方便。微调可以快速适应新任务,加速模型的部署过程, 包括性能提升,针对特定任务的一个微调可以提高模型的准确度。还有 u 棒型以及领域的适应性。微调可以帮助模型更好地去理解特定领域的一些语言特点,比如说我们要做 医疗行业的,那你就做医疗数据的一些微调训练。你要做汽车行业的,那你就做汽车行业的数据微调训练就可以了,它是可以适应一定领域的,所以说我们通过微调就可以让预训练模型在这些任务上取得比较好的一个性能,更能满足于实际应用的一个需求。好, 前面就是关于微调的一些概念,大家首先要有一个认知跟理解,下面我们去做微调的时候,大家就知道是怎么一回事。好,那接下来我们就来说一下环境这个事。

挑战大模型微调,从入门到精通,今天是第二章, lama factory 寄予 lara 微调模型,你看零点九点三,说明是装好了,好,装好之后的话大家就可以开始去做一个训练了。更多 ai 大 模型学习资料可点击主页粉丝群自行领取。 但训练的话,最开始的话我们需要去准备一个数据,就是关于这个数据格式的说明,大家可以去参考一下这个文档,在这个里面 大家看就是我们刚刚下下来的那个项目,就这个项目的话,这个项目下面有一个 data 目录, data 目录下面有一个叫 data info, 找一下 data info, 在 这里面 data set info 点 jason, 然后我们其实 number factory 它帮我们内置了一些训练数据,在这个里面 来看我们想要的一些数据集,它会这个文档里面给你做一些描述,比如说它允许的文件类型,像 jason, jason, 这个 c s v 是 吧?才是 piequat, 这是各种格式的数据,然后以及它对数据集的一些描述,你看它有些数据是怎么描述的呢? 在这个里面我给大家看一个例子啊,这样看起来不是很方便。我在这个 ichat 里面给大家看一下这个里面,这个也是那个项目,在这个有个 data input 里面,这个里面 我来看一下这个格式怎么来看,比如说我们现在要配一个数据集,是吧?数据集,然后在这个里面有一个 ipad, c n e n d d demo 点 jason, 那 这个东西怎么来的呢? 它其实是数据集里面,首先它有几个位置,就在这个里面有个 file name, 你 看有一个 identify, jason, 就 这个里面配的数据集的话,可以直接用这个数据集,下面呢就它的一个有一个文件, 比如说有个 identify jason, 这个就是做自我认知的那个训练,比如说有我们用那个 lala 去做训练,那这个模型它最开始要做一个什么呢?自我认知,比如说 他叫什么名字?他是感谢是吧?一些比如说我们要训练一些电商行业的模型,他的提示词打招呼 就是,嘿,哈喽。比如说我是一个什么什么的医疗的助手,我是一个电商的什么什么客服,他要训练一个自我认知,所以说这个里面的数据大家可以看一下都是什么问候语,是吧?什么你好,你是谁?什么我是谁?能帮你做什么事情?主要就是做这么一个训练的,所以说这个里面有一个训练 是必须要做的,就是自我认知,这个是最开始的一个训练逻辑。然后就要开始去训练一些什么呢?一些问答式的一些数据啊,比如说这个 epic, 这个 z、 n, 是 吧?这个中文的一些训练数据,这个数据的话在这个里面 这个就是一些常规的一些训练数据,常规的一些训练数据,那么这个数据的话,首先这个里面它里面的数据的话就是它是一个什么呢?有着 各种各样的一些数据。这个环境启动好了,我们直接用这个环境,这个环境训练快一些,我们把刚刚那个关掉,把刚刚那个服务器给关掉,这个就关闭掉了,我们用这个,然后这个但是这个主题它默认是黑的,我们可以给它改成白色的。这个里面我之前已经上传这个 number factory 那 个文件了,这个里面 好,然后这个数据集的话,就是我们在这个里面就官方帮你内置了一些数据集过去了。所以我们等下训练的话会用到哪个文?有会用到一个文件,就是在这个 example 下面,因为我们要基于 lala 方式去做微调嘛,所以有一个 trainer lala, 但大家也可以用 color 方式去做微调。这个我们后面来讲,就官方帮你提供了一个配置文件,你要可以继续这个配置文件自己去改一下,改了之后干嘛呢?你可以继续这种方式去做一个微调,比如说我们现在有一个配置文件,在这个里面有一个什么呢?叫 lola s f t 点亚美奥,大家看这个里面,这个就是用 lola 的 方式去微调拉玛芬八 b 的 那个模型,八 b 的 那个模型,那这个里面需要加一些配置,那这些配置是什么意思呢?首先第一个参数就是那个模型名称啊,模型名称,模型名称就是 我们要下载模型的那个 pass, 你 看有一个 mod name and pass 嘛?这个的话就是大家如果说你是想用 pass 去下载的话,你就配这个 pass, 这个 pass 怎么来的呢?我们打开这个 mod scope, 有 个 mod scope 的 那个模型库, 在这个模型库里面大家找到点这个搜索,比如说我去搜索 mate 拉马三八 b 这个模型,是吧?你就搜索这个模型,其实这个模型有很多很多,但是这里面 比较多的,你看排,一般我们用的第一个就是用的是 l m research 的, 这个就是他们相当于是一个组织,这个组织提供的这么一个模型,默认的大家第一次下下来的那个项目里面的势力的话,给的是这个组织是 mate 的, 这个组织是拉那个 hackerface 上面那个主持,所以说你如果用 hackface 那 个网络去下的话,你可能就要用这个名称。如果说你用 modern scope 的 话,我建议大家用这个名称,不然这里等一下去下载模型的时候就会报错,这个是需要注意的,所以这个名称最好是用这个名称。那它下载之后这个模型下到哪里去了呢?在这个里面我们打开打开看 这个模型的话,我之前其实已经下载过了,但是大家第一次登录进来你看不到,然后它是在这个有个 view 里面有个 showhand files, 然后这个下面有一个点 catch 目录,下面有个 model scope, 然后在这个下面有个 models, 然后再往下大家看有一个 a l m research, 这个就是咱们拉玛三八 b 那 个模型的存放位置,我之前下的模型就下到这个里面去了。 所以说大家如果要用本地地址的话,你直接 copy 一下这个 pass, 然后这里改一下啊,这里你可以改一下, 比如说我们可以其实也可以不用上面那个地址,用这个地址,但是这里的话大家需要写完整的地址,这个是个相对地址,我们要写点加个 m i t space space, 你 要用这个地址,这个就是叫这个 pass, 上面那个其实叫 model name, 这两种方式都可以,第一种方式是什么呢? 叫做适合在线,在线训练,可以连接互联网下载模型的这个这个场景。然后第二种配置的话,它适合什么呢?适合离线训练,但这个在线训练不是去在真的是在线,它是应该是什么呢?就是 就是可以连接互联网下载模型,适合,其实也是本地训练吧,但是是适合可以连接互联网下载模型的一个场景,这个的话就是适合什么呢?适合 离线下载模型的场景就不支持联网,适合不支持联网下载 模型的场景,也就说我们这个模型不去那个网上下载了,我本地用内部网络,用其他的这个设备给它拷过去的,就不联网下载了,你就用这个 pass, 两种方式其实都是 ok 的。 然后第二个参数是什么呢?叫 data set, 就是 我们刚刚那个数据集, 也就是大家我们刚刚看到的那个有个 data identify, 是 吧?就在这个里面有一个叫 identify jason, 这个里面这个就是我们刚配置的,就这个文件名的话, 这个名称其实就是对应到这里,你这里写这个的话,它会读取那个 jason, 它那个 data set 音频里面这个名称就会匹配到。还有像这个 ipac 一 对应就在这个里面, 这里大家看,所以说你这里面你可以要配,你还可以配一个,对吧?你可以用 zh, 就是 你不用英文数据了,咱们就用中文数据做训练,也是 ok 的, 没有问题。 好,这是第二个重要的参数,然后第三个重要的参数就这个 put, 这个是什么呢?这个是我们收出的一个 目录,结果就是咱们等下做训练的话,这个训练的结果在哪里呢?在我们当前 lma factory 下面有一个 save, 但这个目录的话大家可以自定义,你关键是看你在哪里执行,你如果在 library 里面去执行的话,它这个目录就在这里,所以说我这里先把它删除掉,我们可以在最外面去执行,最外面去执行。所以我现在这里的话,我先我先要装一下 library, 因为这重启过了它那个环境就会没有了,重启过就没有了, 你看我重启过之后,我再去执行这个 lama factory 这个命令之后,它这里可能就会报错啊,是大家看找不到命令说明咱们要去装一下,所以我就装一下,重新去执行一下这个命令,每次重启它都要重新装一下,直接执行这个命令,然后装完之后我们带大家来就实战的去。

逼自己一个月学完,其实你很会 ai 大 模型,存下吧,很难找全的,本系列视频耗时两个月制作共计一百二十小时,带你一口气学完,吊打大模型面试官。这应该是目前抖音仅有从入门到进阶 全套系统 ai 大 模型教程,本期带你搞定浪漫 index 还整理了大模型面试题目,简历模板,学习路线,公开试听课,需要的话直接拿去。目前业界做大模型应用开发有两款比较适合于 agent 智能体应用开发场景, 那还有一款叫 lama index, 比较适用于做 rock 应用的一些场景。那我们今天的话就给大家来分享一下 怎么样基于 lama index 快 速地去构建一些 rock 的 一些应用啊,带大家快速入门。那首先我们来介绍一下这个 lama index 啊, lama index 是 一个专门用于这个大模型应用开发的一个数据框架 啊,它最开始的话是规划专门用来去做一些欸 rock 的 这种场景的,但是现在发展越来越快了,那不仅仅局限于这个 做 rock 的 一些这个功能啊,但是它 rock 的 功能确实比 long chain 要强啊,但是它基础的一些功能基本上跟 long chain 啊差不多了啊,但是它以前最开始规划的话是作为一个数据框架啊,主要是做一些数据的一些加载啊,结构化呀啊,跟大模型做一些整合呀,然后做一些这个大模型的一些本地部署啊啊,所以 说它的功能其实非常强大啊,但是我们今天主要重点的话给大家来讲它在 rock 这一块的一些组建方面的一些优势啊, 那么大家可以去看一下这个官方文档啊,这个是朗这个 lama index 的 一个官方文档地址啊,当然是纯英文版的,但如果看不习惯的话,我给他找了一个中文的一个翻译文档啊,这个页面跟这个官方文档差不多啊,然后有配套的这个翻译啊,大家看这个的话会比较的好理解一些啊。 那么讲 lma index 之前,咱们得简单说一下这个 rock 这回事啊。 rock 的 话就是因为大模型目前都是基于这个预训练的啊,也就是说它的那个数据集是有截止时间的,比如说即使是目前最新发布的这个模型的话,它到发布那一天可能训练的话,它的时间是有截止的。那对于最近发生的一些新闻的话,乐点, 或者说大家公司里面的一些行业的一些数据的话,它是没办法感知的。那如果说要解决这个问题啊,因为我们做大模型开发都是需要整合到自己的业务里面去,或者说放到企业内部做一些 o a 系统的一些整合呀,一些工作上面的一些提效啊。 哎,这个就需要大模型去了解我们的一个业务,那怎么来了解呢?那我们需要把文档喂给他是吧?就是哎,公司内部的一些 一些资料啊,是吧? word 文档, excel 啊,或者技术文档, markdown 啊,或者 pdf 文档啊,这些东西的话,你都得喂给大模型,那怎么来喂呢?这个整个一个过程啊,咱们就叫 rock, 这个叫剪缩增强生成啊,也就说相当于开个挂挂啊,就是把那个我们的一个知识库的文本啊,就公司的内部资料啊,或者是行业的一些知识, 干嘛呢?把这个东西转换成向量啊?因为向量做相似度匹配,一般有两种算法,一个叫欧式距离, 一个叫这个余弦相似度。欧式距离就比较好理解了,比如说我们这个二维的向量,这个是 x 轴,这个是 y 轴啊,那么比如说有一个点啊,比如说这个是啊,二四这个节点,是吧?然后还有一个点叫三啊,三三这个节点,那么计算这两个节点的话,假设这两个节点,哎 它的欧式距离,就计算这两个点它之间的坐标,它的距离是多远啊?还有一种的话叫余弦相似度,就计算两个点之间的一个夹角啊,如果说这个夹角 接近于这个一的话,就意味着什么呢?就是无限接近,是吧?就比较重合,相似度非常高啊,就是他的一个得分会比较高一些啊,这个就是用来去啊转换成项链的一个目的。那既然有了项链,咱们这个文本又这么多,那你肯定得存到一个数据库里面去啊, 由此就产生了这个向量数据库啊。向量数据库就是我们可以存储很多由文本转化过来的一个向量坐标点啊,然后存完之后,哎用户去查询的时候,那我用户会输入一段文字,对吧?那这段文字也会转换成像量,那我们要计算用户输入的这个文本向量,跟我们 当前哎向量数据库里面的一些向量做一些相似度的匹配,匹配完之后他会拿到一些啊文档,但是文档列表啊,因为里面可能存了大量的文本嘛,它是文本块,所以说这里面会有个东西叫解锁召回啊,解锁召回就意味着咱们匹配能匹配到哎,比如说 top 三啊, 能拿到三条最匹配的那个文本啊,文本段拿到文本段之后丢给大模型,让大模型参考这些文本段依次去总结归纳输出啊,这整个过程就叫 rock, 也就是让大模型学习啊,了解到你的一个知识的一个情况,那么他回答问题的时候就会,哎,更加的什么呢?比较接近于你想要的一个答案啊,就这么个意思。所以说做 rock 的 话,其实会涉及到一个过程啊, 有几步,首先啊,我们做文档加载的话啊,你你首先得得把这文档给漏得进来说,比如说你 pdf 得用 pdf 加载器吧, txt 得用专门的加载器, markdown 也用专门的加载器,这个里面就涉及到一个东西叫 document load, 那么整个 lama index 咱们要等一下讲的一些组建的话,其实说白了就是去实现这些功能啊,它在不同阶段有不同的组建去完成啊,所以说大家都要对这个流程有一定了解 啊。然后文档加进去之后,哎,那文档如果很大,比如说一百兆的话,你不能把一百兆的文件都丢给大模型吧,或者都存到现场数据库里面去吧,你不能把整个一个大文件一次性转吧,这样的话性能上啊,会有一些问题,所以说咱们得做什么呢?分块,并且大模型它也有 token 限制的啊,就是你, 你如果用在线的大模型把文本转换成像量的话,他是要是吧耗费 token 的, 如果说你的算力不够的话,或者说你的对成本有要求的话,你不能把整个一百兆的文件都丢过去,是吧?这个成本会比较高,所以说咱们分快,分快之后的话,哎,性能问题也解决了,那成本问题的话,其实也可以得到缓解啊,因为你 你不一定要这样很频繁,是吧?而且中间要是报错什么的话,那之前的 token 可能都白费了啊。所以说分快之后,哎,用异步的方式去把它做加载,加载完之后什么呢? 哎,把它存到邮箱数据库里面去啊,邮箱数据库就是大家看到的一些这个坐标点啊,就是我们这这个是二维的啊,就把它存进去,存进去之后把它存到邮箱,然后之后干嘛呢?解锁啊,解锁的话就是用户会输入一段提示词,这个提示词的话咱们干嘛呢?哎,拿到这个提示之后, 哎,把这个也转换成向量,做一个相似度的匹配,匹配完之后会拿到这个向量数据库里面的一些文本块啊,就列表。拿到这个文件列表之后,哎,去干嘛呢?去,去给大模型作为一个提示词的方式去参考,参考之后最终给一个答复啊, 所以说它的作用的话,就是在于,哎,让大模型了解到我们的一个行业知识啊,所以说基于此的话,那个 lma index 啊,就是 为了解决这些问题的话就诞生了啊,它主要就是为了去解决一些领域数据跟大模型相结合的一个问题啊。所以 lama index 最初的一个核心组件的话啊,主要是面向路由的一个场景。首先第一个叫数据连接器啊,这个很好理解,就数据源加载嘛, 那这个的话,比如说它目前支持很多种数据源,比如说文件式的是吧? pdf markdown, 然后,哎,还可以连接在线数据库啊,比如说 my sql 啊,还有一些在线的这个协助平台文档库啊, nation, google 文档啊, 这个的话大家可以看一下官方文档里面有一个东西啊,大家,如果是你是英文版的话,在这个里面啊,有一个叫 component gods 啊,就是一个组建的一个 啊这样的一个指南,然后在这个里面有一个东西叫 loading 啊, loading 下面有一个 data connectors 啊,这个里面是吧?它就定义了各种的什么组建啊?它有一个 lma hop, 这个里面定义了各种各样的一个文件加载的一些方式啊,比如说文件图片是吧?包括 pdf 啊,各种各样的都有啊,都有, 这个是那个数据加载器啊,就是相当相当于官方给你写好了一些库,完了,你就很方便的去加载这些文档啊,然后一个的话叫数据缩影。数据缩影的话,这个也很好理解啊,就跟我们查询数据库一样啊,查字典一样,你得有一个编号是吧?快速的去找到哪一页吗?那这个 lma index 去帮你做 解锁之前,它首先也得把它做缩影啊,那缩影的话,比如说就有向量缩影,有列表缩影,有数值的缩影,因为要有有些场景,它要展示层次化的一些接口啊,还有包括一些关键字表的一些缩影啊,这个它都会帮你做各种各样的缩影啊。好,然后有了缩影之后,接下来就查询了嘛,查询怎么做呢?它引入一个组建叫引擎 agents 啊, 这个引擎的话就是用来干嘛的呢?就是哎,他会帮你去做一个什么事情呢?做查询的一些逻辑判断啊,就是比如说这个什么呢?哎,有些场景是做聊天的,是吧?问答的, 咱们做聊天机器人的时候,他会要用到聊天的一个引擎,还有一个场景叫查询,查询的话就是简单的一个企业内部的一个,比如说文档剪辑啊,内容匹配啊,啊,所以说这个应用场景不一样啊,主要就是聊天要么就查询啊,会用的比较多一些。然后的话是这个数据代理啊,数据代理的话是大模型里面这个叫什么呢?叫 知识的这个工作者,是吧?他通过这个工具增强可以去执行一些任务,比如说一些什么研究啊,数据提取啊,说白了就是 这个数据代理的话,就是很方便的帮你把数据可以干嘛呢?作为一些这个提取啊,比如说我要提取 markdown 里面的一些标签,是吧?一些这个标题啊,或者 html 里面的一些标题啊,或者是里面那些图片啊,就是这个里面它可以帮你做一些数据代理。 数据代理这一块找一下,在这个 load 里面数据代理 next storage, 找一下啊,数据代理这在哪个里面? data nodes agents 个 data agents, 看一下这个啊,看一下这个名字, document 的 nodes 找不到也没关系啊,大家知道这个概念就行了啊,就是这个里面有一个东西,专门就是用来做数据抓取的,它可能这个因为这个里面升级也比较快啊,你看刚刚那个 quarry engine 是 吧? java engine 在 咱们在这个里面啊,数据代理 quarry 这个应该是做持久化的吧,看一下做数据的一个工具,增强数据代理,看一下中文里面有没有评估代理用法工具,一级别代理查询 存储,所以这样子 找不到也没关系啊,他可能是一个这个,呃,要,要么就是改了名字啊,要么就是有时候他这个只是个逻辑概念啊,他可能跟有些组建合并在一起啊,然后是应用集成,应用集成的话就是咱们可以去做一些向量数据库的一些哎,这个连接啊,然后包括一些外部的一些接入啊,这个是在这个里面有一个 存储里面,有一个叫向量存储啊,向量存储里面,大家看啊,它目前支持这个叫二十多种向量存储啊,就是不同的数据库它都支持啊,比如说主流的那个 crama faucets 啊,还有那个 l、 s, d b 啊,还有这个各种各样的一些 d b 啊,啥? 还有 yiv 啊,是吧? milliv 啊,就是基本上主流的都支持二十多种,非常丰富啊,还有包括一些外部的一些这个 api 接口啊,这个的话我看一下。在哪里啊?就是一些 api 啊,这个应该是在快手里面找一下啊,说白了就是你看在这个里面啊,大模型,你看使用大模型 有很多啊,看一下,你看 gpt 模型是吧? gpt 四 cloud 啊,很多大模型都支持啊。 messes 很多主流大模型都支持啊,应用程序集成那一块啊。好,然后是 lma index, 一个核心概念啊, 这首先第一个概念是 rock 啊,刚刚有讲过啊,这个就不重复了,首先我们第一步要构建缩影,是吧?要构建数据库啊,你要把文档加载进来之后构建一个缩影啊,要有这个数据库的概念,然后我们就执行查询的时候就是去做什么呢?类似的一个向量的相似度匹配啊,然后另外的话就是到这个什么呢?这个, 哎,数据连接器啊,数据连接器里面相当于咱们得加载,是吧?加载文件啊,然后去建立,所以嘛,所以这个里面会用到一个组建,叫什么呢? data collector 啊,就是做数据加载啊,注意加载, 然后完了之后你得做一个文档的一个加载啊,文档的一个加载,这里说起来有点抽象啊,我给大家看这个代码啊,这个是这个 lma index 提供的一个文,这个代码示意啊,我们来看一下,从代码上来说的话,首先啊, 我给大家从头开始说啊,比如我们现在有个知识库啊,有两个文档,这个 news 点 t x t 是 一篇关于人心机器人的一个新闻文章啊,在这个里面有一段描述,是吧?关于人心机器人的,然后还有一个叫 techmd, 是 关于大模型的一些这个 技术文章啊,什么 agent 的 智能体什么的啊,一段这个文文档,我们现在的诉求就是我们先要把这这个 data 里面什么呢?把它做做一个知识点啊,把它加载进来,加载进来,怎么来加载的呢?来,大家看啊,你需要引入一些东西啊,首先第一步你得干嘛呢?你得有一个啊,过程 什么呢?哎,叫文档加载啊,大家看这里有一个叫 simple vector 啊,叫文档加载器嘛,这个东西的话就是在那个 lama index 里面是一个核心组件啊,就是它是用来加载文档,比如说我现在通过什么呢? 哎,通过一个路径啊,就 data 这个 data 目录里面呢,把它全部加载进来啊,所以说这个里面就会涉及到刚刚讲的一个 data connectors 啊,就连接器嘛, document, 那 这个 data connector 的 话,我们在这个里面啊,有一个加载啊, 找到,呃,数据连接器啊,大家有可以看这里面的视力啊,你看这个里面有各种各样的 load 是 吧?我刚刚的话是一个本地的啊,一个叫什么名字呢?叫这个 simple director 是 吧? great 啊,在这个里面,大家看啊,我是用的这个本地文件目录的方式加载的,所以说我要用这个库去做加载,大家如果说你用的是 google docs 吧,你得换一个这样的一个库啊,还有 nation 的 话,你也得换啊,这个是需要注意的啊,第一步咱们先得把,是吧数据,哎,拿到,所以说你得连上去啊,然后第二步叫 documents nodes 干嘛的呢?这个是你拿到,通过第一步你会拿到一个什么东西呢?拿到一个叫 documents 的 一个东西啊, documents 的 一个东西,然后拿到这个 documents 之后,哎,接下来你干嘛呢?接下来你可以干嘛?做一个分快啊,分完快之后就相当于我一个 document, 比如说是一百五十兆啊,那你得分快,比如说我按这个 啊,这个一 k 是 吧?一 k 就 做一个分块的话,那你 note 就 相当于,哎,你要做 n 个是吧?这个按一百五十兆拆分成多个 nodes, 做一个拆分啊,做一个拆分,做一个拆分就是它会得到多个啊, list 的 一个 nodes 啊,多个,那这个怎么来拆分的呢?在这个里面啊,找一下啊, 我们可以去看啊,在这个里面有一个,大家可以看这个文档啊啊, document store index, 其实就是就是一个分割嘛,是吧?分割的一个过程,数据连接器加载,找一下啊啊,节点解析器跟文本分割器,看一下是不是这个啊? load, 大家看啊,其实这个里面就是用到一个什么呢?叫分割器啊,分割器就是你可以什么呢?比如说我简单,我这里用的应该就是 simple 的 一个,看一下啊, quick range, 我 这里我我其实没分割,我是全部加载进来的,那你其实可以干嘛呢?你用了那个有一个 simple 啊, simple 这个加载完之后对不对?你会得到一个 document, 你 得到一个 document 之后干嘛呢?你可以做一个 load 啊,就是做一个 split。 分 割啊,在这个里面大家看啊,有个 simple file node path, 你可以把这个东西干嘛呢?做一个分割啊,分割成多个 nodes 啊,就是我一个文件啊,比如大家看这个 t x t, 是 吧?这个 t x t 文件, 比如说第一行一块,第二行一块啊,就一块、两块、三块,比如说你按房行分割的话,就是有多少行就分成多少块啊,这个叫 nodes, 一个块就叫一个 nodes 啊,这个在 long chain 里面叫 trunks 啊,其实都是一样的意思啊,就是分割啊, 好,这分割完之后干嘛呢?哎,要建立锁影了啊,建立锁影就是目的就是为了后面咱们去做项链搜索匹配的时候查询可以用项链的方式去做匹配,所以接下来会用到一个东西,叫什么呢? 叫做向量数据库啊,向量数据库,所以你得有一个干嘛呢?存到向量数据库的一个逻辑啊,这里咱们会用到一个东西叫 vector store index 啊,就是要把文本转换成向量,变成一个缩影啊,变成一个缩影,所以这时候干嘛呢?这时候得有一个什么呢?叫向量数据库的一个概念啊, 在这个里面啊,大家看,咱们有一个东西叫哎,叫 store context 啊,就是叫存储的一个上下文啊,存储的一个上下文里面,这里大家可以看得出来啊,我们需要干嘛呢?把这个向量数据库哎跟下面的一个逻辑什么呢?做一个关联啊,做一个关联, 把它,哎,这里做一个查询的时候,咱们要把它存到向量数据库里面去,怎么来做的呢?首先我向量数据库用的是 crm 啊, crm 啊,说到这个运行代码,我先说一下这个环境啊,大家首先需要把这个, 哎,我建议是用扩展啊,专门装一个 lama index 这么一个环境啊,建议是三点幺零版本,然后装两个库,一个叫 klamata db 啊,把这个库给装了,然后把 lama index, 我 用的是零点八点三这个版本啊,把这几个安装给它,装一下这个环境代码,它就能跑起来了。 然后咱们需要引入到一个 crala d b 这个啊, crala d b 的 话是一个开源的线上数据库,大家需要把这个东西库先装好,装完之后咱们得连接上 crala 这个库,这个库在哪里呢?大家看我用的是它一个本地数据库的这种存储方式,在当前运行代码的这个根目录下面有一个 crala 的 一个文件夹 啊,有个 karma 点 sql 三的这么一个文件,这个是一个本地的一个数据库文件,这里大家可以双击啊,如果说你是拍 chum 的 一个专业版的话,你可以打开这个向量数据库啊,在这里大家可以看到它有一个表格,这个表格里面就是你文本转换成向量的一些库啊。首先它有个 collection, 大家可以把它理解为一个表,一个表表里面有个什么呢?一个 是吧? quick start 啊,就 collection 这 collection 里面,我们专门就把项链存到这个这个 collection 里面去啊,就这个集合里面去,然后在这个 embeds 里面大家就可以看到啊,啊?不是 embeds, 看 made a date 找一下啊, embeds collection, make date sentence。 哎,我刚刚还没有执行啊, forgot search, 我现在只创建了一个 collection 啊,但是我没有往里面去存东西啊,这个没关系啊,咱们先说啊,也就说大家,哎,你它其实就是把向量数据向量存到这个里面去了啊,存到这个里面去了,那首先你得什么呢?你得去跟这个什么呢?建立到这个数据库里面啊,就是你得 建立一个连接啊,就是咱们这里有一个判断逻辑啊,如果说这个 karma 最开始没有创建的话,它就会执行一个,叫什么呢? 叫 create 啊,创建向量数据库的这么一个过程,它会帮你生成一个文件啊,如果说你已经创建的话,它就会拿到数据库的一个连接 啊,不管最后怎么样,它最后都会拿到一个 colama 的 一个 collection 的 这么一个实力对象,有了这个东西之后,你就可以干嘛呢?做向量的一个存储啊,它就是拿到这个东西去做存储的啊,做存储的,所以说这个就很好理解了啊,这个里面就会做一个存储的一个逻辑啊,在这个里面有一个存储啊,大家看 向量存储啊,向量存储的话,它就会执行一个代码逻辑啊,文档存储,向量存储,文档存储,它就会做一个持久化啊,持久化, 所以说这个里面我会用到一个方法,叫什么呢?叫 vector 啊, vector store 啊,然后会去做一些这个存储的一些逻辑啊,这个里面官方的话,这个势力里面其实也有在写啊,也有写关于一些这个存储相关的啊, 这个文档有时候也没法访问啊,因为一些网络原因啊,可能会影响这个访问一些逻辑啊,就大家其实也可以自己去看一些这个文档啊,你看这个关于向量存储上面 其实也有很多的这个实际的个例子,比如说我们现在要看一个这个库拉玛 db 的 这个存储,是吧?他每个向量数据库存储啊,其实大部分代码都是一样的啊,只是稍稍会有一些区别啊,大家就可以看一下他的一个存储逻辑啊,存储逻辑这个里面都有写啊,其实 你看这个势就是一段势力嘛,用这个向量数据库去存储,是吧?这个里面,哎,它其实就是怎么关联的呢?在这个里面来看这个存储上下文里面它会干嘛呢?把这个向量数据库转到这个里面去啊,有一个叫 store context 啊,就是做存储的一个逻辑啊, 存储的一个逻辑,这个就会是把向量数据库哎往里面去存,然后这个里面有这个文档加载的时候啊,在这里面有个 from document 的 时候,看一下这里可以干嘛呢?把刚刚那个地方给它传进来啊?在这里面大家看,就我把我刚刚的那个在这里面啊,这里还加个东西, 就是我加载文档的时候我需要干嘛呢?把这个哎咱们的存储上下文跟这个向量数据库给关联起来, 关联起来之后接下来可以干嘛呢?就可以去查询这个向量数据库了啊,查询向量数据库了,这个东西就是建立,所以啊,并且进入到一个查询阶段啊,这个就比较好理解了啊。然后下面还有几个阶段啊,第一个阶段的话就是 reterer, reterer, reterer 的 话就是咱们要去做剪缩啊,就是你输入一段,是吧提示词, 对,它需要把这个提示词转换成向量,这时候咱们需要从向量数据库里面去做查询。比如说我们现在你看我 qr 啊, qr 里面,我现在问一个问题,我问人形机器人包含什么行业,那现在这个 这个问题的答案是在这个里面啊,但是我也不知道答案是什么,我现在就是让哎用 rock 的 方式让他去回答这个问题。来,我们来跑一下,先看一下效果啊, 它的一个整个过程就是你看使用已存在的本地数据向量数据库啊,也就是说什么呢?我现在啊, 我第一次是没有存储的啊,我,我把这个给大家删掉啊,删掉啊,来跑一下,我的删掉数据没有了,大家看第一次的话它会什么呢?使用创建一个全新的本地数据库,对不对?然后干嘛呢?然后大家可以看到这个数据就在这个里面啊,但是它有时候直接会报一些错误啊,没关系,咱们再多跑一下,有有时候会报错啊。嗯, 藕线的,它有时候可能因为这个 lma index 的 话,它对这个中文知识有时候不是很好啊。看一下这个,把这个问题去掉啊, 偶尔会报报错是吧 啊? got, 看是不是这个代码这里写的有问题。这个这个里面有个 store context 啊,这里好像用这个英文去问的话就会好一些啊,有时候会有一些问题啊。 是啊,再跑一下啊,那我就问个人型机器人呢,偶尔会报错啊。 quick start, got, it, well, 我 不加这个试一下。那是加了这个的原因啊,那你先先我把它代码撤销啊。 机器人包含哪些行业?来试一下。 好,现在大家可以看到,你看工业家庭服务,这个是不是就可以了啊?解锁就可以了啊,刚刚那个参数其实不用传啊,就是这个不用管它传了的话有时候还会报些错误啊。就是咱们去解锁的时候啊,你看啊,我直接去什么呢?去这个向量数据库里面去解锁了啊,解锁之后发现拿到一个内容,然后做一个反馈,我们搜家庭服务啊, 家庭,大家看这个里面是不是有涉及到家庭服务,是吧?公共服务特种行业,是不是?我这个 rug 已经参考这个里面的文本了,对不对? 这个就是整个我的一个逻辑,哎,就是我进到一个查询阶段啊,然后这里有一个隐藏的一个阶段,就是一个 node play post processors, 就 后置处理,这个里面会涉及到一些文档转化过滤排名。什么叫文档转化呢?就是文档它这个里面的话,哎, 这个节点里面的内容,比如说一些编码,一些逻辑,你是不要做一些转化,是不是过滤做一些处理啊?比如说我加了一些条件,只筛选, 只保留 top 三的啊,只保留 top 三的,那你后面的数据,你说是得过滤掉滤这些平那个相似度的一些排名,对不对?所以说这个在 node post processor 里面去完成,然后响应处理器是干嘛的呢?就是它这个里面可以定义格式啊, 就是我返回的内容,我可以自定义,比如说我希望是 jason 的, 我希望是什么呢?希望是这个叉 mail 的, 这个可以做一个拓展啊,在 response 里面做一些控制,然后我也可以做一些这个什么呢?叫 chart engine 啊,我这个里面有个 chart engine 啊,在这个里面代码上面代码都是一样的。最关键的逻辑就是在这里啊,有一个 s chart engine, 还有一个,是吧?这里就是方法不一样啊,就 chart 这个是适用于聊天场景啊,就一对一对话,也就是后续你可以把一些对话记录给它灌进去,那个的话就简单的是只是做一个查询啊,所以说这个场景会有些不一样啊。 好,然后是一些个性化的一些配置啊,就是大家可以,哎,你把那个向量数据库什么呢?也可以做一些窗口的一些区分啊,比如说在这个里面有一个 from default, 搜一下啊,在这个里面大家看这个窗口 size, 我 这个分块大小是可以自定义的啊,我可以自定义啊,做一些处理,并且的话我可以不只应用这个大模型啊,不只应用大模型, 这个里面就相当于我用大模型的这个引碑顶的这种方式去做嵌,我也可以不用大模型啊,所以说就大家根据自己的一个需要去设置啊,然后是自定义项链存储,这个里面的话,就是我可以哎自己加一些这个参数啊,就是 比如说我创建了一些逻辑,这个项链输入库的那个 correct 名称是什么,是吧?然后做一些参数,一些配配置,并且可以打印一些日期啊,然后包括一些自定义,一些剪辑啊,就在这个里面我可以加一些参数,比如说你看 top k 只保留前五个啊,只保留前五个, 这个结果的意思就是因为最终他还是会给一段完整的文本描述的,只是说他参考的内容,你只取前三条还是前多少条,这个参数大家看,你看相似度的一个 top k 啊,就是只取五段啊,有匹他给你匹配到十段,但是你只要五段,这个相似度排分最排名最高的啊,就那个分值,相当于他给你做一个排名,哪个分值最高啊?你像他刚刚那个问题去问这个 人机机器人的时候,他会觉得,哎,后面那个什么什么家庭服务那个问题会更贴切一些,所以说他帮你匹配了那个比较接近的前五个,前五个内容,前五个文文本快啊,这个是需要注意的啊, 然后并且我们还可以什么呢?使用定义一些机机座模型啊,就是这里你可以用 open ai, 也可以用 deepsea, 各种各样的模型都是支持的啊,这个都没有问题啊,以上的话,就是这个 lama index 大 模型应用开发的一些核心的一些概念,还有一些组建啊,这个大家客户可以去自己去写一些代码去体验一下啊,其实也非常好理解啊,非常简单啊, 最后去做一个小总结吧啊,就是首先大模型应用开发,就是对于啊,我们目前来说啊,相对于机座模型开发的话,它是要求很高的算法 基本功的啊,但是我们现在啊,做应用开发的话,其实要求没有那么高了。未来啊,大家做大模型开发的一个方向的话,基本上就两块,第一块叫微调,第二块叫 rock 啊, 我们今天讲的 rock 的 话,就是以这种文档加载这种方式啊,他的一个特点就是他试签不训练模型,但他需要让模型去直接根据我们的一个数据去来作答啊,他可以让大模型啊理解我们自己私有化的一些数据,相对于微调来说,它的成本更低,风险更小。 如果不涉及到模型问答的风格的话,我们仅需要对当下的思维化数据做一些回答,那么就用 rock 啊,也就说大家如果说是做什么呢?只要不涉及到模型风格的变化的话,你就用 rock 就 可以了。什么叫 模型风格呢?比如说啊,你是做电商行业的客服的,那个大模型的这个场景它是涉及到什么呢?一些回答语气方面的一些东西,比如说,哎,他回答的时候 他需要给你一些什么呢?友好的提示,比如说亲啊,就是您的什么快递啊,即将送达啊,他是有这种行业属性的一些这个特色的啊,就是他会用一些网络的一些用语,对不对?他是带有行业属性的,但是你如果说做做政府部门一些应用的话,他就对用词的话,他就比较是吧有要求了,不能随便啊 啊,就是玩笑不能随便开啊,就是他的用词就要比较严谨了,特别是在法律行业啊,用词要非常之严谨啊,这个就啊你要用微调的方式了,微调的话就是去改变,哎,大模型自身的一个特性,他的风格啊,他不是能力啊,能力没有任何变化,智商没有任何变化,但是, 哎,他的风格会有一些变化,比如说你微调那些数据啊,你从你反复去训练,他是一个比如说法律行业的,那他回复的时候就应该有板有眼的啊,非常公正啊,就是 标准啊,不能说回答错了啊,对,准确性,因为一个误判的话,很可能就会有严重的结果后果是吧。就说不同行业的大模型的话,对于要求是不一样的,有的行业它是可以用 rock 的, 有的行业可能它比较适合于微调啊,在不同的业务场景下也会有区分啊,有的业务场景它就可能必须要用微调 啊,那有些可能要求不那么严格的场景的话,比如说做剪辑,比如说你做技术文档,公司内部的一些信息的一些剪辑的时候,它用 rug 的 话可能会更合适一些啊,它效率可能也会更高啊。好,这个就是这个,我们基于这个 lama index 去做大门应用开发的这个一个方向的话,目前主要就是基于 rug 的 这种场景啊,微调的话,我们 啊后面这个再给大家去做一些更细的一些分享啊。我们在使用大模型的时候,经常会遇到一些幻觉问题,也就是所谓的答非所问,这非常影响用户体验。那么怎么来解决这个问题呢?今天就给大家来分享一下,基于 lama index 引入 rock 技术来彻底解决幻觉问题,然后我们会基于本地的一个 deepsea 部署啊。 好,那首先我们来说一下啊,就是所谓的一个幻觉问题的话,会有一个什么样的一个情况呢?就是大模型在生成文本的时候啊,它会输出与事实不符,并且是逻辑错误啊,完全无关的内容,这严重影响了一些关键场景,比如说一些问答系统,知识解锁等它的一个可能性,它可能会 会误导用户啊。那为了解决这个问题的话,我们来引入这个 rug 技术啊, rug 的 话是目前非常主流的啊,去解决大模型幻觉的一个技术 啊,它是一个三个英文单词的一个缩写啊,就是这个 re travel arguments generation 啊,叫解锁增强生成 啊,也就是说去引入一个外部知识库,跟咱们那个大模型相结合啊,让大模型去学习到我们啊业务的一些特性啊,我们知识库里面的一些信息,从而的话去提高生成内容的一个准确性跟可能性啊。 那么 lama index 的 话,它最开始是设计用来做一个数据框架啊,就是去连接各种各样的一个数据,去解决大模型与外部数据的一些连接问题啊,实现更加精准的一些知识解锁跟深层啊,所以说我们本次啊,我们会讲解这个 lama index, 结合这个 rug 有 效地去缓解大模型的一些幻觉问题。 好,首先来介绍一下 lama index 啊, lama index 的 话,它是一个用于快速构建这个 rock 应用的这么一个框架啊,它特别适合于做 rock 啊, 其实类似的一个框架还有一个叫 long chain 的 啊,跟这个 long chain 目前功能比较接近啊,那么 long chain 比较适合于做一些 agent 的 一些场景啊, 然后大家可以去看一下这个官方文档的一些资料啊,对于这个 lma index 的 一些组建做了非常详细的一些介绍,还有包括一些视例啊,然后用户的一些使用案例啊,包括学习的一些资料都比较完善啊,但是官方文档是一个英文的,那这里的话,我给大家准备了一个中文文档的一个地址啊,大家可以去看一下这个文档啊,那这个页面布局的话, 跟咱们这个官网的啊比较接近啊,然后这样的话看起来就比较好理解一些啊。然后这个 log 这一块的话啊,因为我们等一下会讲到这个代码这一块的啊,就整个去实现这个 代,这个 log 怎么来集成那所以我给大家说一下 log 的 一个基本的一个流程啊,所谓 log 的 话,就是我们要把外部的知识啊投喂给这个大模型的话,那它大致的流程就是第一步的话,你首先得把这个文档给加载进来,对不对?比如说咱们的这个 pdf 啊,或者是这个 markdown, 这所有的文件你首先干嘛呢?你要把它加载进来,那加载就会涉及到一个问题叫文件解析啊,因为 markdown 跟 pdf 或者 txt 它们的格式是不一样的,那你的解析规则也不一样,那这个里面就会涉及到一个问题啊,就是如果说你自己要去写 rock 程序的话, 你要去写 markdown 的 一些库的这个引路啊,还有像 pdf 库的一些引路这些东西的话,我们用 lma index 的 话, 它就帮我们都解决了,它去对接了各种各样的一些这个数据源啊,在它的这个加载这个板块里面有一个叫数据连接器的一个组件,这个组件的话它支持各种各样的一个格式啊, pdf 啊, word 文档呀啊,它有一个啦吗? hop 这个里面就 有提供了各种各样的一个数据连接器啊,就大家可以非常方便地去解析到不同的一些文件啊。那这个问题就解决了之后的话,我们要把这个文件分块。为什么分块呢?因为啊, 大模型它的上下文是有限制的啊,你我们把一个文本转换成像量的时候,他对于那个大小是有限制的。如果说一个文件是一个 g 上上来的话,你如果把一个 g 直接转换成像量的话,那可能会出现一些问题啊,内存溢出啊,或者其他的一些问题。所以说我们要分块啊,这个里面就涉及到一个文文件分割啊,那还有一些分词的一些规则什么的 啊,好完了之后,哎,我们怎么样?哎?把它去到一个文文件分割啊?那还有一些分词的一些规则什么的啊。好,完了之后,哎,我们怎么样?哎?把它转化成向量之后,首先要存到向量数据库里面去, 之后干嘛呢?哎,之后用户去做一个解锁查询的时候,比如说他输了一个问题啊,虽然问了一个技术问题,那这个里面他会把用户的这个提示词转化成向量,跟咱们向量数据库里面存储这个向量计算一个什么呢?叫哎,相似度啊,相似度怎么算的呢?比如说一个二维的一个坐标啊, 比如说这个坐标是二五是吧?这个是三三啊,就这个坐标啊,这两个点之间的一个距离啊。欧式距离是一个比较简单的计算公式啊,这是第一个算法啊,就计算欧式距离。然后还有一个算法是计算余弦夹角啊,在这里 比如说这个角度是吧?这个角度如果说接近于一的话,他就是相当于重叠了,重叠的话意味着什么呢?就是他的一个分得分比较高啊,意味着他的一个什么呢?这个就比较接近啊,这是主流的两种算法。然后,哎,咱们先要数据库里面搜出来的东西,搜完之后的话, 这里面涉及到一个概念叫解锁召回啊,他去搜的话是搜出一些片段出来,因为你把整个知识库都给做了这个存储之后,对不对?哎,他是分段的,分完段之后他解锁这个内容匹配的话可能在第一段,也可能在最后一段,所以说他会有一个排名。比如说你搜那个 top, 只搜 top 的 啊, 他前部其实都能匹配,无非就是那个分数高低而已,比如有的叫零点九九分啊,那这个就接近于一了,非常匹配是吧?有的叫零点八七这个得分啊,那这样的话,就,哎, 他的一个指标就不一样啊,这样的话,但是他也能给你三个结果出来,然后由你来决定选哪一个结果,是吧?好,这个就叫片段啊,就解锁一个召回的话,就是把你匹配的内容给拿到,拿到之后干嘛呢?丢给大模型啊,通过那个提示词 全部组装丢给大模型,由大模型去输出回答啊,也就大模型他除了在他的一个静态的知识库里面啊,就咱们预训练的那个数据集里面去 做一些知识获取的以外,他还要去参考你给他传递的一些内容,就是你搜索出来的一些片段,最终再会干干嘛呢?就把这个结果完整的输出,这样的话大模型就可以比较好理解你业务里面的东西了啊,这个就是所谓的一个 rock 技术啊,也就是外挂知识库啊。啊,那等一下咱们要 讲的这个代码逻辑的话,其实无非就是围绕着这个 log 要把一些这个流程哎给执行完。比如说第一个流程叫 load 啊,就是加载文件啊,加载文件,比如说,哎,我现在要把一个文档啊,给大家看一个例子啊,等一下我们要把这个 markdown 啊,就是一个关于这个 external 的 一个技术文档啊, 把这个文档咱们等一下要做一个什么呢?做一个这个投位啊,就要把这个位给那个大模型啊, 所以说我们先要有一个文档,是吧?那文档之后,咱们,哎得把这个文档干嘛呢?做分片啊,把它分割起来,分完之后把它干嘛呢?做一下这个。呃,向量是吧?转换成像量。转换成像量的话,咱们等一下会用到一个模型啊,用到一个模型,这个模型的话叫这个 有一个分词器的一个模型啊,这个就是做文本切入的这个模型,叫这个 sentence transformer 啊,这个模型的话,欸,它可以干嘛呢?欸?做一个这样的一个相当于向量的一个切入啊,就是它可以帮你干嘛呢?把这个文本转换成像量啊,就是我们本地的模型啊,大家也可以用 open ai 的 那个 in beta 那 个模型啊,都是可以的。但是我们现在讲的是本地部署啊,就是全部是本地的啊,包括我们那个 deepsea 那 个模型,它也是本地的啊,然后这个本地不一样啊,之前啊, 我给大家做的一些分享,是我们基于 elama 去做的一个部署啊,那今天我们讲的是这个 lama index, 本地它就能把这个大模型给跑起来啊,它是基于 hack and face 的 一个框架去跑,所以说用 lama index 去运, 运行一些模型的时候,他是不需要借助外部的啊,他自己就有一些库能够把这个大模型跑起来,包括咱们的这个引杯里模型,包括咱们的那个问答大模型啊,都是可以的啊,这个都都是可以做到的啊。 好,然后最后我们要把项链存起来,存起来存到那个文件里面去啊?存哪里呢?我给他看一下,其实就是有一个锁影啊, 给大家看一下我之前跑出来的啊,你看默认的这个,呃,向量数据库,你看向量数据库里面无非就是一个坐标啊,就跟我刚刚讲的那个 x y 坐标一样啊,假设是个二维的话,它就是一个 x y 轴的一个坐标, 所以说我们要把文本转换成向量的话,最终大家可以看到在文件里面呈现的话,就这么个东西啊,就是一个坐标啊,坐标,然后这里面你看有一堆这个坐标啊,然后这个就是刚刚那个 markdown 文档,把它转成像量化之后,里面,哎,要存着一个东西啊,就变成这个东西了啊,就是一堆坐标啊,好, 这个就是我们等下代码要干的一个事情啊,然后,哎,向量数据库有了之后,接下来干嘛?接下来就要做做剪辑了啊,这个剪辑的话就是什么呢?用户,咱要输入,输入一些东西的话啊,输入一些东西,然后干嘛呢? 然后咱们要去用一个解锁器啊,这个解锁器是这个 lma index 提供的啊,目的就是为了让大家就是可以传入一个文本提示词,然后把它干嘛呢?转换成向量,然后,哎从向量数据库里面去剪辑, 也就是说你输入的这个东西啊,你输入这个提示词,比如说咱们问了一个问题啊,比如说这个 x 滕呢?是干嘛的,是吧?你问了一个问题之后,他也会把你这句话转换成这个里面,他分词器里面定义好的一个规则啊,这个东西怎么来的呢?其实是通过什么呢?通过一个那个叫词汇表啊,词汇表我来看一下,有一个, 然后看一下这个里面有没有啊?有一个 tokenizer, 这个里面啊,其实用到了那个模型里面的一个词汇表的分词器啊,看一下,应该是用的这个模型有个 sentence 啊,里面应该是有一个,我记得有一个,看一下有没有一个分词表啊? sentence bit, 找一找啊? convict, sentence, convict or cap tokenizer, 看一下啊, tokens jester 这个文件有点大啊,就是这个是用到模型里面的一个,相当于大家可以把它理解为字典啊,就是你输入这个内容的话,其实最终干嘛呢?它会转换成一个什么呢?坐标啊,大家可以看到这个里面有一些词啊,比如说随便搜吧中 看,你看中文,中文他对应的一个什么呢?一个坐标点啊,这个东西叫那个什么呢?你可以把它理解为一个啊,就是一个锁影啊,一个锁影一个这个位置啊,他最终会相当于拿到这个 坐标啊,拿这个坐标之后干嘛呢?叫 i d s 啊, i d s, 拿这个之后干嘛呢?最终把你把转换成像量这些东西啊,所以说这个它是有一个词汇表的啊,负责把一些分词分完之后,把对应的词干嘛呢?哎,把它转换成这个对应的一个,哎,向量转换成向量之后,它就能用向量去做一个相似度的一个减数了啊, 好,所以说我们要继续这个这一套技术啊,去解决大模型的一个幻觉问题啊。好,那接下来就给大家讲这个代码的一个部分啊,首先我们要说的一个点,就是我们现在要继续 defc 二一这个模型去做什么呢?做一个啊,加载, 这样的话,这个的话我们就不用基于那个什么欧拉玛了啊,就是你不需要去欧拉玛去部署了,你可以干嘛呢?用在大码里面把这个大模型给跑起来啊,怎么来跑呢?来,我给大家看一下啊, 选这个例子,首先干嘛呢?你要跑 deepsea 二,一啊,你首先得把这个模型下下来吧。啊,这我怎么下的呢?我是通过这个 mod scope 啊,就是这个摩达社区啊,在这里大家看啊,摩达社区,我下的是那个 deepsea 二,一千万的一点五 b, 真流的那个模型啊,大家,当然大家也可以,你如果说你显卡配置够高的话,大家可以去下你自己哎,这个配置合适的一个那个版本啊,比如说你下七 b 啊,是吧? 但是你如果配置不高,比如说你显存只有两 g 到这个四 g 的 话,我建议你是下这个一点五 b 啊,它能够跑起来推理的话,还是 ok 的 啊,这个文件下下来也就三点五个 g 啊,也不是很大, ok, 好, 那这个怎么来下呢?但是这里需要说一点啊,大家先要把这个要装一个库啊,就这个 model scope 啊,你要给他先装一下啊, model scope 这里啊, 大家先要把这个库装一下,如果说你你用官方的那个镜像仓库下载比较慢的话,大家可以用阿里云的那个镜像仓库啊,下载就很快了啊, 好,装完之后,哎,你就可以用 modscop 啊,这个有一个 snapshot download 的, 这个是什么呢?这个是 modscop 给你提供了一个 sdk 包,通过这个包的话,你就可以快速的去下载这个啊,它上面的一些模型啊, 那我已经下载好了啊,我下载的到了这个 d 盘的一个这样的目录下面,大家看啊,有一个 model, model 下面有一个 hop hop 下面有一个 deepsea ai, 然后下的是你看这个模型,我下载下来,但是如果大家去下的话,你要改成某个路径的话,大家需要把这一行加一下啊, 这里我跟他说一下啊,这个是 modelscope 啊,我们要去自定义去设置 modelscope 的 模型下载路径啊,默认啊,默认位置的话,它是在这个 c 盘的啊,用户名啊, 用户名啊,我记得是这个啊,就是 c 盘的用户的那个 home 啊,这个当前用户目录下面有一个 catch 目录, catch 目录里面有个 modscode 啊,目录是这个,大家可以改啊,把它改成这个。我建议是改一下,因为有些模型比较大的话,你都下了 c 盘的话,到时候此盘满了啊, 所以说我一般会设置到 d 盘啊,好,完了之后大家执行这个命令,它就可以下载了,下载完之后下面的代码才会被执行啊。所以说你大家第一次跑的时候,下面会有个进度条啊,一直下下下啊,我来看一下那个进度条啊, 会有一个,呃,看一下啊,这里啊,大家看,会有一个这么一个进度条啊,就把它下完就完事了啊。好,完了之后大家看,大家看啊,好,接下来我就要去什么呢?加载本地大模型了啊,这里会用到一个库,叫哈根 face 的 一个 l l m 啊, 这个库的话是 lama index, 帮你整合了哈根 space 的 那个 sdk 啊,就是哈根 space, 它本身有一套库啊,去可以去推理大模型啊,去运行把这个大模型跑起来啊,它要传入一些参数,一个的话是咱们模型的这个名字啊,咱们传入的是一个路径啊,你看我这里传的是我本地下载好的那个路径啊,大家把这个路径给复制一下,复制一下, 复制完之后干嘛呢?哎,你可以干嘛呢?你可以把这个东西啊给它什么呢?粘贴到这里啊,粘贴到这里然后干嘛呢?哎,你可以在这个里面啊,给他改一个啊,就把这个路径给改一下。在这个里面啊,大家看 这里面啊,把它改一下啊,改一下之后,哎,这个 token name 跟上面那个 mod name 的 话也保持一致啊, 大家注意啊,这个要保持一致啊,这样东西一致,然后的话,然后把这个下面的这个参数什么呢?给他加上,这个是干嘛的呢?这个是允许模型跟分词器去加载来自远程仓库的一个自定义代码啊,然后这个是相当于让大模型可以信任啊,这个并执行远程的一些代码啊,这个是 比如说我们做一些自定义的前向传播的一些逻辑,或者特殊的一些触手画方法,可能会用到啊,所以说这个是大家需要注意的啊,就是我们这个模型的路径给配一下,然后完了之后大家看啊,哎,我们可以干嘛呢? 在这里啊,大家看,你看你叫什么名字,是吧?我就问他一个问题啊,就这个就相当于我们本地跟这个 deepsea 本地部署这个大模型来做一个沟通,来,我们跑一下啊, 那为什么 lambendix 可以 集成到这个 hackface 这个框架呢?大家看啊,这个网站上面啊,其实 hackface 里面集成了很多的一些框架啊,你看大模型的,它可以给你做了一些集成的啊,做一些集成它相当于把主流的像 hackface 啊,一些框架的话,它都帮你集成进去了啊,所以说你用起来会比较方便啊,这就是它的一个原理啊。 好,你看你好,我是由中国的深度求索,这个说明咱们这个模型啊就运行成功了是吧?没问题啊,好,这个就是加载这个大模型啊,加载大模型,并且我们可以直接运行啊,这个就是我们简单的一个把它跑起来啊,跑起来,然后第二块的话,我要跟大家说的是这个,我们要把这个幻觉问题给模拟一下啊,模拟一下 啊,刚遗漏一点,还有一个地方啊,就大家可以装一个工具啊,叫呃, navitop 啊,就是你可以监控显卡的一个调用啊,大家看,我已这里已经装好了啊,默认大家执行一个命令啊,叫做啊 pip install navitop 啊,这里卡住了啊,关掉啊。 呃,首先这里的话,我们那个 lama index 是 基于 conda 去运行的,所以说我建议大家去装那个偶然 conda 啊,去单独去配置一个环境啊,然后把它哎,把它跑起来 啊,所以说我这个里面瑞的命令里面我提供了一个命令啊,大家看,就是你要去创建一个 lama index 这么一个环境,然后 python 的 话,我建议是三点幺零版本,然后就单单独针对这个环境去什么呢?去下载那个 lama index 的 一些库,因为它的库非常多啊,所以说,哎, 我建议大家用这个 nev 那 个康达去配这个环境啊,那我现在切换到 lma index 这个环境里面去装一个东西叫,呃,这个 nev top n v i t o p 啊, n v 呃, a i n v n v i t o p 啊,这个命令啊,来, 其实我已经装好了,装好大家直接运行 n v i t o p。 来,大家看这个就看得比较清楚了啊,就是你看我的库达的一个型号是吧版本啊,然后包括我显存的一个占用啊,我默认是四 g 的 一个显存,现在已经用了两个多 g 了啊,两个多 g 了,所以说,哎,这个还是挺费那个配置的啊, 这个就是啊,查看 cpu gpu 的 一个使用情况啊,这个 还是挺实用的啊。好,然后的话就是我们接下来就是要说一下这个怎么样把这个幻觉问题给复现一下啊。就是大家啊,你去用大模型的话啊,你去问他问题的话,如果说你没有引入知识库啊,会出现什么问题呢?来给他运行一下,我们就随便问一个专业问题啊,我现在没有导入任何知识库啊,我就随便问他 x axis 是 什么?来跑一下, 你会发现一个问题啊,会发现一个问题就是你每一次运行啊,比如说你第一次结果他是这样的啊, external 是 一个什么?用于分析跟优化的工具,而是第一次结果你第二次运行发现他说 external 是 一个什么?测量河流的一个工具,这就是所谓的一个幻觉问题,就两次结果完全不一样,牛头不对马嘴啊,这个就是出现幻觉了啊,所以说这个 你如果说不引入知识库的话,你问的一个专业问题的话,很有可能啊,每次的结果都不一样啊,因为大模型它是整个是基于推理机制的嘛,所以说它的结果带有随机性,如果说你没没有给他限定,没有给他知识参考的话,它就会出现一个问题,就是它的一个知识可能会,这个 可能会每次都不一样啊,这就是大模型的一个技术文档啊,大家看是一个 markdown 格式的, 这个里面对 excel 做了一个详细的一个介绍啊,它的一个使用手册啊什么什么的,是吧?都写得非常清楚。那我希望他参考这个文档啊,比如说你看 excel 是 一款高效、灵活、全能的轻量的大模型微调工具库啊,我希望什么呢?哎,他参考我里面的这个专业的这个是吧?说明啊, 你看他这个里面就可能说 excel 描述跟我这个文档就不搭尬了,是吧?就是不是一回事啊, 那我现在要让他学习这个文档里面内容是吧?这个就是我们要讲的这个 rock 的 这么一个知识点在这里啊。好,那基于这一点的话,我们现在就给大家讲怎么样把这个东西啊,就是 rock 这个数据库啊,给它整合起来呢啊?来 这个里面我们首先要引入一个东西啊,就是这里面要设计的一个向量剪辑的一个东西啊,因为我们要做 rock 的 话,你首先要解决这个文本转向量一个问题啊,回到刚刚那个流程啊, 来,来看一下这个流程,流程的话,你首先把这个文档加载进来,你要做分割啊,你要转换成向量,所以这里面的话,我们首先得干嘛呢?你得有一个 embedding 的 一个模型, 这个模型大家可以用 open ai 的 那个 embeds 模型,没有关系,但是你也可以去下啊,在这个里面我,我其实下了一个模型,大家也可以搜这个模型啊,在这个摩达社区里面啊, 那就可以说一下,这个模型的话,是目前啊,就是开源这一块做的还不错的。这个模型啊,它可以做那个 embeds 啊,就是做相似洞的一些匹配啊,做那个项链的一些转化啊,都挺方便的啊。就是这个模型啊,也比较小啊,这个文件啊,我看一下 才我记得是四百多兆啊,四百七十多兆啊,很小啊,就是也也比较好用啊。好,这个就是我们首先要有一个 invisibility 模型啊,从这个 model scope 下下来的,然后,哎,我们要把整个哎全区的 invisibility 这个模型设置为这个,这个相当于一个传奇,传奇参数啊,你要把它设置进去,然后之后的话,大家看啊, 在这里啊,我们依旧使用这个哈根 face l m 把那个 deepsea 啊给它跑起来,是吧?这个是跟刚刚一样的啊,然后把大局的这个大模型也给它设置一下啊, 好,然后的话什么呢?哎,接下来就是要干嘛呢?做 log 的 数据加载了,我会要去加载我 data 下面的所有的文件啊,在这里,这个里面有一个 simple director reader 啊, 我要把它加载。这个其实是 lama, 这个 lama 这个 index 里面的一个什么呢?哎,给你提供的一个叫数据连接器啊,这个除了目录啊,去连接方式以外,其实还有几种方式啊,给大家看一下。有个数据连接器 directory 啊,就是这个 simple 是 本地目录,这是第一种啊,还有像你可以加载这个云文档,是吧? google 文档或者其他的一些文档都支持的啊,都支持好,这个就是加载一些文档啊,然后加载完之后干嘛呢?把它转换成这个向量存到向量数据库里面去,然后干嘛呢?去生成一个缩影啊? 就是 lama index, 他 要帮你去做剪辑的话,你得有一个什么呢缩影啊?就给他说一下这一步啊,就他去做剪辑的时候你得干嘛呢?你首先得有一个缩影啊,就是你先把缩影得给生成呢?生成就是,哎, 相当于把它向量化的存到向量数据库里面去,然后通过所有的方式去做一个解锁啊,这个就是刚刚那个代码要干的一个事情啊。好,这个的话就是咱们这个目录啊,你要给他加载进去之后,哎,他就可以去做一个读取了啊。然后我们再来问这个 x 帧的这个使用步骤是什么?我们来看一下它的一个返回会不会比之前更加专业一些啊? 这个就是引入一个知识点啊,但前面有一些代码的一个告警,这个不用管啊,就这个 warning 呢,大家不用管啊,这是其实一些这个模型参数字段的配置问题啊,就是有些参数没加啊,但也不影响运行啊,这个没事啊, 好,这个就是我们结合 rock, 然后再去看一下这个效果,看一下它回答的是不是这么一个专业的一个内容啊? 然后我再趁这个时间我再说一下那个环境啊,环境的话我这里提供了一个 requirements, 点 txt, 大家要想把这个代码跑起来的话,你得装一下这个 requirements, 点 txt 啊,包有点多啊,如果下载比较慢的话,大家执行这个命令啊,就是下面刚一个阿里云的一个地址,下载会快一些啊, 这个就是把 lama index 整个的一个开发环境包都给它,哎,安装好了啊,好,大家看啊,你看,呃,我问的是这个 external 的 一个使用步骤是吧? external 使用步骤是吗?大家看它的使用步骤包括以下步骤,确定模型和 adapter 啊,找一下啊,确定模型和 adapter 它是做了一个总结规律啊,所以说文本文内容不一定完全一样啊, 配置参数进行微调,大致的步骤应该是这样的啊,有时候他说是会详细一点啊,看他具体怎么来总结,有时候总结的会非常详细,有的话会比较简单一些啊,但是这个结果至少还是准确的,就是没有回答错啊,就是 x n, 别回答成刚刚那个说是一个什么河流的什么什么,是吧,东西就 差的有点远了啊。所以说引入 rock 的 好处就是让它的专业性,准确性提高了啊。好,这个是我们只是从这个数据库里面去啊,这个还没有把这个锁隐藏到本地啊。大家看我这个里面刚生成的这个东西是我什么呢?是我这个之前生成好的啊,这个东西其实我可以删掉啊,可以删掉 它会自动生成啊,在这里面我们把这个这个代码给跑一下的话,它会去帮我们生成一个什么呢?一些锁影啊,就锁影,包括限量数据库都会生成。然后我们来看最后一个例子,就是我们引入了这个 crala 啊,上一个例子的话,看一下,我们还没有用到这个 crala 啊,就是有一个开源数据库啊,开源限量数据库,我来看一下啊, 就是这个浪漫 ingix 目前支持很多限量数据库啊,你看有个限量存储模块,这个里面支持的限量数据库非常多啊,我比较推荐大家做那个学习用的话,就是一个是 crama, 还有一个是 fastes 啊,用的比较多啊,也比较好用。 就是有一个这个,我们现在用的是这个 crama 啊,这个,这个是目前比较火的啊, crama 还有一个 fastes, 这个是 facebook 出的啊, 好,那这个大模型就是这个线上数据库的话,就是,首先,哎,咱们要把它存到线上数据库里面去,之后你得干嘛呢?你也去 p i p install 这个 crama 这个库啊,就是 crama, 它需要这么一个库啊,然后,哎,接下来干嘛呢?去获取到 crama 的 一个持久化的一个客户端,哎,说白了就是它通过这个客户端, 你可以指定一个 collection 的 一个名字,然后去创建啊,因为我们用的是本地的这个数据库啊,所以它会在当前目录下面建一个 crama 啊,它的一个文件夹,这个文件夹里面会什么呢?会包含 crama 的 一些数据库文件啊,一个 c collection 的 一个小数据库文件。所以说当咱们这个代码跑了,跑了之后,这个目录里面就会多一个 文件夹出来啊,就是用来存那个一些数据的啊,好,然后的话就是这一块就是还有一个叫向量存储的一些逻辑啊,就是用来存那个一些数据的啊,好,然后的话就是这一块就是还有一个叫向量存储的一些逻辑在这个里面啊,大家看啊, 这个我们啊,等下要把它的一个缩影的话,给它存到实体文件里面去啊,给大家看一下这个里面的一些东西啊,就是缩影存到有一个 storage 啊,会把它这里生成一个目录啊,给大家看一下它里面存的到底是啥啊? 好,然后在下面的话就是我们还需要一个 eminence 啊,就跟刚刚上面那个例子一样,我们用的是开源的这个 sentence transform。 下面的一个啊, 小的一个模型啊,也可以做 embeds 啊, embeds 就是 把文本转换成向量啊,然后把它设置为大局的这个 embedding 模型啊,然后包括这个大模型,我们用 deepsafe 本地部署的啊,然后还有这个大模型啊,这个要设置大局大模型啊,然后差异代码就在上面依旧是加载数据, 依旧是什么呢?啊?这里有点不一样的地方。是什么呢?要创建一个节点的一个 pass 节点是干嘛的呢?节点就是我一个大文件要拆分成多个文件,那小文件就是一个 node, 拆分成五个小文件,五个 node, 所以 说这里有个 node pass 干嘛的呢?就是我们分块啊,就创可五幺二,就每五幺二个字母,它就给你分成一个 node 啊,是相当于最终我们会拿到多个 node 啊,然后我们等下会把这个 node 可以 做一个打印啊,做一个打印,包括一个 base 的, 一个 node 的 一个情况啊, 好,完了之后咱们要干嘛呢?哎,要把它构建向量缩影啊,构建向量缩影,那这个向量缩影是什么样的呢?咱们调一个函数叫 storage context persist, 等下会说出一个目录啊,叫那个 storage, 那 在这个目录里面大家就可以看到什么呢?这个向量里面存在到底存在啥?是吧?好,然后我们再来问这个问题。哎,同样的它会结合这个,这次不一样啊,上次我们是内存啊,存到内存里面做剪索,那现在我们存到实体文件里面去做剪索了,这个就是一个差异,来跑一下, 其实效果是差不多的啊,只是跟他说明一点的是,之前是内存运算,现在是存到实体数据库里面去了,那其实大家还可以把它存后面上生产,也可以存到原数据库里面去,这个都是 ok 的 啊, 看大家的一个情况啊,如果你本地学习用,那你存到这个本地文件或者存到内存就可以了,那上生产的话,建议还是用原数据库啊。好,大家看这个已经在跑了啊,你看它这个里面等下就会生成一个目录啊,就是一些文件夹什么的啊, 这个的话,其实就是咱们要去做这个 rock 啊,做 rock 的 整个一个过程啊,然后这个里面无非就是什么呢?大家可能需要去哎,调用一些这个方法啊,就是做一些查询啊,什么什么的啊,就是有一个查询逻辑啊,然后,呃,整个一个流程的话,就大概是这个样子啊,这个就是你看最终生成出来的那个 storage, 大家看 就是我刚刚给大家删掉的那些文件啊,就是一些像数据库的一些缩影啊,都在这个里面啊,你看这个缩影坐标是吧?之前都给他看到看到过啊,然后你看这个结果也比较准确了啊,跟官方的话也会保持一致啊, 但这个跑完的话要一点时间啊,你看刚刚把那个框码跑完了啊,你看这个,这个跑出来了啊,大家看这数据是不是出来了啊?文那些项链坐标就这些东西啊,那都是有文本转换着来的。来,大家看最终结果啊,你看,请按照以下步骤安装依赖包,微调验证结果 我们看一下,这个跟这个咱们的专业知识库里面东西是不是比较匹配啊?来看一下找一下啊,微调步骤零,准备配置文件啊,当然这个他把它跳过了啊, 开始微调啊,微调这个有了是吧?开始微调有,然后下面应该是有个验证结果吧,验证结果 这里应该具有啊,这个下面就是验证结果啊,他只是做了一个总结规律啊,就他不会跟你这个文本一模一样,但是 他会参考里面的内容啊,相当于他可能会换一种回答方式,但是他的意思是一样的,这个大家需要知道啊,就他不会把里面的东西原样的给你,他是由大模型干嘛呢?帮你去深层一遍的,帮你去做一些 语义啊,是吧?一些顺序啊,包括一些回答方式啊,然后会给你做一些优化。那具体看你的提示词怎么写的啊?如果说你要使用芝士库里面原文的话,你可以在提示词里面加上一些逻辑,可以去控制这一些东西啊,这个是大家需要知道的啊。 ok, 那 么以上的话就是关于 deep seek 去结合了 my index 啊,再结合咱们这个 log 技术去解决大模型幻觉的一些问题啊,然后最后做个总结吧。啊,就是大模型幻觉问题其实也是治为了其广泛应用的一个挑战之一啊,因为它这个降低了大模型输出的一个可信度,在实际应用可能会引发一些严重后果, 特别是一些什么医疗的一些场景,这个是绝对不能错的啊,一旦错一个字可能都有严重后果,所以说,哎,我们要解决这个问题的话,需要大量去引入这个哎 vlog 的 一些技术,然后把这一块东西什么呢?哎, 给他优化的更加的什么完善啊,这个是一种高效灵活的一种方法啊,他可以解决啊见应该说要有效减少大模型的一些幻觉问题啊,但是在实际当中啊,比如说你要改改变这个模型的一些回答方式啊,那这个可要通过微调去实现啊,这个是咱们后面啊, 会给大家去讲一些微调的一些技术啊,他也是可以去解决大模型回答的一些风格啊,一些啊,他不太一样啊。