目录
一、HuggingFace. 2
1.1定义... 2
1.2活跃度... 2
1.3 工具集... 2
二、HuggingFace工具介绍... 3
2.1 Pipelines. 3
2.1.1定义... 3
2.1.2常见参数... 3
2.2、AutoClass. 4
2.2.1定义... 4
2.2.2 支持模型架构列表... 4
三、HuggingFace案例介绍... 4
3.1基于Piplelines的语音识别案例... 4
3.2基于AutoClass的大模型对话交互案例... 5
3.3基于Langchain的大模型RAG检索增强案例... 5
3.3.1 流程介绍... 5
3.3.1 案例分享... 6
3.4基于Langchain的大模型智能体Action Agent案例... 8
3.4.1 Action Agent参数... 8
3.4.2 Action Agent类型... 8
3.4.3 Rect框架... 9
3.4.4 PromptTemplate类型... 9
3.4.5 案例分享... 10
3.4.6 常见问题... 11
3.5基于Langchain的大模型智能体PlanAndExecute Agent案例... 12
3.5.1 Action Agent对比PlanAndExecute Agent 12
3.5.2 案例分享... 12
3.6基于ChatGLM-6B进行LORA微调案例... 14
3.6.1 LORA定义... 14
3.6.2 案例分享... 14
四、参考链接... 15
附录... 15
1如何自定义加载本地大模型... 15
一、HuggingFace
1.1定义
一家专注于自然语言处理(NLP)、人工智能和分布式系统的创业公司,创立于2016年。最早是主营业务是做闲聊机器人,2018年 Bert 发布之后,他们贡献了一个基于 Pytorch 的 Bert 预训练模型,即 pytorch-pretrained-bert,大受欢迎,进而将重心转向维护 NLP开源社区。
HuggingFace整合了他们的贡献的NLP领域的预训练模型,发布了Transformers库。Transformers 提供了数以千计的预训练模型(包括我们熟知的Bert、GPT、GPT-2、XLM等),支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨让最先进的 NLP 技术人人易用。
1.2活跃度
HuggingFace的模型仓库已经共享了超过60000个模型,数据集仓库已经共享了超过8000个数据集,基于开源共享的精神,这些资源的使用都是完全免费的。HuggingFace代码库也在快速更新中,HuggingFace开始时以自然语言处理任务为重点,所以HuggingFace大多数的模型和数据集也是自然语言处理方向的,但图像和语音的功能模型正在快速更新中,相信未来逐渐会把图像和语音的功能完善并标准化,如同自然语言处理一样。
1.3 工具集
HuggingFace把AI项目的研发大致分为以下几部分,如图1-1所示。
图1-1
针对流程中的各个节点,HuggingFace都提供了很多工具类,能够帮助研发人员快速地实施。HuggingFace提供的工具集如图1-2所示。
图1-2
二、HuggingFace工具介绍
2.1 Pipelines
2.1.1定义
pipeline是一个设计用来封装Transformer库中大部分复杂代码的对象,它提供了一个简单的API接口,用于执行各种任务,如命名实体识别(NER)、情感分析等。使用pipeline,用户可以轻松地将文本输入传递给模型,并获得相应的输出结果。这个过程包括三个主要步骤:
- 文本预处理:将文本转换成模型可以理解的格式。
- 模型预测:预处理后的输入被送入模型进行推理。
- 后处理:模型的预测结果经过后处理,以便赋予具体的业务含义。
2.1.2常见参数
参数名称 | 参数含义 | 示例列表 |
task | The task defining which pipeline will be returned. | |
model | The model that will be used by the pipeline to make predictions. This can be a model identifier or an actual instance of a pretrained model inheriting from PreTrainedModel (for PyTorch) or TFPreTrainedModel (for TensorFlow). | |
tokenizer (分词器) | The tokenizer that will be used by the pipeline to encode data for the model. This can be a model identifier or an actual pretrained tokenizer inheriting from PreTrainedTokenizer. | |
feature_extractor (特征提取器) | The feature extractor that will be used by the pipeline to encode data for the model. This can be a model identifier or an actual pretrained feature extractor inheriting from PreTrainedFeatureExtractor. |
2.2、AutoClass
2.2.1定义
由于存在许多不同的Transformer架构,因此为您的checkpoint创建一个可用架构可能会具有挑战性。通过AutoClass可以自动推断并从给定的checkpoint加载正确的架构, 这也是Transformers易于使用、简单且灵活核心规则的重要一部分。
2.2.2 支持模型架构列表
模型类型 | AutoClass名称 |
NLP任务 | AutoTokenizer |
视觉任务 | AutoImageProcessor |
音频任务 |