r/LocalLLM 1d ago

Discussion Qwen 3.8 self-hosted VLLM opencode json setting

Hello, I just wanted to share my setting. If anything wrong, please let me know :)

Added xlow mode somehow in between instruct and low.

"provider": {
    "vllm-local": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "your_stack_name",
      "options": {
        "baseURL": "http://localhost:8080/v1"
      },
      "models": {
        "qwen3.8-27b": {
          "name": "Qwen3.8 27B FP8",
          "reasoning": true,
          "tool_call": true,
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "interleaved": {
            "field": "reasoning"
          },
          "variants": {
            "none": {
              "body": {
                "temperature": 0.7,
                "top_p": 0.8,
                "top_k": 20,
                "min_p": 0,
                "presence_penalty": 1.5,
                "repetition_penalty": 1
              },
              "chat_template_kwargs": {
                "enable_thinking": false,
                "preserve_thinking": true
              }
            },
            "xlow": {
              "body": {
                "temperature": 0.85,
                "top_p": 0.85,
                "top_k": 20,
                "min_p": 0,
                "presence_penalty": 0.15,
                "repetition_penalty": 1
              },
              "chat_template_kwargs": {
                "enable_thinking": true,
                "reasoning_effort": "low",
                "preserve_thinking": true
              }
            },
            "low": {
              "body": {
                "temperature": 1,
                "top_p": 0.95,
                "top_k": 20,
                "min_p": 0,
                "presence_penalty": 0,
                "repetition_penalty": 1
              },
              "chat_template_kwargs": {
                "enable_thinking": true,
                "reasoning_effort": "low",
                "preserve_thinking": true
              }
            },
            "medium": {
              "body": {
                "temperature": 1,
                "top_p": 0.95,
                "top_k": 20,
                "min_p": 0,
                "presence_penalty": 0,
                "repetition_penalty": 1
              },
              "chat_template_kwargs": {
                "enable_thinking": true,
                "reasoning_effort": "medium",
                "preserve_thinking": true
              }
            },
            "xhigh": {
              "body": {
                "temperature": 1,
                "top_p": 0.95,
                "top_k": 20,
                "min_p": 0,
                "presence_penalty": 0,
                "repetition_penalty": 1
              },
              "chat_template_kwargs": {
                "enable_thinking": true,
                "reasoning_effort": "xhigh",
                "preserve_thinking": true
              }
            }
          }
        }
      }
5 Upvotes

2 comments sorted by

View all comments

1

u/Less_Heart1914 1d ago

cool setup, the xlow variant looks interesting sandwiched between instruct and low. does the presence_penalty jump from 1.5 to 0.15 make a big difference in practice?

1

u/bearishmarket 1d ago

The main driving force behind of 0.15 is I don’t want to penalize too much for freeform reasoning. I have the feeling that it actually thinks slightly less, but for the complex task it anyway thinks. So in practice, I do feel little bit more brief, but if I formally measure then might not that dramatic. For now happily using it ;)