feat: dynamically clean incompatible architectures
This commit is contained in:
28
README.md
28
README.md
@@ -55,6 +55,8 @@ Optional tuning:
|
||||
- `MODELHUB_QUEUE_CLEANUP_INTERVAL_CYCLES` default `120`; cleanup also runs once at startup
|
||||
- `MODELHUB_QUEUE_CLEANUP_READ_CONCURRENCY` default `6`
|
||||
- `MODELHUB_QUEUE_CLEANUP_REPORT_PATH` default `.modelhub_state/queue_cleanup_latest.json`
|
||||
- `MODELHUB_ARCHITECTURE_BLACKLIST_PATH` default `.modelhub_state/architecture_compatibility_blacklist.json`
|
||||
- `MODELHUB_ARCHITECTURE_BLOCK_TTL_DAYS` default `30`
|
||||
- `MODELHUB_RECENT_MODEL_RESERVE_SLOTS` default `10` per account
|
||||
- `MODELHUB_DYNAMIC_OLD_MODEL_CLEANUP_RESERVE_SLOTS` default `5` per account
|
||||
- `MODELHUB_RECENT_MODEL_DAYS` default `7`
|
||||
@@ -115,13 +117,14 @@ says that the selected framework does not support the model or architecture, the
|
||||
runner learns an exact GPU + framework + task type + architecture block from the
|
||||
candidate repository's `config.json`. Repository names are never used as
|
||||
architecture evidence. Exact `architectures` values take priority and
|
||||
`model_type` is used only when `architectures` is absent; missing metadata does
|
||||
not create a block. Generic unsupported operators, attention backends, GPU types,
|
||||
`model_type` is also retained when the runtime explicitly says Transformers does
|
||||
not recognize that type; missing metadata does not create a block. Generic unsupported operators, attention backends, GPU types,
|
||||
quantization failures, and OOMs cannot enter this blacklist. A newer success for
|
||||
the same exact combination clears the block, and otherwise it expires after 30
|
||||
days. Set `MODELHUB_ARCHITECTURE_BLOCK_TTL_DAYS` to a value from 1 to 365 to
|
||||
change that window. The stats report exposes `architectureCompatibilityBlocks`
|
||||
and per-GPU/framework block counts.
|
||||
and per-GPU/framework block counts. The live snapshot is written to
|
||||
`.modelhub_state/architecture_compatibility_blacklist.json`.
|
||||
|
||||
Before a candidate reaches the submit queue, failure-informed preflight checks
|
||||
the actual ModelScope repository structure and file sizes. Non-GGUF text
|
||||
@@ -138,7 +141,7 @@ capacities with
|
||||
`MODELHUB_GPU_MEMORY_GIB_JSON`, for example
|
||||
`{"New_gpu": 64}`.
|
||||
|
||||
At poller startup, the same deterministic memory gate is applied to existing
|
||||
At poller startup, the same deterministic memory and learned architecture gates are applied to existing
|
||||
`waiting` and `running` tasks across every configured account. A task is stopped
|
||||
through `PUT /api/async/task/stop-create-contest-task` only when its own current
|
||||
recursive repository size, multiplied by ModelHub's observed `1.20` overhead,
|
||||
@@ -151,6 +154,16 @@ same model or infer failure from historical similarity. The cleanup repeats
|
||||
every 120 poll cycles by default and writes its full evidence report to
|
||||
`.modelhub_state/queue_cleanup_latest.json`.
|
||||
|
||||
Architecture cleanup joins each active task to the locally recorded submission
|
||||
or ledger entry to recover its exact framework and task type, then reads the
|
||||
model's `config.json`. Only an exact GPU + framework + task type + architecture
|
||||
blacklist hit can authorize cancellation. Matching waiting tasks are stopped;
|
||||
running tasks remain protected and their state is rechecked again immediately
|
||||
before the stop call. Failed outcomes are synchronized every three poll cycles.
|
||||
When fixed `MODEL_NOT_SUPPORTED` text adds a new blacklist entry, a lightweight
|
||||
architecture-only cleanup runs immediately without repeating repository-size or
|
||||
model-age scans.
|
||||
|
||||
Each account dynamically reserves its last 10 known-capacity positions for
|
||||
models updated within seven days. If an account's discovered limit is 100, 200,
|
||||
or 500, older models stop at positions 90, 190, or 490 respectively. Old-model
|
||||
@@ -270,12 +283,15 @@ Version `2026.08.12.2` learns conservative, expiring GPU/framework/architecture
|
||||
compatibility blocks only from explicit ModelHub failure text, matches candidate
|
||||
`config.json` metadata instead of repository names, and lets newer success
|
||||
evidence clear stale blocks.
|
||||
Version `2026.08.12.3` extracts unsupported `model_type`/`architectures` from the
|
||||
platform's fixed failure wording, persists a dynamically growing blacklist, and
|
||||
immediately removes exact-matching waiting tasks with two active-state checks.
|
||||
|
||||
## Deploy
|
||||
|
||||
Create a tag and submit the repository URL plus tag in "我的适配智能体".
|
||||
|
||||
```bash
|
||||
git tag agent-v20
|
||||
git push origin agent-v20
|
||||
git tag agent-v21
|
||||
git push origin agent-v21
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user