
7个“核武器”库让AI模型训练真正实现“一键完成”于现今机器学习范畴之中, 要是你仍因几十行乃至上百行的自定义fit()循环, 以及数据加载器, 还有繁琐的超参数调优Grid /而得意洋洋, 那你或许并非一名实打实的“代码巫师”, 往多了说, 你仅仅是个“光荣的复制粘贴工”。切实的技术变革, 向来都不是算法自身, 而是那些能够使你越过样板代码, 直接朝着主题进发, 迅速达成产品落地的工具。要是你对花费一周时间去测试十几种模型, 还要手动去调整超参数这种痛苦感到厌烦, 要是你期望将持续数周的模型选择、调优化以及复杂的机器学习运维配置, 精简成为能够执行的一条“单行命令”, 那么紧接着这下要呈现出现的内容会对你表明七个库, 它们乃是数据科学范畴内真正的“生产力核武器”。这些库, 不仅能够协助你, 将那原本自认为没办法实现自动化的流程予以自动化, 还能够使得你, 在团队里最为挑剔的数据科学家跟前, 展现出极为出色的表现, 让人惊艳。准备好了吗让我们深入了解这七个“游戏改变者”篇章一自动化模型选择与深度学习提速与在传统机器学习流程里头, 挑选出一个性能最佳的模型常常是个既要耗费时间又要消耗精力的进程。数据科学家得花上一天时间去清洗数据, 此后还要用一周时间去测试十来种不同的模型, 诸如 、、等, 仅仅是为了找寻到那个所谓的“最优解”。然而对于深度学习来讲, 自行定义、调控复杂的归一化步骤以及组建训练循环, 更是让数不清的工程师烦恼不已。然而有了以下两个库这一切都将成为历史。1. 那个由亚马逊推出的名为“无需选模”的方案, 即TheNo, I Dont Need to Pick a Model , 是这样一种方案。核心价值在于, 能够自动训练, 进行调优, 实现集成, 集成的是最为先进的模型, 并且尤其擅长处理表格数据, 也就是data, 你只要将数据喂给它, 它就会自动返回最佳预测器。这是一个专为表格数据打造的库, 它是由亚马逊推出的, 其秉持的理念是使选用模型这件令人苦恼的事情全然不用让用户操心。对于那些沉醉于“体力劳动”的人而言, 他们或许会热衷手动去比较不同模型的性能然而对于那些一心追求效率以及SOTA即State-of-the-Art, 最新技术水平结果的工程师来讲, 它就如同那列直接通往SOTA的特快列车。背后的“魔法”——堆叠技术因它运用一种称作**“堆叠”**的技术, 所以能常常超越单个模型。在此技术里, 多个各异模型的预测成果会被当作输入, 给到一个层次更高的模型 也就是“堆叠器”, 由这个堆叠器产出最终的、高精度的预报。这等同集成众多模型的才智, 因而达成更高的精确率。单行代码示例核心功能展示假如你所用于训练的数据是在data.csv 文件里面, 而目标那列的名称是label。from autogluon.tabular import TabularPredictor import pandas as pd # 假设 data.csv 包含训练数据label 是目标列 train_data TabularPredictor.Dataset(file_pathdata.csv) # 这一行代码完成了所有工作找到最佳模型、集成它们并返回一个高精度预测器。 predictor TabularPredictor(labellabel).fit(train_data) print(predictor.leaderboard(train_data))应用洞察运用它, 你基本上不用手动去插手特征工程以及模型选择。你只要给其数据, 接着就能去享受咖啡, 等候它自行生成一个在性能排名榜上处于前列位置的预测器具。它把模型选择那长达数周的工作量直接缩减到了一次函数调用之中。2. 省去微积分, 径直抵达深度学习结果, 掠过微积分, 直接到达深度学习成果。关键价值在于, 凭借极为简洁的API达成复杂的深度学习任务, 像是图像、文本的迁移学习, 它去除了编写自定义、处理复杂归一化等深度学习里的众多样板代码。是来自杰里米·霍华德这个人辛勤劳作收获的凝聚, 其定下的设计准则是**把简单的事项予以转变呈现出易于达成的状态, 将复杂的事物变为具备达成得以变成现实的情况”**。就深度学习实行操作做事的人来讲, 差不多相当于具有神奇效果的“魔法”。要是打算在不撰写一行自定义内容, 且不调试任何繁杂归一化步骤的情形下, 借助图像或者文本方面的迁移学习, 那它就是你绝佳之选, 它能够使你在极短时间内筹备好一个可用于生产环境的、经过微调的视觉模型应用场景举例作者以往有一个图像分类项目, 在从一种使用情况切换到另一种之后, 其设置时间从原本的半天大幅缩短到了仅仅五分钟, 虽说最终呈现的模型结构并无差异, 然而却极大程度地解放了工程师的精力。单行代码示例核心功能展示以下代码展示了如何利用模型进行图像分类并进行微调from fastai.vision.all import * # 1. 获取数据例如猫狗图片 path untar_data(URLs.PETS)/images # 2. 数据设置从文件名中获取标签这是唯一需要的“数据设置”代码。 dls ImageDataLoaders.from_name_func( path, get_image_files(path), valid_pct0.2, label_funclambda x: x[0].isupper(), item_tfmsResize(224)) # 3. 这一行完成了模型训练和微调 learn cnn_learner(dls, resnet34, metricserror_rate).fine_tune(1) # 现在你可以用它对新图像进行预测了应用洞察它把深度学习当中复杂的流程予以了高度的封装, 使得工程师能够把注意力集中于模型结果以及业务问题, 而非底层的代码实现, 极大地削减了深度学习的门槛以及部署时间。篇章二智能超参数调优与全流程自动化与超参数属于机器学习模型里的“黑箱”, 手动进行调优或者运用落后的Grid / 方法, 就如同在大海里捞针一般。与此同时, 在传统的-learn工作流当中, 对不同模型予以比较、调优以及部署, 需要数量众多的样板代码。本章所介绍的两个库, 会分别解决这两个让人头疼的问题, 达成真正意义上的智能以及全流程自动化。3. 和网格搜索说再见, 具备智能优化功能的框架The Grid。核心价值: 是一个现代化的超参数优化框架, 它运用TPETree-之类先进技术, 能够智能地对搜索空间展开探索。倘若你依旧运用网格搜索也就是Grid , 或者随机搜索这样一种手段去对超参数进行调优, 那么你的办法已然过时了。这些办法效率相对较低, 而且不能够依据过往表现明智地去调控搜索的方向。以往超参数调优那可是个令人厌烦又不得不为之的苦差事儿, 现在呢, 却一下变成了一场有着观赏价值的各类运动式活动。它借助智能算法, 能在超参数所构成的空间里面, 很有效率地去寻觅最佳的组合, 就是这么回事儿。背后的“魔法”——TPETree- 借助像TPE这般的先进技术, 它属于一种贝叶斯优化方法, TPE借由记录曾尝试过的超参数组合及其结果, 构建出一个概率模型, 随后运用这个模型智能地“提议”下一个将要尝试的超参数组合, 这相较于随机搜索更为高效, 并且比网格搜索更兼具灵活性与快速性。专业提示Pro Tip运用永远会被使用的修剪器, 举例来说。修剪器具备的作用是预先停下那些呈现效果较差或不好的试验。如此做能够防止在肯定会失败的模型上白白耗费珍贵的CPU时间。单行代码示例核心功能展示以下是如何用优化一个SVC支持向量机模型的超参数import optuna from sklearn.model_selection import cross_val_score from sklearn.svm import SVC from sklearn.datasets import load_iris def objective(trial): X, y load_iris(return_X_yTrue) # 定义搜索空间建议超参数即单行定义搜索空间 C trial.suggest_float(C, 1e-4, 1e-2, logTrue) kernel trial.suggest_categorical(kernel, [linear, rbf]) classifier SVC(CC, kernelkernel, gammaauto) return cross_val_score(classifier, X, y, n_jobs-1, cv3).mean() # 这一行启动了智能优化 study optuna.create_study(directionmaximize) study.optimize(objective, n_trials100) print(fBest trial value: {study.best_value})应用洞察它把超参数调优提升至一个更高的智能水准, 在相同时间里, 它可让你探寻更多可能性, 且能以更高效率寻觅到最优解。4. 机器学习, 工作流的那个, 被称作“终结者”的, 是The -Learn。核心价值在于, 把整个机器学习的工作流, 就是设置环节、预处理环节、模型比较环节、调优环节以及部署环节, 抽象成为少数几个看着直观的函数。要是你还在编写那种五行的样板代码, 去用以比较五种各异的分类模型, 那你可就错失了自动化的真实要义, 就仿佛是把一整个的数据科学团队给封装进一个库里面了。其核心价值不单单只是速度存在, 更在于那所谓的“标准化管道”。它将因人为错误所带来的风险给消除掉了——你不会有为忘掉对某个模型去应用关键的预处理步骤而感到烦恼这种情况出现。它用以确保但凡属模型的都处于一个统一的, 标准的流程当中去进行比较以及评估。单行代码示例核心功能展示from pycaret.classification import * import pandas as pd # 加载数据 data pd.read_csv(your_dataset.csv) # 1. 设置Setup自动处理数据归咎、编码、缩放等预处理工作 setup(data, targettarget_column, silentTrue) # 2. 宏大的一行比较在几秒钟内找到最佳模型 best_model compare_models() # 3. 对最佳模型进行调优的单行命令 tuned_best tune_model(best_model)应用洞察能够让数据科学家, 以极快速度完成全程过程, 此全程过程是从数据导入开始, 直至最佳模型筛选以及调优结束。而且它把原本分散于-learn中的步骤, 这些步骤还需要手动进行组装, 整合成为不再分散、可靠且流程不再不流畅的自动化流程。篇章三实验追踪、前沿AI与时间序列预测、 Face与要是模型训练状况极优, 倘若不能把实验去复现, 不能将最新AI技术给运用, 不能对复杂预测任务高效做处理, 那么这般工作流程就是不完整的。本章所介绍的最后那三个库, 会分别针对MLOps、前沿AI应用以及专业预测的自动化问题予以解决。5. 不要再有那种如同在餐巾纸上随意打草稿般的实验管理方式停下来, 停止这样做。核心价值: 那是一种MLOps工具, 它属于最容易上手的类别, 专门用来跟踪你的实验运行情况, 也就是runs, 还有参数, 以及结果, 是这样的。我们都有过这样经历, 数月前跑的一个模型成绩特好, 可如今却记不得那时用的啥数据分割、啥随机种子, 还有诸多别的十几个关键参数。有着能够帮助你系统地记录你的机器学习实验的作用, 当你的老板要求你重现上个季节那个“很棒”的模型、你会感激不尽这种效果的, 是每个开发者都应该使用的“最小MLOps工具”。专业提示Pro Tip于终端之中运行ui命令, 如此便会得到一个交互式的Web界面, 这个界面会展示出所有的运行历史, 进而能让使用者可以即时去比较不同的模型、参数以及结果。单行代码示例核心功能展示import mlflow from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris # 初始化一个新的MLFlow运行 with mlflow.start_run(): X, y load_iris(return_X_yTrue) n_estimators 100 # 1. 记录参数Setup mlflow.log_param(n_estimators, n_estimators) # 2. 训练模型 model RandomForestClassifier(n_estimatorsn_estimators, random_state42) model.fit(X, y) # 3. 记录指标Result mlflow.log_metric(accuracy, model.score(X, y)) # 4. 记录模型制品Artifact最终产品 mlflow.sklearn.log_model(model, random_forest_model)应用洞察把无序记录的实验进程, 转变成具备结构化、能够复现、可以追踪之特性的管理系统, 并且它还是个人项目迈向团队协作, 接着再到生产环境部署时不可或缺的基础工具。6. Face , 是那种零样板代码涵盖的工具箱 所标识的主题是 The Zero-。核心价值: 函数是NLP自然语言处理、计算机视觉以及音频任务的终极“瑞士军刀”, 它把预训练的、最先进的模型, 封装成为一个单行命令。亲手手动去加载分词器, 还要加载模型配置model, 之后把张量传递给管道, 以此来进行简单预测, 这样的日子已经成为过去式了。Face的函数使得一切都变得简便起来。借助它, 仅需一行代码, 便可运行前沿高级的AI研究成果, 其复杂程度跟调用print()函数是一样的。数据洞察等到2024年的时候, Face Hub上面所托管着的模型数量, 已经是超出了500,000个, 而这个数量甚至是比从AI/ML这个领域开始诞生一直到现在所发表出来的论文的总数还要多, 这可是一个特别巨大的如同能轻易获取的装满各种工具的箱子似的存在。单行代码示例核心功能展示以下是如何利用它进行情感分析 from transformers import pipeline # 加载所需的任务和模型默认使用强大的预训练模型 # 这一步你指定了想要完成的任务。 classifier pipeline(sentiment-analysis) # 这一行完成了单行预测 result classifier(This article on Python automation is absolutely brilliant and game-changing.) # 输出: [{label: POSITIVE, score: 0.9998...}] print(result)应用洞察极大地缩短前沿AI技术从研究到应用那本就不算长的距离的是Face , 它把让复杂模型的使用轻松得如同调用一个标准函数一般这件事做到了, 它可是利用现有SOTA模型来开展快速原型开发以及进行生产部署时的首选工具。7. 时间序列预测的“先知”The Time 关键价值所在: 是将深度学习予以结合的, 具备着友好API的时间序列预测库, 还会自动去处理像是季节性、假日以及滞后变量等这类复杂的特征工程。为季节性、假日以及滞后变量进行复杂的特征工程, 这一直是时间序列预测里特别棘手的难题, 它通常都需要这么做。尽管原始库已经算是一个可靠的开始点, 然而它的下一步发展变化, 同时集成了深度学习能力, 并且还保持着简易的API。这是你在倒一杯咖啡的时间内就能预测公司营收的方法。数据要求时间序列数据必须包含两列ds日期和y值。单行代码示例核心功能展示from neuralprophet import NeuralProphet import pandas as pd # 加载时间序列数据 data pd.read_csv(time_series_data.csv) # 1. 模型初始化默认包含深度学习组件 m NeuralProphet() # 2. 简单的拟合训练 metrics m.fit(data, freqD) # 3. 单行预测 future m.make_future_dataframe(data, periods30) forecast m.predict(future) print(forecast[[ds, yhat1]].tail())应用洞察把时间序列预测里最难的部分, 也就是特征工程和模型选择, 施行了自动化, 使得用户可以专心于对结果的阐释以及业务决策, 并非是复杂的底层实现。结论停止编码开始导入——成为真正的代码巫师你身为一名工程师, 其存在的价值在于去解决问题, 并非是为“模型是什么”撰写冗长的定义。要是你把宝贵的认知资源浪费在编写那些已被解决过上千次的样板代码那里, 那么你就严重低估了, 这个终极自动化工具的真正能力。这七个库, 并非仅仅只是“捷径”, 它们乃是学术界历经多年研究所得成果的精华所在, 同时也是工业界众多研究成果的精华部分, 并且已然被提炼成为了一番极为精简的API。把它们抱在怀里, 着手把模型训练当作其理应呈现的状貌, 那便是一个单行命令句号。假使借由掌控这些自动化工具, 那么你便会拥有能够将过去数周所开展的工作, 压缩至仅仅几分钟的能力, 这样一来从而能够让自己致力于精力更加集中在更具价值的创新以及业务问题之上。赶紧去成为你命中注定要成为的那个“代码巫师”吧(文章总字数约 2750字)