基于huggingface和langchain快速开发大模型应用

目录

一、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,用户可以轻松地将文本输入传递给模型,并获得相应的输出结果。这个过程包括三个主要步骤:

  1. 文本预处理:将文本转换成模型可以理解的格式。
  2. 模型预测:预处理后的输入被送入模型进行推理。
  3. 后处理:模型的预测结果经过后处理,以便赋予具体的业务含义。

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

音频任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/391883.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Midjourney小技巧-提升出图质量的常用公式

一个公式让你的Midjourney生成更具韵味的人像身影图 step1-测试:输入提示词 - 一个面容精致的亚洲女性 - An Asian woman with a delicate face 生成的图片还是挺唯美的,就是过于单调,稀疏平常 step2-使用公式: 谁谁&#xff0…

flutter开发环境搭建与android studio 安装配置

flutter开发环境搭建与android studio 安装配置 安装 android studio 下载安装 Android Studio 开发工具 Android Studio官网安装的时看到配置路径就换成自己其他盘的路径即可,其他的一路下一步就ok安装完毕,运行打开缺少 android sdk 按照提示下载即可…

C++ 继承 派生类的运算符重载

C(二十二)派生类的运算符重载 语法赋值顺序引例1:当子类,不自实现赋值运算符函数重载时,默认调用父类的赋值运算符函数引例2:子类自实现赋值运算符函数重载,不做特殊处理时,只会调用父类的赋值运算符函数.引例3:子类自实现赋值运算符函数重载,在函数体内调用父类的赋值运算符函…

【leetcode】平衡二叉树、对称二叉树、二叉树的层序遍历(广度优先遍历)(详解)

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构、LeetCode专栏 📚本系…

【Qt】如何搭建Qt开发环境

Qt的开发工具 需要搭建Qt开发环境,需要安装3个部分: C编译器(gcc、cl.exe...)注意,这里的C编译器不是指visual studio这种集成开发环境,编译器不等于IDE,编译器只是IDE调用的一个程序。Qt SDK…

将本地的业务写成成可供RPC远程调用的方法

第一步:首先我们先定义proto文件,这些proto文件将会为远程调用者提供调用的方法,为login方法。 2.重写UserServiceRpc类中的Login方法。 在Login中做的操作主要是,得到requst里面的参数,然后调用本地的Login方法&#…

SQL注入 报错注入、文件上传、布尔盲注、时间盲注

第7关 文件上传 ---面试官常问 1、MySQL上传shell的满足条件 如果面试官问你如何通过MySQL向网站上传一个shell脚本或者其他语言的一些脚本 ---就可以通过outfile导出的方式进行上传; outfile导出的前提条件:1、必须知道网站的物理路径&#xf…

网络编程相关

关于ipv4和v6 ipv4小细节-------公网和私有地址 端口 InetAddress 协议 UDP、TCP UDP通信程序 发送(单播): 接收(单播): UDP三种通信方式 单播和广播代码几乎相同,就是将: InetAddr…

【JVM基础11】——垃圾回收-说一下JVM的分代回收?

目录 1- 引言:分代回收1-1 什么是分代回收(What)1-2 为什么要用分代回收?(Why) 2- ⭐核心:分代回收工作机制2-1 工作机制2-2 MinorGC、Mixed GC、FullGC的区别是什么 3- 总结3-1 说一下 JVM 的分…

如何利用 ChatGPT 提高工作效率?

内容创作与总结: 写作辅助:可以帮助撰写文章、报告、邮件等各种文本,如为招商银行写宣传文案、写论文、写故事等。学习材料生成:能够生成学习材料,如摘要、抽认卡和测验,帮助学生复习和学习课程。评估和考核…

【Material-UI】深入理解useAutocomplete Hook:自定义与高级用法

文章目录 一、什么是useAutocomplete?导入useAutocomplete 二、基本用法代码解析 三、高级定制1. 自定义选项渲染2. 分组和排序3. 自定义输入框行为4. 与其他组件集成 四、注意事项1. 类型安全2. 性能优化 五、总结 Material-UI提供了强大的Autocomplete组件&#x…

Android 本地化、多语言切换:Localization

目录 1)如何实现多语言切换、如何实现跟随手机语言切换而切换app语言 2)Localization是什么 3)不管手机语言如何,根据用户在App选择的语言,只切换App语言 4)文字长短不一样,怎么办呢? 一、Lo…

Java面试之操作系统

1、冯诺依曼模型 运算器、控制器、存储器、输入设备、输出设备 32位和64位CPU最主要区别是一次性能计算多少字节数据,如果计算的数额不超过 32 位数字的情况下,32 位和 64 位 CPU 之间没什么区别的,只有当计算超过 32 位数字的情况下&#…

我花了一天时间,搭了个专属知识库,部署上线了,手把手教,不信你学不会

自动开了这个号以后,陆陆续续写了很多干货文章,一方面是可以帮助自己梳理思路,另一方面也方便日后查找相关内容。 但是,我想检索某个关键词是在之前哪篇文章写过的,就有点捉急了。CSDN 还好,可以检索到相关…

魔塔社区程序的`datasets.utils`导入`_datasets_server`错误问题的解决办法

运行魔塔社区的的一个识别图像文件中文字的模型程序: 出现如下的错误提示: from datasets.utils import _datasets_server,file_utils ImportError: cannot import name _datasets_server from datasets.utils (D:\PycharmProjects\minicpm_cuda_test\ve…

【保姆级讲解C语言中的运算符的优先级!】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Java-文件操作和IO

文件介绍 文件本身有多重含义,狭义的文件,特指硬盘上的文件(以及保存文件的目录),广义的文件:计算机上的很多硬件设备,软件资源,在操作系统中,都会被视为是"文件" 文件除了有数据内容之外,还有一部分信息,例如文件名,文件类型,文件大小,这些信息可以称作文件的元信…

【Android】通知的使用

使用通知 通知(notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中…

YOLO:VOC格式数据集转换为YOLO数据集格式

作者:CSDN _养乐多_ 本文将介绍如何将目标检测中常用的VOC格式数据集转换为YOLO数据集,并进行数据集比例划分,从而方便的进行YOLO目标检测。 文章目录 一、将VOC格式数据集转换为YOLO格式数据集二、YOLO格式数据集划分(训练、验…

FreeRTOS中的动态内存管理(heap_1、heap_2、heap_3、heap_4)

FreeRTOS 提供了多种动态内存分配方案,这些方案通过不同的内存管理器(heap managers)实现,主要位于 FreeRTOS/Source/portable/MemMang 目录下。以下是几种常见的动态内存分配方案: heap_1 特点: 简单性…