介绍
当作快速过这个资料的笔记,一些关于别的库的介绍是不完全的,考虑在使用的时候从别的信息渠道就行信息的搜集。也可以作为后面待更博客列举?
常用方式
可以参考huggingface transformers教程总结 - 知乎 (zhihu.com) (这篇教程很多是基于tf的,使用时候可以考虑换成pt)和 Hugging Face - Documentation 。
tutorials具体(中文版本)
使用AutoClass加载预训练实例 (huggingface.co)
这里有个注意的点是使用 AutoModelForSequenceClassification可能会在模型后面添加一层来适应下游任务(别的类似的类可能也会有类似的做法),如果想不添加任何层直接使用,考虑使用AutoModel类来加载模型。
这里介绍了怎么预处理各种数据比如文本,多模态,图片等。
这里介绍了怎么使用
transformers.Trainer
类和pytorch原生代码来微调模型(pytorch
lighting也提供了一个Trainer)。
也介绍了怎么使用huggingface的github上分享的脚本来微调模型huggingface/transformers: 🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. (github.com),
accelerate提供了accelerate config命令通过命令行交互帮助配置文件。
这里介绍了怎么使用accelerate来进行分布式训练,流程非常简单,基本就是pytorch框架单卡训练的代码改个四五行。
使用 🤗 PEFT 加载adapters (huggingface.co)
这里大致介绍了怎么使用
perf
库进行高效的参数微调,具体表现为通过
adapters
实现少参数调整,还大致介绍了怎么量化加载、启用、禁止、训练等。
Transformers Agents (huggingface.co)
这里介绍了transformers新版本提供的一个api(测试版可能随时变化),通过自然语言来辅助进行功能实现,类似于通过自然语言编程。
这里大致介绍了怎么使用
model.generate()
进行更好且多样化生成。
使用 🤗 Tokenizers 中的分词器 (huggingface.co)
大概介绍了怎么训练、保存和加载分词器tokenizer。
介绍了一些常用的多语言翻译模型。
如题,使用一些配置文件自定义模型架构和各种处理器比如自然语言处理的分词器、语音识别的特征提取器等。
这里介绍了怎么自定义模型,推送到hub上面以及怎么在AutoClass(比如AutoModel等)上面注册。
这里介绍了聊天的模板,怎么把多轮对话转变成一个字符串输入模型。并且支持用户自定义模板和使用内置模板等功能。自定义模板的办法使用的是Jinja。
这里介绍了怎么通过Optimum库把模型导出为ONNX格式,ONNX模式下为公开具有标准化运算符和数据类型的图,可以进行各种优化和框架间的相互转移。
(这里还介绍了transformers.onnx,但这个库已经停止了维护并且回头会从教程里删去
TensorFlow Lite
是一个轻量级框架,用于资源受限的设备上,如手机、嵌入式系统和物联网(IoT)设备,部署机器学习模型,其文件扩展名为
.tflite
,同样可以通过Optimum库导出。
导出为 TorchScript (huggingface.co)
这里关于torchscirpt的介绍可以参考pytorch的,这里还介绍了使用 Neuron SDK 将 Hugging Face TorchScript 模型部署到 AWS。
这是关于训练和推理的综述,里面有许多指向英语文档的链接。
介绍了怎么使用accelerate把模型参数切片在多个GPU运行以及部分优化。
这里引入了怎么更好的使用和了解硬件,但只是引入,还是需要后期继续深入学习。
使用Trainer API进行超参数搜索 (huggingface.co)
如题,支持多种超参数搜索框架。
这里介绍了怎么加载大模型,降低内存,具体表现为分片,把权重文件分成多个。
这里介绍了怎么使用脚本进行多GPU网络问题调试和上溢下溢检测(通过hook函数统计每个模块的输入和输出的绝对值的极值)。
使用 torch.compile() 优化推理 (huggingface.co)
torch.compile() 优化推理过程,并且列出了许多实验结果。
这里介绍了怎么自定义流水线pipeline并且注册和推送到云端。
这里介绍了许多分词算法,如何构造tokenizer。
这里介绍了各种各样的agent和tools,agents相较于模型可以使用tools。
Callbacks可以用来自定义PyTorch [Trainer]中训练循环行为的对象(此功能尚未在TensorFlow中实现),该对象可以检查训练循环状态(用于进度报告、在TensorBoard或其他ML平台上记录日志等),并做出决策(例如提前停止)。
这里介绍了一些常用的callbacks,怎么自定义callbacks,TrainerState代表当前训练状态,TrainerControl控制训练循环。
Configuration (huggingface.co)
介绍了Pretrainedconfig类。
Data Collator (huggingface.co)
这里介绍了各种Data collators来处理数据。
这里介绍了transformers的日志系统。
这里介绍了怎么使用PretrainedModel,由于一定原因,官方似乎推荐PretrainedModel是用于对model的一层包装,forward等函数在model里面实现。
还介绍了ModuleUtilsMixin,这个是py通过多继承扩展模型功能的一个类,可以参考一个例子走近 Python 的 Mixin 类:利用 Python 多继承的魔力_mixin类-CSDN博客学习Mixin类和调用顺序。
这里介绍了GenerationConfig和GenerationMixin来使得模型进行多样化的生成过程,扩展了模型的功能。
导出 🤗 Transformers 模型到 ONNX (huggingface.co)
这里介绍了一些配置类来帮助transformers模型导出到ONNX。
这里只是列举了几个模型参数跟新过程会用到的优化器等,但不是很全,也不是很深入,连示例过程都没有。
Transformers库所有模型的输出都是 ModelOutput 的子类的实例,这里介绍了许多输出类和基本的类。
这里介绍了许多Pipeline和自定义Pipeline。
这个库大概介绍了Processor类,用于编码或者解码多模型输入并且组合。
量化 🤗 Transformers 模型 (huggingface.co)
这个大致介绍了常见的量化方法并给了简答的示例。
大致介绍了Tokenizer和常用的办法。
这里介绍了Transformers的Trainer,同时说明了这个Trainer用于别的库的模型时要注意的问题,同时还介绍了一些常用的问题和通过accelerate使用Trainer。
这里介绍了DeepSpeed的很多常用的配置选项(非常复杂,挖坑todo
Feature Extractor (huggingface.co)
这里介绍了Feature负责为音频或视觉模型准备输入特征。这包括从序列中提取特征。
Image Processor (huggingface.co)
这里介绍了对于图像处理的Processor。
这里往后就是介绍一些功能类,可以用于扩展、调试控制等功能
这里介绍了一些Transformers库的为模型提供的自定义层和帮助函数(底层还是调用的pytorch或者TensorFlow,但是组合了一些常用的层。
这里介绍了一些为Pipeline使用的功能类。
Tokenizers的工具 (huggingface.co)
Image Processors的工具 (huggingface.co)