">这个" Hugging Face Hub 是一个平台,拥有超过12万个模型、2万个数据集和5万个演示应用(Spaces),全部开源且公开可用,人们可以在这个在线平台上轻松协作和共同构建机器学习。
该 Hugging Face Hub 还提供各种端点来构建机器学习应用。 本示例展示了如何连接不同的端点类型。
特别是,文本生成推理由 Text Generation Inference: 一个定制的Rust、Python和gRPC服务器,用于极快的文本生成推理。
from langchain_huggingface import HuggingFaceEndpoint
安装和设置
要使用,您应该已安装 huggingface_hub python 包.
pip install -qU huggingface_hub
# get a token: https://huggingface.co/docs/api-inference/quicktour#get-your-api-token
from getpass import getpass
HUGGINGFACEHUB_API_TOKEN = getpass()
os.environ["HUGGINGFACEHUB_API_TOKEN"] = HUGGINGFACEHUB_API_TOKEN
准备示例
from langchain_huggingface import HuggingFaceEndpoint
from langchain_classic.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)
示例
以下是一个如何访问的示例 HuggingFaceEndpoint 无服务器的 推理提供者 API.
repo_id = "deepseek-ai/DeepSeek-R1-0528"
llm = HuggingFaceEndpoint(
repo_id=repo_id,
max_length=128,
temperature=0.5,
huggingfacehub_api_token=HUGGINGFACEHUB_API_TOKEN,
provider="auto", # set your provider here hf.co/settings/inference-providers
# provider="hyperbolic",
# provider="nebius",
# provider="together",
)
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实例 一起使用来服务LLM。请查看TGI 仓库 以了解各种硬件(GPU、TPU、Gaudi...)支持的详细信息。