AI平台-MLJ【机器学习框架】

简介: MLJ:超越传统Pipeline的灵活模型组合

1. 背景介绍

1.1简介

Julia新推出了一个超高纯度的机器学习框架MLJ,团队希望把MLJ打造成一个灵活的、用于组合和调整机器学习模型、具备高性能、快速开发的框架。Julia团队之所以推出MLJ,部分原因也是受到MLR的影响。

1.2开源地址

Github地址

2. MLJ特性

image

2.1 MLJ特性:

Learning networks:超越传统Pipeline的灵活模型组合

  • 自动调参。自动调整超参数,包括复合模型。调整实现为与其他元算法组合的模型包装器
  • 同质模型集成
  • 模型元数据的注册表。无需加载模型代码元数据即可用。“任务”界面的基础并促进模型组合
  • 任务界面。自动将模型与指定的学习任务相匹配,以简化基准测试和模型选择
  • 清爽的概率接口。改进了对贝叶斯统计和概率图形模型的支持
  • 数据容器不可知。以用户自己喜欢的Tables.jl格式显示和操作数据
  • 普遍采用分类数据类型。使模型实现能够正确地考虑训练中看到的类而不是评估中的类
注:团队还计划在不久的将来继续增强特性,包括Flux.jl深度学习模型的集成,以及使用自动微分的连续超参数的梯度下降调整。

2.2 MLJ优势,对比ScikitLearn.jl

scikit-learn是一个非常强大的机器学习Python库,基本包含了所有机器学习的方式,涵盖了数据预处理到训练模型的各个方面,可以极大的节省代码量。Julia已经有了一个很棒的机器学习工具箱ScitkitLearn.jl,为Julia用户提供了对成熟且庞大的机器学习模型库的访问,那为什么我要抛弃ScitkitLearn.jl用MLJ呢?
1. MLJ纯
ScitkitLearn.jl最初是用作流行的python库scikit-learn的Julia包装器,对要求性能的例程又封装了C代码元算法仍然是python代码,纯度太低,而MLJ则完全用Julia实现,速度可以与C媲美。
同时,这种单一语言的设计提供了卓越的互操作性。例如,可以使用自动微分库(例如Flux.jl)实现:(i)超参数的梯度下降调整; (ii)使用CuArrays.jl,GPU性能提升而无需重大代码重构。
2. 模型元数据的注册表
在ScikitLearn.jl中,必须从文档中收集可用模型的列表,以及模型元数据(模型是否处理分类输入,是否可以进行概率预测等)。在MLJ中,这些信息更加结构化,MLJ可通过外部模型注册表访问(无需加载模型)。这形成了“任务”界面的基础,并促进了模型组合。
3. 任务界面
一旦MLJ用户指定“任务”(例如,“基于特征x,y,z进行房屋价值的概率预测”),MLJ就可以自动搜索、匹配该任务的模型,从而协助系统基准测试和模型选择。
4. 灵活的API
scikit-learn中的Pipeline更像是一种亡羊补牢的做法。相比之下,MLJ的用户交互API基于灵活的“learning network”API的要求,该API允许模型以基本上任意的方式连接(包括目标变换和逆变换)。在作为独立模型导出之前,可以分阶段构建和测试网络。
网络具有“智能”训练,即在参数更改后仅重新训练必要的组件;并且最终将使用DAG调度程序进行训练。在Julia的元编程功能的帮助下,构建通用架构(如线性pipeline和堆栈)将是单线操作。
5. 清爽的概率API
scikit-learn API没有为概率预测的形式指定通用标准。通过沿着skpro项目的路线修复概率API,MLJ旨在改进对贝叶斯统计和概率图形模型的支持。
6. 普遍采用分类数据类型
Python的科学数组库NumPy没有用于表示分类数据的专用数据类型,即没有跟踪所有可能类的池的类型。scikit-learn模型的解决之道是将数据重新标记为整数。
Julia团队宣称当用户在重新标记的分类数据上训练模型之后,由于分类特征出现了在训练中未观察到的值,导致代码崩溃。而MLJ则通过坚持使用分类数据类型,并坚持MLJ模型实现保留类池来缓解此类问题。例如,如果训练目标包含池中实际上不出现在训练集中的类,则概率预测将预测其支持包括缺失类但但是以概率零适当加权的分布。

3. MLJ资源

  1. Github地址:https://github.com/alan-turing-institute/MLJ.jl
  2. 视频介绍:https://www.youtube.com/watch?v=CfHkjNmj1eE
  3. Demo-构建一个自动调参的随机森林:https://github.com/alan-turing-institute/MLJ.jl/blob/master/examples/random_forest.ipynb
  4. dacker镜像:https://github.com/ysimillides/mlj-docker
目录
相关文章
|
16天前
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
|
1月前
|
存储 人工智能 大数据
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
|
3天前
|
人工智能 物联网 开发者
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型的综合性平台
Oumi 是一个完全开源的 AI 平台,支持从 1000 万到 4050 亿参数的模型训练,涵盖文本和多模态模型,提供零样板代码开发体验。
115 43
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型的综合性平台
|
2天前
|
人工智能 自然语言处理 搜索推荐
浙大通义联手推出慢思考长文本生成框架OmniThink,让AI写作突破知识边界
随着大模型(LLMs)的发展,AI 写作取得了较大进展。然而,现有的方法大多依赖检索知识增强生成(RAG)和角色扮演等技术,其在信息的深度挖掘方面仍存在不足,较难突破已有知识边界,导致生成的内容缺乏深度和原创性。
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
Agent Laboratory:AI自动撰写论文,AMD开源自动完成科研全流程的多智能体框架
Agent Laboratory 是由 AMD 和约翰·霍普金斯大学联合推出的自主科研框架,基于大型语言模型,能够加速科学发现、降低成本并提高研究质量。
209 23
Agent Laboratory:AI自动撰写论文,AMD开源自动完成科研全流程的多智能体框架
|
16天前
|
存储 人工智能 自然语言处理
OmniThink:浙大联合阿里通义开源 AI 写作框架,基于深度思考扩展知识边界,实时展示思考过程
OmniThink 是浙江大学与阿里通义实验室联合开发的机器写作框架,通过模拟人类迭代扩展和反思过程,生成高质量长篇文章,显著提升知识密度和内容深度。
142 12
OmniThink:浙大联合阿里通义开源 AI 写作框架,基于深度思考扩展知识边界,实时展示思考过程
|
23天前
|
人工智能 开发框架 自然语言处理
Eko:一句话就能快速构建复杂工作流的 AI 代理开发框架!快速实现自动操作电脑和浏览器完成任务
Eko 是 Fellou AI 推出的开源 AI 代理开发框架,支持自然语言驱动,帮助开发者快速构建从简单指令到复杂工作流的智能代理。
244 12
Eko:一句话就能快速构建复杂工作流的 AI 代理开发框架!快速实现自动操作电脑和浏览器完成任务
|
29天前
|
人工智能
RealisHuman:AI 生成的人像不真实?后处理框架帮你修复生成图像中畸形人体部位
RealisHuman 是一个创新的后处理框架,专注于修复生成图像中畸形的人体部位,如手和脸,通过两阶段方法提升图像的真实性。
76 11
RealisHuman:AI 生成的人像不真实?后处理框架帮你修复生成图像中畸形人体部位
|
1月前
|
人工智能 运维 Prometheus
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
AIOpsLab 是微软等机构推出的开源框架,支持云服务自动化运维,涵盖故障检测、根本原因分析等完整生命周期。
118 13
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
|
11天前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
90 9