从零搭建AI大模型,难在哪?真的烧钱吗?
咱普通人能碰这玩意儿吗?
说实话,这两年AI大模型火得不行。
GPT刚问世的时候, 我友人半夜两点致电于我, 兴奋得仿若中了彩票一般, 宣称“这东西能够撰写论文!兴许还能作诗!”我当时的首要反应是——哦, 又一新颖之物罢了。然而没过两个月, 我自己也深陷其中了, 着手思索这大模型究竟是怎样构建起来的。
后来一查资料,好家伙,头都大了。
并非是咱们这些普通之人提及搞起来便能够搞的那种事物, 然而也并非全然不可以去触碰。就在今日之时段, 要跟大伙去絮叨絮叨, 营建AI大模型究竟是一种什么样的步骤流程, 将会耗费多少资金, 普通大众能不能去弄个小型的来加以玩耍一番。
到底什么算“大模型”
先别被这名字吓住。
所谓被称作大模型的事物, 其本质实际上就是一个规模超大的神经网络, 它所拥有的参数数量格外多。参数这个物件你能够做这样的理解, 将其视为“神经元相互之间的连接数量”情形, 参数数量越多, 那么模型也就会显得越“聪明”。就如同GPT-3那时是具有1750亿个参数, 而到了GPT-4据传闻已经突破万亿这个数量了。
那你仔细琢磨琢磨, 咱们平常在电脑上面运行一个大型游戏的时候都会出现卡顿现象, 而这么庞大的一个模型, 需要投入多少的算力才能支撑起来啊。
然而别着急, 并非所有的人都要去搞那种高耸入天的庞然大物。咱们这些普通的人去搞个稍微小一点的模型, 就是那种有着几百万参数的, 实质也能够进行玩耍。就如同你要是想吃火锅, 不一定非要前往海底捞, 自己在家里弄上一个电磁炉同样也能够涮得十分开心。
第一步:你得有数据(重点是“干净”的数据)
搭建大模型的第一步,不是写代码,是找数据。
好多人都觉着搞人工智能起关键作用的是算法, 实际上并非如此。最为关键重要的是数据。我见识过数目众多的项目, 算法编写得极为出色漂亮, 然而结果是数据糟糕透顶, 最终训练出来的模型就好像一个傻子一般。
数据源自何处? 网络之上处处皆是。然而你需留意, 并非所有数据均适宜。你还得进行清理, 施以去重操作并且过滤掉垃圾信息。比如说你从百度抓取来一堆帖子, 其中夹杂着各种各样的广告, 还有骂人的话语以及乱码, 这些通通都得摒弃掉。
一个能让人觉得可靠的数据集, 起码得进行三至五次的清洗。我跟你讲哦, 这个过程简直枯燥得无与伦比。我有一位从事数据标注的朋友, 每天都目不转睛地对着一堆图片以及文字去打标签, 一个月过去后, 眼睛都快要视物不清如同患上眼疾那般快要瞎掉了。
针对数字而言, 去训练一个规模处于中等程度的模型, 大体上是需要超过10万条具备高质量的数据的。要是数据质量极为高, 5万条也是勉强可以的。然而一旦低于这个数量, 模型极易出现“营养不良”的状况, 其表现会很糟糕。
第二步:选框架,搭环境
框架这东西,说白了就是搭建模型的“积木盒”。
现如今,最为主流的是, 谷歌所推出的也并非不佳, 然而在学术领域更受青睐。这是为何呢? 原因在于它有着灵活性, 在进行调试时较为便利, 就仿佛是那种乐高积木, 能够随心所欲地去拼接。
搭环境这一步,经常把人搞崩溃。
开头先说的是显卡, 要是你没有配备一张性能优良的显卡, 那可别妄图去训练大模型, 其最低配置要求是RTX 3090亦或是RTX 4090, 并且显存最少得有24G, 为何需要如此大的显存呢? 原因在于模型参数全部都要放置到显存里去进行运算, 要是显存不足, 那模型根本就无法运行起来。

我有个相交不错之人, 意图凭借减少花费之情故而购置了一张具备16G显存的卡, 然而在模型一经加载之时显存便出现了爆掉的状况, 最终不得不将模型分解成为碎片, 依照批次去运行。那般速度,迟缓的程度犹如老牛拉运车辆一般。历经三天三夜都未曾关闭机器, 为此电费支出了数量颇为可观的一笔。
倘若你并不打算去购置显卡, 那也能够选用云服务, 在阿里云、腾讯云以及华为云方面都存在GPU实例可供租用, 它是按照小时来进行计费的,一张A100在一个小时的花费大概是三十至四十块钱, 看上去数量并不是很多, 然而当去训练一个大模型的时候, 动不动就要几百个小时, 如此一来费用立马就会攀升上去了。
为啥训练要这么久?
这里有个关键概念:轮次。
训练模型, 如同你记忆单词, 并非背诵一回就能牢记, 你必得一次次循环复习, 一轮结束, 模型学习一番, 接着开启第二轮, 再度学习一回。通常需运行几十轮乃至上百轮, 模型方可切实“领悟”数据的规律。
训练之时, 皆是在让显卡不顾一切地疯狂进行计算, 而CPU基本处于闲置状态, 主要依靠的是GPU。因此, 你就会看见显卡风扇呼呼作响地转动, 温度飙升到七八十度, 犹如一个小火炉那样。
我操练一个具备三亿数量参数的小型模型, 使之运转展开达到八十个轮回, 前前后后总共耗费了一百六十八个小时, 历经了七天七夜的时间跨度。在这一时间段之内, 我每个白昼都处于提心吊胆的状态, 畏惧陡然间出现断电的状况, 还要担心显卡因为温度过高而引发死机现象。
第三步:调参,是个玄学
这里我要说点大实话。
处理调参这个事情, 它并非全然属于科学范畴, 反而更近似于一种“玄学”, 具备经验的工程师凭借直觉便能够将参数调试妥当, 新手哪怕依照教程一步步地去做, 最终跑出来的结果或许依旧只是个半成品。
最重要的几个参数:学习率、批量大小、优化器选择。
学习率要是设置得大了, 那么模型学习起来速度会快, 然而却容易出现偏离正确方向的情况, 最终什么都学不到了。若是设置小了, 模型学习速度就慢, 哪怕跑上几百个小时都有可能无法达到收敛。通常来讲, 学习率处于1e - 4到1e - 5这个范围之间会比较可靠妥当。我通常会首先使用1e - 4去跑10轮以此查看效果, 要是损失下降得太过缓慢, 那就再把它调大一些。
模型每次所接收数据量的多少就是批量大小, 通常会设定为像32、64、128这类属于2的幂次的数值, 批量越大, 训练过程就会越稳定, 然而显存的占用量也会越大, 要是你的显存仅有24G, 那么将批量大小设置到64或许就是极限了, 再增大则会导致爆显存。
现今最常被使用的优化器是AdamW, 和传统的SGD相比稳定了不少, 并且还有自带的学习率调整功能, 较为省心。
可是我要跟你讲, 调参这个事儿, 真的是要看那种手感的。有的时候, 同样的参数, 你换一个数据集, 那效果可就是天差地别的。在网上有这样一个段子呢: 深度学习工程师, 一半的时间是在调参, 而另一半的时间, 是在怀疑人生。
第四步:微调与评估
模型训练完了,别急着开香槟。
你需要先去进行一回评估, 评估的做法是选取一堆模型未曾见过的数据,让模型做一下预测, 瞧瞧准确率处于怎样的状况。
能达到85%以上的准确率, 那倒还算得上是不错的情形了。然而, 一旦低于70%, 这就表明模型并未学到位, 或许就得再次进行训练, 又或者去调整数据了。
若模型呈现得还可以, 然而存在一些地方令人不够满意, 那么便可采用微调来加以改进。微调呢, 是在已然训练完善的模型根基之上, 运用特定领域的数据再次展开极小一段时间的训练。比如假设你创建了一种通用语言模型, 可是期望它能够更为通晓医学这一领域内容, 那么就要利用医学论文去对它实施微调。
微调整个过程并不需要规模特别大的数据集, 仅仅几千条具备高质量的数据便足够了, 所要耗费的训练时间也不长, 时间范围大概是从几小时到几天之间不等。
到底得花多少钱
说点实在的。

倘若你借助云服务去对一个具备3亿参数的中等模型展开训练, 数据量为10万条, 运行80轮, 大概所需的是。
GPU进行租用, 如果按照A100来计算, 那么每一个小时的费用是35元, 时长达到168小时, 总计费用为5880元。
数据进行标注时, 要是选择外包模式, 那么每一条数据的价格大概处于0.5元至1元这个范围, 而当数据量达到10万条时, 总价就在5万至10万之间。
存储和带宽:几百块钱
人力成本:如果你自己搞,时间成本不算钱
加起来,一次完整的训练,成本大概在6万到11万之间。
要是你自身持有显卡, 那成本便会低出许多, 一张RTX 4090大约为1.5万, 电费按照1元一度来计算, 训练七天, 电费大概是200多块, 然而时间成本是相同的, 七天七夜都不能关机。
固然, 要是你仅仅是打算玩玩而已, 摆弄一个极小的模型, 像是几百万个参数那般的, 那么成本就会低得多了。去云服务租用一块便宜的显卡, 几百元就能够达成。数据集还能够自己去爬取, 无需花钱进行标注。
普通人能搞吗?
能,但得放低预期。
没有办法期望你单独构建出一个GPT, 这显得不切实际, 你能够建起一个能够应答专门特定领域问题的对话机器人, 像是专注于讲述电影方面问题的, 或是专注于讲述历史相关问题的, 又或是专职陈述游戏专题问题的。
我周围多个朋友是这般玩法。有个男性朋友弄了个红楼梦人物关系问答机器人, 运用了几千条数据以及一张二手显卡, 前前后后耗费一个月时间, 成本在五千块之内没到五千块。尽管回答偶尔逻辑不大对, 不过玩起来还算怪有意思有意思挺有意思。
要是你确实心里想着去尝试一番, 那么建议你最先着手于开源模型这块儿。诸如Meta所拥有的Llama, 阿里推出的通义千问, 智谱搞出来的, 它们都是存在开源版本的。直接去把别人训练完毕的模型给下载到手, 紧接着在你自身所拥有的数据之上进行微调工作。如此既能够节省钱财, 又可以节省时间, 而且还能够学到整套完整的搭建流程。
最后说几句心里话
就AI大模型此物而言, 听闻时感觉甚是高端大气上档次, 然而真正着手操作时, 你会发觉多数时候皆是在与程序漏洞、数据以及显存进行艰难对抗, 于深夜时分目不转睛地盯着屏幕注视训练进度条, 以极其缓慢的速度, 百分之零点一百分之零点一地向前推进, 那种备受煎熬的滋味, 未曾亲身经历过的人根本无法体会。
然而, 当你头一回目睹模型得出较为不错的成果之际, 那种心满意足之感, 亦是其他所有事情都无法予以取代的。
不管怎样我是这么认为的, 这件事非常值得去尝试一番。就算最终失败了, 你起码也能够学会怎样去训练模型, 怎样去处理数据, 如何去进行调参。而这些技能, 在接下来的十年时间里, 都绝对不会过时的。
别怕难,一步一步来。
更多推荐



所有评论(0)