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

文末有福利!

最近Hugging Face官宣发布langchain_huggingface,这是一个由 Hugging Face 和 LangChain 共同维护的 LangChain 合作伙伴包。这个新的 Python 包旨在将 Hugging Face 最新功能引入 LangChain 并保持同步。

通过Hugging Face官方包的加持,开发小伙伴们通过简单的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 HuggingFacePipeline      llm = HuggingFacePipeline.from_model_id(       model_id="gpt2",       task="text-generation",       pipeline_kwargs={"max_new_tokens": 10},   )   
  • 使用示例:https://python.langchain.com/v0.2/docs/integrations/llms/huggingface_pipelines/

  • API参考文档:https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_pipeline.HuggingFacePipeline.html

聊天模型(Chat modal)

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

from langchain_core.messages import (       HumanMessage,       SystemMessage,   )   from langchain_huggingface import ChatHuggingFace      messages = [       SystemMessage(content="You're a helpful assistant"),       HumanMessage(           content="What happens when an unstoppable force meets an immovable object?"       ),   ]      chat_model = ChatHuggingFace(llm=llm)   
  • 使用示例:https://python.langchain.com/v0.2/docs/integrations/chat/huggingface/

  • API参考文档:https://api.python.langchain.com/en/latest/chat_models/langchain_huggingface.chat_models.huggingface.ChatHuggingFace.html

嵌入模型(embedding)

RAG应用开发过程中必不可少的embedding模型,Hugging Face也提供了各类开源嵌入模型的选择,包括:

HuggingFaceEmbeddings
  • 通用开源embedding模型加载
from langchain_huggingface import HuggingFaceEmbeddings      model_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   )   
  • 使用示例:https://python.langchain.com/v0.2/docs/integrations/text_embedding/huggingfacehub/

  • API参考文档:https://api.python.langchain.com/en/latest/embeddings/langchain_huggingface.embeddings.huggingface.HuggingFaceEmbeddings.html

HuggingFaceInstructEmbeddings
  • 指令型开源embedding模型加载
from langchain_community.embeddings import HuggingFaceInstructEmbeddings      model_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   )   
  • 使用示例:https://python.langchain.com/v0.2/docs/integrations/text_embedding/instruct_embeddings/

  • API参考文档:https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.huggingface.HuggingFaceInstructEmbeddings.html

HuggingFaceBgeEmbeddings

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

from langchain_community.embeddings import HuggingFaceBgeEmbeddings      model_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   )   
  • 使用示例:https://python.langchain.com/v0.2/docs/integrations/text_embedding/bge_huggingface/

  • API参考文档:https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.huggingface.HuggingFaceBgeEmbeddings.html

Hugging Face Text Embeddings Inference (TEI)

Hugging Face文本嵌入推理(TEI) 是一个部署和提供开源文本嵌入和序列分类模型的工具包,支持包括FlagEmbeddingEmberGTEE5在内的流行模型。部署后,可以通过本地的http端口来调用Embedding能力。

pip install huggingface-hub      model=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 run      docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:0.6 --model-id $model --revision $revision   
from langchain_huggingface.embeddings import HuggingFaceEndpointEmbeddings      embeddings = HuggingFaceEndpointEmbeddings(model="http://localhost:8080")   
  • 使用示例:https://python.langchain.com/v0.2/docs/integrations/text_embedding/text_embeddings_inference/

  • API参考文档:https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.huggingface_hub.HuggingFaceHubEmbeddings.html

文档加载器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值