fix: default spec by mode

This commit is contained in:
jialin
2025-11-03 10:14:30 +08:00
parent 7936d0063d
commit 56eba0d4fc
6 changed files with 269 additions and 60 deletions
@@ -30,6 +30,8 @@ interface FormContextProps {
interface CatalogFormContextProps {
sizeOptions: Global.BaseOption<number>[];
quantizationOptions: Global.BaseOption<string>[];
modeList: Global.BaseOption<string & { isBuiltIn: boolean; tips: string }>[];
onModeChange: (val: string) => void;
onSizeChange: (val: number) => void;
onQuantizationChange: (val: string) => void;
}
+138
View File
@@ -0,0 +1,138 @@
export default {
items: [
{
source: 'model_scope',
huggingface_repo_id: null,
huggingface_filename: null,
ollama_library_model_name: null,
model_scope_model_id: 'Qwen/Qwen3-30B-A3B-FP8',
model_scope_file_path: null,
local_path: null,
name: null,
description: null,
meta: {},
replicas: 1,
ready_replicas: 0,
categories: [],
embedding_only: false,
image_only: false,
reranker: false,
speech_to_text: false,
text_to_speech: false,
placement_strategy: 'spread',
cpu_offloading: false,
distributed_inference_across_workers: false,
worker_selector: {},
gpu_selector: null,
backend: 'SGLang',
backend_version: null,
backend_parameters: [
'--reasoning-parser=qwen3',
'--tool-call-parser=qwen25'
],
image_name: null,
run_command: null,
env: null,
restart_on_error: true,
distributable: false,
extended_kv_cache: null,
speculative_config: null,
quantization: 'FP8',
mode: 'throughput'
},
{
source: 'model_scope',
huggingface_repo_id: null,
huggingface_filename: null,
ollama_library_model_name: null,
model_scope_model_id: 'Qwen/Qwen3-30B-A3B-FP8',
model_scope_file_path: null,
local_path: null,
name: null,
description: null,
meta: {},
replicas: 1,
ready_replicas: 0,
categories: [],
embedding_only: false,
image_only: false,
reranker: false,
speech_to_text: false,
text_to_speech: false,
placement_strategy: 'spread',
cpu_offloading: false,
distributed_inference_across_workers: false,
worker_selector: {},
gpu_selector: null,
backend: 'SGLang',
backend_version: null,
backend_parameters: [
'--reasoning-parser=qwen3',
'--tool-call-parser=qwen25',
'--speculative-algorithm=EAGLE3',
'--speculative-draft-model-path=Tengyunw/qwen3_30b_moe_eagle3',
'--speculative-num-steps=6',
'--speculative-eagle-topk=10',
'--speculative-num-draft-tokens=32'
],
image_name: null,
run_command: null,
env: null,
restart_on_error: true,
distributable: false,
extended_kv_cache: null,
speculative_config: {
enabled: true,
algorithm: 'eagle3',
draft_model_name: 'Qwen3-30B-A3B-EAGLE3',
num_draft_tokens: 8,
ngram_min_match_length: null,
ngram_max_match_length: null
},
quantization: 'FP8',
mode: 'latency'
},
{
source: 'model_scope',
huggingface_repo_id: null,
huggingface_filename: null,
ollama_library_model_name: null,
model_scope_model_id: 'Qwen/Qwen3-30B-A3B',
model_scope_file_path: null,
local_path: null,
name: null,
description: null,
meta: {},
replicas: 1,
ready_replicas: 0,
categories: [],
embedding_only: false,
image_only: false,
reranker: false,
speech_to_text: false,
text_to_speech: false,
placement_strategy: 'spread',
cpu_offloading: false,
distributed_inference_across_workers: true,
worker_selector: {},
gpu_selector: null,
backend: 'vLLM',
backend_version: null,
backend_parameters: [
'--tool-call-parser=hermes',
'--enable-auto-tool-choice',
'--max-model-len=32768'
],
image_name: null,
run_command: null,
env: null,
restart_on_error: true,
distributable: false,
extended_kv_cache: null,
speculative_config: null,
quantization: 'BF16',
mode: 'reference'
}
],
pagination: { page: 1, perPage: 100, total: 3, totalPage: 1 }
};
+15
View File
@@ -198,12 +198,27 @@ export interface CatalogSpec {
categories: any[];
placement_strategy: string;
cpu_offloading: boolean;
mode: string;
distributed_inference_across_workers: boolean;
worker_selector: Record<string, any>;
gpu_selector: {
gpu_ids: string[];
gpus_per_replica: number;
};
extended_kv_cache: {
enabled: boolean;
chunk_size: number;
max_local_cpu_size: number;
remote_url: string;
};
speculative_config: {
enabled: boolean;
algorithm: string;
draft_model_name: string;
num_draft_tokens: number;
ngram_min_match_length: number;
ngram_max_match_length: number;
};
backend: string;
backend_version: string;
backend_parameters: any[];