来聊一下我们在AIGC平台工程上面的一些经验然后我先简单做一下自我介绍我叫刘中薇 画面叫墨元然后目前之前的主要是负责KBS这边奥斯凯林相关的工作然后这两年的主要负责Cloud Native Game社区然后我先介绍一下Cloud Native Game社区这个社区是我们和国内的一线和二线的游戏公司共建的一个开源社区在这个社区里面主要提供的就是关于游戏原生化相关的一些开源项目然后这个社区里边像我们今天介绍的这个AIGC Gateway是我们和国内的新招AI也就是轮延游戏一起来幅画并且捐献给社区的主要面向的就是说在企业内部来搭建AIGC平台的这样的场景和解决方案那先说一下这个AIGC今年这个词太火了大家基本上可能搞研发的获得或少一些工作和尝试可能都和AIGC相关但是从整体的架构上或者是从技术的实现的方式上面AIGC主要就分成两个方向一个方向就是单击吧比如说大家聊得最多的Stable Diffusion对吧就是你是非常专业的人在本地或者是在一个云环境之下独享一块GPU然后来实现这样的AIGC的能力那这是一个类型还有一个类型是什么呢就是服务化的服务化的非常典型的就是Made Journey就是你用的实际上是一个文生图的能力至于底层是什么模型或者是底层是怎么样去管理GPU的用什么样的硬件大家可能消费者是不关心的这是非常典型的一个是通中端专业客户或者是通B的另外一个是通C的那这两个场景之下呢在国内也有很多我们的客户或者是开发者把这个开源版的Stable Diffusion做了一些改造然后去做服务化改造形成第二种服务化的AIGC的解决方案也是有的所以这个地方两者之间是没有明显的边界的但是我们想说的是说在企业内部来去搭建AIGC平台的时候实际上更倾向于是说怎么把第一种单机版的AIGC平台能够提供给专业的原化师或者是内容制作者那我们来介绍一下我们的这个开源项目AIGC Gateway刚才提到了AIGC Gateway的实际上脱胎于行者AI这家前身是游戏公司的AI公司那AIGC这个领域其实在游戏行业是发展的最靠前的像国内大家耳熟能详的像海域行者AI或者是无界其实它的前身都是游戏公司游戏公司今年的开始把内部提供给原化师的一些功能对外暴露给我们的这个开发者或者是中端客户那在企业内部怎么去构建一个AIGC的平台呢其实核心要考虑几个事情第一个事情是说怎么能够做到数字资产比较好的隔离你像游戏这个场景之下不同的工作室之间它的数字资产是隔离的不同的原化室之间他们的数据也是分开的然后还有什么呢还有像这个版本管理你像我们知道的Stable Diffusion有非常典型的1.5的版本和2.2的版本那这两个版本之间在不同的这个原化室场景之下可能他们会用不同的这个warden还有就是访问健全的问题比如说哪一些这个原化室它能够访问到哪一个SD跨部门之间是不能呼访的类似像这种的场景其实也是非常常见的特别是AIGC引擎其实不只有Stable Diffusion你像国内还用的比较火的AI缩研资对吧Soviet Service这些其实在游戏公司里面也用的会非常非常多所以在AIGC引擎上它会涉及到的就是引擎的种类和引擎的版本非常非常多而且不同的客户对于引擎的这个诉求也会有所不同那AIGC Gateway它要解决的事情是什么呢它要解决的问题就是企业怎么在内部搭建一个对于专业的这个AIGC内容生产者的这样的一个平台来提供这个访问健全数据隔离数据加速和版本管理等等相关的诉求那在这里边的AIGC Gateway分成几个大的部分首先是它上层有一个叫Outs Gateway这个地方就是做用户身份健全的比如说我是用户A登进来我能看到什么样的资源我能跟哪一个Stable Defusion的实力区做绑定实际上是在这一层做到的它可以实现不同的AIGC已经可以无侵入的来实现这种单点登录和session的透传然后右侧的部分是我们这边的Outs Provider和Results Management这个地方我们是基于开源的一个项目叫Log2来去实现的简单理解就是企业内部有的客户可能有用户身份体系对吧 比如说你内部有飞书的账号体系那你如果想用飞书的账号体系来去登录这套AIGC平台那你需要一个单点登录的机制右侧的Log2实际上承载的就是这个部分就是来帮你去做单点登录和用户资源管理的那你当以一个用户身份登进来之后你会出现三种状态第一种就是你第一次用这个平台你没有任何的AIGC引擎和你关联那你需要创建一个那这个时候平台会提供一个创建的一个动作那第二个状态是什么呢就是你已经有了一个AIGC平台了但是这个时候你可能不需要了或者说你想释放掉给别人来去共享这个GPU那这个时候你可以点击这个销汇或者是停机那这个时候你的所有的存主资源是保留的但是计算资源是释放的那第三个状态是什么呢第三个状态就是你的资源已经释放了但是这个时候你又想用这个Stable Defuse或者是Service那这个时候你可以在AIGC Gateway里边来去点击Recover也就是恢复或者是拉起那这个时候它会重新分配GPU资源并且把之前你使用的相关的数据再重新拉起来所以这个是AIGC Gateway里边核心的几个功能然后AIGC Gateway是怎么去管理多版本和多引擎的呢实际上它里边提供了一个CRD然后这个CRD每一个CR都是一个特定版本的特定的引擎比如说我这一个机群里边有一个1.25的SD然后有一个4.1的Service那你就写两个CR往下一丢AIGC Gateway会自动发现相应的CR然后来帮你把注册的信息写到AIGC Gateway上然后来实现页面的一个展示那下面黑色的部分是什么呢黑色的部分是我们的一个分布式缓存这个地方要特别提一下在AIGC这个场景之下大模型或者是model是避免不了的特别是像Stable Diffusion大家如果用Stable Diffusion生图的时候会知道一个事情就是你任何一张图都要有一个底模不同的底模决定了你生生图的类型和风格然后你有了底模之后有的客户可能需要有ContraNet或者是Laura甚至是有一些客户可能还有Locas对吧它会有多个模型同时去加载同时去生成这样的一个诉求但是对于GPU而言我们GPU时间最保贵的是什么就是你单位时间之内能生成图越多越好如果把GPU的时间浪费在去加载模型上的话那就会导致你的GPU浪费非常非常严重AIGC Gateway是怎么解这个问题的呢实际上我们这边通过弗洛伊德加Juice FS提供了一个二级的缓存把所有的常见的模型都缓存在内存里面然后冷模型可以放在远程的OSS里面通过这样的方式如果是以缓存的模型可以按照一个G大并每秒的方式去做加载如果是冷模型的话可以在300兆到500兆这个性能上去加载这个场景和传统的IO相比有什么样的一个好处呢我给大家举一个例子我们这边有一个客户它的底模加上Laura这一层整个的size大概是在50个T如果按照这个逻辑的话你在单机上是不可能存储到这么多的模型来去做切换的这个时候很多客户会想说我是不是可以用一个NAS来去做NAS是可以但是NAS的成本非常非常高我给大家做个对比如果在云上如果大家用OSS的话一个GB一个月大概是一毛二分钱如果大家用同等的size使用NAS的话一个月一GB大概是一块八毛钱也就是两者相差将近15倍的成本所以这个地方会给很多我们的企业客户带来非常大的成本负担AIGC Gateway实际上就是通过分布式换存的方式来帮助大家解决模型切换和模型存储的问题再往下再给大家介绍一个服务化的一个例子如果说我们企业内部不只是想自己对内服务也想做一个服务化的话那要怎么做呢实际上这个地方业界非常流行的一个方法就是把Stable Diffusion去做一些改造把传统的API调用的方式转换成一个Escuter离线调用的方式然后再通过上层的Promote转换然后进行校区队列然后再通过KIDA去做一些自动伸缩然后现在部分和刚才的AIGC Gateway是附用的就依然使用附了易得的方式来去做模型的缓存和模型的切换因为只有这样的话才能最大的效率上帮大家去节省GPU的分时那我们上面也有一些数据大家可以看看就是基本上的数据就是如果是缓存在附罗易得里面可以做到一个GB每秒如果是没有缓存在附罗易得而是在OSS里面的冷膜价债速度大概是300到500兆每秒然后最后是几个二维码分别是我们的AIGC Gateway和我们的原生游戏的社区如果大家感兴趣的话可以加入进来然后我们也非常欢迎大家给我们来贡献扣的和共建我们的开项谢谢大家