GPT-4出来之后,人们提出了很多理论,来尝试解释LLMs的成功。其中「压缩即智能」算是比较主流,且我觉得是比较有意思的理论。
例如,OpenAI的Jack Rae认为无损压缩是通往AGI的可行路径[1],甚至是人们最接近的一种路径。Ilya Sutskever(不知道还在不在OpenAI) 认为,language modeling之类的无监督学习方法之所以有效,可以用无损压缩的观点提供解释[2]。
之前我自己研究时也发现,LLMs可以从压缩的prompt里恢复出(几乎)全部的语义,真的很容易让人联想到压缩和解压缩。
但是,大多数有关「压缩即智能」的讨论还都只关注在理论和猜想的层面,缺少经验性的结论。
本文就来讨论两个问题:
-
-
如果是,
怎么用「压缩」来评测大模型?
从而指导模型的训练,或助你寻找最有潜力的开源模型。
*注:为了保证本篇文章的可读性,我把如何「使用语言模型做压缩」拆成了单独的一篇文章。「用LLMs做压缩」已经算是一个单独且热门的研究方向了,值得单独讨论一下。
**本篇测试的模型包括:LLaMA 7-65B,Llama-2 7-70B,CodeLlama,Mistral,Baichuan2,Qwen,ChatGLM3,Yi,InternLM
更好的「压缩」就是更强的「智能」?
我们
分别用「压缩」指标,和常用benchmark来测试LLMs
,
观察两者的结果是否有关联
。我们评测LLMs的两个主要能力:
-
代码能力:LLMs压缩代码的能力 ×\times\times LLMs在HumanEval上的pass@1。
-
学术知识问答任务:LLMs压缩arXiv论文的能力 ×\times\times LLMs在MMLU上的accuracy。
在1中,我们从GitHub上收集了大概200MB的代码文件,处理成纯文本后,由LLMs进行压缩。从而测试LLMs的代码压缩能力。在2中,我们从arXiv收集了3600篇论文,只取论文introduction之后的部分,处理成纯文本,交由LLMs压缩,从而测试LLMs压缩学术论文的能力。
我们对LLMs在压缩上的压缩比例,和LLMs在benchmarks上的表现
分别排序
,并进行对比。
从结论来看,「压缩」是个很靠谱的评测指标。
比如,
对学术论文更好的「压缩」,大致上总能带来MMLU上更高的分数。
在编码任务上,两者的关系更明显。
对代码更好的「压缩」能力,几乎总能带来HumanEval上更高的pass。
由此可知,大模型对某领域数据的压缩能力,确实可以泛化至该领域的实际问题的解决能力。
*更多数据集上的实验结论参见文末论文
用「压缩」来科学地评测大模型
其实在古早时期,「压缩」指标经常被用在语言模型的评测中。例如GPT-2和Transformer-XL中的Bits-per-Char (BPC)[3][4]. Perplexity其实也可以被看作是基于「压缩」的一个指标。
不过像BPC,perlexity之类的指标,都需要基于一个established语料库来进行测试。比如最常见的wikitext,还有Children Books之类的。由于现在的LLMs几乎把整个互联网学了个遍,这些指标已经没法用来科学地衡量LLMs的泛化性和智力了。
为了科学地用「压缩」评测LLMs的泛化,我们在LLMs的评测里引入
时间线方法
。
即,
在一个很长的时间线上观测LLMs性能的变化
。
一个泛化性良好的LLM,应该在不同的时间区间,维持相似的性能。反之,一个泛化性较差的LLM,则会随时间推移出现较严重的性能退化。
这一点可以类比于传统机器学习。如果算法的testing error高于training error,则说明算法存在overfitting,反之则说明算法比较鲁棒。
如图,通过跟踪LLMs在wikitext上随时间变化(2017-2023)的「压缩」能力,我们清晰地看到不同模型的真实泛化能力:
纵轴为压缩比例,越小越好。
-
Qwen
和
LLaMA
,在2017的数据上大杀四方,居第一和第二位。但是随着时间的推移,Qwen和LLaMA的「压缩」能力以一个较快的速度发生退化。到2023-11月的时候已经退化为第四和第三位了。
-
Mistral
和
Baichuan2
,则在整个时间线上维持了稳定的「压缩」能力。尤其是
Mistral
,在2023上的performance十分稳定,说明了其对于新数据的优秀泛化能力。
-
Llama-2-7B
,虽然在整条时间线上都优于Mistral,但是和Mistral相比,其恶化的趋势更快(斜率)。所以在可预见的将来(near future),会不可避免的落后于Mistral。
总结来看,图里有两个aspects可以准确地反应LLMs的水平:
-
曲线的相对位置:整体位置越低,整体的「压缩」能力越强。
-
我们将「压缩」能力作为x-axis,「斜率」作为y-axis,将LLMs置于2-D的空间中:
该图(wikitext)可以直观地反应:1)LLMs的「压缩」性能;和2)其对新数据的「泛化」性能。
-
Mistral
和
Baichuan
,属于即强,又鲁棒。
-
Llama-2
和
Qwen
,属于强,但不是很鲁棒。
-
InternLM
和
CodeLlama
,属于弱,但很鲁棒。
由此,我们使用了「压缩」+时间线的方法,来从performance和robustness两个维度评测大模型。看到结论之后最大的感触就是,Mistral到底是怎么调模型的??那么强?
我们还同时在Github Code,arXiv paper,BBC News,甚至多模态数据包括图像和音频等domains上做了实验。具体结论参见论文。**
透露一下,Mistral屠榜了,真不知道他们怎么调的模型...
结论
「压缩即智能」并不是只是一厢情愿的理念,我们用empirical的方法展示了「压缩」和LLMs在实际问题表现上的强关联性。
同时,我们在LLM评测里引入了时间线方法,结合「压缩」指标,实现了从performance和robustness两个维度对大模型进行科学地评估。
更多实验结论见论文:
https//arxiv.org/abs/2402.00861
使用「压缩即智能」测试你的大模型。
代码:
https//github.com/liyucheng09/llm-compressive
致谢
感谢
@灰墙(
www.zhihu.com/people/348a48cf6f154f6f8a4f234bbc63cbd0
)
同学帮我paper reviewing!感觉优化之后至少提升了20%中稿几率:P
参考
1.https://www.youtube.com/watch?v=dO4TPJkeaaU&ab_channel=StanfordMLSysSeminars
2.https://www.youtube.com/watch?v=AKMuA_TVz3A
3.https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
4.https://arxiv.org/pdf/1901.02860.pdf