添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 1. Exercise 1: Classification of Handwritten Digits Using an MLP
  • 2. Exercise 2: Generating One Token at a Time
  • 3. Exercise 3: PyTorch and Hugging Face Scavenger Hunt
  • 4. Exercise 4: Transfer Learning Using MobileNetV3
  • 1.2 Foundation Models部分
  • 1\. Exercise 1: Use a Foundation Model to Build a Spam Email Classifier
  • 2\. Exercise 2: Create a BERT Sentiment Classifier
  • 3\. Exercise 3: Full-fine Tuning BERT
  • 2 项目:Lightweight Fine-Tuning with LoRA
  • 2.1 概述
  • 2.2 代码主要步骤
  • 2.3 预训练模型与 LoRA 微调后的模型效果对比
  • GPT-2(1.2亿参数版)预训练模型效果:
  • LoRA 微调后效果:
  • 3.1 HuggingFace 介绍
  • Hugging Face 的核心库和平台:
  • 1. **Transformers**
  • 2. **Datasets**
  • 3. **Tokenizers**
  • 4. **Hugging Face Model Hub**
  • 5. **Hugging Face Spaces**
  • 6. **Gradio**
  • 7. **Accelerate**
  • Hugging Face 的优势
  • 3.2 DistilBERT 模型介绍
  • DistilBERT 的特点:
  • DistilBERT 的核心技术:知识蒸馏
  • DistilBERT 的应用场景:
  • DistilBERT 的实际使用
  • 1 各编程练习内容的总结

    1.1 Initial-Exercises部分

    1. Exercise 1: Classification of Handwritten Digits Using an MLP

  • 目的 :快速过一遍如何简单的调用 scikit-learn 库实现手写数字分类任务。
  • 概述 :使用 scikit-learn 库各内置函数,流程包括:下载并加载数据集、创建模型、训练、计算模型精度、可视化训练效果。
  • 2. Exercise 2: Generating One Token at a Time

  • 目的 :快速过一遍如何简单的调用 HuggingFace 的相关库就能实现基于 GPT2 的文本生成任务。
  • 概述 :使用 HuggingFace 的 transformers 库,调用 GPT2 预训练模型,实现文本生成任务(自己拟定一句话输入模型,然后 GPT2 模型基于这句话一个个预测下一个单词,相当于故事接龙)。
  • 3. Exercise 3: PyTorch and Hugging Face Scavenger Hunt

  • 目的 :了解 pytorch 和 HuggingFace 的一些库。
  • 概述 : pytorch 介绍了张量操作、网络模型类的构建、损失函数和优化器的调用、训练代码的编写。 HuggingFace 介绍了如何通过 transformers 库和 datasets 库来实现一个文本情感二分类任务的搭建,包括调用语言模型、下载语言模型的预训练权重、调用数据集、用内置函数 tokenizer 数据、推理数据。
  • 4. Exercise 4: Transfer Learning Using MobileNetV3

  • 目的 :了解使用 pytorch 库实现 分类任务的完整流程、迁移学习概念、新增网络结构、冻结部分网络参数。
  • 概述 :使用 pytorch 调用内置的 MobileNetV3 网络结构和预训练权重,然后在该网络最后一层新增一个全连接层,输出维度变为10(因为数据集是10类),并且写个函数冻结该网络中除了最后新增的全连接层之外的所有参数,然后用 Fashion-MNIST 数据集对该网络进行10分类训练,并展示效果。
  • 1.2 Foundation Models部分

    1. Exercise 1: Use a Foundation Model to Build a Spam Email Classifier

  • 概述 : (该文件中不知道是如何将数据发给模型的,应该是作者删除了上传代码,略过)大概是从 datasets 库中下载 sms_spam 垃圾邮件数据集,展示内容,重组格式,加上 prompt 前缀字符串,然后丢给模型,预测是否是垃圾邮件。(该文件中删除了将数据发送给模型API的部分,具体怎么发送给模型的不得而知,略过)
  • 2. Exercise 2: Create a BERT Sentiment Classifier

  • 目的 :基于 Hugging Face 的 Transformers 库,调用 Distil-BERT 模型,实现 IMDB 电影评论数据集的情感分类的训练和评估。
  • 加载数据 :使用 Hugging Face 的 datasets 库加载 IMDB 电影评论数据集。
  • 预处理 :对数据集进行预处理,包括将文本转换为模型输入格式,通过 tokenizer 将评论文本转化为 BERT 模型可接受的输入。
  • 加载模型+冻结参数 :从 transformers 库加载 distilbert-base-uncased 模型,并冻结除分类层外的参数(方便后续快速微调训练)。
  • 训练 :调用 transformers 库中 Trainer 函数对模型进行训练。
  • 评估 :同样调用 transformers 库中 trainer.evaluate() 函数,对 test 集进行精度计算。
  • 可视化 :使用 pandas 库展示一些错误的预测结果。
  • 3. Exercise 3: Full-fine Tuning BERT

  • 目的 :跟 Exercise 2 很类似,只是用 Distil-BERT 模型进行垃圾邮件分类,训练时是解冻所有参数,进行全量微调。
  • 加载数据集并切分 :使用 datasets 库加载 sms_spam 垃圾邮件数据集(内置函数能够直接在加载数据集同时,通过相关参数进行 train 和 test 的按比例分割)。
  • 可视化数据 :浏览几个数据样本,了解 dataset 的组织结构。
  • 预处理 :从 transformers 库中加载模型的分词器,并对数据进行 tokenizer ,转成模型可接受格式。
  • 加载模型+解冻所有参数 。
  • 可视化 。
  • 2 项目:Lightweight Fine-Tuning with LoRA

    2.1 概述

    项目源文件 :https://github.com/ritvij-saxena/udacity-gen-ai-nanodegree/blob/main/LightweightFineTuning_completed.ipynb

    <