AI模型是如何训练的?训练一个模型花费多大?
电子发烧友网报道(文/李弯弯)在深度学习中,经常听到一个词模型训练,但是模型是什么?又是怎么训练的?在人工智能中,面对大量的数据,要在杂乱无章的内容中,准确、容易地识别,输出需要的图像/语音,并不容易。因此算法显得尤为重要。算法也就是模型。
算法的内容,除了核心识别引擎,也包括各种配置参数,如:语音智能识别的比特率、采样率、音色、音调、音高、音频、抑扬顿挫、方言、噪音等。成熟的识别引擎,核心内容一般不会经常变化。为实现识别成功这一目标,就只能对配置参数做调整。
对不同输入,我们会配置不同参数值,最后在结果统计取一个各方比较均衡、识别率较高的一组参数值,这组参数值,就是训练后得到的结果,这就是训练的过程,也叫模型训练。
如何训练一个AI模型?
训练模型需要用到AI框架,比如MindSpore。具体如何训练一个AI模型呢?昇思MindSpore此前发布一个详细的案例,训练的模型是用来对手写数字图片进行分类的LeNet5模型。MindSpore是华为推出全场景AI计算框架,2020年3月28日宣布MindSpore正式开源。
首先是安装MindSpore,MindSpore提供给用户使用的是Python接口。安装的时候,选择合适的版本、硬件平台、操作系统、编程语言、安装方式。其次是定义模型,安装好之后,就可以导入MindSpore提供的算子(卷积、全连接、池化等函数)来构建模型了。构建一个AI模型就像建一个房子,MindSpore提供的算子就像是砖块、窗户、地板等基本组件。
接下来是导入训练数据集,什么是训练数据集呢,刚刚定义好的模型是不能对图片进行正确分类的,要通过训练过程来调整模型的参数矩阵的值。训练过程就需要用到训练样本,也就是打上了正确标签的图片。这就好比教小孩儿认识动物,需要拿几张图片给他们看,告诉他们这是什么,教了几遍之后,小孩儿就能认识了。
那么这里训练LeNet5模型就需要用到MNIST数据集。这个数据集由两部分组成:训练集(6万张图片)和测试集(1万张图片),都是0~9的黑白手写数字图片。训练集是用来训练AI模型的,测试集是用来测试训练后的模型分类准确率的。
再接下来就是训练模型,训练数据集和模型定义完成后,就可以开始训练模型了。在训练之前,还需要从MindSpore导入两个函数:损失函数,就是衡量预测结果和真实标签之间的差距的函数;优化器,用来求解损失函数关于模型参数的更新梯度的。准备好之后,开始训练,把前面定义好的模型、损失函数、优化器封装成一个Model,使用model.train接口就可以训练LeNet5模型了。最后就是测试训练后的模型准确率。
训练AI模型花费大
当然,模型训练需要强大的算力支撑,尤其是参数量大的模型,花费极大。
比如OpenAI的语言模型GPT-3,这是一个大型的、数学模拟的神经网络,从网络上抓取大量文本进行训练后,GPT-3可以以惊人的连贯性预测哪些词应该填在其他词前后,生成流畅的文本。据估计,训练GPT-3的成本接近500万美元。
一些小企业想要训练一个参数较大的算法,往往比较苦难。健康IT公司Optum的一位领导此前表示,他们团队使用语言模型来分析通话记录,识别哪些患者风险较高,哪些应该及早推荐转诊。只是训练一个GPT-3大小千分之一的语言模型,也会很快耗尽团队的预算。
另外一家从事搜索业务的创业公司Glean,一直很想使用最新的AI算法来改进公司的产品。
Glean提供Gmail、Slack和Salesforce等应用程序进行搜索的工具,用于解析语言的新AI技术,可以帮助公司的客户更快地发掘正确的文件或对话。
但是训练这样一个尖端的人工智能算法需要花费数百万美元。Glean只好使用更小、能力更弱的AI模型,然而这些模型无法从文本中提取出尽可能多的含义。
小结
过去十几年,AI取得了一些列举世瞩目的成绩,包括在游戏中击败人类,让汽车可以行驶在城市的街道上,AI自己编写连贯的文字,做出可以媲美画家的画作。这都得益于数据量的不断积累,算法的不断优化,以及可以支撑算法训练的算力的不断强化。
然而,在发展的过程中同样还存在一些问题。比如对于小企业来说,训练高级AI算法成本高,这就会使得AI的全面应用受到阻碍等问题。当然AI整体呈现出快速发展的趋势,业界也在不断探索有利于AI发展的方式,比如大模型的出现,本身也是为了解决通用性的问题,比如说模型简化,减少模型训练所需要算力等。
声明:本文由电子发烧友原创,转载请注明以上来源。如需入群交流,请添加微信elecfans999,投稿爆料采访需求,请发邮箱huangjingjing@elecfans.com。
更多热点文章阅读