Hugging Face全面拥抱LangChain:全新官方合作包

news/2025/1/22 16:06:30/文章来源:https://www.cnblogs.com/yongwei/p/18686274
最近Hugging Face官宣发布langchain_huggingface,这是一个由 Hugging Face 和 LangChain 共同维护的 LangChain 合作伙伴包。这个新的 Python 包旨在将 Hugging Face 最新功能引入 LangChain 并保持同步。本系列合集,点击链接查看

通过官方包的加持,开发小伙伴们通过简单的api调用就能在langchain中轻松使用Hugging Face上各类流行的开源大语言模型以及各类AI工具。

以下是笔者在测试使用后,总结的在LangChain中无缝安装和使用Hugging Face最佳实践

如何安装

要使用Hugging Face平台的功能,首先需要安装langchain-huggingface包,这是一个专门为Hugging Face平台集成的Python包。

pip install langchain-huggingface

大型语言模型

(LLM)

LLM是Langchain对大语言模型的核心抽象,Hugging Face中则将类似能力称之为Pipeline。因而Hugging Face平台使用HuggingFacePipeline类来启动开源大语言模型的本地启动

from langchain_huggingface.llms import HuggingFacePipelinellm = HuggingFacePipeline.from_model_id(model_id="gpt2",task="text-generation",pipeline_kwargs={"max_new_tokens": 10},
)
  • 查看使用示例。
  • API参考文档:HuggingFacePipeline。

聊天模型

(Chat modal)

Chat作为Langchain集成与交互的核心入口,Hugging Face平台也提供了多种开源聊天模型作为对应支持。你可以直接使用ChatHuggingFace类来快速集成开源LLM。

from langchain_core.messages import (HumanMessage,SystemMessage,
)
from langchain_huggingface import ChatHuggingFacemessages = [SystemMessage(content="You're a helpful assistant"),HumanMessage(content="What happens when an unstoppable force meets an immovable object?"),
]chat_model = ChatHuggingFace(llm=llm)
  • 查看使用示例。
  • API参考文档:ChatHuggingFace。

嵌入模型(embedding)

RAG应用开发过程中必不可少的embedding模型

Hugging Face也提供了各类开源嵌入模型的选择,包括:

HuggingFaceEmbeddings

  • 通用开源embedding模型加载
from langchain_huggingface import HuggingFaceEmbeddingsmodel_name = "sentence-transformers/all-mpnet-base-v2"
model_kwargs = {'device': 'cpu'}
encode_kwargs = {'normalize_embeddings': False}
hf = HuggingFaceEmbeddings(model_name=model_name,model_kwargs=model_kwargs,encode_kwargs
=encode_kwargs
)
  • 查看使用示例。
  • API参考文档:HuggingFaceEmbeddings

HuggingFaceInstructEmbeddings

  • 指令型开源embedding模型加载
from langchain_community.embeddings import HuggingFaceInstructEmbeddingsmodel_name = "hkunlp/instructor-large"
model_kwargs = {'device': 'cpu'}
encode_kwargs = {'normalize_embeddings': True}
hf = HuggingFaceInstructEmbeddings(model_name=model_name,model_kwargs=model_kwargs,encode_kwargs=encode_kwargs
)
  • 查看使用示例。
  • API参考文档:HuggingFaceInstructEmbeddings

HuggingFaceBgeEmbeddings

由北京人工智能研究院(BAAI)创建的BGE模型,是开源嵌入模型中的佼佼者。

from langchain_community.embeddings import HuggingFaceBgeEmbeddingsmodel_name = "BAAI/bge-small-en"
model_kwargs = {"device": "cpu"}
encode_kwargs = {"normalize_embeddings": True}
hf = HuggingFaceBgeEmbeddings(model_name=model_name, model_kwargs=model_kwargs, encode_kwargs=encode_kwargs
)
  • 查看使用示例。
  • API参考文档:HuggingFaceBgeEmbeddings

Hugging Face Text Embeddings Inference (TEI)

Hugging Face文本嵌入推理(TEI) 是一个部署和提供开源文本嵌入和序列分类模型的工具包

,支持包括FlagEmbeddingEmberGTEE5在内的流行模型。部署后,可以通过本地的http端口来调用Embedding能力。

pip install huggingface-hubmodel=BAAI/bge-large-en-v1.5
revision=refs/pr/5
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every rundocker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr
.io/huggingface/text-embeddings-inference:0.6 --model-id $model --revision $revisionfrom langchain_huggingface.embeddings import HuggingFaceEndpointEmbeddingsembeddings = HuggingFaceEndpointEmbeddings(model="http://localhost:8080")
  • 查看使用示例。
  • API参考文档:HuggingFaceHubEmbeddings

文档加载器

Hugging Face平台拥有超过75,000个数据集,涵盖100多种语言,适用于NLP、计算机视觉和音频领域的多种任务。通过HuggingFaceDatasetLoader,我们可以直接将这些数据集应用于LangChain系统的构建与测试。

Hugging Face Dataset

from langchain_community.document_loaders.hugging_face_dataset import HuggingFaceDatasetLoaderdataset_name = "imdb"
page_content_column = "text"loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
  • 查看使用示例
  • API参考文档:HuggingFaceDatasetLoader

工具

Hugging Face Hub Tools

Hugging Face工具 支持文本输入输出,可以通过load_huggingface_tool函数加载。

pip install transformers huggingface_hubfrom langchain.agents import load_huggingface_tooltool = load_huggingface_tool("lysandre/hf-model-downloads")print(f"{tool.name}: {tool.description}")
  • 查看使用示例。
  • API参考文档:load_huggingface_tool

通过上述介绍,你可以轻松地在你的Python项目中集成Hugging Face平台的强大功能。无论是聊天机器人、文本嵌入还是数据集加载,Hugging Face平台都能提供相应的支持和工具。

参考:

https://zhuanlan.zhihu.com/p/700632322

https://zhuanlan.zhihu.com/p/700632322

 

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

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

相关文章

工业人工智能白皮书2025年:边缘AI驱动,助力新质生产力报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p=38940 在当前科技变革的浪潮中,工业领域正经历着深刻转型。人工智能与工业互联网等前沿技术的迅猛发展,为工业的升级演进带来了前所未有的机遇与挑战。 本报告汇总洞察聚焦工业领域的变革趋势,深入剖析其核心驱动力与发展脉络。通过对工业 …

【视频】R语言支持向量分类器SVM原理及房价数据预测应用及回归、LASSO、决策树、随机森林、GBM、神经网络对比可视化

全文链接: https://tecdat.cn/?p=38830 原文出处:拓端数据部落公众号 分析师:Yuqi Liu 在大数据时代,精准的数据分类与预测对各领域的发展至关重要。超平面作为高维空间中的关键概念,可将线性空间一分为二,为数据分类奠定了理论基石。基于此发展而来的最大边缘分类器,…

【信息化】一个IT主管/经理/总监的该做什么?-读图解 CIO 工作指南上半IT管理总结

在这个IT人日益技术焦虑的年代,为了缓解一下学习的焦虑,看各路推荐开始学习一下《图解CIO工作指南》。我的初衷很简单,学习一下IT架构设计的思路,日常IT管理工作怎么优化,以及未来MBA毕业写IT规划论文。 一开始,当我拿到这本看似“老旧”的书籍时,心里确实犯了点嘀咕…

LCD-RGB屏幕学习(二)ESP32驱动RGB屏幕

ESP32是国内比较火的IOT芯片厂商,在个人玩家圈子里备受好评1.器件准备40pin RGB 通用接口屏幕这里的通用接口指的是市面上最常见的接口,并不属于某种标准 我拆开了吃灰已久的树莓派便携HDMI屏幕,在屏库上查看此型号,刚好满足需求,又剩下一笔大洋ESP32N16R8选用带有pasram的…

OM6621F低功耗低成本蓝牙芯片支持BLE5.1和2.4G私有协议集成了电源管理单元(PMU)BMS电池管理领域首选方案

OM6621Fx是一款专为蓝牙低功耗和专有2.4GHz应用设计的功率优化的真系统级芯片(SOC)解决方案。它集成了高性能和低功率的射频收发器,具有蓝牙基带和丰富的外围I0扩展。OM6621Fx还集成了电源管理单元(PMU),以实现高效率的电源管理。它针对2.4GHz蓝牙低功耗系统、专有2.4GHz系统…

Jetpack架构组件学习(6)——使用Glance实现桌面小组件

原文地址: Jetpack架构组件学习(6)——使用Glance实现桌面小组件-Stars-One的杂货小窝公司陆续整了几个Compose写的app,有个小组件的功能,顺便试了下Jetpack库里的Glance框架 感觉与原来的Remoteview差点意思,不过点击事件的使用比Remoteview要方便不少PS: 如果想看Remoteview实…

《操作系统真象还原》第九章 线程(二) 多线程轮转调度

本文是对《操作系统真象还原》第九章(二)学习的笔记,欢迎大家一起交流第九章 线程(二) 多线程轮转调度 本文是对《操作系统真象还原》第九章(二)学习的笔记,欢迎大家一起交流,目前所有代码已托管至 fdx-xdf/MyTinyOS 。 上一节中成功创建了线程并运行,这一节要实现的…

Cisco APIC 6.0(8e)M - 应用策略基础设施控制器

Cisco APIC 6.0(8e)M - 应用策略基础设施控制器Cisco APIC 6.0(8e)M - 应用策略基础设施控制器 Application Policy Infrastructure Controller (APIC) 请访问原文链接:https://sysin.org/blog/cisco-apic-6/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org思科…

clickhouse本地表和分布式表说明(3分片单副本)

环境: clickhouse:24.8.11.51.创建本地表和分布式表 在一个节点上执行即可,我这里配置的分片使用了 defaultclickhouse-client --host 192.168.1.102 --port=9000 use db_test CREATE TABLE tb_test_local ON CLUSTER default (id Int32,name String,timestamp DateTime DEFAUL…

分发测试

协程的IO asyncio 作为实现异步编程的库,任务执行中遇到系统IO的时能够自动切换到其他任务。协程的IO asyncio 作为实现异步编程的库,任务执行中遇到系统IO的时能够自动切换到其他任务。协程使用的IO模型是IO多路复用。在 asyncio 低阶API 一篇中提到过 “以Linux系统为例,I…

【图】数场功能架构图

【图】数场功能架构图(来源:国家数据基础设施建设指引) (1)点:参与方之间的自身数据安全能力约定; (2)线:涉及到网络高可用,可以根据DSMM评估域进行统一约定; (3)面:DSMM中数据生存周期安全,场景化能力约定;

hyperledger

https://topgoer.cn/docs/blockchain_guide/blockchain_guide-1emut2dv80st1Hyperledger 所有项目代码托管在 Github上。目前,主要包括如下顶级项目(按时间顺序)。Fabric:包括 Fabric、Fabric CA、Fabric SDK(包括 Node.Js、Java、Python 和 Go 语言)等,目标是区块链的基…