大语言模型实践笔记(持续更新中)

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提供的三重服务

  1. Models
    预训练的开源模型仓库
  2. Transformer Library
    机器学习包。核心概念:pipeline
  3. 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 的三种方法

  1. Self-supervised
    文本预测
  2. Supervised
    问题+答案。可能需要对数据进行预处理,转换成 prompt + 问题 + 答案的形式。这样fine-tuned model对prompt的识别会更准确。
  3. Reinforcement learning
    Supervised Fune-turning -> Traing Reward Model (需要人工反馈)。重复这个循环。

Fine Tune 的基本步骤

  1. Choose fine-tuning task
  2. Prepare training dataset
  3. Choose a base model
  4. Fine-tune model via supervised learning (or other training methods)
  5. Evaluate model performance

Three Options for Parameter Training

  1. Retrain all parameters (资源消耗特别大)
  2. Transfer Learning. 只调整base model的最后几层。
  3. Parameter Efficient Fine-tuning (PEFT). 不改变原模型,而是在元模型基础上增加参数。
    实现方式:
    • Low-Rank Adaptation (LoRA)

4. How to Build a LLM from scratch

基本步骤

  1. Data Curation
  2. Model Architecture
    • Transformers. 基于attention机制的神经网络,考虑上下文及文本出现的先后顺序。有三种模型架构。
      • Encoder-only. 适用于文本分类任务。
      • Decoder-only. 适用于文本生成任务。这个目前是最流行的。
      • Encoder-decoder. 适用于翻译。
  3. Train at scale
  4. Evaluation