feat: add more

This commit is contained in:
Sun-ZhenXing
2025-10-06 21:48:39 +08:00
parent f330e00fa0
commit 3c609b5989
120 changed files with 7698 additions and 59 deletions

92
src/mlflow/README.zh.md Normal file
View File

@@ -0,0 +1,92 @@
# MLflow
[English](./README.md) | [中文](./README.zh.md)
此服务用于部署带有 PostgreSQL 后端和 MinIO 工件存储的 MLflow。
## 服务
- `mlflow`: MLflow 跟踪服务器。
- `postgres`: 用于 MLflow 元数据的 PostgreSQL 数据库。
- `minio`: 用于工件存储的 MinIO 服务器S3 兼容)。
- `minio-init`: 创建 MLflow 存储桶的初始化服务。
## 环境变量
| 变量名 | 说明 | 默认值 |
| --------------------------- | --------------------- | ------------------------------ |
| MLFLOW_VERSION | MLflow 镜像版本 | `v2.20.2` |
| POSTGRES_VERSION | PostgreSQL 镜像版本 | `17.6-alpine` |
| POSTGRES_USER | PostgreSQL 用户名 | `mlflow` |
| POSTGRES_PASSWORD | PostgreSQL 密码 | `mlflow` |
| POSTGRES_DB | PostgreSQL 数据库名称 | `mlflow` |
| MINIO_VERSION | MinIO 镜像版本 | `RELEASE.2025-01-07T16-13-09Z` |
| MINIO_MC_VERSION | MinIO 客户端版本 | `RELEASE.2025-01-07T17-25-52Z` |
| MINIO_ROOT_USER | MinIO 根用户名 | `minio` |
| MINIO_ROOT_PASSWORD | MinIO 根密码 | `minio123` |
| MINIO_BUCKET | 工件的 MinIO 存储桶 | `mlflow` |
| MLFLOW_PORT_OVERRIDE | MLflow 服务器端口 | `5000` |
| MINIO_PORT_OVERRIDE | MinIO API 端口 | `9000` |
| MINIO_CONSOLE_PORT_OVERRIDE | MinIO 控制台端口 | `9001` |
请根据实际需求修改 `.env` 文件。
## 卷
- `postgres_data`: PostgreSQL 数据存储。
- `minio_data`: 工件的 MinIO 数据存储。
## 使用方法
### 访问 MLflow UI
启动服务后,在以下地址访问 MLflow UI
```text
http://localhost:5000
```
### 配置 MLflow 客户端
在你的 Python 脚本或笔记本中:
```python
import mlflow
# 设置跟踪 URI
mlflow.set_tracking_uri("http://localhost:5000")
# 你的 MLflow 代码
with mlflow.start_run():
mlflow.log_param("param1", 5)
mlflow.log_metric("metric1", 0.89)
```
### MinIO 控制台
在以下地址访问 MinIO 控制台:
```text
http://localhost:9001
```
使用 `MINIO_ROOT_USER``MINIO_ROOT_PASSWORD` 中指定的凭据登录。
## 功能
- **实验跟踪**: 使用参数、指标和工件跟踪 ML 实验
- **模型注册表**: 版本化和管理 ML 模型
- **项目**: 以可重用格式打包 ML 代码
- **模型**: 将 ML 模型部署到各种平台
- **持久存储**: PostgreSQL 用于元数据MinIO 用于工件
## 注意事项
- `minio-init` 服务运行一次以创建存储桶,然后停止。
- 对于生产环境,请更改所有默认密码。
- 考虑使用外部 PostgreSQL 和 S3 兼容存储用于生产环境。
- 该设置使用命名卷进行数据持久化。
## 许可证
MLflow 使用 Apache License 2.0 授权。