HuggingFace是最热门的机器学习开源社区,拥有30万个不同的机器学习模型和10万个可用的应用。
如果HuggingFace上这30万个模型,可以自由组合,共同完成新的学习任务,那会是一种什么样的画面?
其实在HuggingFace问世的2016年,南京大学周志华教授就提出了「学件」(Learnware)概念,描绘了这样的蓝图。
最近,南京大学周志华教授团队推出了一个这样的平台——北冥坞。
地址:https://bmwu.cloud/
北冥坞不仅提供给科研人员和用户上传自己的模型,还能根据用户需求进行模型匹配和协作融合,以高效处理学习任务。
论文地址:https://arxiv.org/abs/2401.14427
北冥坞系统仓库:https://www.gitlink.org.cn/beimingwu/beimingwu
科研工具包仓库:https://www.gitlink.org.cn/beimingwu/learnware
这个平台最大的特点就是引入了学件(Learnware)系统,从而突破性地实现了针对用户需求的模型自适应匹配与协作能力。
学件由机器学习模型和描述模型的规约构成,即「学件 = 模型 + 规约」。
学件的规约由「语义规约」和「统计规约」两部分组成:
- 语义规约通过文本对模型的类型及功能进行描述;
- 统计规约则通过各类机器学习技术,刻画模型所蕴含的统计信息。
学件的规约刻画了模型的能力,使得模型能够在未来用户事先对学件一无所知的情况下被充分识别并复用,以满足用户需求。
规约是学件基座系统的核心组件,串联了系统中关于学件的全部流程,包括学件上传、组织、查搜、部署与复用。
就像《天龙八部》中的燕子坞由很多小岛组成一样,北冥坞中的规约也像一个个的小岛一样。
来自不同特征/标记空间的学件,构成众多的规约岛屿,所有规约岛屿共同构成学件基座系统中的规约世界。在规约世界中,如果能够发现并建立不同岛屿之间的联系,那么相对应的规约岛屿将可以进行合并。
在学件范式下,世界各地的开发者可分享模型至学件基座系统,系统通过有效查搜和复用学件帮助用户高效解决机器学习任务,而无需从零开始构建机器学习模型。
北冥坞是学件的第一个系统性开源实现,为学件相关研究提供了一个初步科研平台。
有分享意愿的开发者可自由提交模型,学件坞协助产生规约形成学件存放在学件坞中,开发者在这个过程中无需向学件坞泄露自己的训练数据。
未来的用户可以通过向学件坞提交需求,在学件坞协助下查搜复用学件来完成自己的机器学习任务,且用户可以不向学件坞泄露自有数据。
而且以后,在学件坞拥有数以百万计的学件后,将可能出现「涌现」行为:以往没有专门开发过模型的机器学习任务,可能通过复用若干个现有学件而解决。
学件基座系统
机器学习在很多领域取得了巨大成功,但依然面临着诸多问题,例如需要大量的训练数据和高超的训练技巧、持续学习的困难、灾难性遗忘的风险以及数据隐私/所有权的泄漏等。
虽然上述每一个问题都有相应的研究,但由于问题之间是相互耦合的,在解决其中一个问题时,可能会导致其他问题变得更加严重。
学件基座系统期望通过一个整体框架,同时解决上述诸多问题:
- 缺乏训练数据/技能:即使对于缺乏训练技能或数据量较小的普通用户,也可以获得强大的机器学习模型,因为用户可以从学件基座系统中获取性能优良的学件,并进一步调整或改进,而不是自己从头开始构建模型。
- 持续学习:随着在各种不同任务上训练得到的、性能优良的学件被不断提交,学件基座系统中的知识将不断丰富,进而自然地实现持续和终身学习。
- 灾难性遗忘:一旦学件被接收,它将永远被容纳在学件基座系统中,除非其各方面功能都可以被其他学件所替代。因此,学件基座系统中的旧知识总是会被保留,而不会被遗忘。
- 数据隐私/所有权:开发者只提交模型而不共享私有数据,因此数据隐私/所有权可以得到很好的保护。尽管无法完全排除对模型进行逆向工程的可能性,但与许多其它隐私保护方案相比,学件基座系统泄露隐私的风险非常小。
学件基座系统的构成
如下图所示,系统工作流程分为以下两个阶段:
- 提交阶段:开发者自发地提交各式各样的学件到学件基座系统,而系统会对这些学件进行质量检查和进一步的组织。
- 部署阶段:当用户提交任务需求后,学件基座系统会根据学件规约推荐对用户任务有帮助的学件并指导用户进行部署和复用。
规约世界
规约是学件基座系统的核心组件,串联了系统中关于学件的全部流程,包括学件上传、组织、查搜、部署与复用。
来自不同特征/标记空间的学件,构成众多的规约岛屿,所有规约岛屿共同构成学件基座系统中的规约世界。在规约世界中,如果能够发现并建立不同岛屿之间的联系,那么相对应的规约岛屿将可以进行合并。
学件基座系统在查搜时,首先通过用户需求中的语义规约定位到具体的规约岛屿,再通过用户需求中的统计规约对规约岛上的学件进行精确识别。不同的规约岛屿合并,则意味着相应的学件可以被用于不同特征/标记空间的任务上,即可以复用至超出其原始目的的任务中。
学件范式通过充分利用社区分享的机器学习模型的能力,构建统一的规约空间,以统一的方式高效地为新用户解决机器学习任务。随着学件数量增多,通过有效地组织学件结构,学件基座系统整体解决任务的能力将显著增强。
北冥坞的构架
如下图所示,北冥坞的系统架构包含四个层次,从学件存储层至用户交互层,首次自底向上系统性地实现了学件范式。四个层次的具体功能如下:
- 学件存储层:管理以zip包格式存储的学件,并通过学件数据库提供相关信息的获取方式;
- 系统引擎层:囊括了学件范式中的所有流程,包括学件上传、检测、组织、查搜、部署和复用,并以learnware Python包的形式独立于后端和前端运行,为学件相关任务和科研探索提供了丰富的算法接口;
- 系统后端层:实现了北冥坞的工业级部署,提供了稳定的系统在线服务,并通过提供丰富的后端API支撑了前端和客户端的用户交互;
- 用户交互层:实现了基于网页的前端和基于命令行的客户端,为用户交互提供了丰富且便捷的方式。
实验评估
在论文中,研究团队还构建了各种类型的基础实验场景,评估表格、图像和文本数据上进行规约生成、学件识别和复用的基准算法。
表格数据实验
在各种表格数据集上,团队首先评估了从学件系统中识别和复用与用户任务具有相同特征空间的学件的性能。
而且,由于表格任务通常来自不同的特征空间,研究团队还对来自不同特征空间的学件的识别和复用进行了评估。
同质案例
在同质案例中,PFS数据集中的53个商店充当53个独立用户。
每个商店利用自己的测试数据作为用户任务数据,并采用统一的特征工程方法。这些用户随后可以在基座系统上查搜与其任务具有相同特征空间的同质学件。
当用户没有标注数据或标注数据量有限时,团队对不同的基准算法进行了比较,所有用户的平均损失如下图所示。左表显示,无数据方法比从市场上随机选择和部署一个学件要好得多;右图表明,当用户的训练数据有限时,识别并复用单个或多个学件比用户自训练的模型性能更优。
左表显示,无数据方法比从市场上随机选择和部署一个学件要好得多;右图表明,当用户的训练数据有限时,识别并复用单个或多个学件比用户自训练的模型性能更优。
异构案例
根据市场上学件与用户任务的相似性,异构案例可进一步分为不同的特征工程和不同的任务场景。
不同的特征工程场景:
下图左显示的结果表明,即使用户缺乏标注数据,系统中的学件也能表现出很强的性能,尤其是复用多个学件的AverageEnsemble方法。
不同的任务场景:
上图右显示了用户自训练模型和几种学件复用方法的损失曲线。
很明显,异构学件在用户标注数据量有限的情况下实验验证是有益的,有助于更好地与用户的特征空间进行对齐。
图像和文本数据实验
此外,研究团队在图像数据集上对系统进行了基础的评估。
下图显示,当用户面临标注数据稀缺或仅拥有有限数量的数据(少于 2000 个实例)时,利用学件基座系统可以产生良好的性能。
团队还在基准的文本数据集上对系统进行了基础评估。通过统一的特征提取器进行特征空间对齐。
如下图所示,即使在没有提供标注数据的情况下,通过学件识别和复用所获得的性能也能与系统中最好的学件相媲美。
此外,与从头开始训练模型相比,利用学件基座系统可以减少约2000个样本。