最近AI概念很火爆,ChatGPT也横空出世,横扫各大科技热门话题,其中关键的一个绕不过去的概念,就是「模型」,模型对应的还有参数(和规模)。那么什么是模型?
模型的概念
举个简单的例子,假设我们有训练样本
(x, y)序列:(1,2), (2,4), (3,6), (4,8)…
通过机器学习训练,我们发现x和y之间的关系是
y = 2x
这是一个简单的模型,是一个一次线性模型(y = ax + b)的具体例子。
我们把x称为输入,y称为输出,而a和b就是这个模型的参数。在上述例子中,a=2,b=0,参数规模为2,有了这些参数,我们可以输入x,从而推导出y。模型就是为了拟合各种数据的规律,用统一的方式来表达数据的规律。大模型则是用更复杂的表达式,拟合大规模数据,以此来表达大数据集的规律。
例如,在上述例子中,a=2,b=0,如果输入 x=10,我们可以推导出 y = ax + b = 2 * 10 + 0 = 20,从而这个模型可以根据输入推导出输出。
那么为什么参数规模可以达到几十亿、上百亿、上千亿甚至上万亿呢?
在上面的例子中,我们仅使用了一维模型,但如果将维度增加,参数也会增多。例如,一个二维模型是y=ax^2+bx+c,它有3个参数(a,b,c)。如果我们使用深度学习来训练一个二维模型,它的具体a、b和c的值将被固定,例如a=0.2,b=-3,c=1021932,那么我们就有y=0.2x^2-3x+1021932。对于特定的输入,可以推导出相应的输出y。当然,实际数据不是这么简单,这只是一个简单的例子。
在规模达到10亿的模型中,公式可能会是这样的:y=ax^(10亿)+bx^(10亿-1)+c*x^(10亿-2)+…+var_n。它的参数为(a,b,c,…,var_n),大约有10亿个。请注意,x的指数不一定是整数,可能是小数或其他奇怪的数字,我们暂且不考虑。这个公式可以表示为一个具有10亿维多项式的形式,带有10亿个参数。了解过 NP=P?问题的人应该知道,任何P问题(能用多项式表达的问题)都是简单问题,只要算力足够,就可以得到解。那么,模型和算力之间有什么关系呢?