粉丝530获赞1601

在之前的视频里,我们已经知道了如何利用 python 杠 llm 这个工具,将原始的 hackin face 模型转成 python 的 安静格式的模型, 那这么做的目的主要就是为了提升大模型在推理阶段的性能。 那转换的过程呢,也很简单,首先呢,大家根据需要先选定好一个大圆模型, 然后呢去 hackinface 或者摩纳社区把这个模型相关的文件下载下来。比如说在我们这个例子里面,我们就选择了 mate 拉玛三八 b 的 这么一个模型, 然后呢下载到我们的本地,在这里呢,就是有关于拉玛三八 b 相关的模型文件 啊,整个容量呢也还不小。下载好之后呢,我们就需要经过两个阶段的模型转换,那第一个阶段呢,就是将 hugging face 的 原模型转成 fast transformer 这个格式的模型,那转的方法呢,就是利用官方给我们提供的一个叫做 converter checkpoint 点 p y 这个脚本去运行 啊,当然啦,这个脚本单独是没法运行的,我们得把它放在容器里面来运行,那运行的结果呢,它会生成一个 faster transformer 格式的模型啊,给大家看一下 example 下面 models call 拉玛好在这里 这一块呢,就是 faster transformer 格式的模型。好,第一阶段转换完成之后呢,接下来进行第二阶段转换,就是将 faster transformer 格式的模型再转成 s r t 安静格式的模型。 那转换的方法呢,也一样,我们利用了容器里面的一个转换工具 t r t l m 杠 build, 然后呢我们给他相关的参数,这样呢,他就帮我们转出来了,转出来最后的结果呢,就是一个 t r t 安紧这个目录下的文件,那这个呢,就是我们最终转换的结果,这个呢 t l m 杠 checkpoint 这个是一个中间产物, 好,最后转成了 t r t 安紧这个模型之后呢,就算我们的转换就结束了, 那这个转换过程做了哪些事呢啊?主要呢从配置上大家可以看到又是一些精度的设定,比如还有一些权重的设定,那还有呢就是呃一些 token 的 设定,也做了一些大模型结构的调整, 比如说算子融合等等,主要的目的呢就是为了优化大圆模型它在推理的时候的性能。在我们声称完 python r t 的 安静格式模型之后呢,接下来我们可以用官方给我们提供的 run 点 py 这个脚本来验证一下我们的转换是否成功。那后面呢,跟了一些参数,主要就是为了告诉这个脚本我要怎么运行的。 那首先第一个呢,就是我要用哪一个模型来做推理,那这个呢,就是我们刚才转换好的 t r t ending 这个模型,然后呢, 我要给模型输的内容是什么啊?比如说我给模型输了,就是你,好啊,然后呢我希望模型 把这个中文输进去以后呢,用哪种 tokenizer 来转换啊?我们给他一个 tokenizer 地址,这里呢只要给他一个原始的模型地址就好了,因为原始模型目录里包含了 tokenizer 的 部分。 那当模型推理完成之后呢,就是最后一个,我们希望模型给我们输出的最大 token 是 多少个好整体的脚本呢?也就这么简单,然后呢我们可以验证一下 ctrl c, 然后呢来到这边啊,主要呢就是来到 example 这个目录下面,然后呢我们运行这个脚本,然后呢改一下 里面的参数值,那这里面主要的要改的呢就是 toggenface 原模型的目录,那我的原模型呢,没有在这个目录下,我们来改一下, 改成 root, 然后呢 l m m s 啊,就是这个目录,然后呢回车。 好,这个时候呢这个脚本就在帮我们加载这个大约模型,然后呢会把你好啊这个内容输给他,然后让他给我们回复, ok, 到这里呢他就已经处理好了啊,并且把输入和输出呢也给我们展示出来了。这个呢是这个脚本给这个大模型的输入 啊,你好啊,然后下面这块呢就是大模型给到我们的输出,他也回复你好,然后呢 在这里说欢迎来到我的部落格,然后我非常想和你分享我的想法,经验等等,这些内容都是大约模型给到我们的。从这里可以看到拉玛三八 b 这个模型呢 啊,他回复给我们的是英文啊,这就说明呢,呃,这个模型在训练阶段用的最多的余料呢应该是英文的,那中文呢?可能很少,所以呢他这边没有给我们回复中文的 token。 那有这个回复以后呢就说明目前我们这个安静格式的大模型是正常的,在确认完整体的转换过程没有问题,并且模型能给我们正常输出的情况下,我们就可以把这个模型部署到生产环境了。 那部署的方式呢?有两种,一种呢比较简单,我们可以使用 python l l m 官方给我们提供的工具,那名字呢就叫做 t r t l m 四五这个工具,那后面呢给他两个参数,第一个参数呢就是告诉这个工具我要部署的是哪一个模型,这里呢就是那个转换以后的模型的目录, 那后面这个参数呢,就是告诉这个工具,哎,我要用哪个 tokenizer 来处理啊?这样子呢,三个部分组合起来就可以完成模型的部署了,非常简单。并且部署完以后呢,它 可以用 http 的 方式来访问。然后呢大家可以看到这边有个 v e completion, 这个叫做完成啊,不知道大家眼不眼熟,它部署完成以后呢,是遵循了 open ai api 的 协议的 这个协议,那如果遵守这个协议呢,那能做的事情就很多了啊,尤其是当我们部署完以后,我们可以和现在很多智能体,比如说 cloud code, 比如说 open cloud 来进行结合了。 那底下的参数呢,我相信大家也一看就明白了, model 就是 我要访问哪一个模型,然后提示词 prompt 是 什么,那我需要最大的 token 十六这个 temperature, 那 这些呢都是 open n i a p i 里面给我们提供的一些参数, 通过这个访问完以后呢,那大模型就可以正常工作,然后给我们相关的返回了, 这个呢就是参数 t i m 给我们提供的工具,总体来说呢就是第一他步数简单,第二呢他对模型的推理呢,做了一些有限的优化。 但是呢,呃,在工业界呢,这种部署的方式也比较少啊,一般呢我们写个 demo 或者怎么样我们可以用它。那另外一种更常见的部署方式呢,就是将我们转换好的 s r t 的 安紧格式模型部署到 traynor server 上。 那关于 traynor server 它的优势和使用方式呢?大家可以去参考我的其他视频,我在这里呢就不详细介绍了。 那我们本次视频呢,主要是给大家演示一下如何将我们已经转换好的大模型部署到这个工具上。首先我给大家看一个图,方便大家理解我们后续的部署工作。 那这呢就是程序 server 它的运行框架图,其中呢绿色框的部分就是程序 server 的 主体部分,那从内部来看呢?呃,相关的组建也比较多, 运行起来呢也比较复杂。但是从使用的角度,对于我们来说,我们不需要了解这么多啊,我们只需要知道这个程序 server 他就是帮我们做的两件事,第一个呢就是帮我们加载模型。第二呢就是当请求来时,帮我们用这个模型进行推理,主要就是做这两件事。 所以呢,我们要做的准备工作也只要给他两个信息就够了。第一个呢就是我要告诉他, 你帮我加载哪一个模型,我的模型在哪里,也就说我这边呢,要给要把这个模型的路径给到他。另外呢就是我要告诉他,请你用什么样的 back end 来处理 啊?这是两个比较重要信息。那这个 back end 是 什么呢?它跟我们模型的框架类型 是要对应的,比如说我们用了一个 python 类型的模型,那这个时候呢,我们就要用 python 类型的 backend, 那 如果我用的是优乐威八,然后将它转成 onix, 那 这个时候我的模型就是 onix 类型的模型,那我就要告诉他,请你给我用 onix 类型的 backend, 就这么简单。所以呢,我们总结下来,只要给模型提供两个,第一个给它提供模型,告诉模型路径就可以了。第二个呢,给它提供 backends 就 够了。那这样子呢, tree and server 在 启动的时候,它首先会去 我们给它的目录下去查看看有哪些模型,并且这些模型呢,都用到了哪些 backends, 如果用到了,就把对应的 backends 给它启动起来,加载起来啊。注意,此时呢,模型还没有被加载进来,它首先要根据模型的类型去加载 backends。 加载完 by case 之后呢,真正干活的其实是这个 by case, 他 才是真正去目录下加载对应的模型到 gpu 上。然后呢,当推理请求过来的时候,相关的 by case 会把这个请求 结合对应的模型进行相关的推理啊。所以呢, backends 也是一个很重要的组建。那回到我们现在这个场景下, 我们现在需要帮,需要他帮我们部署的这个模型呢,是 testr t l l m 需要这样的一个模型。那现在呢,对于这样的模型来说,已经有了吗?啊,已经有了, 我们已经准备好了,把已经把它转换好了,那我们只要放到对应的目录下就行了。那现在我们缺什么呢?其实我们就缺一个对应的 icons, 只要把相关的 backends 提供给他就行了。这样子呢,当整个 tree node server 启动以后呢,他就会去我们给他指定的目录下, 他去加载模型。哎,一看到,哦,原来是 ten 四 r t 杠 i i m 这样子的模型,然后呢他就会去加载对应的 backends, 加载好之后呢,这个 backends 就 会把这个 python 这个模型下载到 gpu 里面,然后再进行后续的工作,整体上就是这样啊,所以最后总结一下,就是我们提供两个东西,一个给它提供模型,第二个给它提供 backends, 那这里面模型呢,我们转换也提供好了,我们只要放在对应的目录下就可以了,那其这里的重点呢,我们就是要给这个模型提供对应的 bug。 好, 大家记住这个过程,接下来呢我们就具体来操作一下,那这里主要使用的工具呢?一个是 print and server 的 testr t l m 容器,这个容器呢很重要, 它呢就是在这张图里面给我们提供两部分内容,第一个呢就是绿色框的 treeing server, 它给我们提供好了。另外一个呢就是它在这边已经帮我们准备好了啊, ten 四 r t l l m 这种模型的 backend, 我们只需要用好这个容器就可以了。好,那主要重点呢就是版本一定要一致,这个呢我们在接下来操作中会给大家体现出来。好, 接下来我们就一步一步来操作。第一步呢,我们先准备好 touch r t 版的 i r m, 那 这个呢,我们已经准备好了, 刚才呢我们也验证了这个没有问题。然后接下来呢,我们需要来拉取 ten 三 r t i m back and 的 镜像,这个呢刚才也给大家说了,它包含了两两个部分啊,有了它我们就可以运行这个模型了。好, 那这边呢,主要还是用的 doc, 我 把这个复制一下,然后呢,我们这边注意,这边我们要用到的版本是二十四点幺二的版本, rayton server 的 版本是二十四点幺二,这里呢,后续大家如果需要版本匹配的话,大家一定要注意好, ctrl c, 然后呢,来到这边,我们先看一下有哪些镜像。 docker image, 先退出一下,然后呢, docker image l s。 好, 在这边呢,目前来说只有一个镜像,就是 𠮶 时候 t l l m。 那 这跟我们现在要拉取的镜像呢,可不一样,这个是 𠮶 时候 t l m。 那个呢?是 trading server 啊,这个是两个工具,那这两个工具有什么区别呢?这个是用来部署模型的,另外这个是用来做模型的格式转换的,这是两个。 好,接下来呢,我们先把 trade server 的 模型拉下,拉下来回车。 好,这样呢, docker 就 在帮我们拉 trace server 镜像了。 在等待一段时间后,如果大家在这里看到这样的输出,就说明镜像已经拉取成功了, 那整体的操作呢,比较简单,不过也有一些坑,大家要注意一下。第一个坑呢,就是关于镜像的名称一定要选对,之前呢,我一直拉取的是飞行 server, 二十四点幺二,没有后面这个后缀 t r t l m。 那 我们一定要拉取的是带这个后缀 t r t l m 的, 为什么呢?这里给大家说明一下, 带后缀和不带后缀有什么区别呢?区别就是如果不带后缀,那这里呢,就是常规的一些 back end, 这些常规 back end 里面是不包含我们现在要部署的处理大模型的这个 back end。 那现在如果要处理大模型,我们需要给它增加一个 ten r t i m 的 backend 啊,那如果不带后缀,它是没有的,那带了后缀呢,这个 backend 就 会给我们提供出来了,到时候我们直接拿来用就行了,所以呢,在这边大家要选择带 t r t i m 的 后缀的。 那第二个坑呢,就是有关于存储空间的,那我之前遇到拉取这个镜像呢,大概用了几十分钟,然后到最后呢哦,存储空间不足, 因为呢,这个镜像大家看到三十八 g, 那 大家在自己下载的时候呢,我建议你们的存储空间呢,至少要准备两百 g 以上,那你看我这个数据盘就两百 g, 然后呢已经使用了一百九十一点七五 g 了, 所以呢,大家自己在拉取的时候,存储空间一定要备足,不然拉取了半天,最后报存储空间不足,那就很耽误时间。 那第三个坑呢,就是有关于在拉取的过程中,出现网络不稳定的情况,会出现连不上,那如果出现这样的情况呢,大家也不要着急,就多试几次就可以了,因为 doc 呢,它本身是按 一一个镜像一个镜像下载的,即使当前出现了断网的情况,那之前下载的镜像呢,他也缓存起来了,所以呢,我们多试几次,终归会把这个镜像成功拉取过来的。那模型的仓库我们该去哪里下载呢? 那因为它官方呢,也给我们提供了一个记者的仓库,让我们来下载模型的仓库,就是这个库, answer r t l l m i can 的 这个库,那在这里面呢,它就给我们已经提供好了 模型的仓库,我们下载就可以了,但是呢,我们也不是说直接克隆下来就直接能用的,这里呢有一个版本适配的问题啊,我们回到这个图里, 关于版本设备的问题也是一个难点,我这边也参考了很多资料,也运行了很多次,那如果版本不匹配的话,确实没有办法运行成功。这里大家要注意,就是 现在我们这个模型仓库呢,它是有很多个版本的啊,发展过来这么多年,有很多版本,那我们现在想把这个模型仓库部署到这个 trading server 上,这个 trading server 也是有很多个版本的。 现在我们面临的问题就是我们需要找到能够和 traynor 匹配的模型仓库的版本,这样子呢,我们给它关联起来以后呢,我们的 traynor 才能正常地启动,正常地加载这些模型,如果版本不匹配的话,就会出现一些问题。 那关于哪个版本跟哪个版本匹配的呢?这个我看了一下,官方也没有很明确的一个表格说明,哎,我该用哪个版本,那我也参考了一些视频和资料, 上面呢,也没很没明确说啊,我该用哪个版本,他只是说你具体要用哪个版本。那在这边呢,我经过摸索啊,探索了一个比较简单的办法, 既然我们不知道哪个和它兼容,我们就倒着来,我们先看一下你现在目前这个 treeing server 它需要什么样的版本, 然后我们再去反向找对应的模型仓库版本就可以了。那这个怎么做呢?第一个我们就要弄清楚这目前我们的 treeing server 这个容器它需要什么样的版本 好?需要什么怎么操作呢?那我们先把这个容器先启动起来,好回到这里,我这边呢就用 docker run, 然后呢先把这个 trading server 的 t r t l m python 杠 p y 三。这个呢,我先给它启动起来,然后我进到这个实体里面去看一下这个容器, 他需要我们给他提供哪个版本的仓库,然后我们再去准备就可以了。好,我把这个先运行起来,复制 粘贴好,如果输出了这段标识呢,就说明,哎,我们这个容器呢已经启动好了,接下来我就要进入容器, 用 docker exe c 复制粘贴。进来以后呢, 如果发现提示符变了,原本是这个,这是宿主机的,然后呢 root 开头的呢,就是容器里面的提示了,那这样子我们就进入到这个容器了。那关于 treeon server, 目前这个容器我们怎么看版本呢?这里最重要的就是要看一下 t r t t e n s o r t 这个是一个库,然后另外一个呢? t 下划线 l l m 这两个库的版本我们一定要明确清楚,然后给它提供能够相同的版本的大模型的 by kind 就 可以了。好, 那这两个库在哪里找呢?那不同的容器,它的地方也不一样,那我这边也费了很大劲,我发现它居然在 python 里面, python list 啊,用 python list 里面呢,又有这两个版本,一个是 python 二 t 的 十点七点零,一个是 ten 四 r t l m 零点幺六点零啊,这个地方请大家可以,你们在部署的时候可以用一个笔给它记下来。这两个版本非常重要,我们必须要能够找到的模型仓库是和它匹配的,如果不匹配的话就会 就出现各种各样的问题。好,那版本在这边了,那我们接下来就要给它准备模型仓库,那怎么准备呢?来到这个官网, 现在呢它的版本呢是慢在这个慢分子里面,那如果我们去找这个 branch 呢?这边也有很多的关于 ngc 的 版本,这个我们不用看,我们只要把住一个最重要的就是 tonightlm, 一定要给他零点幺六点零的这个模型仓库。零点幺六点零模型仓库在哪里取呢?那这个是最新的,最新的,我看了一下文档,这边有一个比较重要的话,就是请注意 当前这个仓库的源代码,这边有一个比较重要的话,就是请注意当前这个仓库的 changeback 里面去了。 你说这个目前当前这个仓库的原码已经没有在维护了,它转过去了,然后哪里呢?转到这个三四 r t l l m 这个过去了,那这个仓库之前的视频在我也给大家说过,我们就是用这个仓库来转的 啊,所以这里有一点很重要,这个仓库我们当时用它来帮我们来转换模型,将原本的 hugging face 模型转成对应的 testr t l m 的 模型。那这里转的时候也一定要注意,我们的版本也要选择零点幺六点零的,我给大家看一下,在这个 tax 里面也可以看到 v 零点幺六点零,一定要切换过来。好,他说转到这边了,那我当时呢也就是过来看了一下,这边仓库里确实也有一个叫做 treten 的 backhands 在 这里面。 好,那当我准备下载的时候呢,我首先肯定是先把它切换成对应的零点幺六点零的, 当我切换过来以后啊,我发现一件事情,就是那个目录没了啊, trade and backhands 这个目录是没有的, 也就是说零点幺六点零的这个版本,它并没有把 trade and backhands 那 个代码迁移过来,那,那就说明我们还得回到之前的仓库,我刷新一下, 回到这个仓库里面,那这里只说明了一点,虽然他说已经迁移过去了,那只能说是最新版的,可能迁移过去了,那老版的就没有迁移了,这时候呢,我要注意把这个切换一下,切换成 v 零点幺六点零的。 好,到这里呢就会发现有一些变化了,多了最重要的目录 all modules, 这个呢就是官方给我们提供的模型仓库 啊,也就是说绕来绕去的话,我们首先来到了 trading server 这边,那它需要的版本,它需要这个零点幺六点零的版 啊,不是最新版,请大家注意,我这个容器呢,它要的不是最新版的模型仓库。好,我们给他准备零点幺六点零呢,来到官网 啊,然后往下拉呢,刚才我们发现最新版的它已经迁移到 s r t l m 了,但是呢零点幺六点零这个老版呢还在原始的仓库里面,那我们直接用原始的这个零点幺六点零的这个仓库就可以了。 好,这个时候呢,我就可以给它搁拢下来,然后呢回到我的终端 cd, 我 们看一下当前这个目录呢有 ten s r t l i m。 然后呢我之前已经下过了,那我把它删掉,杠 r f ten s r t i can't 把它删掉,那这个呢就和之前一样了,它是 r t m 这两个一样的,然后呢我用 g t 克隆,克隆呢,我这边加一个杠 b, 让它直接切换到对应的分,叫 v 啊,我们把这个分支的名字再看一眼, 别搞错了。 v, 零点幺六点零 v, 零点幺六点零,然后呢把仓库的地址给他,回车, 好,在这边呢它就开始克隆了。好,那这边有一些提示,问我们是不是要创建新的分支,那我们就给它创建起来,我们先看一下这个 b r a n c a h 杠 a, 我们先进去 c d answer 的 back and, 然后 g t branch 杠 a, 那 目前我们在这边是 no branch 的, 但是呢,它默认给我们切换到对应的版本了,那我们只需要按照刚才的提示 get switch 杠 c 就 可以了。 get get s w i t c h 杠 c, 那 我们看它版本号角为零点幺六点零车,这个时候我们再看一下版本, 这个时候 v 零点幺六点零就已经有了,那我们就切换到已适配的分支上了,那我们只要用这个分支里面的仓库就可以了,我给大家这边展开看一下 这个仓库里面,我们现在这展示的仓库的状态就是零点幺六点零的,就是我们给我们适配的。 好,这是一个,另外一个还需要大家另外确认的呢,就是我们翻译过来的 python r t 的 l m 的 隐形是不是也是用零点幺六点零来翻译的?我们回到这里, 然后呢我在这边在终端打开,那我们看下这个仓库, g t b r a n c h 杠 a, 请大家一定要注意,这个仓库就是我们用来转换模型的这个仓库,你在转换之前也千万要把它切换到 v 零点幺六点零这个版本以后再进行转换,不然呢,你也没有办法部署到 这个容器里面, 也没有办法部署到这个版本的容器。 好,那我这边顺便给大家解释一下,我这边为什么要选择二十四点幺二这个版本的 ngc 来使用啊?因为我为什么不用最新呢?因为从二十五开始, 二十五的版本开始,那它需要我们的库达二 k 的是三点零以上的,那目前我们这个库达二 k 的是 n v i d i a 杠 s m i 那 目前最高呢,只能支持到十二点九,然后 n v c c 康康 version, 那 目前呢,我们的扩大 two k 的 也只是十二点九,没有到十三,所以呢,我们没办法使用 二十五以上的,那目前二十四点幺二呢,是二十四个这个版本最大的号了啊,所以呢,我目前也只能最多使用到这个版本。 好,所以呢,我们现在要去梳理一下,最终要准备几个东西。第一个呢,引擎就是我们转换的模型引擎, 这个一定要注意,是用 v 零点幺六点零这个版本去做的转换啊,这个很重要。好,下,下面这个呢,另外一个就是 模型的仓库 也要选择 v 零点幺六点零这个版本来操作,最后呢就是 trading server, 这个呢,它需要两个配合在一起。 好,大概就是这样子,那现在呢,我们的这个模型仓库已经已经准备好了,并且已经克隆下来了,我们看一下就是这个 backend, 那 现在它的仓库呢?就在 all modules 里面的 in flight batch 里面, 这个那点开呢?这块就是我们需要给 trading server 提供的模型仓库这些。 好,那我们在提供给 trading server 之前呢,我们得有一些配置啊,给大家看一下。为什么配置呢?就是这个 config, 这个是有关于每一个模型的配置,这里呢配置项里面有 站位符,关于这些配置内容我就不给大家解释了。呃,如果大家对 trading server 这一块不了解的话,你肯定要先去了解一下这里的配置项是什么含义。 那我只能说这个配置文件里面有很多的占位符,我们需要先把这些占位符给它替换掉,替换成跟我们环境适配的。那这个怎么替换呢啊?也不复杂,官方也都给我们提供好了,我们只需要用目录下面给我们提供的脚本 feel template 来操作就可以了。好,那接下来我们就要准备的就是什么?就是要把这个 feel template 给它替换一下,怎么操作呢?官网也给我们说了, 我们来到 s r t l 的 官网往下拉,往下拉好,再往下就在这边, 那这里面的模型仓库里面,它对这几个模型这里有五个也做了比较详细的说明,因为现在呢,我们要实现的场景就是这个是一个大模型,然后呢我这边给它输入一句话,比如说输入,你好 你好,那经过大模型的接收,然后经过推理,推理出来以后呢,它会给我们回一个,比如说也是你好啊什么的, 嗯,你好,然后这个是他回复的,这个是整个流程,但是在整个流程这个中间呢, 不是仅仅一个大模型能解决的,这里面还涉及到了呃编码和解码的问题,也就是说整个流程呢,是 他先把你好接收下来,然后通过编码这个环节将你好转换成 token 对 应的 input 的 id, 然后才进行推理。推理完了以后呢,输出的也是一段数字,就是一些 tokyo 的 input 的 id, 那 我们需要将这些数字再还原回文字, 这个呢就是我们的 delete, 就是 我们要解码的过程。所以呢我如果我们粗略算一个大模型的输出要包含三个环节,第一个呢就是编码,推理, 解码这三个过程,那所以呢在这边就包含了这个 reprocessing, 就是 编码将输入的内容转成 token tokenizer 的 input id, 然后呢再进行推理,最后呢推理完了再进行解码,把它变成 中文或者能理解的文字,那这三个模型是我们都需要的。然后另外两个是干什么用的呢? assemble 和 3d l m b s 这个是将这三个模型整合在一起的,相当于把它把它编成一个流水线了,这么一个作用,也就说这剩下的两个呢是做组织的,是这三个模型的, 它作用是这样子的。好,那有了这几个呢,但是这几个现在它的配置文件都是有占位符的,我们需要把这几个模型的配置都给它 替换掉,那怎么替换呢?也非常简单,这个下面呢也给我们列出来了,这里我们只需要用这个来做就可以了,所以呢我们的操作办法就是 回到这边来,那我你可以在任何位置,我习惯于在这个 back end 的 这边的关,这边新建一个文件,我就叫做 feel f i l l feel 等 f g p b t x t 点 s h 啊,我,我创建这么一个脚本,那这边呢?有多个,我给它加个 s 吧。 好,它主要就是来替换配置文件的占位符的,那这个里面我们要写什么呢?也很简单,我们先把它全部拷贝过来, ctrl v 拷贝过来以后呢,下半部分我们就不用看了,这都是常规的,大家看主要就是对针对 每一个,这里有五个模型,一二三四五对这五个模型的配置文件。 config, config, config config, 对 这配置文件里面的占位符进行替换。那替换掉的内容是什么呢?就是我上面配置的内容,所以大家只要把上面这些配置的 作用搞懂就可以了。那比如说第一个按键 d r 它是干什么用的?就是我们转换以后的模型,我们之前不是用啊弹出 r t l m 这个库, 用这个库将原始的 hackin face 大 模型转成了弹出 r t 的 大模型,那我们这边就要告诉他弹出 r t 的 大模型在哪里。 好,那当然这边的路径一定要指明的是容器里面的这边呢,我之前在运行这个容器的时候已经给它挂载了,大家看到这三这两个已经挂载过来了,这个参数 t 的 二毛钱就在这边了,那我们这边就这个复制,然后 ctrl v。 好, 这是一层,我们再回到这边来,到了 ctrl r d 这层以后,那就是 example, 再往下就是 拉马 l, 我 们找 l, 这个就是我们的摊子, r t 的 大模型我们只要拿到它就可以了,所以呢,再往下我们看一下啊,到这一层有 e x a m p l e examples, 下面有个 l l a m a 拉玛 这层,然后拉满完了以后, t r t n g s t r t 跳线, e n g i n e s。 好, 这个路径呢,大家要核对一下,不要搞错了,搞错了也正常启动不了。好,这是第一个,就是我们转换以后的模型,它的路径在哪里? 好,没问题,接下来就是 tokenizer, 那 tokenizer 就是 说白了就是我们原始的模型。在哪里?原始的模型呢?我也给它挂载进来了,就是在这个路径下 root 这个路径下面复制 转换为就可以了。那下面这个 model folder 这个是什么呢?这个就是模型仓库的地址了啊,模型仓库,那这个模型仓库呢?在哪里呢?就是 在 back end 里面了,在这里 back end 的 all modules 下面。那这个呢,我也给它挂载进来了,就是参数 t back end, 然后我把它放到这儿 复制,复制完了以后呢,我先把前面这段给它替换掉粘贴,然后再往下走这个 back and 下面, 然后下一个就是它 all modules, 再往下呢, 就是它,然后再往下,哎,就是了,那所以在这边我们要给它一个 a, l, l, m, o, d, e, l, s or modus, 然后再往下我把这个宝贝一下命名,按照 c 粘贴过来。好,模型仓库的地址就在这个下面了。 好,这三个路径配置没问题的话,下面呢,大家可以先不动了,这个 tradermax size, 这个是有关于性能配置的 啊,那我们现在呢,最重要的是先把流程跑通,后面关于性能优化的部分,我们其实在跑通的基础之上,一步一步的再去调试就都可以了。好,那这个呢,配置是关于 系统优化的,那这个呢?也是,这个是队列的,都是系统优化。好,这四个呢,我们就不动它了,就放这儿,然后下面这个 build template 的 这个 script 脚本,它指的是哪个脚本呢?就是我刚才给大家看的,在 back and 这个仓库里面有一个 tos 这么一个仓目录,然后呢我们点进来,点进来以后呢,这边兔子下面就有一个 build template, 所以 我们只要拿到它的地址就行了。 好,那它也在 back and 里面,那我们就可以顺势给它加一个 root s r t back end。 哎,前面和上面对在一起就可以了,那现在就是 tools build template 这个路径就指向 build template 就 可以了。那在这边呢, 我建议大家就和我这样配置的方式一样,我们都用绝对路径配置,这样子呢比较稳妥。好,这样配置完以后呢,基本上我们的这个 build s h 这个文件呢就 ok 了。 配置好了,那接下来呢,我们就要运行这个脚本,让它帮我们把里面的配置像给它替换掉。好,在运行之前呢,我再给大家看一下之前的 这个路径。下面比如说我们找一个 ensemble, 点 pbx, 我 们到 inflater 里面 all modules, infinite batch, 然后找个 ensembles 这个目录。好,我们其他的先不关注了,我们就关注第二十九行的这个配置。那打那个 dollar 符号的 这个呢,表示占位符,也就是当前这一项目前不能用,我们需要用我们刚才配置好的内容将这块给它替换掉,那现在呢,我们就运行这个脚本,看看它是不是帮我们把这个内容给它替换掉了。 那怎么运行呢?回到容器里面,然后 我们现在当前的目录就是 root, 它是 r t i n backhand。 好, 然后在这边呢,我们看一下 刚才我们已经建的那个脚本在不在里面。好,在这里 build config g b t x 七点 s h 有, 但是呢我们现在没办法运行它,因为它现在没有运行权限,所以呢这个时候我们给他加个运行权限就可以了,要 c h m o d 加一个 x, 然后呢把 fill 文件名给它加上, ok, 然后呢我们再看看现在呢这个文件,它就变绿了,这样子呢它就有执行权限了。 好,那接下来我们运行它运行呢也很简单,我们就用 s h, 然后呢 fill 就可以了运行,这样运行完了以后呢,它就帮我们把该替换的占位符呢,我们就替换完了。接下来我们再看看相关的文件里。哎,大家看到这边 ensembled 这个文件下面的 matchbase 也就变成了四了,那这个是哪来的呢?就是在配置文件里面,我们把这个 trident max batch 四的这个值,它就替换到 ensemble 的 这个配置文件的这个四里面去了。好,那你这样子的话,它就会在 这边把上述这几个模型的配置文件全部都替换一遍了,而且它替换的值呢,都是我们通过 脚本这边配置的值。那如果大家的环境不一样,或者我们接下来想进行一些性能优化啊,我们该怎么处理呢?就把上面的这些值改一改,然后再测试一下,看看有没有什么效果,有什么改动就可以了。 好,这样改完之后呢,目前我们的模型仓库就已经准备好了。好,我们再回到这个图 之前呢,我们已经把 trayon 准备好了,然后呢第二步我们又给他准备了 trayon 的 大圆的 backend 处理器。那刚才呢,我们又把模型仓库也已经准备好了, 最后一步呢,就是我们要将它运行起来。 ok 了,好,运行怎么来做呢?那我们一般的 trading server, 它我们可以用这个命令 d r i t o n trading server, 然后杠杠,呃, model model r e p o 等于一个值,给它指定一个模型仓库就可以了,但是在这边呢,我们不用,这个官方呢也给我们提供了启动的脚本,我们可以看一下。好,还是在这个 back and 这个仓库里面, 这个仓库里面的 script 的 这个目录下面点开,点开以后呢,大家可以看到这边有一个叫做 launch token server, 点 p y 这个文件就可以帮我们起了 啊,然后怎么起呢?我们运运行这个指令,然后后面再再带一些 ctrl c 粘贴好,我们主要就是运行 这个 trading server 点啊,主要就是运行这个指令, 然后呢我们用 python 的 这个脚本来运行,它,运行呢,我们来给它个 word size, 那 这个呢也是关于优化的,然后呢最重要就是 word 这个 model r e p o 这个呢就要指向我们给他的模型仓库了,这个才是真正的我们将 模型仓库交给了 trading server 来帮我们启动和加载了。啊,主要最最重要的就是这里, 那这里呢大家也可以用相对路径,也可以用绝对路径,相对路径就是我现在是在 back end 的 这个目录下,那 back end 里面确实当前目录有个 all modules, 所以 我直接输入 all modules 也行,然后这后面就是模型仓库路径。 好在运行这个指令之前啊,我们还是先回过头来确认一下,还是版本的问题。首先我们的模型就是转换好的模型, 这里转换好的模型后缀名是点 e n g i n e 安静啊,这个是转换好以后的模型,那这个模型最重要的是我们要确认一下它是用什么版本的 仓库转过来的,这一点一定要注意,用什么版本的仓库,我们这边一定要是 v 零点幺六点零的,用这个版本的 s r t 杠 l m 这个工具去转,其实就是 t r t, 嗯,那个工具应该叫 arduino 吧,零点幺六点零,这个版本要确认,然后呢另外一个就是模型仓库, 就是我们刚才做的事啊,一定要也是零点幺六点零的这个模型仓库。 然后最后呢就是我们掰看的这边,它有两个东西,一个呢是弹出 r t, 另外一个呢就是下键 l m 这两个版本,尤其是下面这个版本弹出 r t l m 这这个版本一定也是零点幺六点零的,那我们这边是倒着来找的 啊,我们是之前是先确认了这个版本这零点幺六点零,然后呢我们再回过来编辑引擎,然后再找代码仓库,大家也可以按照这个思路来操作就可以了。好,然后如果版本大家确认没问题呢,我们就可以开运行它, 此时呢那整个我们这个程序 server 就 已经开始运行了,它就可以去加载这五个模型, 那就可以去加载这五个模,那如果加载好了,我们就可以利用 train server 来给它发送绘画了,我们继续看一下 这里呢,加载可能会占用一些时间,那顺便呢,我们再看一下我们加载这个模型的时候,关于 gpu 的 占用情况。 大家可以看到这边 gpu 呢已经走了四百兆,五百兆已经开始往上 好,经过一段时间加载呢,当大家看到下面这个输出呢,就说明我们整个 trading server 的 这个加载已经成功了。官网这边呢也有说, 当我们运行这个脚本替换完,然后通过这段代码将它服务启动,启动好了之后呢,如果输出以下这个就是当他把端口号 输出出来以后呢,这边有说,你应该可以看到下面的日期啊,当启动成功以后, 如果你看到这个就说明已经启动成,那接下来成功之后呢,我们来试验一下,看看能不能用这边 chicken server 它主要的作用呢?这样我们怎么试呢? 现在这一部分就已经都准备好了, 那如果我们现在想用它的时候怎么办呢?我们就要构建一个客户端的应用,向他发送请求就可以了,那这边他支持的请求一个是 http 的, 一个是 grpc 的, 我们这边做测试呢,我们简单用 grpc, 简单用 grpc 就 可以了,那大家如果想追求比较高的性能呢?能用 grpc 会好一些,因为他呃节省了网络的一些开销时间。 好,那我们来测试一下,用的是 tdp 的 方式,简单的就是它是一个 restful api, 我 们只需要向它发送请求就可以了,那我们就用这个 c u l 工具, 用 c u l 工具,然后呢向它发送一个 post 的 请求,地址就是 local host, 因为我们用到的 models, 这边注意看到吗?我们用到的是 assemble, 我们现在访问的这个模型的名字叫 ensemble, 因为它是组织者,它帮我们把那三个模型组织起来了啊,组织成一条流水线,然后后面 input text, 就是 我们要给这个模型发送的文字,是什么 啊?然后 max tokens, 这个呢是希望它回复多少个 token, 这里呢?我们来试一下八千这个端口也有提示,那大家这个启动以后呢? http 的 服务是在八千端口上哎,所以我们只我们八千端口,那 复制然后呢?我们找一个, 然后粘贴回车, 好回复的还是很快的啊,大家看到这边呢,说什么是人工智能,然后呢回复在这边 x output 在 这里,然后什么是人工智能?人工智能是什么?什么?然后是计算机中研究和开发,能够大家看到在这边能够后面没说完, 那为什么没说完呢?因为我我这边给他已经配了最大的 token, 输出数是二十个,如果想多输出一些的话,你就把这个 token 数搞大就行了。比如说我给大家试一下,我想让模型给我多输出一些 token, 那 我就把它改成五十,或者改成一百, n 者 c, n 者 v。 回车 让大家看我给它输入的呢是什么是人工智能,然后最后它的输出呢?从这边开始 text output 啊,这边什么是人工智能等等等等。哎,这里输出内容就比较多了啊,因为我把这个配置呢就加多了。 好,如果看到这样的输出呢,就说明我们整体的部署就已经成功了。 最后呢,我们通过 http 协议的方式将大模型的推理能力呢,就很容易的就用起来了。 这边呢我又发现一个就是关于 trading server, 它有一个另外的优势,就是我们可以通过呃自定义一些 back and 的 方式,也就说我们可以在这边自定义模型或者自定义 back and, 我 们可以让整个这个程序 server 它遵循 autopic 协议啊,不知道大家听过这个协议没有 a n t h o r p i c 这个协议。那遵循这个协议之后呢,我们就可以把我们部署好的模型和 另外一个东西叫 l a u d e colode 集成在一起,那我们就可以搭建一个基于本地模型的 colode code 的 这么一个 a g 的 工具了啊,这个时候我们自己在写代码的时候,我们就可以用自己本地模型可以节省头肯的时间了。 最后呢,我们总结一下本次视频呢,我们只做了一件事,就是将一个大元模型可以节省头肯的时间了。最后呢我们总结一下本次视频呢,我们只做了一件事,就是将一个大元模型可以节省头肯的时间了。最后呢我们总结一下本次视频呢,我们只做了一件事,就是将一个大元上, 那在这个部署过程中,我们主要分成两个阶段,第一呢就是模型的转换阶段,将原始的 i can face 的 大圆模型一步步的转换成 time rt 的 l l m 模型, 然后呢再将转换后的 time rt l l m 模型呢,再部署到 tree node 上面啊,主要就这两个阶段。 那第一阶段呢,主要经过两次转换啊,一个是转成 fast transformer, 再转成 tensor t i m 然后部署呢,这边呢,我们也主要解决了两个问题,第一个呢,就是我们要给这个 training server 给他一个 i can 的, 告诉他你遇到了大源模型,你该怎么处理,该怎么加载,具体干事的就是这个 i can 的。 另外一个呢,就是我们要给他一个模型仓库,这里之所以是模型仓库啊,就说明这个仓库里不止一个模型,那也就是说完成推理这件事的 的模型呢,不止一个啊,它是通过一个叫 ensemble e s a m b l e 这个 模型把剩余的三个模型组织起来来完成推理这件事的。所以呢,这边我们需要一个仓库有至少四个模型来做, 那其中有一个负责推理的叫 t r t l l m 嗯,这个模型是负责推理的,那我们需要把我们转换好的 叉叉点 e n g i n e 这个转换好的模型交给它,然后呢由它进行推理,推理完了以后呢,再进行后处理后,处理完了以后,最后输出出去,整个的过程就是这样子。

欢迎收看我是大叔,只跟你聊最实在、最有用、最有意思的内容。好,我们来看一下 ai playground 的 功能介绍。第一个是历史展示,然后应用设置,还有一个中间的一个聊天窗口, 先看一下它的设置,配置设置像有一个语言的切换,还有个主题的切换,大家可以根据自己的喜欢切换不同的主题。 另外一个还有一个是镜像源地址的配置,大家可以根据,呃,如果是国内用户的话,可以根据跟我配的这个地址是一样的。另外一个这边是展示 后台的一个运行状态,那主要程序的话是就是这个 ai playground。 另外一个就是模型的运行工具,就是朗玛 c p p 的 运行工具, 然后这个可以不需要勾上,这个是音频转文本的功能。 还有一个是模型加载,这个最好是勾上,因为在切换模型的时候它不会释放掉上一个模型。 然后还有一个是开发者控制台,这个是启动时候它会默认开启。另外一个是呃管理后端的一个组建, 这边主要是用来做重启后端服务的,如果有修改配置,这边要点一下重启。 好,我们再来看一下这个窗口的功能,这边主要一个功能就是一个切换的模式,聊天模式切换, 这边是发送,然后这边的话是设置,咱们每次聊天的时候采用了一些模型,那模型的分类功能,模型的功能它只会分为这几种, 一个是基本的聊天,然后还有一个是推理,一个是图片,另外一个是 a j。 还有一个是这边我们要注意一点,就是我们如果使用这个 g c c u f 的 g c c u f 格式的话,它会列出来你使用到了那个显卡设备是否在这里面,如果有的话,我们正常这边是可以看到我们自己的显卡的,那我们的显卡是一个英特的显卡,那这样子就能 呃识别到我们这个显卡,就可以调用到我们的英特尔显卡。 还有这个是模型的选择,模型选择的话,它默认的话,如果你选择的是基本聊天配置的话,就基本上就是呃要选择对应的这些模型进行做添加, 添加部分的话是在这个地方,那这个地方的话要选择对应的我们的这个模型的一个地址, 现在我们把模型地址和镜像地址改成这个, 然后点一下验证记,记得还要点一下这个重启,点一下确定好,等这边它重启完就可以了。好,关掉, 再拉到这边选择这个 s 的 选,选择添加 这个地址添加进去,这个地址一定要按照它的格式来命名空间一个, 命名空间一个,然后再加上仓库地址,仓库名称运营空间,仓库名称文件路径 点,添加我这边的话,我这个模型已经本地已经有了,然后如果你那边在操作的时候,它会跳到下载,自动下载,等待下载完成就可以了,现在模型就下载完了。 这边是对模型的一个参数进行调整,这个有一个温度 temperature, 建议调成零点八上,下文调成三十二 k。 好, 那我们来测试一下模型, 好会先导入模型,等待一会儿 好,模型已经正常工作了,这样子我们基本上大功告成了, 接下来再跟大家介绍一下这里面的开发工具,选择网络我们可以查看到接口的一个地址,把它复制下来, 在这边输入我们的设置的地址,然后加上 b e 模型,这样子我们就可以查看到目前可用的模型。 模型 id 这部分是可以直接配到我们的 open crop 里面的,也可以直接使用 ai pixel, 跟大家介绍差不多了。如果本期视频对大家有帮助,请点赞加关注,如果有什么问题可以在评论区留言,谢谢大家观看!

这品牌机里面拆出来的 amd 的什么型号我也给忘了,一会开机看一下。品牌机呢,他都是一个条形码,也不标型号,你给他加个 uef 引导标志芯片在这。应该是这个 看不清啊,搞点烟灰,二五 l d 零幺零的,把它接到主板上,开机进系统,打开 gpuz 看一下。 哎呀,这个卡太可怜了。这是 led 六三五零的四十纳米,选成三星的五百一十兆总线六十四位的那个地方啊。 u e f i 前面这个框它没有打勾,就是不支持 u e f i 引导,我们给它刷个引导啊。在这个编程 登记软件搜一下这个二五 ld 零幺零容量一百二十八 kb 的,这个容量刷 uefi 引导是可以的,不用更换这个 box 芯片了。我们把这个 box 给它保存出来啊。 点这个箭头,点一下 save file 存到桌面, 它直接以核心命名的。这什么意思? c d a 啊,雪松雪松木 cedar cedar, 雪松雪松木,点保存啊,就这一份,我们看一下它的大小, 一百二八 k, 一会我们添加一下 ueiy 引导,看他会不会超过这个容量。这是我在网上查的刷野教程,这个刷野过程就不需要用变声器了,全部敲密, 他需要用到的程序。这个派松,我这边系统的 win 七系统得用低版本的三点八的,还有一个是 gop 更新工具, 这个是添加那个 uefi 引导的,这个是最关键的,然后是刷写,刷写就用的这个 a m d v v flash, 他是专门刷 a m d 显卡 box。 先把这玩意安装一下。哎,可以啊,这三点八的,支持 win 七的 这个 double 勾选呢,点这个安装, 安装成功,给它 close, 直接打开这个 g o p 更新工具,它里面有个 p 处理,就这个好。直接把这个 box 拖到这个上面,它会跳出命令提示框, 这个提示的是 no efi room 放的意思是这个 room 里面没有 ueifi 引导,它会提示这个东西 call drama 没有安装,这给了个命令,我们把它复制下来,运行一下就可以了。 好,把这个选中分键盘上的 ctrl 加 c 复制下来,还是打开这个命令提示框,点这个运行,输 c m d 确定,我们直接点右键粘贴,把这条命令粘贴过来,直接回车 把它安装一下就可以了。看这个过程要联网的,他从这个地方下载这个东西,这就可以了啊,把它关掉,我们再打开还是这个 room, 给他拖到这个 p 处理程序上面。 好,这就可以了。这有个提示,是否要刷新这个 g o p, 然后可获取的最新版本,我们直接按 y 回车, 这个文件已经写入,我们看一下啊,它这个 c 的杠 u p d g u p room 关掉,我们去找这个文件,那就这一份,你看这个大小,它比原来还小了一点,一百二十二 k, 证明它原来的 room 里面是有空白字段的。 我们要的就是这一份 bios, 我们把它保存出来,复制粘贴,这个带有野外引导的 bios 就搞出来了,下面就是把它刷写进去,用的就这个命令。 amd vb flash, 我们把这个改好的 bios 放到这个文件 夹里面,这个好像放到那个硬盘根目录里面,一会给他改一下名字,我给他改成零零,不然的话敲这个太麻烦了,还是进那个 cm 的命令框。首先用命令进到这个文件夹下面,就 cd 空格杠零零。 刷野之前要去一些保护,就解锁解锁用的这个命令, amd vv flash 空格干 unlock room, 空格零, unlock 就解锁了,意思, 然后就是刷鞋,刷鞋这个命令 amd v b flash 杠 p 杠 f 零,然后是不要是零 就可以了,这个不要的名称我们也给他改一下,这太麻烦了,给他改成零一点。若木,算啊,就这个文件夹 atf, 我们打开看一下 啊,它这里面有个命令,就这个 a m d v b fresh。 好,这个 box 我们给它复制过来, 就这个 seeder, 刚什么什么,那改了,这个太麻烦了, 那改成零幺点。若木,好,这就可以了,这个文件夹也给他改一下名称,零零吧。好,我们给他放到硬盘根部路,复制, 就放到吸盘根部路下面粘贴好,可以了。打开这个 cmd 命令框, 好,我们首先去访问这个文件夹,怎么访问?退到 c 盘根部路,退出 cd 空格斜杠回车, 已经退出来了,我们进到那个文件夹下面,这是吸盘零零,文件夹怎么进?还是用这个命令 cd 空格零零回车好。进到零零文件夹下面,好,我们可以浏览一下 d i r, 看有没有那个文件,这是他的文件列表。喏,这个零一若母不就在这。这个的命令, a m d v b flash, 先解锁解锁看一下啊,解锁 a m d v b flash, a m d l a s h 空格杠 unlock room, 然后是空格数字 零回车。哎,三六零,跳个提示啊。嗯,给他允许操作。 好,看,这个题是 rome unlock。 嗯,写,保护已经解除了,下面就是刷写,还是这个命令, a m d v b flash 空格杠 p 空格杠 f 然后是零空格 rom 名称。行,我们敲一下 a m d v b f l p s h 杠七空格杠 f 空格零 rom 名称我们给它改了,就零幺点 rom 好接回唱。好 啊,这就是刷写过程。好,已经刷写完成,他会提示重启电脑。嗯,给他关掉,关掉重启 好可以点亮啊,没问题,打开这个 g p u z 看一下这个 u e i y 前面已经打上勾了,添加 u e i y 引导已经完成了。

这个三角洲通过修改成低端显卡型号,确实可以提升游戏帧率,让画质变得更简洁清爽。游戏在启动或加载过程中,会根据显卡型号对着色器、变异策略、特效等级以整体渲染附载进行重新分配。也就是说,显卡型号在这里影响的未必只是 一个名称显示,它更像是在看菜下饭,它偷偷检测你的显卡型号来决定给你开多少特效。当游戏认为你的显卡是高性能级别时,它就会拼命加特效,结果导致帧数不稳。而当它认为你的显卡不太行时,它反而会主动降低部分渲染压力,帧数居然就稳了。首先键盘为你加二, 输入这个,打开注册表,按照这个路径找上方搜索栏中 inn, 后面加一个斜杠。然后打开设备管理器,显示设备器右键你的显卡属性详细信息,设备实力路径,把下面那串值复制下来,直接粘贴到搜索栏即可。我们找到 d y s s, 将 n v 的 前面的乱码删除,只保留 n v 的 以及后面的格式。修改显卡型号要注意命名规范,还是机推荐修改成 g t x 控 格。七百五十空格态笔记本用户要注意,笔记本没有七百五十态,这个显卡最低只能改成一千零五十态。 改成七百五十态,你笔记本可能会花屏,然后重启电脑即可,但这个方法不是没有代价。你把显卡型号改低以后, 受影响的不只是游戏,连直播软件、转码软件,甚至部分剪辑软件都会重新判断你的显卡档位。这就说明很多软件看的不是你这张卡到底有多强,而是先看你报上来的身份,再决定给你开什么权限,所以这点一定要注意!

大家好,我是你们的科普达人,今天咱们来聊聊个人开发者怎么低成本入门 tocan 生产。很多朋友可能觉得 ai 模型部署门槛高,成本贵,其实只要配置得当,咱们普通人也能玩转。先说说硬件怎么选, 如果预算在一万五以内,想先试试水,那 rtx 四零九零 d 或者四零九零显卡是首选。二十四 gb 或十三 b 的 模型,搭配 i 五或 r 五的 cpu、 三十二 gb 内存, e t b 的 nvme 固态硬盘,再加上一千瓦的电源和一套散热好的机箱,总价大概一万一到一万六就能稳定运行。模型 托肯吞吐量能到每秒两百到五百个,日常测试和小流量使用完全够了。要是预算能到两到四万,想搞小批量生产,那就可以考虑上双卡四零九零 b, 或者直接上 a 一 零零,内存加到六十四 gb, 这样吞吐量能到每秒八百到两千个,接下小 b 客户的需求也没问题。硬件搞定了,软件和模型怎么选呢?模型方面,七 b 规模的 q 文二七 b instruct 或者 lama 三七 b 就 很适合入门,显存占用小,延迟低, 聊天、写文案、生成代码都在行。十三 b 的 模型像 q d r 杠一三 b instruct, 复杂推理和行业知识库的应用效果更好。这里有个小技巧,优先用 i n t 四量画板,显存占用能降百分之七十五, 速度还能提升两到三倍,效果几乎没损失,性价比超高。推理框架推荐 v l l m 开源免费,吞吐量比原声 pie torch 高十倍以上,个人开发者首选。部署工具方面, fast api 或 flask 用来封装 api 接口, prometheus 和 grafana 监控性能, e l k stack 记录日记这些都是免费又好用的工具。大家最关心的成本问题来了,按三年折旧算,入门级硬件每月折旧大概四百一十七元。电费方面,单卡四零九零币,满载运行 每月电费差不多一百九十四元,总成本约六百一十一元。按每天产出两千五百九十二万 token 算,单位 token 成本约零点零零零零二三六元,也就是二点三六分。每千 token 对 比 openai 的 gpt 三点五 turbo, 成本只有它的四分之一,价格优势很明显,想快速上手, 一天内就能跑通,先装 uber 二二点零四 lts 系统,然后安装 cuda 十二点一 cuda n, 再装 python 三点一零和 vl l m。 接着用命令启动模型服务, 最后用 qiro 测试一下生成 token, 看看返回结果里的 usage 词段,统计 token 数就搞定了。最后给大家几个进阶优化建议,用 v l l m 的 批量请求功能提升吞吐量,尝试模型蒸馏,降低显存占用和延,使用 radis 做请求队列应对高流量 在整个数据库记录用户 token 消耗,实现自动计费。这样一套下来,你的 token 生产系统就既高效又经济了。怎么样,是不是觉得个人搞 token 生产没那么难?你最想先用这个系统来生成什么内容呢?评论区告诉我吧!

嗨,大家好,一提到考那种很强的盗模型啊,你是不是下意识就觉得,哎呀,这肯定得靠那些死贵死贵的语音服务,或者得有顶配的 gpu 才行。 嗯,以前可能是这样,但现在情况完全不一样了。像朗玛 cpp 这样的本地推理技术,可以说正在彻底改变游戏规则,让顶尖的 ai 真的 就能直接在你的本地主机上跑起来。咱们来直接对比一下,你就明白了。 用云 a p i 吧,这里面有好几个坑。首先成本按 token 计费,用量溢上来,那个账单简直是蹭蹭往上涨,很容易就失控了。然后是延迟,这玩意儿谁也说不准,但最要命的是什么呢?是你得把公司或者自己的敏感数据全传给第三方,这风险可太大了。 反过来看,本地推理呢,完全是另一回事,成本可控,数据牢牢掌握在自己手里,还能离线运行,你看,这不就是大家想要的吗?这也就是为什么我们说本地 ai 正在掀起一场变化。那么莱玛 c p p 到底是个什么东西呢? 说白了,它就是一个用 c 加加写的性能超强的推理引擎。它的核心使命就一个,就是让那些过去必须靠服务器集群才能跑得动的大语言模型,现在就在你我的普通电脑上也能高效的跑起来。它要做的就是把 ai 的 超能力从遥远的云端直接拉回到你的桌面上。 好,所以我们能看到,这个向本地推理的转变速度是越来越快了。那我们接下来就深入聊聊,它到底解决了哪些过去咱们依赖云服务时头疼的不得了的核心问题。 你看啊,依赖云浮总有那么几个绕不开的痛点。第一就是成本, a p i 调用嘛,一开始可能觉得还行,但只要你的产品用户多起来,调用量一上来,那个账单数字绝对会让你肉疼。 第二,隐私和安全。你想想,把公司的核心代码、商业机密或者用户数据传到外部服务器上,这本身就是个巨大的风险场口,对吧?最后就是依赖性,你等于把产品的核心能力交给了第三方,他们的 a p i 一 出问题,或者给你来个速率限制,那你的服务不也跟着瘫痪了吗? 就是因为这些实实在在的问题,才让想啦么 c p p 这样的本地方案变得越来越重要。好,那啦么 c p p 之所以能这么厉害,这么高效,其实背后是靠两颗核心技术在支撑,咱们现在就来把它们拆开,一个一个看明白。 第一个法宝呢,叫做 g g u f, 你 可以把它想象成一个给 ai 模型量身定做的智能文件包,它不光是把模型的权重塞进去,还把所有需要的原数据、配置信息通通打包在一起,这对咱们开发者来说意味着什么? 意味着加载和切换模型一下子变得超级简单,你再也不用去折腾那些复杂的配置和依赖项了,直接一个文件搞定,省心省力。 但是这里就有一个很现实的问题了,一个大模行动不动就几十个 g, 甚至上百个 g, 这玩意怎么可能塞进我们内存有限的普通电脑里呢?对吧? 这听起来就像要把一头大象装进冰箱,嗯,答案就两个字,量化。所谓的量化,本质上就是一种给模型减肥的黑科技。 你看,模型里的权重本来都是用很高精度的数字,比如说十六位浮点数来表示的。量化干的事就是用一种很聪明的方法,把它们转换成精度更低的数字,比如四位整数。 这就像什么呢?就像你把一张超高清的 raw 格式照片压缩成高质量的 jpe, 文件大小可能只有原来的几分之一,但用肉眼看,画质的损失微乎其微。 那么这种权衡它的效果到底有多惊人呢?咱们直接看数字,一个模型从十六位精度量化到四位,它的文件大小可以直接减少大概七十五帕。你想想,一个六十 g 的 模型,一下子就变成了十五 g 左右, 内存占用也跟着大幅下降。而最关键的是模型的性能,也就是它的智商损失非常小,这就是能让大模型在你笔记本上跑起来的真种秘诀。 好了,理论我们都懂了,那接下来最实际的问题是,作为开发者,我们怎么才能把这么牛的技术方便的用到自己的项目里去呢?别担心啦嘛, c p p 在 设计的时候,可以说是把咱们开发者的需求都考虑进去了。 首先,它的硬件支持真的非常广,可以说它几乎不挑食。不管你用的是普通的 x 八十六,或者 arm 的 cpu, 还是苹果的 m 系列芯片,或者是英伟达的酷路 a m d 的 rocom, 它统统都支持。 更酷的是,它还能玩混合推理。什么意思呢?就是让你的 cpu 和 gpu 一 起干活,把机器的性能压榨到极致。 但要我说,它最最贴心的一个功能是内置了一个跟 openai api 一 模一样的本地服务器,这意味着什么?你懂的。 你现在项目里那些调用 gpt 四的代码,几乎可以一字不改,只要把 api 的 地址换成你本地的地址,然后砰,你的应用就从云端无缝切换到本地户运行了。这种零成本迁移的能力,对于咱们开发者来说简直太宝贵了。 有了这种 api, 兼容性,能玩的花样就太多了。你可以非常轻松地把它跟 long chain 这些流行的 ai 框架整合起来,在公司内网这种完全私密的环境里去搭建一个内部的 copilot, 或者搞一些自动化的工作流代理。 再比如建一个处理公司内部敏感文档的 r a g 问答系统,也变得安全又简单。到这里,我们谈的都还是技术层面的好处,但其实选择本地 ai, 这背后更是一个非常明智的商业决策。 我们现在就站高一点,从战略层面来看看它到底价值在哪。简单来说,转向本地推理能给一个公司带来三大战略优势, 第一就是省钱,这是最直接的,可以砍掉一大笔持续的云 api 运营成本。第二是安全,数据不出公司,这是最高级别的数据安全保障。第三就是控制权模型、数据部署环境,所有的一切都由你说了算,你可以根据自己的业务需求做深度定制。 有一句话,我觉得整理的特别好,你完全控制你的数据,没有数据限制,也没有 api 服务中断。你想,如果你的核心业务是建立在 ai 上的,那这种自主可控、可靠的感觉,真的是花多少钱都买不来的。 所以啊,说到 ai 的 未来,大家不要只盯着一个方向,觉得就一定是在云端,模型越做越大,参数越堆越多,成本越来越高。 咱们不妨换个角度想一想,有没有一种可能,未来最有价值的 ai, 其实并不是云上那个遥不可及、高高在上的超级大脑, 反而是那些经过高效量化,能够安全可靠地运行在你数据已经存在的地方的小而美的本地智能。这或许才是 ai 技术真正走向普及,赋能千行百业的未来。

尊敬的各位观众老爷们大家好,欢迎来到 ai life, 今天来给大家做一个 amd 显卡使用 stable diffusion 的小白教程。 最近这段时间 ai 特别火,很多小伙伴看到各种大佬用 ai 画的老婆非常精美,弄得人心痒痒,自己也想画一个心仪的老婆。 但是很多小伙伴用的是 amd 的独立显卡,而自从矿潮以来,显卡价格就居高不下,特别是英伟达的显卡,虽然他用 ai 作图有优势,但是贵的吓人,从哥布林洞窟里解救出来的 rtx 三零七零也还要两千多,简直离谱。 本教程呢,适用于只有一张 a m d 的显卡,不想换英伟达显卡,又想玩 stable diffusion 的小伙伴。但是 a m d 显卡 不属 stable diffusion 的,文字类教程很多,而视频类教程比较少,很多小伙伴都卡在奇奇怪怪的问题上,本教程可以帮大家一次性解决这些问题。 如果本教程对大家有帮助,请帮忙点赞订阅。那么今天呢,我用的是 boom two 二十点四桌面板系统部署 stable diffusion 的教程,保证你能顺利跑起 stable diffusion, 因为我是从一个完全不懂 linux 系统的小白找教程一步一步步数下来的,你也能行。 要部署 stable diffusion 的话,需要满足下面三个条件,第一,要有一个幺二八 g 以上的硬盘空间用于安装 open two 系统。第二,最好要有一个科学上网的环境。第三,要有成功部署的决心,遇到什么问题呢 就解决什么问题,不要随便放弃,跟着我一步一步来。本次的部署环境呢,是 amd 的独立显卡 rx 六六零零, 下图呢是支持 a m d 显卡,不属 stable diffusion 的型号,从 r x 四七零到 r x 六千系列,几乎涵盖了主流的 a m d 显卡型号。 首先,我们需要安装 open two 二十点四桌面板系统,安装过程我就不详细讲了,很基础,大概十分钟就能装好,大家上网去搜索吧。 为什么需要大家安装新系统呢?因为已有的 abunt 系统会因为我们装的一些软件会产生奇奇怪怪的问题。本次部署呢分为以下三个部分,第一, python 三点十点六的安装。第二,安装 装 r o c m 与 peter。 第三,安装 stable diffusion。 第一部分安装 python 三点十点六。我们进入系统以后呢,需要安装 python 三点十点六,因为 open to 二十点四呢自带的是 python 三点八点一零版本, 本次安装的 stable diffusion 需要跑在 python 三点十点六版本下,当然更高版本的也能跑,只是我没试过。首先,我们先来安装依赖下面的代码一行一行执行,如果出现选择请输入外。 其次,从官网下载 python 三点十点六的原文件。 第三,解压缩 python 三点十点六文件,先通过 find 命令找到 python 三点十点六 tgz 的下载在哪里了,紧接着将路径转换之后, 然后将 python 三点十复制到 home 文件夹下。如果你是和我一样新装的系统,就直接执行下面的命令,然后利用 tar 命令将文件解压至 home 文件夹下, 最后输入以下两行代码,开始安装 python 三点十点六。如果你们和我完全一样是 linux 小白的,就一行一行的执行下面的命令, 然后在编译以下没有安装 make 命令的自己安装一下,编译完成后输入如下命令安装, 这样 python 三点十就安装完成了。安装完成以后呢, python 并不是默认指向我们的 python 三点十点六,而是 python 三点八点一零, 这就需要我们更新一下牌坊的默认指向,让牌坊默认指向为牌坊三点式更新牌坊默认的指向 有以下两个方法,下面我只介绍方法一。方法二可以去我视频底下网址里提供的图文教程。首先删除原有链接,建立软连接,这里有可能会报错,不用管它。 其次,利用 which 找到 python 三的安装路径,如果是新装的系统,就直接用我下面的这行命令,然后找到的路径输入以下代码,建立新链接, 这样输入 python 就可以了。我们利用同样的方法更新 peep 默认指向。 到这里,小伙伴们可以愉快的使用 python 三点十了,我们回到主界面, 输入拍放 v, 返回拍放三点一零点六,就说明部署成功了,注意这里的 v 是大写。第二部分,安装 r o c m 与 petuch。 一、 r o c m 的简介 r o c m 和 nda 的扩大类似, r o c m 是 a m d 发布的一个用于加速 g p u 计算的转建平台,而该平台从面试至今仅支持 linux 系统,这就是为什么 stable diffusion 只能在 linux 系统下运行。 二、 r o c m 环境安装第一, a m d 显卡驱动的安装一行一行执行以下代码, 然后执行 r o c m 安装操作,如有另外安装显卡驱动的需求,就删去后面的 no d k m s 代码,网络环境好的话大概两三分钟,不好的话大概需要一个小时左右,和网络状况关系很大。 如果实在太慢,可以进入设置,把 about 里面的软件源更换为华为源测试华为源确实很快, 如果顺利的话基本不会出现报错。本着警告不用管的原则,直接进入下一步即可。以我安装的 rocm 五点三点零为例,终端输入 enemy 二,对应的内核版本是五点一五点零 零杠六十七,安装时未出现报错。第二,我们需要输入以下两行代码来添加用户组, 同时输入以下代码来配置环境变量。 安装完成后重启 pseudo reboot。 第三步,测试 r o c m 是否安装成功。 打开终端输入 rockmanfol 或 rocks me, 会出现当前设备信息和状态,设备信息里出现 gpu, 且能正常显示显卡状态, 即代表 rocm 环境安装成功。最后一步呢,是运行库的补充及 peter 指的安装,需要补的有这些,直接执行就可以。 peter 安装可以用我这里的代码,也可以直接去官网看教程。安装这一段也会很慢,跟个人的网络环境有关。 第三部分, stable diffusion 的本地部署。输入以下代码,把 stable diffusion 软件本体克隆下来,参照官方文档说明部署即可。因为已经在之前的步骤中安装了 pittered, 此处可不用安装。 这里的话,直接按照我的教程,一条一条执行以下代码就可以。 最后一步呢,可能发生的错误有两个错误,一是无法使用 gpu 设备, 解决办法是修改 launch b pi 这个文件,首先输入以下代码,安装 wim 编辑器,已经安装过 wim 编辑器的就不用安装了。然后进入进入软件目录,输入以下代码,编辑 launch b pi, 按键盘上色 i 键修改文件,将下面这行代码修改成这样,按键盘上的 e s c, 然后输入冒号 w q 回车保存。 第二个错误呢,是这样的, no module named 下划线什么?解决办法是执行如下两行代码,然后进入拍放文件目录下编辑什么派文件, 按修改文件如下的代码修改成如下,直接复制粘贴也可以。 最后也是按 e s c 输入冒号 w q 回车保存,再执行如下代码,然后就可以退出了。 错误三, no module named backports 输入如下代码, 然后输入以下代码,重新启动 stable diffusion 就可以了。 最后祝愿大家都能顺利跑起。 stable diffusion 首次运行时会安装依赖包,所以依旧是漫长的等待,所以有个好的 上网环境是多么重要。再就是模型文件需放置在 stable diffusion vibe models stable diffusion 文件夹下,如果你提前下载过模型文件了,可以提前放置,不放也可以,只是第一次会下载,默认模型包执行的有点慢, 跑完出现幺二七点零点零点幺,冒号七千八百六十,即代表部署成功。下次运行只需要输入如下两行代码就可以了,本次的话就不用了。 如果第一次运行显卡不工作,只是 cpu 在跑图,则需要重启一下电脑,然后取得 root 权限,在运行及输入 输入密码就可以了。浏览器中输入幺二七点零点零点幺,冒号七千八百六十即可打开 webui, 然后 就可以愉快的玩耍了。下次节目我再给大家介绍 stable diffusion web 界面的设置与优化,喜欢节目的小伙伴请点赞订阅,你的订阅是我做节目最大的动力,谢谢观看!

哈喽,大家好,记录一下本周关于本地部署千万三点五大模型的一个进展。 呃,目前的话,我个人的一个结论仍然还是倾向于用拉玛 c p p 去本地部署千万三点五的大模型。那么这张图的话呢,是我在本地的一个测试效果, 可以看到,在我的机器上,即使这个上下文跑到十六 k 的 一个长度,那么仍然可以做到二十五个透刻每秒, 那么显存占用是大概是二十二十二个 g 左右啊,那么也就是在三零九零这样的显卡上就可以去运行这样的一个模型,那么 ram 的 话,这样的很少,基本上几个 g 就 够用了啊,所以说这是我目前的一个结论 啊。然后再来具体说一说我是怎么样来部署 v o m 的, 然后以及怎么样来做的一些测试和对比。 好,首先的话呢,是 v l m 的 一个安装部署,那么本周的话呢,出了零点一七点一的这样的一个稳定版本, 那么很激动啊,出了之后赶紧去这个官网啊,按照教程去装了这个 cu 十三点零啊这样的一个版本 啊。但是很遗憾的话呢,我在部署的时候遇到了这样的一个问题,也就是一旦装 cu 十三点零这个版本的时候的话呢,它总是会运行的时候报一个 cublas 出谋划这样的一个错误 啊,当然也尝试了一些解决方案,像升级 driver, 升级扩展二 kit, 包括安装不同版本的 cublas。 那 目前来讲的话呢,我尝试这几种方案都没有去解决这样的问题,所以很遗憾的是,最后的话呢,只能去 退回到这个官网给出来的十二点九的这样一个版本,也就是我所有的测试和这个运行都是在这个官网十二点九的这个版本基础上啊,然后来做的好,然后来说一下我的测试脚本 啊。测试脚本的话呢,是, 呃,直接在这里调用的这个 openai 的 一个 api 接口啊,然后测试了不同上下文长度的一个效率啊,简单用 python 写了这么样的一组代码啊。 呃,然后重点来看一下就是我是怎么样来启动的这个脚本。 好,那么 vl m 里面的话呢,我是直接用的这样的一个脚板去启动它,当然的话呢,也尝试了这个不同的量化模型,然后一起来看一下这个结果。 呃,首先是官网给出的这个一个量化模型, 那么在这里的话呢,可以看到在我自己的机器上啊,我的机器是这个英特尔的一零九八零 x, 嗯, cpu 的 话十八核三十六线成,然后九十六 g 的 ram 加上 rtx a 六千啊,四十八 g 现存这样的一个显卡。 嗯,可以看到在我的机器上的话,当这个十六 k 的 上下文的时候,其实只有二十个投款每秒左右, 然后显存和内存的变化量的话,基本上没有什么变化,当然 v o m 的 话,本身它就会一次性的把这个需要的显存和内存都已经升平啊,占用的差不多,所以它基本上没有什么太大的变化, 当然这个效率来讲的话,很显然和我本地部署的拉马 c p p 的 这种方式还是有一点点小的差距的啊。好,这是官网给出来的第一种量化模型,然后也尝试了另外一个这个第三方给出来的量化模型, awq 的 量化模型, 嗯,可以看到这个十六 k 的 上下文的情况下,它这个仍然也是大概二十出头啊,投款每秒,然后内存和显存基本上是一致的。 然后还有一个情况的话呢,是这个关于 vlm 的 啊, vlm 的 话,其实我尝试了启动的不同的参数,这个里边影响最大的可能是这个 mtp 的 一个参数的一个配置,也就在我的脚本里边,我尝试把这个 mtp 给它设成二 啊,一旦设成二之后,这个效率会明显的有一个提成啊。先说它的好处 来,这是我当 m t p 等于二的时候,这样的一个效果,可以看到的话呢,一零二四的投看上一零二四的上下文的时候,投看能做到五十多, 然后十六 k 的 上下文的时候呢,投看仍然能够做到三十五三十六左右,所以这样的一个效率来讲的话呢,是非常好的,也就比拉曼 c p p 还要值钱,这个 v l m 啊,它基本上能够提升小一倍的这样一个效率 啊。但是很遗憾的是,在我的本机上也会有一个小小的问题,那就是一旦这个 m t p 给它配成二甚至二以上,说到五的时候,然后在实际运行模型的时候,它会报这样的一个 啊,也不算是错误吧,就是这个张亮的维度已经不一致了啊,因为他每次要预测两个头盔吗啊,所以的话呢,导致这个模型运行的时候不是很稳定啊,可能对话几轮之后,这个整个程序就崩掉了啊,就模型就死掉了 啊,所以的话,后期看一下这个问题能不能解决,如果这个问题能够解决的话,其实我还是挺倾向于用这个 v i m 去本地部署的啊, 好,那么这是关于 v l m 啊,去部署前文三点五的一个情况,然后除此之外的话呢,也还对这个阿玛 c p p 做了一个简单的一个测试, 也就尝试去部署了一下不同的模型啊。首先这个是二十七 b 的 一个量化模型,然后上下文呢,一直测试到了二百五十六 k, 那就是整个模型的一个极限,可以看到的话呢,在这个上下文大于六十四 k 的 时候,其实这个效率来讲就已经有很显著的一个下降了 啊。当然的话,上网上去查了一些资料,大家也都说这个百分之九十九以上可能的这个应用场景,六十四 k 的 上下文已经足够用了,所以的话呢,目前就想打算先用这个纤维三点五啊,二十七 b 拉满 c p p 这样的一个部署环境 啊。然后还有的话呢,就是我也测了一下这个三十五 b, 这个明显会快很多啊,因为他是这个 a 三 b, 也就每次只激活三 b 的 参数,所以的话明显可以看到这个 token 啊,在这个六十四 k 上下文的时候,基本上还能做到四十加将近五十这样的一个 token 每秒。 然后最后的话呢,也测试了一下我本机的一个极限,也就是一百二十二 b 的 这个模型,这个是我显存能够容纳的最大的一个模型了啊,可以看到即使上下纹很小啊,一零二四的时候仍然这个头款只有十个左右, 所以的话呢,暂时就放弃了一百二十二 b 的 这样的一个模型啊,后面的话会用这个二十七 b 和三十五 b 这两个模型去做一些啊,上层那些应用吧。啊,然后到时候有机会再给大家录一些后续的视频。好,今天就到这里。