by Andrej Karpathy
文章目录
- 什么是LLM
- 模型训练
- 微调阶段
- llm的发展方向
- LLM安全
- 参考资料
什么是LLM
Large Language Model(LLM)就是两个文件,一个是模型参数文件,一个是用于运行模型的代码文件
模型训练
一个压缩的过程,将所有训练数据压缩到神经网络的权重/参数中。但这个压缩过程又和.zip的压缩不同,.zip的压缩过程可以理解为无损的,而这里神经网络学习到的模型参数相对于原始的训练数据是一个有损压缩过程。因为神经网络模型学习到的只是训练数据的总体形式,单词/语言的分布。
神经网络在做什么
预测一个给定单词序列的下一个单词
神经网络是如何工作的
模型参数散布在整个模型中,我们只能通过最后的预测结果来反过来对模型参数进行优化,但并不知道权重参数在神经网络内部的具体相互协调过程。
下面是llm的基本结构Transformer的示意图:
微调阶段
将预训练过程中互联网上海量的文本替换为一个更小的质量更高的与任务相关的数据集继续进行预测序列下一个单词的训练
微调数据集的构建
使用manual processed data,或者使用human-machine collaboration构建得到的高质量对话数据集
对比预训练阶段和微调阶段
经过微调阶段,llm从预训练阶段的base-model变成了助手模型chat-model
第三个阶段的训练
利用从使用者/人工标注者获得的comparison labels对模型微调,即Reinforcement learning from human(RLFH)
llm的发展方向
scaling law
llm的性能可以通过模型参数量和训练数据量进行预测,并且这个规律到现在也没有被打破。这意味着我们可以使用N(模型参数量)和D(训练数据量)来拟合模型性能值。并且这也指明了llm的发展方向仍是larger models
llm使用tools来获得能力
内置的python解释器、浏览器、计算器
多模态
多模态(视觉、语音)将是llm的重要发展方向
大模型能否思考
引用《思考,快与慢》中对于人脑的思考,llm当前仅具有掌管记忆的System 1,是否有可能让llm进行思考,开启System 2
思维链CoT算作是system 2吗?
Self-improvement
仅仅使用RLFH,llm是不可能超越人类的,我们怎么样才能寻找到一个足够好的reward函数使得llm能够像alphago一样通过rl进行自我改进提升性能
custom LLMs
通过指令微调、rag等技术,每天都有大量的针对不同需求设计出来的定制llm
LLM OS
将LLM视作一种很新的操作系统的kernel process
LLM安全
jailbreaks
越狱攻击
举个例子,通过角色扮演,让llm回答有毒问题;同样的内容通过不同的编码方式(base64)实现越狱;可转移后缀型攻击
prompt injection
在人类看不到但llm能够检测到的地方注入prompt进行攻击
data poisoning
使用有毒的训练文本对llm进行攻击
参考资料
- Youtube视频地址:Intro to Large Language Models