技术标签: 机器学习 深度学习 人工智能 云上探索实验室 数据挖掘
伴随着ChatGPT的大火,很多人也逐渐认识到人工智能正在逐步由底层建筑上升到交互服务,其实在没有兴起ChatGPT时,人工智能技术就已经发展的比较成熟了。像是现在机器学习以及深度学习都已经普及在各大高校社区了,而且市场上已经有非常多的目标识别、图像检测等计算机视觉落地项目,可以说这是人工智能发展最为迅速的十年,受到ChatGPT的冲击,将来人工智能的速度只会只增不减。
尽管人工智能技术已经比较成熟,但机器学习服务的落地仍然存在一些限制,如数据安全性、模型可解释性、部署成本等问题。为了摆脱这些限制,人工智能从底层建筑到交互服务的转变是必然的。随着ChatGPT等技术的出现,人工智能正在逐步实现智能交互,使得机器学习服务得以更加灵活、高效、安全地落地。在这个过程中,需要采用新的技术和方法,如联邦学习、深度强化学习、解释性机器学习等,以解决当前机器学习服务落地面临的问题,并推动人工智能技术更快地发展和普及。
当然以上这些处理方法,并没有字面上写的那样简单就能实现,完完整整落地一个机器学习的项目比我们想的要困难得多,而且我们若想持久保持模型迭代以及保证模型准确性的稳定性和灵活性,代价就会很高。倘若我们必须要快速落地一个机器学习人工智能项目,我们要了解现需要面对什么样的限制以及困境,以及如何应对它们。
最近受邀参与了亚马逊云科技【云上探索实验室】活动,利用基于Amazon SageMaker完全托管的机器学习服务高效的完成一次机器学习服务部署-贷款违约数据训练 XGBoost 二进制分类模型,在Amazon SageMaker上实验进行的非常顺利且该平台功能俱全便捷,训练迭代模型也十分快捷,适用场景广泛,很值得机器学习工程师一用。https://dev.amazoncloud.cn/experience?trk=cndc-detail&sc_medium=corecontent&sc_campaign=product&sc_channel=csdn
一般来说完成机器学习服务部署需要遵循以下几个步骤,以确保高效优雅地完成:
那么就以上述基础服务部署流程来看,有五点是必须也是容易注意到的问题:
数据安全性问题是机器学习服务落地的一个重要限制。数据作为机器学习模型的基石,模型的质量和效果往往直接受数据质量和数量的影响。同时,由于很多数据涉及到个人隐私和商业机密等敏感信息,因此,数据的安全性就显得尤为重要。
解决数据安全性问题的方法有以下几种:
模型可解释性问题是指在机器学习模型的应用过程中,用户或客户无法理解或解释模型的决策过程和结果,从而降低了模型的可信度和可接受性。
解决模型可解释性问题的方法有以下几种:
部署成本问题是指在机器学习模型的部署过程中,需要投入大量的时间和资源来完成部署,从而增加了部署的成本和难度。
解决部署成本问题的方法有以下几种:
数据样本的不均衡问题是指在机器学习训练数据中,不同类别的数据样本数量不平衡,导致机器学习模型在预测时对于少数类别的数据表现较差的问题。
解决数据样本不均衡问题的方法有以下几种:
模型漂移问题指的是当训练好的机器学习模型在应用阶段的数据分布发生变化时,模型的预测性能下降的问题。这种情况下,模型需要不断地进行更新和重新训练,以保证其在新的数据分布上的预测性能。
解决模型漂移问题的方法有以下几种:
那么就现在来说,我们了解了一般的机器学习服务搭建流程,也清楚了我们将会面临什么样的困难,当然也知晓了对于这些困难我们可以用何种方法去应对它们,但是要是在短期内快速启动机器学习服务还是相当困难,于是如何探索能够解决上述问题以及能够实现一站式开发的平台成为了快速搭建机器学习服务的首要问题。
那么一个高可用机器学习服务部署平台,需要以下几种特质:
其实市面上已经有比较成熟的机器学习平台了,那么我们就根据Amazon SageMaker平台来探索机器学习服务应该如何落地。
Amazon SageMaker是亚马逊AWS提供的一项机器学习服务,它提供了一整套完整的机器学习流程,包括数据预处理、模型构建、训练、调优、部署等一系列功能。通过Amazon SageMaker,开发人员和数据科学家可以更轻松地构建、训练和部署机器学习模型,并快速将其应用于生产环境中。
Amazon SageMaker还具有自动模型调整功能,它可以通过自动调整超参数,最大限度地提高模型的准确性。此外,SageMaker还提供了与其他AWS服务集成的功能,如Amazon S3、Amazon Athena、Amazon Redshift和AWS Lambda,从而为用户提供完整的数据处理和存储解决方案。
Amazon SageMaker 的工作原理其工作原理可以概括为以下几个步骤:
以金融风控中的个人信贷为背景,根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题。
XGBoost在各种数据挖掘、预测和分类任务中取得了极高的准确率和性能。是目前应用最广泛的机器学习算法之一。可以说,XGBoost的快速发展和广泛应用,推动了机器学习算法的进一步发展和优化,为人工智能技术的普及和应用打下了坚实的基础。
XGBoost的全程为eXtreme Gradient Boosting,即极度梯度提升树。
XGBoost本质上仍然属于GBDT算法,但在算法精度、速度和泛化能力上均要优于传统的GBDT算法。
从算法速度上来看,XGBoost使用了加权分位树sketch和稀疏感知算法这两个技巧,通过缓存优化和模型并行来提高算法速度;从算法泛化能力上来看,通过对损失函数加入正则化项、加性模型中设置缩减率和列抽样等方法,来防止模型过拟合。XGBoost根据结构分数的增益情况计算出来选择哪个特征作为 分割点,而某个特征的重要性就是它在所有树中出现的次数之和。 也就是说一个属性越多的被用来在模型中构建决策树,它的重要性就相对越高。那么我们就用贷款违约数据训练 XGBoost 二进制分类模型来实现对贷款违约的预测。
Amazon SageMaker内置算法对于XGBoost的支持非常好,可以直接通过Amazon SageMaker的参数来设置所有的XGBoost的超参。
那么我们选定超参数(非最优):
hyperparameters = {'alpha': 0.0,
'colsample_bylevel': 0.4083530569296091,
'colsample_bytree': 0.8040025839325579,
'eta': 0.11764087266272522,
'gamma': 0.43319156621549954,
'lambda': 37.547406128070286,
'max_delta_step': 10,
'max_depth': 6,
'min_child_weight': 5.076838893848415,
'num_round': 100, # Not tuned: kept fixed
'subsample': 0.8915771964367318,
'num_class': 10, # Not tuned: defined by Fashion MNIST
'objective': 'multi:softmax' # Not tuned: defined by Fashion MNIST
}
使用Amazon SageMaker内置的算法我们基本不会自己实现算法代码,而只是通过调用Amazon SageMaker的SDK或者API来实现模型训练,因此数据的读取逻辑完全是由内置算法本身来实现的。Amazon SageMaker内有封装好ShardByS3Key数据集分片。
分片的数量至少要大于或等于将来要运行实例的数量,我们要使用ShardByS3Key是S3前缀做Shard的方式对数据集进行切片并分配给不同的训练实例使用。使用SageMaker ShardByS3Key的方式进行数据集切片实际在API调用时比较简单,加入一个参数 distribution='ShardedByS3Key’即可:
train_input = TrainingInput(train_url, content_type=content_type, distribution='ShardedByS3Key')
使用SageMaker中内置算法实现分布式训练很容易:
data = pd.read_csv("贷款数据.csv")
# construct a SageMaker estimator that calls the xgboost-container
estimator = sagemaker.estimator.Estimator(image_uri=xgboost_container,
hyperparameters=hyperparameters,
role=sagemaker.get_execution_role(),
instance_count=2,
instance_type='ml.m5.xlarge',
volume_size=5, # 5 GB
output_path=output_path)
# execute the XGBoost training job
estimator.fit({'train': data, 'validation': validation_input})
可以通过混淆矩阵和准确率、召回率和F1值来进行判断:
最后一定要记得清理资源,以免产生意外费用。
在Amazon SageMaker使用贷款违约数据训练XGBoost 二进制分类模型的过程可以总结为以下步骤:
通过使用Amazon SageMaker,用户可以更加高效地完成机器学习模型的训练、部署和管理,大大降低了机器学习应用的开发和维护成本,同时提高了模型的可用性和性能。
从上述实践可以看出,Amazon SageMaker提供了一个非常强大的机器学习平台,可以帮助我们快速构建、训练和部署机器学习模型。使用Amazon SageMaker时,我们可以使用多种常用机器学习框架,包括TensorFlow、PyTorch和Scikit-Learn等,同时也支持自定义算法。
在这个实践中,我们使用了贷款违约数据,训练了一个XGBoost二进制分类模型,并使用Amazon SageMaker的批量推理功能,批量处理了测试数据并得出了预测结果。整个过程相对来说比较简单,尤其是使用SageMaker Studio提供的Notebook和Autopilot功能,能够让我们快速构建和训练模型。
r时,我们可以使用多种常用机器学习框架,包括TensorFlow、PyTorch和Scikit-Learn等,同时也支持自定义算法。
在这个实践中,我们使用了贷款违约数据,训练了一个XGBoost二进制分类模型,并使用Amazon SageMaker的批量推理功能,批量处理了测试数据并得出了预测结果。整个过程相对来说比较简单,尤其是使用SageMaker Studio提供的Notebook和Autopilot功能,能够让我们快速构建和训练模型。
总之,Amazon SageMaker是一个非常强大和灵活的机器学习平台,能够帮助我们快速构建、训练和部署机器学习模型,同时也需要我们在使用过程中注意一些问题,保障数据安全和合理使用。
文章浏览阅读1k次。添加一行,并用AJAX提交数据。 function submitForm() { var name = $("#name").val(); var description = $("#description").val(); var url = $("#url").val(); $.ajax({ url: '/admin/ops', type:_var row = btn.parentnode.parentnode; row.parentnode.removechild(row);
文章浏览阅读196次。ol:有序列表标签属性值描述type1,A,a,I,i规定列表顺序类型reversed (HTML5新加)reversed列表倒叙startnumberHTML5不支持,规定列表起始<ol type="A/a/I,i">ul:无序列表标签属性值描述typedisc,square,circle规定列表顺..._列表标签的属性
文章浏览阅读332次。[meng@localhost ffmpeg-4.3.2]$ ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Help options: --help print this message --quiet Suppress showing informative output --_ffmpeg g722
文章浏览阅读2.6k次,点赞4次,收藏22次。GUI 就是图形用户界面的意思,在 Python 中使用 PyQt 可以快速搭建自己的应用,使得自己的程序看上去更加高大上,学会 GUI 编程可以使得自己的软件有可视化的结果,更方便地参加 “互联网+”或其他创新创业大赛。目 录1 安装PyQt 与QtDesigner2 添加GUI 到 PyCharm3 界面设计测试小程序1 安装PyQt 与QtDesigner如果你想用 Python 快速制作界面,可以安装 PyQt:pip install pyQt5 -ih..._pygui
文章浏览阅读999次,点赞2次,收藏6次。面向对象最初级程序设计思维:设计过程与抽象过程,(类是对象的模板与抽象,是具有相同属性和方法的一组对象的集 合,对象是类的实体,由属性与行为共同组成一个具体的实体。) 类与对象的关系:类是对象抽象,对象是类的实例化实体。 使用类图理解类的关系 面向对象三大特性应用:1、封装 ;2、继承;3、多态;是程序设计更符合人思考的方式。 封装:{维护数据安全性将属性私有化(以包机制,与private..._吃货(多实例测试)
文章浏览阅读212次。Camstar_camstar
文章浏览阅读71次。摘要:之前在项目中解决了插入字符串类型的数据,今天试着写了一个插入date类型的字段,成功了,现在记录一下,以便以后查看:一:首先建立一个根据xml节点名称获取对应的xml值的Function.sql:CREATE OR REPLACE FUNCTION MIP.GetXmlNodeValue (xmlStr CLOB, nodeName VARCHAR2) RETURN VAR..._oracle sql 触发器中对date类型的字段的处理
文章浏览阅读1.1w次,点赞7次,收藏48次。KCF简介KCF是一种鉴别式追踪方法,这类方法一般都是在追踪过程中训练一个目标检测器,使用目标检测器去检测下一帧预测位置是否是目标,然后再使用新检测结果去更新训练集进而更新目标检测器。而在训练目标检测器时一般选取目标区域为正样本,目标的周围区域为负样本,当然越靠近目标的区域为正样本的可能性越大。简单来说 KCF 是 核相关滤波算法,滤波器 和 跟踪patch 进行相乘的到相关性,对应位置较..._kcf 目标检测
文章浏览阅读4.7k次。a100mov ax,ffff;把双字长数的低字放到AX中mov dx,ffff;把双字长数的高字放到DX中test dx,8000;测试双字长数的符号jz 0113;如果是非负数,则直接保存neg dx;如果是负数,则求补neg ax;求补sbb dx,0int 3g=073f:0100 0113运行附图如下:..._汇编语言求双字长数的绝对值
文章浏览阅读222次。根据项目https://github.com/thecodemonkey86/qt_mysql_driver翻译Get precompiled qsqlmysql.dll from releases获取编译后的qsqlmysql.dll 链接不是很懂这两个有什么区别之后put qsqlmysql.dll (if release build) / qsqlmysqld.dll (if debug build, but note that when using MinGW 8.1.0 the d_qsmqldriver
文章浏览阅读1.4w次,点赞61次,收藏333次。足足准备了长达3个月的面试,终于在上周拿到了阿里的offer!博主汇总整理了一份我面试之前看的一些Java面试题目,可以说是非常详细!分享给大家,希望对正在面试Java岗位的朋友有帮助哈~~(文末附参考答案)Java基础相关面试题目:JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什么作用? java 中的 Math.round(-1.5)
文章浏览阅读2k次。一.什么是ip-sanip-san也就是SAN(全称Storage Area Network,存储局域网络),它的诞生,使存储空间得到更加充分的利用,并使得安装和管理更加有效。SAN是一种将存储设备、连接设备和接口集成在一个高速网络中的技术。SAN本身就是一个存储网络,承担了数据存储任务,SAN网络与LAN业务网络相隔离,存储数据流不会占用业务网络带宽。在SAN网络中,所有的数据传输在高速、..._ipsan搭建