用于 Neuron 导出模型的配置类
将 PyTorch 模型导出到 Neuron 编译后的模型涉及指定以下内容:
- 输入名称。
- 输出名称。
- 用于跟踪模型的虚拟输入。这是 Neuron-Compiler 记录计算图并将其转换为 TorchScript 模块所必需的。
- 用于控制硬件效率(延迟、吞吐量)和精度之间的权衡的编译参数。
根据模型和任务的选择,我们使用配置类来表示上述数据。每个配置类都与特定模型架构相关联,并遵循命名约定 ArchitectureNameNeuronConfig
。例如,指定 BERT 模型的 Neuron 导出的配置是 BertNeuronConfig
。
由于许多架构在 Neuron 配置方面共享相似的属性,因此 🤗 Optimum 采用了 3 层类层次结构:
- 抽象和通用的基类。这些类处理所有基本功能,同时与模态无关(文本、图像、音频等)。
- 中间类。这些类知道模态,但多个类可以针对同一模态存在,具体取决于它们支持的输入。它们指定应为虚拟输入使用哪些输入生成器,但与模型无关。
- 模型特定的类,如上面提到的
BertNeuronConfig
。这些类是实际用于导出模型的类。
支持的架构
架构 | 任务 |
---|---|
ALBERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
BERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
CamemBERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
ConvBERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
DeBERTa(仅 INF2) | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
DeBERTa-v2(仅 INF2) | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
DistilBERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
ELECTRA | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
FlauBERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
GPT2 | 文本生成 |
MobileBERT | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
MPNet | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
RoBERTa | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
RoFormer | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
XLM | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
XLM-RoBERTa | 特征提取、填充掩码、多项选择、问答、文本分类、词语标记 |
有关支持任务的更多详细信息,请点击 这里。
更多架构即将推出,敬请关注! 🚀