Skip to main content
Open In ColabOpen on GitHub

Huggingface 端点

Hugging Face Hub 是一个拥有超过 12 万个模型、2 万个数据集和 5 万个演示应用(Spaces)的平台,所有资源均为开源并公开可用,提供在线协作环境,方便人们共同参与和构建机器学习项目。

The Hugging Face Hub 还提供了各种端点来构建机器学习应用。 本示例展示了如何连接到不同类型的端点。

特别是,文本生成推理由文本生成推理驱动:一个用Rust、Python和gRPC构建的自定义服务器,用于极快的文本生成推理。

from langchain_huggingface import HuggingFaceEndpoint

安装与设置

使用前,您应该已安装huggingface_hub Python

%pip install --upgrade --quiet huggingface_hub
# get a token: https://huggingface.co/docs/api-inference/quicktour#get-your-api-token

from getpass import getpass

HUGGINGFACEHUB_API_TOKEN = getpass()
import os

os.environ["HUGGINGFACEHUB_API_TOKEN"] = HUGGINGFACEHUB_API_TOKEN

准备示例

from langchain_huggingface import HuggingFaceEndpoint
from langchain.chains import LLMChain
from langchain_core.prompts import PromptTemplate
question = "Who won the FIFA World Cup in the year 1994? "

template = """Question: {question}

Answer: Let's think step by step."""

prompt = PromptTemplate.from_template(template)

示例

这里是访问免费的 无服务器端点 API 的 HuggingFaceEndpoint 集成示例。

repo_id = "mistralai/Mistral-7B-Instruct-v0.2"

llm = HuggingFaceEndpoint(
repo_id=repo_id,
max_length=128,
temperature=0.5,
huggingfacehub_api_token=HUGGINGFACEHUB_API_TOKEN,
)
llm_chain = prompt | llm
print(llm_chain.invoke({"question": question}))

专用端点

免费的无服务器API让您能够快速实现解决方案并立即进行迭代,但由于负载与其他请求共享,对于高频率使用场景可能会受到速率限制。

对于企业级工作负载,最佳选择是使用推理端点 - 专用。 这可以访问完全托管的基础设施,提供更高的灵活性和速度。这些资源配备持续支持和正常运行时间保证,以及自动扩展等选项。

# Set the url to your Inference Endpoint below
your_endpoint_url = "https://fayjubiy2xqn36z0.us-east-1.aws.endpoints.huggingface.cloud"
llm = HuggingFaceEndpoint(
endpoint_url=f"{your_endpoint_url}",
max_new_tokens=512,
top_k=10,
top_p=0.95,
typical_p=0.95,
temperature=0.01,
repetition_penalty=1.03,
)
llm("What did foo say about bar?")

流式传输

from langchain_core.callbacks import StreamingStdOutCallbackHandler
from langchain_huggingface import HuggingFaceEndpoint

llm = HuggingFaceEndpoint(
endpoint_url=f"{your_endpoint_url}",
max_new_tokens=512,
top_k=10,
top_p=0.95,
typical_p=0.95,
temperature=0.01,
repetition_penalty=1.03,
streaming=True,
)
llm("What did foo say about bar?", callbacks=[StreamingStdOutCallbackHandler()])

这个相同的 HuggingFaceEndpoint 类可以与本地的 HuggingFace TGI 实例 一起使用,以提供大语言模型服务。有关各种硬件(GPU、TPU、Gaudi 等)支持的详细信息,请查看 TGI 代码仓库