From 5e18b7776bb8fc96b897345e78de959bbc3ddda5 Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Tue, 8 Sep 2026 15:16:15 +0200 Subject: [PATCH] Add ACE-Step XL SFT music experiment --- docs/SPECIALIZED_MODEL_ROADMAP.md | 53 +++++++++++++++++++++++ docs/TESTED_MODELS.md | 7 ++- experiments/acestep15-xl-sft/README.md | 39 +++++++++++++++++ experiments/acestep15-xl-sft/compose.yaml | 37 ++++++++++++++++ 4 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 docs/SPECIALIZED_MODEL_ROADMAP.md create mode 100644 experiments/acestep15-xl-sft/README.md create mode 100644 experiments/acestep15-xl-sft/compose.yaml diff --git a/docs/SPECIALIZED_MODEL_ROADMAP.md b/docs/SPECIALIZED_MODEL_ROADMAP.md new file mode 100644 index 0000000..9a816ab --- /dev/null +++ b/docs/SPECIALIZED_MODEL_ROADMAP.md @@ -0,0 +1,53 @@ +# Roadmap fuer spezialisierte lokale KI-Dienste + +Stand: 8. September 2026 + +Diese Liste sammelt Nischenmodelle, die wir auf Athena nacheinander testen. +Ein Eintrag ist erst produktiv, wenn er auf der realen Hardware abgenommen und +im zentralen Register `TESTED_MODELS.md` dokumentiert wurde. + +| Prioritaet | Aufgabe | Kandidat | Geplanter Betrieb | Status | +|---:|---|---|---|---| +| 1 | Musik erzeugen und bearbeiten | `ACE-Step 1.5 XL SFT` mit `acestep-5Hz-lm-1.7B` | exklusives On-Demand-Profil auf der RTX 5080; CPU-Offload; Qwen, Vision und TTS werden waehrenddessen entladen | **technisch bestanden; Klangabnahme und Integration offen** | +| 2 | Gesang und Instrumente trennen | BS-RoFormer Viperx 1297; alternativ MelBand-RoFormer, fuer Mehrspur `htdemucs_ft` | eigener Audio-Worker; GPU bevorzugt, CPU als langsamer Fallback | offen | +| 3 | Voice Cloning | vorhandenes `Qwen3-TTS-12Hz-1.7B-Base` | bestehender TTS-Worker auf der RTX 3060; zunaechst den eingebauten 3-Sekunden-Klonpfad freilegen | offen | +| 4 | Objekte lokalisieren und zaehlen | Grounding DINO oder RF-DETR | optionaler Vision-Worker; normales Erkennen bleibt beim vorhandenen Qwen-Vision-Projektor | offen | +| 5 | Bildort schaetzen | GeoAgent 8B | exklusives Vision-Profil; Ergebnis nur als Wahrscheinlichkeitsrangliste | offen | +| 6 | Eigene Orte/Bilder wiederfinden | AnyLoc oder GME-Qwen2-VL-7B | Embedding-Index mit eigener Referenzdatenbank | offen | + +## Grundsaetze + +- Qualitaet geht vor Dauerbetrieb: schwere Spezialmodelle duerfen die regulaeren + Profile voruebergehend entladen. +- Die RTX 5080 und RTX 3060 besitzen zusammen 28 GiB physischen VRAM, bilden + aber keinen gemeinsamen Speicherpool. Mehrkartenbetrieb muss vom jeweiligen + Modell beziehungsweise Backend ausdruecklich unterstuetzt werden. +- Jeder Test bleibt isoliert und entfernbar. Abgelehnte Images, Gewichte, Caches + und Integrationsreste werden nach der Dokumentation entfernt. +- Neue Kandidaten werden vor dem Download mit `TESTED_MODELS.md` abgeglichen. + +## Erster Test: ACE-Step 1.5 XL SFT + +Der erste Durchlauf nutzt nur die RTX 5080. Laut offiziellem Projekt benoetigt +XL mindestens 12 GiB mit Offload und empfiehlt mindestens 20 GiB ohne Offload. +Auf der 16-GiB-5080 wird deshalb der offiziell vorgesehene Offload-Pfad mit dem +1,7B-Musikplaner getestet. Die 3060 bleibt zunaechst frei; eine Verteilung ueber +beide Karten wird erst erwogen, wenn ACE-Step dafuer einen belastbaren +Inferenzpfad anbietet. + +Abnahmekriterien: + +1. Dienst startet reproduzierbar und belegt keine GPU im Ruhezustand. +2. Ein 30-Sekunden-Stueck wird ohne OOM erzeugt. +3. Laufzeit, Spitzen-VRAM, RAM-Nutzung und Ausgabedatei werden protokolliert. +4. Danach werden Ultra und TTS wiederhergestellt. +5. Erst nach bestandener Abnahme folgt die Hermes-Integration. + +Erster Messlauf am 8. September 2026: Ein 30-Sekunden-Instrumental wurde in +15,39 Sekunden erzeugt (LM 8,00 s, DiT 7,39 s, MP3-Encoding 0,82 s). Die +gemeldete maximale CUDA-Allokation lag bei 9,38 GiB. Es gab weder OOM noch +CUDA-Fehler. Der technische Test ist damit bestanden; die subjektive +Klangabnahme erfolgt ueber die geoeffnete Gradio-Oberflaeche. + +Offizielle Referenzen: [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5) +und [REST-API](https://github.com/ace-step/ACE-Step-1.5/blob/main/docs/en/API.md). diff --git a/docs/TESTED_MODELS.md b/docs/TESTED_MODELS.md index 01ec01c..4847c1d 100644 --- a/docs/TESTED_MODELS.md +++ b/docs/TESTED_MODELS.md @@ -57,6 +57,12 @@ Titelgenerierung und Kontextkompression in Hermes. | 05.09.2026 | `Qwen/Qwen3-TTS-12Hz-1.7B-Base` | deutlich natürlichere deutsche Ausgabe ohne die XTTS-Endhalluzinationen | **produktiv** mit Piper-Fallback | | 06.–08.09.2026 | Whisper.cpp `large-v3-turbo` | lokaler TTS→STT-Rundlauf und OpenClaw-Transkription erfolgreich | **produktiv** | +## Musikgenerierung + +| Datum | Modell | Test | Ergebnis | Status / Entscheidung | Beleg | +|---|---|---|---|---|---| +| 08.09.2026 | `ACE-Step/acestep-v15-xl-sft` mit `acestep-5Hz-lm-1.7B`, offizielles ACE-Step-1.5-Image `sha256:95652cd780c78a1b1a7f6f0335530430f0ae53d96c7c12d59f9f39fa23d38567` | 30 s Instrumental, Thinking/LM aktiv, Batch 1, RTX 5080 16 GiB, automatischer CPU-Offload und INT8 Weight-only DiT | erfolgreich in 15,39 s: LM 8,00 s, DiT 7,39 s, MP3 0,82 s; PyTorch meldete maximal 9,38 GiB CUDA-Allokation; kein OOM/CUDA-Fehler | **Beta-Test bestanden**; Klangabnahme und Hermes-/Router-Integration noch offen | Athena: `/data/music/acestep/batch_1788873234/`; [SPECIALIZED_MODEL_ROADMAP.md](SPECIALIZED_MODEL_ROADMAP.md) | + ## Ablauf für zukünftige Kandidaten 1. Exakten Hugging-Face-/Ollama-Namen und Dateinamen in diesem Dokument suchen. @@ -67,4 +73,3 @@ Titelgenerierung und Kontextkompression in Hermes. 4. Unmittelbar danach hier Datum, exaktes Artefakt, Ergebnis, Entscheidung und Pfad zum Detailbericht ergänzen. 5. Verworfene Gewichte nach gesichertem Ergebnis wieder löschen. - diff --git a/experiments/acestep15-xl-sft/README.md b/experiments/acestep15-xl-sft/README.md new file mode 100644 index 0000000..17fc051 --- /dev/null +++ b/experiments/acestep15-xl-sft/README.md @@ -0,0 +1,39 @@ +# ACE-Step 1.5 XL SFT: isolierter Athena-Test + +Dieser Compose-Dienst ist absichtlich noch nicht Teil des produktiven Stacks. +Er startet nicht automatisch, bindet die Testoberflaeche nur an localhost und +kann mitsamt seinem Container entfernt werden, ohne Router oder Hermes zu +veraendern. Gewichte und Ergebnisse liegen getrennt unter `/data`. + +Das offizielle Image ist auf den am 8. September 2026 geladenen Digest +`sha256:95652cd780c78a1b1a7f6f0335530430f0ae53d96c7c12d59f9f39fa23d38567` +fixiert. + +## Start + +Vor dem Start muessen das aktive llama.cpp-Profil und Qwen3-TTS beendet sein. +Die RTX 5080 wird ueber ihre UUID exklusiv an den Container uebergeben. + +```bash +export ACESTEP_GPU_UUID="GPU-..." +docker compose --profile music-test up -d music-worker +docker compose logs -f music-worker +``` + +Die lokale Oberflaeche kann vom Mac aus ueber einen SSH-Tunnel erreicht werden: + +```bash +ssh -L 7861:127.0.0.1:7861 root@athena.scc.kit.edu +``` + +Danach im Browser `http://127.0.0.1:7861` aufrufen. + +## Beenden + +```bash +docker compose --profile music-test down +``` + +Der Befehl entfernt nur den Testcontainer und das Testnetz. Caches, +Modellgewichte und Ausgaben bleiben fuer reproduzierbare Messungen erhalten. +Sie werden erst nach dokumentierter Ablehnung gezielt geloescht. diff --git a/experiments/acestep15-xl-sft/compose.yaml b/experiments/acestep15-xl-sft/compose.yaml new file mode 100644 index 0000000..1348755 --- /dev/null +++ b/experiments/acestep15-xl-sft/compose.yaml @@ -0,0 +1,37 @@ +services: + music-worker: + image: ghcr.io/ace-step/ace-step-1.5:latest@sha256:95652cd780c78a1b1a7f6f0335530430f0ae53d96c7c12d59f9f39fa23d38567 + container_name: mike-ai-music-acestep-test + profiles: ["music-test"] + environment: + ACESTEP_MODE: gradio + ACESTEP_CONFIG_PATH: acestep-v15-xl-sft + ACESTEP_LM_MODEL_PATH: acestep-5Hz-lm-1.7B + ACESTEP_LLM_BACKEND: pt + ACESTEP_INIT_SERVICE: "true" + ACESTEP_INIT_LLM: "true" + ACESTEP_DEVICE: cuda + TOKENIZERS_PARALLELISM: "false" + NVIDIA_VISIBLE_DEVICES: ${ACESTEP_GPU_UUID:?set ACESTEP_GPU_UUID to the RTX 5080 UUID} + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["${ACESTEP_GPU_UUID:?set ACESTEP_GPU_UUID to the RTX 5080 UUID}"] + capabilities: [gpu] + ports: + - "127.0.0.1:${ACESTEP_UI_PORT:-7861}:7860" + volumes: + - ${ACESTEP_CHECKPOINTS_DIR:-/data/models/acestep/checkpoints}:/app/checkpoints + - ${ACESTEP_HF_CACHE_DIR:-/data/models/acestep/hf-cache}:/root/.cache/huggingface + - ${ACESTEP_OUTPUT_DIR:-/data/music/acestep}:/app/gradio_outputs + - ${ACESTEP_OUTPUT_DIR:-/data/music/acestep}:/app/output + shm_size: "2gb" + restart: "no" + healthcheck: + test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:7860/ >/dev/null"] + interval: 30s + timeout: 10s + start_period: 300s + retries: 3