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
目录
相关文章
|
11天前
|
人工智能 数据可视化 JavaScript
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
NodeTool 是一个开源的 AI 工作流可视化构建器,通过拖放节点的方式设计复杂的工作流,无需编码即可快速原型设计和测试。它支持本地 GPU 运行 AI 模型,并与 Hugging Face、OpenAI 等平台集成,提供模型访问能力。
78 14
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
|
7天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
66 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
DiffSensei:AI 漫画生成框架,能生成内容可控的黑白漫画面板,支持多角色和布局控制
DiffSensei 是一个由北京大学、上海AI实验室及南洋理工大学共同推出的AI漫画生成框架,能够生成可控的黑白漫画面板。该框架整合了基于扩散的图像生成器和多模态大型语言模型(MLLM),支持多角色控制和精确布局控制,适用于漫画创作、个性化内容生成等多个领域。
79 18
DiffSensei:AI 漫画生成框架,能生成内容可控的黑白漫画面板,支持多角色和布局控制
|
3天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
61 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
12天前
|
机器学习/深度学习 人工智能
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
Leffa 是 Meta 开源的图像生成框架,通过引入流场学习在注意力机制中精确控制人物的外观和姿势。该框架不增加额外参数和推理成本,适用于多种扩散模型,展现了良好的模型无关性和泛化能力。
56 11
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
|
17天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
110 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
18天前
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
48 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
|
18天前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
76 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
20天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
62 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
23天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
55 9
【AI系统】AI 框架基础介绍