当前位置:首页>java>模型训练是新编程

模型训练是新编程

  • 2026-09-07 22:24:59
模型训练是新编程

纳瓦尔说模型训练是新编程:

刚好我大前天写到这个:

再翻翻写作记录,发现2023年2月9号就写过比较完整的思路,刚好快三年。摘录如下:

AI训练,是另一种编程方式

它用数据跟算力代替了程序员的部分编码劳动。

“手工”编程是怎么个章程呢?根据《如何设计程序》(htdp),大体上:

  1. 1. 理解问题。从问题中提取输入,定义相关数据
  2. 2. 写出输入、输出的数据类型;目的;函数定义(函数体暂时为空)
  3. 3. 单元测试。拿出个别输入的例子,计算输出。一来确认自己理解问题,二来后续给自己后续的编码反馈
  4. 4. 根据输入数据类型,选择“模板”
  5. 5. 填充模板,可能要用到某些算法
  6. 6. 跑单元测试,测试覆盖不全则回到步骤3,有不通过则回到步骤4

而AI又是怎样编程的?

  1. 1. 理解问题
  2. 2. 写出输入、输出的数据类型,取得大量输入、输出的数据
  3. 3. 设计算法,包括用于计算结果损失的函数
  4. 4. 调整参数,如最大训练轮次、用于验证的数据占比、学习率等
  5. 5. 启动AI训练程序,基本思想是“函数拟合”,有固定流程,需要大量计算。
  6. 6. 跑验证集,通过率不达标则考虑回到步骤4

对比“手工”编程,AI不需要人写一大堆if else去区分各类情况,甚至具体的函数都不用写。而它需要大量的格式化数据,以及用来训练的算力。

也就是之前说的,它用数据跟算力代替了程序员的劳动。同时,算法、调参也不是普通程序员负责,而是“算法工程师”。

如果把讨论范围扩展到某公司的研发流程,它可能把某些产品、测试的工作也替代了,转而需要大量的GPU硬件、数据标注员(或者直接对接数据公司)。

至于采不采用AI的研发模式的问题,关键在于同样产出的情况下,这个算力数据跟算法工程师更便宜,还是程序员的劳动更实惠。

在前些年的实践中,发展出诸多用AI分类、回归的解决方案,比如将图片分类、文本情感分析。这些场景下,手工写出的的代码将极度复杂,各种if、else嵌套、难以维护。

这里要着重提到“创造力”这点,程序的“创造力”是什么意思呢?

同一个问题,可能有不同答案。比如画一个美女,画古装、正装、漫画都可以,只要好看就行;再如聊天聊到山,接下来说一段记叙文、说明文或者相声都可以。

想法很粗暴,随机嘛。首先,输入加个random相关的值,让输出不固定。

然后用“演化”的方式,确保足够的输出满足某种条件。

打个比方,要写文章。于是弄了两种AI,一个是作者AI,另一个是编辑AI。以下是大致描述:

  1. 1. 训练出作者AI v1。能产出,但是质量很低
  2. 2. 训练出编辑AI v1,它看过很多高质量作品,然后看作者AI的产出。要求它将接下来作者AI的大部分产出标记为次品。这可以转换为先前说的分类问题,利用现有成熟方案
  3. 3. 作者v1 根据编辑v1,训练出能通过编辑v1的作者v2
  4. 4. 编辑v1根据作者v2与高质量作品的数据集,再次训练出将编辑v2
  5. 5. 作者、编辑循环回步骤3,相爱相杀,共同演化

这或许是真·敏捷开发,如果有足够数据跟算力的话。

三年后的补充

如果说“古典编程”要构建的,是确定性函数。加上人类思考、表达、阅读带宽限制,只能处理低维度问题。比如,可以上传图片,但难以理解图片。

“模型编程”的输入跟输出则是高维的。任意文字、图片、视频……还有随机相关参数。

应用场景绝对更加广阔。

最新文章

随机文章