大语言模型实践笔记(持续更新中)
1. A Practical Introduction to Large Language Models (LLMs)
LLM vs not large language Model
- Zero-shot learning
The capability of a model to complete a task it was not explicitly trained to do. - Self-supervised learning
Next-word prediction paradigm. This is a Autoregression task, 这样可以实现上下文关联。
Three levels of using LLMs
- Prompt Engineering. 不改变模型参数。
- 用聊天机器人,比如ChatGPT.
- 用openai api,或者Hugging Face transformers library.
- Model Fine-tuning.
- Step 1: Pre-trained LLM (self-supervised model)
- Step 2: Fine-tune LLM
- Build Your Own
2. The Hugging Face Transformers Library
Hugging Face提供的三重服务
- Models
预训练的开源模型仓库 - Transformer Library
机器学习包。核心概念:pipeline - Spaces
用来部署运行机器学习程序,可以选择免费或者付费的算力。类似于Vercel.
3. Fine-tuning Large Language Models
Base Model vs Fine Tuned Model
比如:GPT-3 vs ChatGPT-3-turbo
- 在特定的问题领域,小的fine-tuned model大概率比大的base model表现更好。
- Base model本质上是基于训练数据进行文本预测。
Fine Tune 的三种方法
- Self-supervised
文本预测 - Supervised
问题+答案。可能需要对数据进行预处理,转换成 prompt + 问题 + 答案的形式。这样fine-tuned model对prompt的识别会更准确。 - Reinforcement learning
Supervised Fune-turning -> Traing Reward Model (需要人工反馈)。重复这个循环。
Fine Tune 的基本步骤
- Choose fine-tuning task
- Prepare training dataset
- Choose a base model
- Fine-tune model via supervised learning (or other training methods)
- Evaluate model performance
Three Options for Parameter Training
- Retrain all parameters (资源消耗特别大)
- Transfer Learning. 只调整base model的最后几层。
- Parameter Efficient Fine-tuning (PEFT). 不改变原模型,而是在元模型基础上增加参数。
实现方式:- Low-Rank Adaptation (LoRA)
4. How to Build a LLM from scratch
基本步骤
- Data Curation
- Model Architecture
- Transformers. 基于attention机制的神经网络,考虑上下文及文本出现的先后顺序。有三种模型架构。
- Encoder-only. 适用于文本分类任务。
- Decoder-only. 适用于文本生成任务。这个目前是最流行的。
- Encoder-decoder. 适用于翻译。
- Transformers. 基于attention机制的神经网络,考虑上下文及文本出现的先后顺序。有三种模型架构。
- Train at scale
- Evaluation