Tencent Dropped 770B of Open Weights. Almost Nobody Can Run Them.
Tencent dropped Hy4 preview on August 28: 770B total parameters, 49B active, a 1M-token context window, Apache 2.0. On paper it's the strongest open-weight release of the year, and herding it onto Hugging Face took 131 shards and 1.56TB of BF16 weights. The community responded in hours — GGUF and MLX 4-bit ports are already live, and the official repo passed 250 stars in its first two days.
I spent the morning inside the release — the model card, the config.json, the safetensors headers. The interesting number isn't 770B. It's the machine you need just to get the weights into VRAM. Spoiler: it is not a machine you own.
Open-source AI's real price moved from the license to the serving contract the day a 770B model hit Apache 2.0.
What actually shipped
- 78 layers. Layer 0 is a dense FFN; layers 1–77 are MoE with 256 routed experts + 1 shared expert per layer, top-8 activated per token.
- A native 10B-parameter MTP layer (0.7B active) for speculative decoding — a draft model baked into the weights, not bolted on.
- Attention is Gated DeepSeek Sparse Attention with IndexCache (cross-layer sparse index reuse), MLA-style compression (q-lora rank 2048, kv-lora rank 512, qk head dim 256), a learnable sink, and 64 heads. The DeepSeek + GLM lineage is openly credited.
- iHC residuals (identity Hyper-Connections): 4 residual streams instead of 1.
- 1M context, vocab 120,832, hidden 6144, rope theta 10M.
- Apache 2.0. BF16 (1.56TB) and FP8 (814GB) on Hugging Face, plus ModelScope, GitCode, and CNB mirrors.
- The only public numbers are Tencent's own: an internal blind eval of 163 experts across 203 engineering tasks — Hy4 at 2.99/4.00 vs GLM-5.3's 2.92 and Kimi K3's 2.94. Slim margin, their own test. They also openly admit it over-reasons and over-verifies.
I opened the box
The release is 1.56TB and I don't have that. But you don't need it to verify a surprising amount — the config and the safetensors index are plain JSON, and a shard's header is a JSON blob sitting at byte 8 of the file.
# architecture & shape from config.json
$ python3 -c "import json; d=json.load(open('hy4_config.json')); \
print(d['architectures'], d['num_hidden_layers'], 'layers,', d['n_routed_experts'], 'routed experts')"
['HYV4ForCausalLM'] 78 layers, 256 routed experts
# 2006 named tensors spread across 131 shards
$ python3 -c "import json; print(len(json.load(open('hy4_index.json'))['weight_map']))"
2006
# peek at shard 1's header via a 1MB range request
$ curl -r 0-1048575 tencent/Hy4-preview/resolve/main/model-00001-of-00131.safetensors
> 2 tensors, dtype BF16
> model.layers.1.mlp.experts.down_proj shape [256, 6144, 2048]
That single tensor is 3.2B parameters. 77 MoE layers × 256 experts × 3 matrices ≈ 743B — add attention, embeddings, and the MTP head, and the 770B claim checks out to the digit. The weights are what they say they are.
Here's the catch: almost nothing can load it yet
The card's quickstart runs into transformers_version: 5.16.2. PyPI's latest is 5.16.1 (Aug 26). Transformers main has hunyuan_v1_dense and hunyuan_vl in the auto-mapping — but no HYV4ForCausalLM, no hy_v4 anywhere. A stock from_pretrained fails today, full stop.
vLLM is the same story with better discipline. The official recipe demands vLLM 0.29.0 and targets "16×B200, 8×B300 with MTP." The latest release tag is v0.28.1rc0, and v0.28.0's model list — published three days before the weights — has no Hy4. The only working path right now is a prebuilt image:
docker run --gpus all -p 8000:8000 --ipc=host \
-e VLLM_ENABLE_HPC_OPS=1 \
vllm/vllm-openai:hy4-preview tencent/Hy4-preview-FP8 \
--tensor-parallel-size 8 \
--speculative-config '{"num_speculative_tokens":3,"method":"mtp"}' \
--attention-backend FLASHMLA_SPARSE \
--tool-call-parser hy_v4
SGLang ships the equivalent prebuilt image with NEXTN speculative decoding. Look at what's bundled: not just weights, but custom kernels (FLASHMLA_SPARSE), an HPC-ops environment flag, and tool-call/reasoning parsers for hy_v4. That is the real release. The weights are the entry ticket; the serving stack is the product. Tencent shipped the whole bundle before the ecosystem had merged anything — the merge train (vLLM 0.29.0) is still catching up.
What "open source" means at 770B
Run the memory math as an individual:
- BF16: 1.54TB of weights. Eight H200s (1.1TB) can't even hold it. B200/B300 territory.
- FP8 (the recommended format): ~814GB. Eight H100 80GBs (640GB) still can't. H200 is the floor.
- 4-bit (community GGUF + MLX ports are already live): ~390GB. Off the table for every consumer box and most workstations.
No single machine an individual can buy serves this thing at useful quality. The cheapest honest deployment is a five-figure monthly rental bill, and the officially supported configuration costs more than most startups' runway. Apache 2.0 is a license for people who already own the hardware. For everyone else, the actual product is the API — free for two weeks on WorkBuddy/CodeBuddy, then via Tencent Cloud TokenHub and OpenRouter (the API rollout is covered in the earlier post today).
graph TD IN[Tokens] --> EMB[Embed · vocab 120,832] EMB --> L0[Layer 0 · dense FFN] L0 --> MOE[Layers 1–77 · MoE] MOE -->|top-8 of 256 + 1 shared| EXP[Expert FFN · 2,048] MOE --> ATT[Gated DSA + MLA
q-lora 2,048 · kv-lora 512 · IndexCache] EXP --> IHC[iHC residuals · 4 streams] ATT --> IHC IHC --> OUT[LM head · 770B total / 49B active] MOE -.->|MTP head · 10B| SPEC[Speculative decoding · 3 tokens]
Bottom line
Hy4 preview is real, the weights are honest, and Tencent did something genuinely useful: weights, kernels, images, and recipes released as one coherent bundle under a permissive license. But read the Apache 2.0 as a tax on the already-equipped, not an invitation. The frontier of "open" is no longer defined by who can download — it's defined by who can serve. That's a quieter, more expensive gate, and it's worth being honest about.