The useful question is not “which model wins?” It is “which deployment contract lets this product improve?” I compare the current Kimi, Qwen, and GLM choices by availability, licensing, context, adaptation path, serving burden, and the evidence required before release. The result is a reproducible model-selection loop, not a leaderboard assembled from incomparable vendor scores.
The July 25 model snapshot
Parameter counts, active experts, and context windows describe resource envelopes; they do not prove task quality. Each candidate still has to run against the same private evaluation set, prompt, sampling policy, and output validator. With that caveat, the deployment surface is materially different across these families. As of this snapshot, Qwen3.7 Max and Plus are the newer hosted, proprietary Qwen tier; Qwen3.6-27B and Qwen3.6-35B-A3B are the latest Qwen weights available to download.
| Candidate | Status on Jul 25, 2026 | Published shape | What it enables now |
|---|---|---|---|
| Kimi K3 | API available; weights promised for Jul 27, not yet downloadable | 2.8T total; 16 of 896 experts active; native vision; 1M context | Fast hosted evaluation of long, multimodal, agentic workflows |
| Qwen3.7 Max / Plus | Hosted, proprietary models | 1M-context hosted product tier | Managed deployment when owning weights is not a requirement |
| Qwen3.6-27B | Downloadable; Apache-2.0 | Dense, multimodal; 262K native context | A simpler open-weight target for adapters, evals, and controlled serving |
| Qwen3.6-35B-A3B | Downloadable; Apache-2.0 | 35B total / 3B active MoE; multimodal; 262K native context | MoE experimentation when active compute and total weight residency are modeled separately |
| GLM-5.2 | Downloadable; MIT | 744B total / 40B active; 1M context | Open-weight frontier work when a fleet-scale serving plan is justified |
Moonshot says Kimi K3 deployment uses 64 or more accelerators. That is a vendor statement, not a hardware recommendation. Likewise, “open weights” says nothing about whether a model is affordable at the required latency, concurrency, or availability target.
Select the deployment contract before the model
I start with constraints that a benchmark cannot answer: Must the weights stay inside a controlled environment? Is an API acceptable? Is vision part of the request path? Does the application genuinely use hundreds of thousands of tokens, or would retrieval produce better evidence at lower cost? The candidate list comes after those decisions.
A model enters the evaluation only after its deployment contract is feasible; impressive scores cannot repair an impossible data or hardware boundary.
Treat the dataset as a versioned product
Fine-tuning is downstream of data governance. Every record needs a source, license or consent basis, transformation history, and split assignment. Deduplication has to happen before the train/evaluation boundary is frozen; otherwise near-duplicates turn an evaluation into a memory test. Personally identifiable and secret material is removed before it reaches either a hosted teacher or a training job.
The evaluation set can reveal where the system fails, but it never becomes teacher context or training data. That boundary is what preserves a meaningful comparison across versions.
Synthetic data without dataset laundering
Synthetic examples are useful when they cover a named gap: rare tool failures, long-tail visual conditions, schema edge cases, or code tasks with executable checks. For every generated record I retain the teacher model and revision, prompt template, decoding settings, seed, source record IDs, and verifier results. I prefer deterministic checks (compilation, unit tests, simulators, database constraints, or exact structured-output validation) over a second model merely saying the first model looks correct.
Generation is sampled from training-side failure clusters, never from a hidden answer key. Filters reject duplicates, unverifiable claims, style artifacts, and implausibly easy examples. The final mixture retains high-quality human or source-grounded anchor data, and an ablation compares source-only, synthetic-only, and blended variants. More tokens are not evidence; a measurable gain on a contamination-resistant holdout is.
Choose the smallest adaptation that can pass
Prompting, tool use, and retrieval come first because they are reversible and preserve a clean base-model comparison. Fine-tuning earns its cost when the failure is behavioral or representational: a stable output contract, domain language, visual conventions, tool selection, or a policy that repeated prompting does not repair.
| Method | Use it when | Primary risk | Required proof |
|---|---|---|---|
| Prompt + retrieval | Facts change often, citations matter, or the desired behavior already exists | Context cost and retrieval misses | Retrieval recall, groundedness, latency, and abstention |
| LoRA | A focused behavior or domain shift can fit in low-rank updates | Adapter overfit and merge/serving mismatch | Adapter-versus-base ablation plus retention suite |
| QLoRA | Iteration is memory constrained and a quantized frozen base is acceptable | Training throughput and precision-sensitive regressions | Compare with LoRA on a smaller controlled run; re-evaluate the served artifact |
| Full fine-tune | The distribution shift is broad, the dataset is large and clean, and adapters plateau | Forgetting, optimizer memory, recovery cost | Matched-budget adapter baseline, broad retention gates, restartable checkpoints |
| Preference / RL stage | A verifiable reward captures an objective SFT cannot express | Reward hacking and capability collapse | Held-out reward, task success, KL/retention, and adversarial failure review |
Tooling by job, not by logo
- LLaMA-Factory is a strong recipe layer for continued pretraining, SFT, preference optimization, RL, full tuning, LoRA, and QLoRA. Its companion ecosystem also points to dataset construction tools, but generated data still needs the provenance loop above.
- Axolotl is useful for configuration-driven, distributed full and parameter-efficient runs, including preference and reinforcement methods. Model-family support is version-sensitive: pin the revision, inspect the exact architecture mapping, and run a forward/backward smoke test before renting a cluster.
- ms-swift is the first path I would test for GLM-5.2 SFT and policy optimization; slime is a GLM-oriented reinforcement-learning path. I would preserve the versions named by Z.ai (ms-swift 4.4 or later and slime 0.3 or later) in the run manifest.
- vLLM and SGLang are serving engines, not training frameworks. Export correctness, chat templates, vision preprocessing, quantization, tensor/expert parallelism, and tool calling must be tested in the engine that receives production traffic. For GLM-5.2, Z.ai's published compatibility floor is vLLM 0.23 or later, or SGLang 0.5.13.post1 or later; the actual deployment should still pin and record an exact version.
Optimize cost per accepted task
Price per million tokens is only one line in the ledger. I compare candidates by cost per accepted task: total API or fleet cost divided by outputs that pass the task validator. A cheap model that retries three times, occupies a human reviewer, or emits invalid tool calls can be more expensive than a higher-priced model that finishes once.
accepted-task cost = (data + training + serving + retries + review + eval operations) / accepted outputs
The training ledger includes data acquisition and annotation, filtering, failed runs, checkpoint storage, evaluation inference, and engineer time, not only successful GPU-hours. The serving ledger includes weight residency, KV-cache capacity, prefill and decode latency, idle headroom, observability, and failover. For an MoE, I track active compute separately from the memory and network cost of hosting all experts. Long context is measured with the actual prompt distribution because advertised capacity is not a latency SLO.
The break-even experiment is simple: route a fixed, representative workload through the hosted baseline and the self-hosted candidate, then compare accepted-task cost at expected average and peak load. Include a low-utilization week. If the self-hosted system wins only when every accelerator is perfectly occupied, it does not yet win.
Make release a sequence of gates
A single aggregate score hides the regression that matters. I keep each gate separate, report uncertainty where sampling is involved, and attach failures to concrete examples. A candidate can improve domain performance and still be rejected for retention, safety, invalid structured output, or an unacceptable latency tail.
The production artifact includes the base revision, adapters or merged weights, tokenizer, chat template, preprocessing, engine version, quantization recipe, and routing configuration.
The minimum evaluation packet
- Task quality: a frozen golden set, real traffic replay with sensitive fields removed, and a deterministic validator wherever possible.
- Retention: capabilities the base already had and the product still depends on, reported next to the domain gain rather than averaged away.
- Safety and reliability: tool permissions, prompt injection, data leakage, refusal boundaries, malformed output, timeouts, and fallbacks.
- Serving: time to first token, inter-token latency, throughput, memory, queueing, cold start, and p50/p95/p99 under the expected request mix.
- Economics: accepted-task cost at average and peak load, with retries and human escalation included.
A portfolio-quality implementation
I would turn this playbook into one reproducible repository rather than four unrelated demos. It would contain a normalized task suite, provider and local-engine adapters, immutable dataset manifests, one small Qwen3.6 adapter run, the untouched base baseline, an export-and-serve smoke test, and a generated report that binds every metric to a git commit and artifact digest.
The employer-facing result is not “I called the newest API.” It is a decision record showing why a candidate entered the test, how the data could legally and technically be reproduced, which adaptation beat the baseline, what regressed, what one accepted result cost, and how the production route rolls back. That is the work required to make frontier models behave like an engineered subsystem.
Primary sources
- Moonshot AI, Kimi K3 quickstart : API surface and current access path.
- Moonshot AI, Kimi K3 announcement : architecture, modalities, context, deployment statement, and announced weight-release date.
- Qwen, Qwen3.7 announcement : hosted Max and Plus product family.
- QwenLM, Qwen3.6 repository : downloadable models, architecture, context, multimodal support, and license.
- Qwen3.6-27B model card and Qwen3.6-35B-A3B model card : exact downloadable artifacts and configuration details.
- Z.ai, GLM-5.2 announcement : published model shape, context, training, and serving paths.
- Z.ai, GLM-5 repository and GLM-5.2 model card : weights, license, and inference guidance.
- LLaMA-Factory, Axolotl documentation, ms-swift, and slime : adaptation and reinforcement-learning toolchains.
- vLLM documentation and SGLang documentation : serving engines and deployment features.