NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) 上运行 Experiment,即 pai 模式。 在使用 NNI 的 pai 模式前, 需要有 [OpenPAI](https://github.com/Microsoft/pai) 群集的账户。 如果没有 OpenPAI 账户,参考[这里](https://github.com/Microsoft/pai#how-to-deploy)来进行部署。 在 pai 模式中,会在 Docker 创建的容器中运行 Trial 程序。
## 设置环境
步骤 1. 参考[指南](../Tutorial/QuickStart.md)安装 NNI。
步骤 2. 获得令牌(token)。
打开 OpenPAI 的 Web 界面,并点击右上方的 `My profile` 按钮。 
知识蒸馏,在 [Distilling the Knowledge in a Neural Networ](https://arxiv.org/abs/1503.02531) 中,压缩模型被训练成模拟预训练的大模型。 这种训练设置也称为"师生(teacher-student)"方式,其中大模型是教师,小模型是学生。
知识蒸馏,在 `Distilling the Knowledge in a Neural Network <https://arxiv.org/abs/1503.02531>`__ 中,压缩模型被训练成模拟预训练的大模型。 这种训练设置也称为"师生(teacher-student)"方式,其中大模型是教师,小模型是学生。
.. image:: ../../img/distill.png
:target: ../../img/distill.png
:alt:
用法
^^^^^
PyTorch 代码
.. code-block:: python
from knowledge_distill.knowledge_distill import KnowledgeDistill
kd = KnowledgeDistill(kd_teacher_model, kd_T=5)
alpha = 1
beta = 0.8
for batch_idx, (data, target) in enumerate(train_loader):
data, target = data.to(device), target.to(device)
optimizer.zero_grad()
output = model(data)
loss = F.cross_entropy(output, target)
# 只需要添加以下行来使用知识蒸馏微调模型
loss = alpha * loss + beta * kd.loss(data=data, student_out=output)