我有一个简单的应用程序,它有PyTorch模型来预测文本中的情绪。当模型开始工作时,它被下载到容器中。不幸的是,在顶点ai中的部署每次都失败,并显示消息:
Failed to deploy model "emotion_recognition" to endpoint "emotions" due to the error: Error: model server never became ready. Please validate that your model file or container configuration are valid.
下面是我的Dockerfile:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8-slim
COPY requirements.txt ./requirements.txt
RUN pip install -r requirements.txt
WORKDIR /usr/src/emotions
COPY ./schemas/ /emotions/schemas
COPY ./main.py /emotions
COPY ./utils.py /emotions
ENV PORT 8080
ENV HOST "0.0.0.0"
WORKDIR /emotions
EXPOSE 8080
CMD ["uvicorn", "main:app"]
这是我的main.py:
from fastapi import FastAPI,Request
from utils import get_emotion
from schemas.schema import Prediction, Predictions, Response
app = FastAPI(title="People Analytics")
@app.get("/isalive")
async def health():
message="The Endpoint is running successfully"
status="Ok"
code = 200
response = Response(message=message,status=status,code=code)
return response
@app.post("/predict",
response_model=Predictions,
response_model_exclude_unset=True)
async def predict_emotions(request: Request):
body = await request.json()
print(body)
instances = body["instances"]
print(instances)
print(type(instances))
instances = [x['text'] for x in instances]
print(instances)
outputs = []
for text in instances:
emotion = get_emotion(text)
outputs.append(Prediction(emotion=emotion))
return Predictions(predictions=outputs)
我看不出云日志错误的原因,所以我很好奇原因。请检查我的健康/预测路线是否正确的顶点ai或有其他东西我必须改变。
1条答案
按热度按时间w8biq8rn1#
我建议在部署端点时启用日志,以便从日志中获取更有意义的信息。
此问题可能是由不同的原因造成的:
1.确保容器配置端口是否使用端口8080。Vertex AI将活动检查、运行状况检查和预测请求发送到容器上的此端口。容器的HTTP服务器必须监听此端口上的请求。
1.请确保您具有所需的权限。为此,您可以遵循此gcp documention,并验证您所使用的帐户是否具有读取项目的GCS存储桶的足够权限
1.顶点AI有一些quota limits来验证这一点,你也可以遵循这个gcp documention。
1.根据documentation,如果您未指定路径,它应选择默认的预测和健康路由。
如果以上任何建议有效,则需要通过创建fix it支持案例来联系GCP支持。如果不使用内部GCP资源,社区不可能解决问题