diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-25 20:05:15 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-25 20:05:15 +0300 |
| commit | 4fd86fbc75670878308fd6a56b7778334b52ccd8 (patch) | |
| tree | 1f2a611c41248844d9f7e32f4bb78760001cc8cb /hyperstack-vm2.toml | |
| parent | aa298b3d85a7f4ee7f1e1b4a3192421b95f67828 (diff) | |
refactor(manager): extract focused collaborators from Manager God Class
Extract VM lifecycle, SSH execution, WireGuard setup, model switching,
end-to-end inference tests, and provisioning orchestration into separate
collaborator classes. Manager becomes a thin facade (~80 lines).
Also fixes CLI edge-cases: status/model-list when no VMs are active,
and threads --vllm/--ollama flags through the provisioning pipeline.
Diffstat (limited to 'hyperstack-vm2.toml')
| -rw-r--r-- | hyperstack-vm2.toml | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/hyperstack-vm2.toml b/hyperstack-vm2.toml index f895bfc..b0211b2 100644 --- a/hyperstack-vm2.toml +++ b/hyperstack-vm2.toml @@ -13,13 +13,13 @@ name_prefix = "hyperstack2" hostname = "hyperstack2" environment_name = "snonux-ollama" -# A100-80GB for Qwen3.6 27B; H100 fallback if n3-A100x1 unavailable. -flavor_name = "n3-H100x1" +# A100-80GB for Gemma 4 31B; H100 fallback if n3-A100x1 unavailable. +flavor_name = "n3-A100x1" image_name = "Ubuntu Server 24.04 LTS R570 CUDA 12.8 with Docker" assign_floating_ip = true create_bootable_volume = false enable_port_randomization = false -labels = ["qwen36-27b", "wireguard"] +labels = ["gemma4-31b", "wireguard"] [ssh] username = "ubuntu" @@ -58,23 +58,22 @@ context_length = 32768 pull_models = ["qwen36-27b"] # vLLM serves one model via Docker on the OpenAI-compatible API. -# VM2 defaults to Qwen3.6 27B; use 'model switch' to load any other preset. -# Official Qwen3.6 guidance recommends vLLM >=0.19.0 with qwen3 reasoning parsing and -# qwen3_coder tool parsing. The official FP8 checkpoint is the primary default here. +# VM2 defaults to Gemma 4 31B; use 'model switch' to load any other preset. [vllm] install = true -model = "Qwen/Qwen3.6-27B-FP8" +model = "cyankiwi/gemma-4-31B-it-AWQ-4bit" # HuggingFace model cache on ephemeral NVMe (fast; survives reboots on most providers). hug_cache_dir = "/ephemeral/hug" -container_name = "vllm_qwen36_27b" -# Qwen3.6-27B-FP8: official FP8 checkpoint with native 262K context on a single 80 GB GPU. -max_model_len = 262144 -# H100 needs 0.95 to fit Mamba cache blocks; A100 worked at 0.92. -gpu_memory_utilization = 0.95 +container_name = "vllm_gemma4_31b" +max_model_len = 131072 +gpu_memory_utilization = 0.92 tensor_parallel_size = 1 -tool_call_parser = "qwen3_coder" -# --max-num-seqs 817 caps concurrent sequences to fit Mamba cache blocks on H100. -extra_vllm_args = ["--reasoning-parser", "qwen3", "--max-num-seqs", "817"] +tool_call_parser = "gemma4" +# Gemma 4 requires a newer transformers and nightly vLLM image. +docker_image = "vllm/vllm-openai:nightly" +pre_start_cmd = "pip install -q transformers==5.5.0 2>/dev/null" +extra_docker_env = ["CUDA_VISIBLE_DEVICES=0"] +extra_vllm_args = [] # Named model presets for 'ruby hyperstack.rb --vm 2 model switch <name>'. # Core model fields override the matching [vllm] values; preset-only extras such as |
