![](https://img-blog.csdnimg.cn/direct/a71c409cb1c44753809bd6f286528f51.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
huggingface源码解读教程
文章平均质量分 96
从源码入手帮助大家理解huggingface底层逻辑,助力开源大模型快速实现与二次开发。文章包含训练与推理方法,高效微调LoRA与权重合并方法及断点续训resume方法。所有方法基于Demo与huggingface底层源码解读,快速熟练huggingface通用工具。
tangjunjun-owen
从事人工智能行业,已从事工业检测行业、智慧交通行业、智慧城市行业,已有如下经验:
ARM/jetson部署、NVIDIA性能优化、道路感知2D、单目3D、点云3D、目标跟踪、lidar/radar/vison多传感融合、中间件ROS2开发、相机标定、工业2D检测/分类/分割、数据增强、attention、transformer、模型压缩加速
计算机技能:C++、Python、cuda、tensorrt、ros2
展开
-
第一章:huggingface整体介绍
Hugging Face是一家专注于自然语言处理(NLP)和对话系统的创新型公司。它成立于2016年,总部位于纽约,由两位热衷于开源的机器学习工程师Clément Delangue和Julien Chaumond创立。Hugging Face的使命是推动NLP技术,让更多人能够轻松地访问和使用先进的语言模型。Hugging Face的主要产品包括Transformers库、Datasets库、Tokenizers库以及Hugging Face Hub等。原创 2024-06-14 21:59:30 · 157 阅读 · 0 评论 -
第二章:huggingface的TrainingArguments与Trainner参数
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:12:35 · 162 阅读 · 0 评论 -
第三章:huggingface的Trainner参数解读
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:17:58 · 89 阅读 · 0 评论 -
第四章:构建Trainer的Demo
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:20:13 · 43 阅读 · 0 评论 -
第五章:huggingface的Trainer.train()源码与流程解读
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:21:54 · 115 阅读 · 0 评论 -
第六章:huggingface的_inner_training_loop源码与流程解读
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:24:53 · 53 阅读 · 0 评论 -
第七章:_inner_training_loop源码的数据处理内容
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:28:07 · 41 阅读 · 0 评论 -
第八章:_inner_training_loop源码的优化器与策略内容
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:30:39 · 42 阅读 · 0 评论 -
第九章:_inner_training_loop训练模型的外循环内容(epoch)
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:33:31 · 76 阅读 · 0 评论 -
第十章:_inner_training_loop训练模型的内循环内容(step)
大模型基本使用huggingface来实现。对于不太理解其内容基本按照官网教程或相关博客等来实现。想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。原创 2024-06-14 22:34:49 · 70 阅读 · 0 评论 -
第十一章:_inner_training_loop训练模型的内循环内容(step——training_step)
本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。本篇文章基于基于上一章_inner_training_loop源码与流程,本章继续展开 _inner_training_loop源码的step内循环的training_step模块与loss模块内容的源码与流程解读。原创 2024-06-14 22:37:03 · 48 阅读 · 0 评论 -
第十二章:huggingface的resume训练的Demo
想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。之前文章均是关于huggingface训练相关源码解读,而本篇文章将给出相关权重、状态等保存方法,构建一个resume的Demo。原创 2024-06-14 22:38:58 · 53 阅读 · 0 评论 -
第十三章:huggingface的resume训练源码内容
想进一步激发开源大模型在行业领域提升性能是棘手问题。该问题会涉及开源代码二次开发进行实验测试。基于此,本教程不同文字或理论介绍内容,而从源码解读其训练逻辑、权重保存、高效微调方法(LoRA)、断点续训方法、模型推理权重处理等方法。本教程所有内容完全依托huggingface源码与相关Demo验证来解读,助力大模型使用。本篇文章基于上篇文章Demo解读相关resume源码内容,特别是权重等相关内容加载。原创 2024-06-14 22:39:58 · 184 阅读 · 0 评论 -
第十四章:huggingface的LoRA原理与相关文件保存方法
在huggingface中,很多情况是使用LoRA方法来训练模型。有关LoRA训练获得权重与加载,以及如何LoRA继续resume训练等问题,尚未有一个较好文章说明。因此,本文将详细说明LoRA相关内容。首先介绍了LoRA(Low-Rank Adaptation)的原理及相关内容;其次也对训练相关各种模型权重、LoRA权重、配置文件、优化器、调度器以及训练器状态和随机状态保存方法;接着给出了关于LoRA训练与恢复方法Demo与介绍,包括LoraConfig配置文件介绍和PEFT的LoRA训练;原创 2024-06-14 22:42:11 · 124 阅读 · 0 评论 -
第十五章:基于BERT模型的LoRA训练与resume方法(huggingface)
在huggingface中,很多情况是使用LoRA方法来训练模型。有关LoRA训练获得权重与加载,以及如何LoRA继续resume训练等问题,尚未有一个较好文章说明。因此,本文将详细说明LoRA相关内容。首先介绍了LoRA...接着给出了关于LoRA训练与恢复方法Demo与介绍,包括LoraConfig配置文件介绍和PEFT的LoRA训练;并进一步解读huggingface训练期间的LoRA权重等内容加载源码解读;最后,给出训练完后LoRA权重如何与原始模型合并Demo,以此实现模型推理。原创 2024-06-14 22:44:42 · 170 阅读 · 0 评论 -
第十六章:基于开源大模型使用huggingface在deepspeed与accelerator下继承源码权重保存而实现resume与infer
本篇文章继续升级使用huggingface来灵活保存相关内容为模型推理使用。我使用llava开源模型对特征提取vit的lora、映射层微调、大语言模型lora训练等相关内容保存,而实现推理与resume功能。基于此,本篇文章会给出llava不同推理需要使用文件内容介绍、 deepspeed训练的resume加载相关内容与如何保存其相关内容等方法。最终,本篇文章升级deepspeed与accelerator方法下自由个性化的相关内容实现resume训练与推理过程。原创 2024-06-26 20:30:00 · 396 阅读 · 0 评论