28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
# 源码走读
|
||
## API Server
|
||
API Server是平台服务入口,提供API和web UI功能。
|
||
|
||
- 入口:src/mvp/py/server.py
|
||
- 配置文件:src/mvp/configs/dev.yaml,解析成V2Config数据结构
|
||
- 核心模块:
|
||
- service:服务层,包括API服务,任务调度,模型调度等后台任务
|
||
- core: 核心数据结构,任务ID,submission ID,model serving ID定义
|
||
- ray: 对接ray cluster的client
|
||
|
||
## service核心模块
|
||
API Server核心模块包括:
|
||
- app.py: API 入口层,提供webui,将API请求转化为各类数据库操作,以及协调SFTPGo服务
|
||
- scheduler.py:定时任务,调度训练任务队列,提交ray job,更新数据库中任务状态
|
||
- serving_reconciler.py: 定时任务,模型推理调度,提交ray serve app,调整副本数,更新数据库中模型实例状态
|
||
- db.py: 数据库操作基础工具类
|
||
- janitor.py:定时清理训练任务中间过程数据
|
||
- sftpgo.py: 对接SFTPGo的客户端,创建用户、重置密码、初始化用户目录等
|
||
|
||
## core核心模块
|
||
- ray_job_tool.py:通过builder模板构建ray job命令,提交ray job到ray集群。
|
||
- head_publisher.py: Ray head节点自动写head IP 文件到共享存储
|
||
- worker_watchdog.py: 自动检查最新head IP文件,加入head的ray集群。
|
||
- models: 定义RayConfig/JobSepc/AdvancedTaskSpec等核心数据结构
|
||
|
||
|