Learnware-LAMDA项目中的Learnware模型复用指南
什么是Learnware复用
在Learnware-LAMDA项目中,Learnware复用是指利用已部署的预训练模型(称为learnware)来解决新任务的过程。这些learnware模型经过精心设计和训练,可以被不同用户在不同场景下重复使用,无需从头开始训练模型,从而显著提高机器学习应用的开发效率。
复用方法分类
Learnware复用方法主要分为两大类:
- 无数据依赖的复用方法:直接使用learnware进行预测,不需要额外标注数据
- 数据依赖的复用方法:利用少量标注数据对learnware进行适配后再使用
同构模型复用
同构模型复用是指learnware与用户任务的输入输出空间完全匹配的情况下的复用方式。
基础复用方法
最简单的复用方式是直接使用单个learnware进行预测:
# learnware是搜索结果中的单个learnware
# test_x是用户需要预测的数据
predict_y = learnware.predict(user_data=test_x)
无数据依赖复用方法
JobSelector复用
JobSelector通过训练一个"任务选择器"分类器,为不同数据选择不同的learnware:
from learnware.reuse import JobSelectorReuser
reuse_job_selector = JobSelectorReuser(learnware_list=learnware_list)
predict_y = reuse_job_selector.predict(user_data=test_x)
平均集成复用
AveragingReuser使用集成方法进行预测,支持多种集成模式:
from learnware.reuse import AveragingReuser
# 回归任务使用"mean"模式:平均learnware输出
# 分类任务可选:
# - "vote_by_label":对learnware输出标签进行多数投票
# - "vote_by_prob":对learnware输出概率进行多数投票
reuse_ensemble = AveragingReuser(learnware_list=learnware_list, mode="vote_by_label")
ensemble_predict_y = reuse_ensemble.predict(user_data=test_x)
数据依赖复用方法
当用户有少量标注数据时,可以使用以下方法:
集成剪枝复用
EnsemblePruningReuser使用多目标进化算法选择适合的learnware子集:
from learnware.reuse import EnsemblePruningReuser
reuse_ensemble_pruning = EnsemblePruningReuser(
learnware_list=learnware_list, mode="regression"
)
reuse_ensemble_pruning.fit(val_X, val_y) # (val_X, val_y)是少量标注数据
predict_y = reuse_job_selector.predict(user_data=test_x)
特征增强复用
FeatureAugmentReuser通过特征增强辅助复用learnware:
from learnware.reuse import FeatureAugmentReuser
reuse_feature_augment = FeatureAugmentReuser(
learnware_list=learnware_list, mode="regression"
)
reuse_feature_augment.fit(val_X, val_y)
predict_y = reuse_feature_augment.predict(user_data=test_x)
异构模型复用
当learnware与用户任务的输入输出空间不匹配时,需要进行异构复用。Learnware-LAMDA提供了HeteroMapAlignLearnware来处理这种情况。
异构模型对齐
from learnware.reuse import HeteroMapAlignLearnware
hetero_learnware = HeteroMapAlignLearnware(learnware=leanrware, mode="regression")
hetero_learnware.align(user_spec, val_x, val_y) # 使用用户规格和标注数据进行对齐
predict_y = hetero_learnware.predict(user_data=test_x)
多异构模型复用
可以结合同构复用方法使用多个异构learnware:
hetero_learnware_list = []
for learnware in learnware_list:
hetero_learnware = HeteroMapAlignLearnware(learnware, mode="regression")
hetero_learnware.align(user_spec, val_x, val_y)
hetero_learnware_list.append(hetero_learnware)
# 使用AveragingReuser
reuse_ensemble = AveragingReuser(learnware_list=hetero_learnware_list, mode="mean")
ensemble_predict_y = reuse_ensemble.predict(user_data=test_x)
# 使用EnsemblePruningReuser
reuse_ensemble = EnsemblePruningReuser(
learnware_list=hetero_learnware_list, mode="regression"
)
reuse_ensemble.fit(val_x, val_y)
ensemble_pruning_predict_y = reuse_ensemble.predict(user_data=test_x)
使用模型容器运行Learnware
Learnware-LAMDA提供了Model Container来为learnware构建执行环境:
from learnware.learnware import Learnware
with LearnwaresContainer(learnware, mode="conda") as env_container:
learnware = env_container.get_learnwares_with_container()[0]
print(learnware.predict(test_x))
容器模式有两种选择:
- conda模式:为每个learnware安装独立的conda虚拟环境(执行后自动删除)
- docker模式:在Docker容器内安装conda虚拟环境(执行后自动销毁),需要Docker权限
安全提示:如果不能保证learnware的安全性,建议使用docker模式以确保系统安全。
总结
Learnware-LAMDA项目提供了丰富的learnware复用方法,从简单的直接预测到复杂的异构模型对齐,再到安全的环境容器化执行,能够满足各种机器学习模型复用场景的需求。开发者可以根据具体任务特点和数据可用性,选择最适合的复用策略。
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00- DDeepSeek-OCR暂无简介Python00
openPangu-Ultra-MoE-718B-V1.1昇腾原生的开源盘古 Ultra-MoE-718B-V1.1 语言模型Python00
HunyuanWorld-Mirror混元3D世界重建模型,支持多模态先验注入和多任务统一输出Python00
AI内容魔方AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。03
Spark-Scilit-X1-13BFLYTEK Spark Scilit-X1-13B is based on the latest generation of iFLYTEK Foundation Model, and has been trained on multiple core tasks derived from scientific literature. As a large language model tailored for academic research scenarios, it has shown excellent performance in Paper Assisted Reading, Academic Translation, English Polishing, and Review Generation, aiming to provide efficient and accurate intelligent assistance for researchers, faculty members, and students.Python00
GOT-OCR-2.0-hf阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile013
Spark-Chemistry-X1-13B科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00