因为想先快速把 llama 模型学习了,所以跳了两次课,这是这两次课的主要内容,后面有时间会补充上的 ~ 主要内容有:一些微调技术(Alpaca、AdaLoRA、QLoRA)、Prefix Tuning、Quantization
1. Alpaca
Alpaca 是一个由斯坦福大学开发的项目,用来微调大型语言模型(LLM)的工具。它基于 Meta 的 LLaMA 模型并通过微调使模型能够更好地完成指令跟随任务。
Alpaca 模型的训练特点:
- 使用类似于 OpenAI 的 InstructGPT 风格的指令-响应数据集。
- 通过成本较低的方式,生成了高质量的训练数据(使用 ChatGPT 来生成指令数据)。
- 在中小规模模型上实现了较好的性能。
2. AdaLoRA (Adaptive LoRA)
AdaLoRA 是 LoRA(Low-Rank Adaptation of Large Language Models)的一种改进方法。LoRA 通过减少需要训练的参数数量,实现高效且低资源消耗的模型微调。AdaLoRA 的关键特点是:
- 自适应性: 动态分配低秩分解的秩(rank)以适应模型不同部分的重要性。
- 高效性: 在保持性能的同时进一步减少参数需求。
- 应用: 在资源受限场景下对大型语言模型进行微调。
3. QLoRA (Quantized LoRA)
QLoRA 是 LoRA 的进一步优化版本,它结合了量化技术,降低了显存占用和计算成本。其特点包括:
- 4-bit 量化: 对基础模型进行 4-bit 量化,显著减少内存和计算需求。
- 结合 LoRA: 在量化后的模型上应用 LoRA 技术进行微调。
- 性能: 在保持模型性能的同时,大幅降低了硬件资源需求。
4. Prefix Tuning
Prefix Tuning 是一种轻量级微调方法,主要用于生成任务(如自然语言生成)。其核心思想是:
- 添加前缀向量: 为语言模型的输入添加可训练的前缀向量,而不修改原始模型参数。
- 参数效率: 仅优化前缀参数,避免了大规模微调整个模型。
- 应用: 在对话生成、机器翻译等任务中表现优异。
5. Quantization
量化(Quantization)是指将模型的权重和计算从高精度(如 32-bit 浮点数)降低到低精度(如 4-bit 或 8-bit)的过程,以加速推理并减少模型大小。常见方法包括:
- Post-Training Quantization (PTQ): 在模型训练完成后进行量化。
- Quantization-Aware Training (QAT): 在训练过程中考虑量化影响,从而提升性能。
Quantization01 和 Quantization02 可能是指不同量化方法或优化策略的比较。
6. Quantization Methods for LLM
这部分可能介绍了针对大型语言模型(LLM)进行量化的具体方法和挑战:
- Static Quantization(静态量化): 在推理前量化所有权重和激活。
- Dynamic Quantization(动态量化): 推理时动态地量化激活值。
- Mixed-Precision Quantization(混合精度量化): 在模型的不同层使用不同的量化精度(如 8-bit 和 16-bit 混合)。