neues modell
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
# Faehrt die LM-Studio-Matrix sequenziell: zwei Modelle x drei Agentenmodi.
|
||||
# Sequenziell zwingend - beide Modelle teilen sich dieselbe GPU, parallele
|
||||
# Laeufe wuerden die Laufzeitmessung verzerren und den Speicher sprengen.
|
||||
$ErrorActionPreference = 'Continue'
|
||||
|
||||
$repo = 'C:\DEV\MasterArbeit'
|
||||
$skill = Join-Path $repo '.claude\skills\run-experiment'
|
||||
$adapter = Join-Path $skill 'opencode-adapter.py'
|
||||
$root = Join-Path $repo 'QuellCode\CentronERP'
|
||||
$agents = Join-Path $repo 'Versuche\Versuch_02\03_Agents.json'
|
||||
$skillVer = 'v12.1.0'
|
||||
$iterV1 = 'Iteration 13'
|
||||
$iterV2 = 'Iteration 6'
|
||||
$maxRun = 28800 # 8 h je Lauf; 6 Laeufe = bis zu 48 h gesamt
|
||||
|
||||
$werkzeugkontext = @{
|
||||
solo = @'
|
||||
### Werkzeugkontext (vom Versuchsaufbau vorgegeben)
|
||||
Für diesen Lauf stehen zur Verfügung: Lesen von Dateien, Suchen im Dateibestand, Auflisten von
|
||||
Verzeichnissen sowie das Ausführen rein lesender Kommandozeilenbefehle im Arbeitsverzeichnis.
|
||||
Nicht verfügbar sind: Subagenten, spezialisierte Agentenrollen, externe Werkzeugserver,
|
||||
Webzugriff.
|
||||
Triff keine Annahmen über weitere Werkzeuge und versuche nicht, nicht verfügbare
|
||||
Werkzeuge zu ersetzen.
|
||||
'@
|
||||
builtin = @'
|
||||
### Werkzeugkontext (vom Versuchsaufbau vorgegeben)
|
||||
Für diesen Lauf stehen zur Verfügung: Lesen von Dateien, Suchen im Dateibestand, Auflisten von
|
||||
Verzeichnissen, das Ausführen rein lesender Kommandozeilenbefehle im Arbeitsverzeichnis sowie
|
||||
die werkzeugeigenen Subagenten.
|
||||
Nicht verfügbar sind: spezialisierte Agentenrollen aus Konfigurationsdateien, externe
|
||||
Werkzeugserver, Webzugriff.
|
||||
Triff keine Annahmen über weitere Werkzeuge und versuche nicht, nicht verfügbare
|
||||
Werkzeuge zu ersetzen.
|
||||
'@
|
||||
custom = @'
|
||||
### Werkzeugkontext (vom Versuchsaufbau vorgegeben)
|
||||
Für diesen Lauf stehen zur Verfügung: Lesen von Dateien, Suchen im Dateibestand, Auflisten von
|
||||
Verzeichnissen, das Ausführen rein lesender Kommandozeilenbefehle im Arbeitsverzeichnis sowie
|
||||
die beigestellten Agentenrollen modulinventar, faktenermittler, strs-autor, syrs-autor,
|
||||
swrs-autor, belegpruefer, konsistenzpruefer und iso29148-orchestrator.
|
||||
Nicht verfügbar sind: externe Werkzeugserver, Webzugriff.
|
||||
Triff keine Annahmen über weitere Werkzeuge und versuche nicht, nicht verfügbare
|
||||
Werkzeuge zu ersetzen.
|
||||
|
||||
Für die folgenden Teilaufgaben stehen vorgesehene Bearbeiter bereit. Führe diese
|
||||
Teilaufgaben durch den jeweils genannten Bearbeiter aus, nicht selbst:
|
||||
|
||||
| Teilaufgabe | Vorgesehener Bearbeiter |
|
||||
|---|---|
|
||||
| Modulinventar (Schritt 0) | modulinventar |
|
||||
| Faktenerhebung zu einem Modulausschnitt (Schritte 2 bis 4) | faktenermittler |
|
||||
| Formulierung der StRS-Anforderungen | strs-autor |
|
||||
| Formulierung der SyRS-Anforderungen | syrs-autor |
|
||||
| Formulierung der SwRS-Anforderungen samt Konsolidierungsprüfung | swrs-autor |
|
||||
| Prüfung ausgewiesener Belege gegen die Codebasis | belegpruefer |
|
||||
| Prüfung des Gesamtbestands an den Nahtstellen der Ausschnitte | iso29148-orchestrator |
|
||||
| Konsistenzcheck des fertigen Anforderungssatzes (Abschnitt Abschluss) | konsistenzpruefer |
|
||||
|
||||
Zuschnitt, Anzahl der Aufträge je Bearbeiter, deren Reihenfolge und die Tiefe
|
||||
entscheidest du. Gebunden ist allein, wer eine Teilaufgabe ausführt. Die Bearbeiter
|
||||
lesen nur; das Anlegen der Ergebnisdateien und die Übernahme ihrer Rückmeldungen
|
||||
bleiben deine Aufgabe.
|
||||
'@
|
||||
}
|
||||
|
||||
# Modell x Modus. custom ist V2 und liegt deshalb unter Versuch_02.
|
||||
$laeufe = @(
|
||||
@{ modell = 'google/gemma-4-e4b'; modus = 'solo' }
|
||||
@{ modell = 'google/gemma-4-e4b'; modus = 'builtin' }
|
||||
@{ modell = 'google/gemma-4-e4b'; modus = 'custom' }
|
||||
@{ modell = 'qwen/qwen3.5-9b'; modus = 'solo' }
|
||||
@{ modell = 'qwen/qwen3.5-9b'; modus = 'builtin' }
|
||||
@{ modell = 'qwen/qwen3.5-9b'; modus = 'custom' }
|
||||
)
|
||||
|
||||
$protokoll = Join-Path $repo 'Versuche\_lmstudio_matrix.log'
|
||||
Set-Content -Path $protokoll -Value "Matrixstart $(Get-Date -Format o); Skill $skillVer"
|
||||
|
||||
foreach ($l in $laeufe) {
|
||||
$modell = $l.modell
|
||||
$modus = $l.modus
|
||||
|
||||
if ($modus -eq 'custom') {
|
||||
$promptDir = Join-Path $repo 'Versuche\Versuch_02'
|
||||
$promptDatei = Join-Path $promptDir '02_Prompt.md'
|
||||
$nn = '02'; $iter = $iterV2
|
||||
} else {
|
||||
$promptDir = Join-Path $repo 'Versuche\Versuch_01'
|
||||
$promptDatei = Join-Path $promptDir '03_Prompt.md'
|
||||
$nn = '03'; $iter = $iterV1
|
||||
}
|
||||
|
||||
$zelle = Join-Path (Join-Path (Join-Path $iter $modell) $modus) 'high'
|
||||
do {
|
||||
$id4 = '{0:x4}' -f (Get-Random -Maximum 65536)
|
||||
$lauf = Join-Path (Join-Path $promptDir $zelle) "${nn}_Lauf_$(Get-Date -Format 'yyyy-MM-dd_HHmmss')_${skillVer}-$id4"
|
||||
} while (Test-Path $lauf)
|
||||
|
||||
New-Item -ItemType Directory -Force "$lauf\Ergebnisse" | Out-Null
|
||||
New-Item -ItemType Directory -Force "$lauf\_meta" | Out-Null
|
||||
Set-Content -Path "$lauf\_meta\before.txt" `
|
||||
-Value (git -C $repo status --porcelain -- 'QuellCode/CentronERP' | Out-String)
|
||||
|
||||
$block2 = @"
|
||||
|
||||
### Ausgabeverzeichnis (überschreibt anderslautende Pfadangaben oben)
|
||||
Schreibe ALLE zu erzeugenden Ergebnisdateien in das Verzeichnis
|
||||
``$lauf\Ergebnisse\``.
|
||||
Verändere keine Dateien im Arbeitsverzeichnis (der analysierten Codebasis).
|
||||
"@
|
||||
Set-Content -Path "$lauf\_meta\combined_prompt.md" -Encoding utf8 `
|
||||
-Value ((Get-Content $promptDatei -Raw) + "`n`n" + $werkzeugkontext[$modus] + "`n" + $block2)
|
||||
|
||||
Add-Content -Path $protokoll -Value "START $(Get-Date -Format o) $modell $modus -> $lauf"
|
||||
Set-Content -Path "$lauf\_meta\startzeit.txt" -Value (Get-Date -Format o)
|
||||
|
||||
$argumente = @(
|
||||
$adapter,
|
||||
'--prompt', "$lauf\_meta\combined_prompt.md",
|
||||
'--root', $root,
|
||||
'--output', "$lauf\Ergebnisse",
|
||||
'--result-dir', $lauf,
|
||||
'--provider', 'lmstudio',
|
||||
'--model', $modell,
|
||||
'--effort', 'high',
|
||||
'--mode', $modus,
|
||||
'--min-context', '32768',
|
||||
'--lmstudio-context', 'max',
|
||||
'--lmstudio-parallel', '4',
|
||||
'--lmstudio-gpu', 'max',
|
||||
'--lmstudio-autoload',
|
||||
'--stall-timeout', '0',
|
||||
'--max-runtime', "$maxRun",
|
||||
'--title', "run-experiment $modell $modus high"
|
||||
)
|
||||
if ($modus -eq 'custom') { $argumente += @('--agents', $agents) }
|
||||
|
||||
& python @argumente 2> "$lauf\Stderr.log"
|
||||
$code = $LASTEXITCODE
|
||||
|
||||
Set-Content -Path "$lauf\_meta\endzeit.txt" -Value (Get-Date -Format o)
|
||||
Set-Content -Path "$lauf\_meta\after.txt" `
|
||||
-Value (git -C $repo status --porcelain -- 'QuellCode/CentronERP' | Out-String)
|
||||
& python (Join-Path $skill 'analyse-anforderungen.py') $lauf 2>&1 | Out-Null
|
||||
|
||||
$dateien = (Get-ChildItem "$lauf\Ergebnisse" -Recurse -File -EA SilentlyContinue | Measure-Object).Count
|
||||
Add-Content -Path $protokoll -Value "ENDE $(Get-Date -Format o) exit=$code dateien=$dateien"
|
||||
}
|
||||
|
||||
Add-Content -Path $protokoll -Value "Matrixende $(Get-Date -Format o)"
|
||||
Reference in New Issue
Block a user