Model reference · open weights
Hydrogen-1.0 is an open-weight language model from deep-principle. Hydrogen-1.0-MXFP4 (MXFP4) weighs 448 GB in vLLM, 423 GB of files; the smallest configuration that runs it is 4× H200 141 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the deep-principle/Hydrogen-1.0-MXFP4 model card, 2026-11-05
What it is
| Released by | deep-principle |
|---|---|
| Released | 2026-10-31 |
| Parameters | 384.3B |
| VRAM | 448 GB in vLLM, 423 GB of files for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … B200 180 GB 12 smaller cards | ||||
| 4× H200 141 GB tensor parallel · FP4 without its speed-up here | 18 | 4 | 146K | 138 GB a card |
| 8× H100 80 GB tensor parallel · FP4 without its speed-up here | 13 | 3 | 109K | 78.1 GB a card |
| 8× A100 80 GB tensor parallel · FP4 without its speed-up here | 24 | 6 | 194K | 78.2 GB a card |
| 4× B200 180 GB tensor parallel | 57 | 14 | 456K | 176 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 451 GB | 454 GB |
| 5 | 454 GB | 467 GB |
| 8 | 457 GB | 477 GB |
| 16 | 463 GB | 503 GB |
| 32 | 477 GB | 555 GB |
| 64 | 503 GB | 660 GB |
One card, with vLLM's small-card settings.
From the model card
MXFP4 quantized version of Hydrogen-1.0
Tech blog · Usage · Versions · 中文说明
Hydrogen-1.0 is a scientific problem-solving and research assistance model developed by Deep Principle based on GLM-5.3. Through text interaction, it is intended to assist with scientific questions, explain derivations, and organize responses to open-ended research problems. Outputs should be assessed against the assumptions, constraints, and evidence relevant to each task.
The technical blog presents examples of scientific computing, reaction-network exploration, NMR structure analysis, and experimental planning. These demonstrations combine the model with external tools and specific research environments; outputs require scientific review.
| Version | Repository | Hardware |
|---|---|---|
| BF16 (unquantized) | deep-principle/Hydrogen-1.0 | Full unquantized weights; sufficient device/host memory and a compatible runtime required |
| NVFP4 | deep-principle/Hydrogen-1.0-NVFP4 | Compatible NVIDIA Blackwell runtime; team-tested on 8x B300 |
| MXFP4 | deep-principle/Hydrogen-1.0-MXFP4 | Compatible AMD Instinct runtime; team-tested on MI350X with ATOM |
| Item | Description |
|---|---|
| Model name | Hydrogen-1.0 |
| Publisher | Deep Principle |
| Base model | GLM-5.3 |
| Repository | deep-principle/Hydrogen-1.0-MXFP4 |
| Release artifact | MXFP4 quantized model weights |
| Context length | 1M tokens |
| Maximum output length | 128K tokens |
| Training overview | See the technical blog; full datasets and recipes are not released with the weights |
| Model license | MIT License |
| Contact | info@deepprinciple.com |
This repository is dedicated to the MXFP4 quantized version of Hydrogen-1.0. Available context and output budgets depend on the inference framework, service configuration, and runtime resources. Use a runtime that supports the exported MXFP4 checkpoint format and follow the deployment requirements for these weight files.
Quantized with AMD Quark. Dense MLPs, shared and routed experts, and MTP MLPs use MXFP4 with dynamic activations; attention, router, embeddings, lm_head and eh_proj remain BF16. The repository's quantization configuration uses groups of 32 elements with E8M0 scales for weights and activations.
The team reports testing on AMD Instinct MI350X with ATOM at tensor parallel 4, FP8 KV cache, and speculative decoding off. The following example assumes a compatible ATOM installation and does not enable a speculative decoding method:
python -m atom.entrypoints.openai_server \
--model deep-principle/Hydrogen-1.0-MXFP4 \
--served-model-name hydrogen-1.0 \
--trust-remote-code --kv_cache_dtype fp8 -tp 4 \
--host 0.0.0.0 --server-port 8001
ATOM uses --server-port for HTTP; --port is internal engine communication. The API model ID is hydrogen-1.0. Available context and output budgets depend on runtime, service settings and memory; this command does not establish 1M-context operation on every setup.
Monitor KV cache utilization and eviction under load. In the team's reported TP4 test, 128 concurrent long reasoning requests filled the pool and triggered eviction, with a sharp drop in answer quality; at 48 concurrent requests the pool stayed below 75% and quality was normal. These are deployment-specific observations, not universal concurrency limits.
Keep the matching end-of-turn settings in generation_config.json, along with the tokenizer, chat template, model and quantization configurations, and weight index. The reported deployment relies on these settings for correct stopping.
The following example calls an already running compatible inference service. The launch command above sets the API model ID to hydrogen-1.0; confirm it at /v1/models and set the base URL for your deployment. This example does not download or load weights, and does not imply that a hosted endpoint is available on either model hub.
python -m pip install openai
export MODEL_BASE_URL="http://localhost:8001/v1"
export SERVED_MODEL_NAME="hydrogen-1.0"
# Set MODEL_API_KEY separately if the service requires authentication.
import os
from openai import OpenAI
client = OpenAI(
base_url=os.environ["MODEL_BASE_URL"],
api_key=os.environ.get("MODEL_API_KEY", "not-required"),
)
stream = client.chat.completions.create(
model=os.environ["SERVED_MODEL_NAME"],
messages=[
{"role": "system", "content": "You are an AI scientist. State assumptions and explain the scientific reasoning behind your answer."},
{"role": "user", "content": "Derive the period of a simple pendulum under the small-angle approximation, and explain when the approximation breaks down."},
],
max_tokens=4096,
stream=True,
extra_body={"chat_template_kwargs": {"reasoning_effort": "max"}},
)
finish_reason = None
has_answer = False
for chunk in stream:
if not chunk.choices:
continue
choice = chunk.choices[0]
if choice.finish_reason is not None:
finish_reason = choice.finish_reason
text = choice.delta.content or ""
if text:
has_answer = has_answer or bool(text.strip())
print(text, end="", flush=True)
print()
if finish_reason == "length":
raise RuntimeError('The response was truncated. Increase max_tokens within the service limits.')
if not has_answer:
raiQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.