pytorch Vertex AI自定义容器部署

new9mtju  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(200)

我有一个简单的应用程序,它有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或有其他东西我必须改变。

w8biq8rn

w8biq8rn1#

我建议在部署端点时启用日志,以便从日志中获取更有意义的信息。

此问题可能是由不同的原因造成的:

1.确保容器配置端口是否使用端口8080。Vertex AI将活动检查、运行状况检查和预测请求发送到容器上的此端口。容器的HTTP服务器必须监听此端口上的请求。
1.请确保您具有所需的权限。为此,您可以遵循此gcp documention,并验证您所使用的帐户是否具有读取项目的GCS存储桶的足够权限
1.顶点AI有一些quota limits来验证这一点,你也可以遵循这个gcp documention
1.根据documentation,如果您未指定路径,它应选择默认的预测和健康路由。
如果以上任何建议有效,则需要通过创建fix it支持案例来联系GCP支持。如果不使用内部GCP资源,社区不可能解决问题

相关问题