LLaMA 常见面试题篇
来自:AiGC面试宝典
宁静致远 2024年01月27日 19:44
一、相比较于 LLaMA 而言,LLaMA2 有哪些改进,对于 LLaMA2 应该如何 fine-tune?
1. 背景介绍
LLaMA 和 LLaMA2 都是基于 Transformer 架构的大型语言模型(Large Language Model,LLM),广泛应用于文本生成、文本摘要、机器翻译、问答等多种自然语言处理任务。
LLaMA 采用了两种预训练任务:
- 无监督的 span 级别的 mask:让模型通过预测被遮盖的文本片段来学习语言表示
- 有监督的多任务学习:将所有下游任务统一视为文本到文本的转换问题
LLaMA 使用了干净的大规模英文语料库 C4,包含约 750GB 的文本数据。
📝通俗解释:可以把 LLaMA 想象成一个学生,通过两种方式学习:一是大量自学读书(无监督学习),二是有老师指导做各种练习题(有监督多任务学习)。C4 语料库就像一个巨大的图书馆,让学生能够广泛阅读。
2. LLaMA2 的改进点
LLaMA2 是 LLaMA 的改进版本,在以下几个方面有所提升:
(1)数据量和质量
- LLaMA2 使用了比 LLaMA1 多 40% 的数据进行预训练
- 数据质量更高、来源更加多样
- 包括来自 Surge 和 Scale 等数据标注公司的专业标注数据
📝通俗解释:LLaMA2 就像读了更多更好的书的学生,知识面更广、理解更深。
(2)上下文长度
- LLaMA2 的上下文长度是 LLaMA1 的 两倍,达到了 4k 个 token
- 这有助于模型理解更长的文本和更复杂的逻辑关系
📝通俗解释:就像人的工作记忆变强了,LLaMA2 能一次性处理更长的文章,不会"看了后面忘了前面"。
(3)模型架构
- LLaMA2 在训练 34B 和 70B 参数的模型时使用了**分组查询注意力(Grouped-Query Attention,GQA)**技术
- 可以提高模型的推理速度和质量
📝通俗解释:GQA 是一种让模型"更聪明地思考"的技术,就像人脑能够同时处理多个相关信息,而不是逐个死记硬背。这样模型回答问题既快又准。
(4)微调方法
LLaMA2 使用了两种方法来微调对话模型(LLaMA2-Chat):
- 监督微调(Supervised Fine-Tuning,SFT):使用标注好的数据直接训练模型
- 人类反馈强化学习(Reinforcement Learning from Human Feedback,RLHF):根据人类反馈来优化模型
这两种方法使模型在有用性和安全性方面都有显著提升。
📝通俗解释:SFT 就像请了一个老师傅手把手教技能,RLHF 则像让模型不断根据用户反馈自我改进。这样调教出来的模型既能力强,又不会乱说话。
3. LLaMA2 Fine-tune 步骤
对 LLaMA2 进行微调可以按照以下步骤进行:
Step 1:准备训练脚本
- 使用 Meta 开源的 llama-recipes 项目 -该项目提供了快速开始的示例和配置文件
- 支持自定义数据集和策略的方法
📝通俗解释:llama-recipes 就像一份详细的菜谱,告诉你如何把 LLaMA2 这块"原材料"做成想要的"菜肴"。
Step 2:准备数据集
- 选择符合目标任务和领域的数据集
- 推荐使用 Guanaco Dataset,这是一个多语言的对话数据集,支持 alpaca 格式
- 也可以使用自己的数据集,只需按照 alpaca 格式进行组织即可
📝通俗解释:数据集就像教材,选择合适的教材才能让模型学到你想让它掌握的知识。alpaca 格式是一种标准化的"教材格式",方便模型阅读理解。
Step 3:准备模型
- 从 Hugging Face Hub 下载 LLaMA2 模型的权重
- 将模型权重转换为 Hugging Face 格式
📝通俗解释:就像拿到一本空白的技能书,需要先下载基础版本,然后再根据你的需求进行"个性化定制"。
Step 4:启动训练
- 可以使用单 GPU 或多 GPU 来进行训练
- 可以选择是否使用以下技术来加速训练过程:
- 参数高效微调(Parameter-Efficient Fine-Tuning,PEFT):如 LoRA 等方法
- 量化(Quantization):降低模型精度以减少显存占用
📝通俗解释:PEFT 就像给模型做"微创手术",只调整一小部分参数就能达到不错的效果;量化则像把厚重的字典装进轻薄的手机里,用更少的内存运行大模型。
参考资源:
- LLaMA2 官方论文:https://ai.meta.com/llama/
- llama-recipes 项目:https://github.com/meta-llama/llama-recipes
- Hugging Face LLaMA2:https://huggingface.co/meta-llama