文末有福利!
❝
最近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) 是一个部署和提供开源文本嵌入和序列分类模型的工具包,支持包括FlagEmbedding
、Ember
、GTE
和E5
在内的流行模型。部署后,可以通过本地的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系统的构建与测试。
Hugging Face Dataset
from langchain_community.document_loaders.hugging_face_dataset import HuggingFaceDatasetLoader dataset_name = "imdb" page_content_column = "text" loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
-
使用示例:https://python.langchain.com/v0.2/docs/integrations/document_loaders/hugging_face_dataset/
-
API参考文档:https://api.python.langchain.com/en/latest/document_loaders/langchain_community.document_loaders.hugging_face_dataset.HuggingFaceDatasetLoader.html
工具
Hugging Face Hub Tools
Hugging Face工具 支持文本输入输出,可以通过load_huggingface_tool
函数加载。
pip install transformers huggingface_hub
from langchain.agents import load_huggingface_tool tool = load_huggingface_tool("lysandre/hf-model-downloads") print(f"{tool.name}: {tool.description}")
-
使用示例:https://python.langchain.com/v0.2/docs/integrations/tools/huggingface_tools/
-
API参考文档:https://api.python.langchain.com/en/latest/agent_toolkits/langchain_community.agent_toolkits.load_tools.load_huggingface_tool.html
总结
通过上述介绍,相信你已经可以轻松地在你的LangChain项目中集成Hugging Face平台的强大功能。无论是聊天机器人、文本嵌入还是数据集加载,Hugging Face平台都能为你提供更多的开源模型的支持。
那么,如何系统的去学习大模型LLM?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~ , 【保证100%免费
】
篇幅有限,部分资料如下:
👉LLM大模型学习指南+路线汇总👈
💥大模型入门要点,扫盲必看!
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。
👉大模型入门实战训练👈
💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉国内企业大模型落地应用案例👈
💥《中国大模型落地应用案例集》 收录了52个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
💥《2024大模型行业应用十大典范案例集》 汇集了文化、医药、IT、钢铁、航空、企业服务等行业在大模型应用领域的典范案例。
👉LLM大模型学习视频👈
💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
👉640份大模型行业报告👈
💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
👉获取方式:
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓