我正在嘗試使用 mlflow 將我的模型工件存盤到 s3。在 API 服務中,我們MLFLOW_S3_ENDPOINT_URL用作 s3 存盤桶。在 mlflow 服務中,我們將其作為環境變數傳遞。但是,mlflow 容器服務失敗,出現以下例外:
mflow_server | botocore.exceptions.HTTPClientError: An HTTP Client raised an unhandled exception: Not supported URL scheme s3
docker-compose 檔案如下:
version: "3.3"
services:
prisim-api:
image: prisim-api:latest
container_name: prisim-api
expose:
- "8000"
environment:
- S3_URL=s3://mlflow-automation-artifacts/
- MLFLOW_SERVER=http://mlflow:5000
- AWS_ID=xyz
- AWS_KEY=xyz
networks:
- prisim
depends_on:
- mlflow
links:
- mlflow
volumes:
- app_data:/usr/data
mlflow:
image: mlflow_server:latest
container_name: mflow_server
ports:
- "5000:5000"
environment:
- AWS_ACCESS_KEY_ID=xyz
- AWS_SECRET_ACCESS_KEY=xyz
- MLFLOW_S3_ENDPOINT_URL=s3://mlflow-automation-artifacts/
healthcheck:
test: ["CMD", "echo", "mlflow server is running"]
interval: 1m30s
timeout: 10s
retries: 3
networks:
- prisim
networks:
prisim:
volumes:
app_data:
為什么不支持s3方案?
uj5u.com熱心網友回復:
我對 miflow 的經驗為 0,但我在檔案中看到的是您使用錯誤的環境變數來設定 S3 存盤桶。或者更準確地說,您嘗試執行的操作似乎沒有環境變數。
MLFLOW_S3_ENDPOINT_URL如果您不將 AWS 用于 S3 并且期望正常的 API url(以 http/https 開頭),則應該使用。從檔案:
要將工件存盤在自定義端點中,請將 設定
MLFLOW_S3_ENDPOINT_URL為端點的 URL。例如,如果您在埠 9000 上的 1.2.3.4 上有一個 MinIO 服務器:
export MLFLOW_S3_ENDPOINT_URL=http://1.2.3.4:9000
我還遇到了一個為專案創建 docker 鏡像的github 存盤庫。他們這樣做:
#!/bin/sh
set -e
if [ -z "$FILE_DIR" ]; then
echo >&2 "FILE_DIR must be set"
exit 1
fi
if [ -z "$AWS_BUCKET" ]; then
echo >&2 "AWS_BUCKET must be set"
exit 1
fi
mkdir -p "$FILE_DIR" && mlflow server \
--backend-store-uri sqlite:///${FILE_DIR}/sqlite.db \
--default-artifact-root s3://${AWS_BUCKET}/artifacts \
--host 0.0.0.0 \
--port $PORT
搜索這個標志和它的環境變數讓我找到了相同的檔案,但它沒有列出它的環境變數。
除此之外,我還介紹了一個代碼示例,它可以讓您在代碼中設定 S3 存盤桶。所以你也可以在代碼中決議環境變數并像這樣設定它:
import mlflow
mlfow.set_tracking_uri("your_postgres_uri") # replace
expr_name = "new_experiment_2" # replace
s3_bucket = "your_s3_bucket_uri" # replace
mllfow.create_experiment(expr_name, s3_bucket)
mlflow.set_experiment(expr_name)
with mlflow.start_run():
# your code
uj5u.com熱心網友回復:
我找到了解決方案。
我已經添加["AWS_DEFAULT_REGION"]到環境變數中并且它起作用了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403108.html
標籤:
