课程链接:https://learn.deeplearning.ai/courses/huggingface-gradio/lesson/1/introduction
github链接:https://github.com/MSzgy/Building-Generative-AI-Applications-with-Gradio
Introduction
在本节课程中,利用Gradio创建了AI应用
NLP Tasks interface
在这里提出了一个distillation(蒸馏)概念,
大模型蒸馏(**Knowledge Distillation of Large Models**)是一种模型压缩技术,旨在将大型复杂模型(如GPT、BERT等)的“知识”迁移到更小、更高效的模型中,从而在保持较高性能的同时降低计算资源需求。其核心思想是通过“教师-学生”框架,让小型学生模型模仿大型教师模型的行为或输出。
---
### 核心概念
1. 教师模型(Teacher Model):参数量大、性能强的大模型(如GPT-3、BERT-large),但推理成本高。
2. 学生模型(Student Model):参数量小、结构精简的模型(如TinyBERT、DistilGPT),目标是在保持性能的前提下实现高效部署。
3. 知识迁移:通过训练使学生模型的输出分布(如概率预测、中间特征)尽可能接近教师模型。
---
### 为什么需要大模型蒸馏?
- 资源限制:大模型推理需要昂贵的计算资源(GPU/TPU),难以在移动设备或边缘端部署。
- 延迟敏感场景:小模型在实时应用中(如语音助手、自动驾驶)响应更快。
- 成本与环保:减少能源消耗和碳排放。
- 数据隐私:蒸馏后的小模型无需接触原始数据,仅学习教师模型的输出。
---
### 蒸馏方法
1. 输出蒸馏(Logits Distillation)
- 学生模型直接学习教师模型的**输出概率分布**(Soft Targets),而非真实标签(Hard Labels)。
- 关键:使用**温度参数(Temperature Scaling)** 平滑概率分布,使学生能捕捉类别间的关系(例如,猫和老虎的相似性)。
- 损失函数:学生模型需同时拟合教师输出(KL散度)和真实标签(交叉熵)。
2. 特征蒸馏(Feature Distillation)
- 学生模型模仿教师模型的**中间层特征表示**(如注意力权重、隐藏状态)。
- 例如:TinyBERT通过对齐教师和学生的注意力矩阵和嵌入层来迁移知识。
3. 对抗蒸馏(Adversarial Distillation)
- 引入生成对抗网络(GAN),让生成器(学生)欺骗判别器,使其无法区分教师和学生的输出。
4. 多教师蒸馏(Multi-Teacher Distillation)
- 综合多个教师模型的知识,提升学生模型的鲁棒性和泛化能力。
---
### 关键技术
- 温度参数(Temperature, T):控制输出分布的平滑程度(高温软化分布,低温接近原始预测)。
- 损失函数设计:平衡教师模型输出(软标签)和真实标签的损失权重。
- 中间层对齐:通过最小化教师和学生中间层的距离(如L2损失、余弦相似度)。
---
### 应用场景
1. 模型压缩与部署
- 例如:将BERT蒸馏为TinyBERT,参数量减少40%,性能保留96%。
2. 隐私保护
- 联邦学习中,教师模型处理敏感数据,学生模型仅学习其输出。
3. 跨架构迁移
- 教师模型为Transformer,学生模型可为CNN或RNN。
4. 跨任务蒸馏
- 教师模型在通用任务(如文本理解)上训练,学生模型适配到垂直任务(如情感分析)。
---
### 挑战
- 性能差距:学生模型可能无法完全复现教师的能力。
- 教师模型质量:若教师存在偏差或错误,学生模型会继承缺陷。
- 复杂任务适配:对多模态、长序列任务需设计更精细的蒸馏策略。
---
### 经典案例
- DistilBERT:参数量减少40%,速度提升60%,性能接近BERT-base。
- MobileBERT:针对移动端优化的BERT变体,通过层间知识迁移实现高效推理。
- GPT-3 → GPT-2 Small:通过蒸馏将千亿参数模型压缩到数亿参数级别。
---
### 总结
大模型蒸馏通过知识迁移,在性能与效率间取得平衡,是推动AI落地的关键技术之一。随着模型规模的持续增长(如GPT-4、PaLM),蒸馏技术将更受重视,尤其在边缘计算、实时系统和资源受限场景中。
下面是Bert model的介绍:
Image Captioning App
在本节利用Gradio搭建了个图片描述app。
Image Generation App
在本节中,利用Gradio搭建了生成图片的app,介绍了gradio中的模块以用来搭建更为复杂强大功能的UI。
Describe and Generate Game
在这节,结合了前两节的知识搭建了一个app,通过已有的图片生成描述,然后再根据描述生成新的图片。
Chat with any LLM
在这节,利用Gradio创建了一个聊天app