本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Hugging Face Hub 模型部署失败
概述:使用模型源类型从 Hugging Face huggingface Hub 部署模型时,部署可能会在模型下载阶段失败。本节介绍常见的故障场景以及如何使用 Kubernetes 事件和 pod 日志对其进行诊断。
诊断 Hugging Face 部署失败
故障排除步骤:
-
检查 InferenceEndpointConfig 状态和事件以了解错误详情:
kubectl describe inferenceendpointconfig <name> -n <namespace>查找状态中包含原因
HuggingFaceDownloadFailed和DeploymentFailed条件的事件,其中包含特定的错误消息。 -
如果 init 容器出现故障(pod 显示
Init:CrashLoopBackOff或Init:Error),请查看 init 容器日志:kubectl logs <pod-name> -c hf-model-downloader -n <namespace> -
检查 pod 状态以获取 init 容器退出代码:
kubectl get pod <pod-name> -n <namespace> -o jsonpath='{.status.initContainerStatuses[0].state}'
Hugging Face 代币无效或已过期
症状:Init 容器失败并显示401 Unauthorized或Access denied错误。吊舱进来CrashLoopBackOff了。
根本原因:
Kubernetes Secret 中的 Hugging Face API 令牌无效、已过期或已撤销。
令牌无权访问门控模型。
解决方法:
-
对于门控模型,请确保您已在 Hugging Face Hub 模型页面上接受该模型的许可协议。
-
使用新令牌更新 Kubernetes 密钥:
kubectl delete secret <secret-name> -n <namespace> kubectl create secret generic <secret-name> \ --from-literal=token=hf_NEW_TOKEN_HERE \ -n <namespace> -
删除失败的 pod 以触发新的下载尝试:
kubectl delete pod -l app=<iec-name> -n <namespace>
网络连接故障
症状:Init 容器因连接超时或 DNS 解析错误而失败。吊舱进来CrashLoopBackOff了。
根本原因:集群节点无法访问 Hugging Face 域*.huggingface.co(*.hf.co和)的出站互联网。这在没有 NAT 网关的私有子网中很常见。
解决方法:
-
验证您的 VPC 是否已为运行集群节点的私有子网配置了 NAT 网关。
-
确认安全组允许出站 HTTPS(端口 443)流量。
-
验证网络 ACL 是否允许互联网的出站流量。
-
从集群内部测试连接:
kubectl run test-connectivity --image=curlimages/curl --rm -it --restart=Never -- \ curl -sI https://huggingface.co
注意
如果无法访问出站互联网,可以考虑改用 Amazon S3 或 Amazon FSx 作为模型来源。先将模型下载到 Amazon S3,然后使用s3模型源类型进行部署。
未找到模型
症状:Init 容器失败并显示Repository Not Found或404错误。
根本原因:
错误或
modelId该模型在 Hugging Face Hub 上不存在。该模型是私有的,令牌没有访问权限。
解决方法:
-
在浏览器
https://huggingface.co/<org>/<model>中访问以验证模型 ID 是否存在。 -
请
modelId确保您的org/model格式 InferenceEndpointConfig 正确(例如,mistralai/Mistral-7B-Instruct-v0.3)。