探索大型语言模型的开源人工智能基础设施:北京开源AI Meetup回顾
原文参见
Explore open source AI Infra for Large Language Models: Highlights from the Open Source AI Meetup Beijing | Cloud Native Computing Foundation
背景介绍:
最近,在 ChatGPT 的成功推动下,大型语言模型及其应用程序的流行度激增,引发了人们对这些模型背后的技术内部工作的极大兴趣。 为了深入探讨大型语言模型和相关应用背后的基础设施,WasmEdge 在云原生计算基金会(CNCF)的支持下于 7 月 8 日在北京组织了一次开发者聚会。 本次活动汇聚了AI云原生开源社区各个领域的专家和开发者,共同探讨和分析大语言模型开发的生命周期的不同技术。
我们讨论了以下主题
Michael Yuan ——使用 Rust 和 Wasm 构建轻量级 AI 应用程序
CNCF WasmEdge 运行时的创始人 Michael Yuan 探索了利用 WebAssembly (Wasm) 容器基础设施构建大型语言模型 (LLM) 插件。
他概述了当前大语言模型函数和 plugin 的几个关键问题:
- LLM 锁定迫使用户留在单一供应商的生态中。 这限制了灵活性。
- 模型工作流程锁定意味着无法轻松更换分词器或推理引擎等组件。 一切都必须保持在一个整体框架内。
- UI 锁定将 UI/UX 限制为供应商提供的内容,定制空间较小。
- 缺乏对机器输入的支持 - 如今的大语言模型是为具有人工输入的对话模型而构建的。 它们不能很好地处理结构化的、机器生成的数据。
- 大语言模型无法发起对话或主动提供信息。 用户必须驱动所有交互。
现有的开源框架也带来了挑战:
- 即使是基本应用程序,开发者也必须构建和管理基础设施。 无法选择 serverless 方式。
- 一切都依赖于 Python,与 Rust 等编译语言相比,Python 的推理速度很慢。
- 开发者必须编写自定义身份验证和连接器到外部服务(例如数据库)。 这种开销会减慢开发速度。
为了克服这些限制,WebAssembly 和 Serverless 函数是构建轻量级 LLM 应用程序的好方法。 Wasm 提供了启动很快的可移植的运行时,支持多种语言,包括 Rust,它非常适合计算密集型推理。
WasmEdge 构建了一个平台 flows.network,允许开发者在 WasmEdge 中的研发管理、DevRel、营销自动化和培训/学习中运行serverless rust 函数,为大语言模型提供记忆、耳朵、双手和行动能力,从而能够用 serverless 的方式在几分钟内实现大模型应用程序。 这可以将开发时间从几个月缩短到几分钟。 它可以实现新一代可定制的垂直大语言模型应用。
通过本次演讲,观众学会了 3 分钟时间内用 flows.network 以serverless方式构建 AI 应用程序。
王方驰 - FATE-LLM:联邦学习遇见大型语言模型
VMware CTO办公室高级工程师、FATE项目维护者王方驰介绍了FATE-LLM,这是一种将联邦学习与大语言模型技术相结合的前瞻性解决方案。 FATE-LLM 允许多个参与者使用其私有数据协作微调大型模型,确保数据隐私,而无需在本地域之外共享数据。 演讲涵盖了将联邦学习应用于 ChatGLM 和 LLaMA 等大型语言模型的最新成果,讨论了技术挑战、设计概念和未来计划。
联邦学习是解决大语言模型数据隐私问题的一种有前途的方法。 联邦学习有助于克服大语言模型的下列挑战:
- 当公共数据耗尽或不足时使用私有数据
- LLM建设和使用过程中维护隐私
FATE-LLM(FATE 联邦大型语言模型)允许参与者使用自己的私有数据微调共享模型,而无需传输原始数据。 这可以使更多组织从大语言模型中受益。
- 多个客户端可以通过FATE内置的预训练模型支持进行横向联邦学习,并使用私有数据进行大规模模型微调;
- 支持30+参与者进行协作训练
李晨——向量数据库:大模型的长期记忆体
Milvus 运营和生态开发负责人 Li Chen 强调了向量数据库对于构建自定义大型语言模型的组织的重要性。 Milvus 是一个专为云原生环境设计的开源向量数据库。 它采用基于 Kubernetes(K8s)的微服务架构,实现分布式云原生操作。 Milvus 采用存储计算分离的方式,提供弹性可扩展性,允许根据工作负载需求进行无缝扩展和收缩。 其高可用性可确保从故障中快速恢复,通常在几分钟内。
Milvus 的显着能力之一在于它能够处理数十亿个向量,展示了其可扩展性和对大规模应用的适用性。 Milvus 利用消息队列,实现数据的实时插入和删除,保证高效的数据管理。
Milvus 与目前流行的 AI 生态进行了集成,包括 OpenAl、Langchain、Huggingface 和 PyTorch,提供与流行框架和库的无缝兼容。 此外,它还提供了一套全面的生态工具,例如 GUI、CLI、监控和备份功能,为用户提供了强大的工具包来管理和优化 Milvus 部署。
综上所述,Milvus 提供了分布式、云原生向量数据库解决方案,在可扩展性、容错性以及与不同 AI 生态的集成方面表现出色。 其微服务设计与其广阔的生态系统工具相结合,使 Milvus 成为管理大规模 AI 应用程序的强大工具。
张志——开发中模型量化相关的技术实践
张志,商汤模型量化框架工程师, 深入探讨了广泛应用的神经网络量化技术。 演讲重点讨论了大型语言模型中使用的各种量化技术,例如仅权重量化和分组 kv 缓存量化。 讨论了这些技术的应用场景和性能优势,并对服务器上的模型部署、性能优化以及降低存储和计算成本提供了见解。
模型量化和压缩对于部署大型语言模型至关重要,尤其是在资源受限的设备(例如边缘设备)上。OpenPPL团队研发的 PPQ 等工具可以量化神经网络,以减小其尺寸和计算成本,使它们能够在更广泛的硬件上运行。这次演讲干货满满,讲到了很多实际的大模型量化技术细节,张老师的视频发布在B站上后得到了热烈的好评和欢迎。
茶歇提供了披萨和水果:
总结
对于对云原生和人工智能技术无比热情的与会者来说,这次聚会是一次激动人心的活动。 演讲者围绕大型语言模型,深入探讨了作用于大模型的不同开源项目,包括轻量级 AI 应用开发、大型模型联邦学习、向量数据库、模型量化和 LLM 评估。参会的开发者可以获得对这些技术的复杂细节的宝贵见解,使大家能够利用开源云原生和人工智能项目和应用程序之间的协同作用。
总的来说,这次聚会强调了开源技术如何帮助组织构建和应用大型语言模型。 通过共享知识和协作,人工智能和云原生社区可以共同应对推进和产品化新一代人工智能系统所涉及的挑战。
相关文章:

探索大型语言模型的开源人工智能基础设施:北京开源AI Meetup回顾
原文参见Explore open source AI Infra for Large Language Models: Highlights from the Open Source AI Meetup Beijing | Cloud Native Computing Foundation 背景介绍: 最近,在 ChatGPT 的成功推动下,大型语言模型及其应用程序的流行度激…...

Langchain 的 Conversation buffer window memory
Langchain 的 Conversation buffer window memory ConversationBufferWindowMemory 保存一段时间内对话交互的列表。它仅使用最后 K 个交互。这对于保持最近交互的滑动窗口非常有用,因此缓冲区不会变得太大。 我们首先来探讨一下这种存储器的基本功能。 示例代码&…...

电流源电路
3.3.3电流源电路 镜像电流源 电路 分析 仿真 比例电流源 电路 分析 仿真 加射极输出器的电流源1 电路 分析 仿真 加射极输出器的电流源2 电路 分析 仿真 威尔逊电流源 电路 分析 仿真...

iOS开发-CMMotionManager传感器陀螺仪
iOS开发-CMMotionManager传感器陀螺仪 之前开发中遇到需要使用陀螺仪判断是否拍照时候水平判断,如果没有水平拍照,则给出提示。方便用户拍照合适的题目图片。 一、CMMotionManager CMMotionManager是什么 CMMotionManager 是 Core Motion 库的核心类&…...

影刀下载,插件安装
1、下载 在影刀官网下载:www.yingdao.com 2、谷歌插件安装 参考: 影刀插件安装各种方式 浏览器安装插件说明 - 影刀帮助中心 安装说明:驱动外置 Chrome 需要安装插件,并且保证此插件处于开启状态 方式一:用户头…...

Linux的tcpdump命令详解
tcpdump 一款sniffer工具,是Linux上的抓包工具,嗅探器 补充说明 tcpdump命令 是一款抓包,嗅探器工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。…...

springboot运行报错Failed to load ApplicationContext for xxx
Failed to load ApplicationContext for报错解决方法 报错Failed to load ApplicationContext for 报错Failed to load ApplicationContext for 网上找了一堆方法都尝试了还是没用 包括添加mapperScan,添加配置类 配置pom文件 [外链图片转存失败,源站可能有防盗链机…...

[SQL挖掘机] - 内连接: inner join
介绍: 内连接是一种多表连接方式,用于将两个或多个表中的数据通过共同的列值进行匹配,并返回满足连接条件的匹配行。简单来说,内连接能够将相关联的数据组合在一起,以便进行更复杂和全面的数据分析。 内连接的工作原理如下&…...

mysql(四)数据备份
目录 前言 一、概述 二、备份的类型 (一)物理与逻辑角度 (二)数据库备份策略角度 三、常见的备份方法 四、完整备份 (一)打包数据库文件备份 (二)备份工具备份 五、增量备份 六、操…...

Spring 拦截器
上篇博客链接:SpringAOP详解 上篇博客我们提到使用AOP的环绕通知来完成统一的用户登陆验证虽然方便了许多,但随之而来也带来了新的问题: HttpSession不知道如何去获取,获取困难登录和注册的方法并不需要拦截,使用切点没办法定义哪…...

【libevent】http客户端3:简单封装
LibEventHttp: 适用于简单的http请求 LibEventHttp/* Copyright (c) MediaArea.net SARL. All Rights Reserved.** Use of this source code is governed by a BSD-style license that can* be found in the License.html file in the root of the source tree.*///--------…...

JavaScript的函数中this的指向
JavaScript的函数中this的指向 JavaScript 语言之所以有 this 的设计,跟内存里面的数据结构有关系。 以下例子来简单描述this在不同情况下所指向的对象。 var obj {aa: function(){console.log(this.num)},num: 5 };var aa obj.aa; var num 10;obj.aa(); // …...

Caddy 中实现自动 HTTPS
要在 Caddy 中实现自动 HTTPS,您可以按照以下步骤进行操作: 步骤 1:安装 Caddy 首先,您需要安装 Caddy 服务器。您可以从 Caddy 的官方网站(https://caddyserver.com/)下载适用于您的操作系统的最新版本。…...

SK5代理(socks5代理)在网络安全与爬虫应用中的优势与编写指南
一、SK5代理(socks5代理)的基本概念 SK5代理是一种网络代理协议,它允许客户端通过代理服务器与目标服务器进行通信。相较于HTTP代理,SK5代理在传输数据时更加高效且安全,它支持TCP和UDP协议,并且能够实现数…...

【LeetCode-简单】剑指 Offer 06. 从尾到头打印链表(详解)
题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 题目地址:剑指 Offer 06. 从尾到头打印链表 - 力扣(LeetCode) 方法1:栈 思路 题目要求我们将链表的从尾到投打印一…...

【LeetCode】114.二叉树展开为链表
题目 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&…...

DAY3,Qt(完成闹钟的实现,定时器事件处理函数的使用)
1.完成闹钟的实现,到点播报文本框的内容; ---alarm.h---头文件 #ifndef ALARM_H #define ALARM_H#include <QWidget> #include <QTimerEvent> //定时器处理函数类 #include <QTime> //时间类 #include <QPushButton> //按钮…...

TL-ER3220G设置vlan
TL-ER3220G是企业宽带路由器。 自带5个RJ45接口。 其中接口1到接口4都可以接入宽带线路。最多可以并接4路。 本例由接口1接入宽带,默认接口2到接口4组成1个vlan,名称vlan。其中接口5特殊,带宽最大100M。 计划将接口2和接口4组成第一个vlan&…...

PHPWord 实现合并多个word文件
PHPWord 本来想着当调包侠呢,结果翻了一遍文档,没有这种操作支持,阿这😂 GPT 不出意外的一顿胡扯,给👨🦳气的要中风啦 思路 word 也就是docx结尾的文件本质上就是xml字符串, …...

rust持续学习Box::leak
Box就是unique_ptr 这个函数的功能是消费box返回一个全局变量! 写一个函数,想要真的返回全局变量,感觉用这个是个好的做法 fn Foo()->Option<&static mut A> {let a Box::new(A());Some(Box::leak(a)) }这样就能当真拿到这个全…...

通过SSH实现将本地端口反向代理到公网服务器
使用场景 有一台公网服务器,能够对外开放服务进行访问,但是这个公网服务器资源较低,无法运行太多服务 有一台闲置电脑可以全天候开机使用,且配置较好,可以部署多个服务,但是没有公网IP 需求:将…...

Fragment的基本用法、Fragment和活动间的通信、Fragment的生命周期、动态加载布局的技巧
一、Fragment的简单用法 1、制作Fragment 1.1 新建一个布局文件left_fragment.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"ve…...

机器学习 day30(正则化参数λ对模型的影响)
λ对Jcv和Jtrain的影响 假设该模型为四阶多项式当λ很大时,在最小化J的过程中,w会很小且接近0,此时模型f(x)近似于一个常数,所以此时模型欠拟合,Jtrain和Jcv都很大当λ很小时,表示模型几乎没有正则化&…...

图文教程:如何在 3DS Max 中创建3D迷你卡通房屋
推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 在本教程中,我们将学习如何创建一个有趣的、低多边形的迷你动画房子,你可以在自己的插图或视频游戏项目中使用它。您将学习的一些技能将包括创建基本的3D形状和基本的建模技术。让我…...

根据UIL下载图片/视频、根据URL自动下载图片/视频、GUI自动下载想要的图片
目录 1,根据UIL下载图片/视频 2,根据URL自动下载图片/视频 3、GUI自动下载想要的图片 ①点击下载按钮,进行挨个下载 ②右击保存进行下载图片 4、图片或视频URL批量放入浏览器页面上 1,根据UIL下载图片/视频 def downForInter…...

HTML <picture> 标签
实例 如何使用 <picture> 标签: <picture><source media="(min-width:650px)" srcset="/i/photo/flower-4.jpg"><source media="(min-width:465px)" srcset="/i/photo/tulip.jpg"><img src="/i/ph…...

力扣天天练--week3-LeetCode75
topic75-9-t443:压缩字符串 题目描述: 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需…...

5.2 方法的定义和调用
5.2 方法的定义和调用 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 一、方法的定义 方法包含一个方法头和一个方法体 修饰符 返回值类型 方法名 (参数类…...

Linux基础以及常用命令
目录 1 Linux简介1.1 不同应用领域的主流操作系统1.2 Linux系统版本1.3 Linux安装1.3.1 安装VMWare1.3.2 安装CentOS镜像1.3.3 网卡设置1.3.4 安装SSH连接工具1.3.5 Linux和Windows目录结构对比 2 Linux常用命令2.0 常用命令(ls,pwd,cd&#…...

echarts 折线图上只显示某一个点值
<template> <div> <!-- 数据来源 --> <div class"echarts" ref"echartsRef"></div> </div> </template> <script setup langts name"reconciled"> import { ref } from "vue"; im…...