diff --git a/.github/labeler.yml b/.github/labeler.yml index 572839b18..ad3b7f2a9 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -21,8 +21,10 @@ documentation: - changed-files: - any-glob-to-any-file: - '**/*.md' + - '**/*.mdx' - 'docs/**/*' - 'README*' + - 'docs_new/**/*' # Dependencies dependencies: diff --git a/docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml b/.github/workflows/sync-lmsys-sglang-blogs.yml similarity index 74% rename from docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml rename to .github/workflows/sync-lmsys-sglang-blogs.yml index f555baf10..e68acdb15 100644 --- a/docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml +++ b/.github/workflows/sync-lmsys-sglang-blogs.yml @@ -23,17 +23,18 @@ jobs: - name: Sync blog cards env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: python scripts/update_lmsys_sglang_blogs.py + run: python docs_new/scripts/update_lmsys_sglang_blogs.py - name: Commit and push changes run: | - if git diff --quiet; then - echo "No changes to commit." + if git diff --quiet -- docs_new/index.mdx; then + echo "No blog card changes to commit." exit 0 fi git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add index.mdx src/generated/lmsys_sglang_blogs.json + git add docs_new/index.mdx + git diff --cached --quiet && exit 0 git commit -m "docs: sync LMSYS SGLang blog cards" git push diff --git a/docs_new/index.mdx b/docs_new/index.mdx index cfcd262ae..6a5b1ed19 100644 --- a/docs_new/index.mdx +++ b/docs_new/index.mdx @@ -82,6 +82,116 @@ It is designed to deliver low-latency and high-throughput inference across a wid alignItems: "stretch", }} > + +
+ DeepSeek-V4 on Day 0: From Fast Inference to Verified RL with SGLang and Miles +
+
+

+ {"DeepSeek-V4 on Day 0: From Fast Inference to Verified RL with SGLang and Miles"} +

+

+ {"April 25, 2026"} +

+
+
+ +
+ HiSparse: Turbocharging Sparse Attention with Hierarchical Memory +
+
+

+ {"HiSparse: Turbocharging Sparse Attention with Hierarchical Memory"} +

+

+ {"April 10, 2026"} +

+
+
- -
- Unlocking 25x Inference Performance with SGLang on NVIDIA GB300 NVL72 -
-
-

- {"Unlocking 25x Inference Performance with SGLang on NVIDIA GB300 NVL72"} -

-

- {"February 20, 2026"} -

-
-
- -
- Deploying DeepSeek on GB300 NVL72: Big Wins in Long-Context Inference -
-
-

- {"Deploying DeepSeek on GB300 NVL72: Big Wins in Long-Context Inference"} -

-

- {"February 19, 2026"} -

-
-
{/* END_LMSYS_SGLANG_BLOG_CARDS */} diff --git a/docs_new/scripts/update_lmsys_sglang_blogs.py b/docs_new/scripts/update_lmsys_sglang_blogs.py index d4623dc00..4f29a5d8c 100755 --- a/docs_new/scripts/update_lmsys_sglang_blogs.py +++ b/docs_new/scripts/update_lmsys_sglang_blogs.py @@ -7,13 +7,11 @@ import json import os import re import urllib.request -from dataclasses import asdict, dataclass -from datetime import datetime, timezone +from dataclasses import dataclass from pathlib import Path ROOT = Path(__file__).resolve().parents[1] INDEX_PATH = ROOT / "index.mdx" -OUTPUT_JSON_PATH = ROOT / "src" / "generated" / "lmsys_sglang_blogs.json" START_MARKER = "{/* BEGIN_LMSYS_SGLANG_BLOG_CARDS */}" END_MARKER = "{/* END_LMSYS_SGLANG_BLOG_CARDS */}" @@ -256,20 +254,6 @@ def replace_generated_block(index_text: str, generated_cards: str) -> str: return updated_text -def write_metadata(posts: list[BlogPost], total_blog_files: int) -> None: - OUTPUT_JSON_PATH.parent.mkdir(parents=True, exist_ok=True) - payload = { - "generatedAt": datetime.now(timezone.utc).isoformat().replace("+00:00", "Z"), - "sourceRepo": "https://github.com/lm-sys/lm-sys.github.io/tree/main/blog", - "keywords": KEYWORDS, - "maxCards": MAX_CARDS, - "totalBlogFilesScanned": total_blog_files, - "cardsPublished": len(posts), - "posts": [asdict(post) for post in posts], - } - OUTPUT_JSON_PATH.write_text(json.dumps(payload, indent=2) + "\n", encoding="utf-8") - - def main() -> None: sources = download_blog_sources() relevant_posts: list[BlogPost] = [] @@ -291,7 +275,6 @@ def main() -> None: if updated_index != current_index: INDEX_PATH.write_text(updated_index, encoding="utf-8") - write_metadata(posts=selected_posts, total_blog_files=len(sources)) print( "Scanned " f"{len(sources)} blog files, matched {len(relevant_posts)} posts, " diff --git a/docs_new/src/generated/lmsys_sglang_blogs.json b/docs_new/src/generated/lmsys_sglang_blogs.json deleted file mode 100644 index 138a3a287..000000000 --- a/docs_new/src/generated/lmsys_sglang_blogs.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "generatedAt": "2026-04-07T00:14:40.777335Z", - "sourceRepo": "https://github.com/lm-sys/lm-sys.github.io/tree/main/blog", - "keywords": [ - "sglang", - "sgl-project/sglang", - "sgl-kernel", - "sglang-jax", - "sgl diffusion", - "sglang diffusion" - ], - "maxCards": 6, - "totalBlogFilesScanned": 80, - "cardsPublished": 6, - "posts": [ - { - "slug": "2026-03-25-gtc2026", - "title": "Highlights of SGLang at NVIDIA GTC 2026", - "url": "https://lmsys.org/blog/2026-03-25-gtc2026/", - "image": "https://lmsys.org/images/blog/gtc2026/happyhour-crowd.jpg", - "date": "March 31, 2026" - }, - { - "slug": "2026-03-25-eep-partial-failure-tolerance", - "title": "Elastic EP in SGLang: Achieving Partial Failure Tolerance for DeepSeek MoE Deployments", - "url": "https://lmsys.org/blog/2026-03-25-eep-partial-failure-tolerance/", - "image": "https://lmsys.org/images/blog/eep-partial-failure-tolerance/figure.png", - "date": "March 25, 2026" - }, - { - "slug": "2026-03-17-rocm-miles-rl-amd", - "title": "ROCm Support for Miles: Large-Scale RL Post-Training on AMD Instinct\u2122 GPUs", - "url": "https://lmsys.org/blog/2026-03-17-rocm-miles-rl-amd/", - "image": "https://lmsys.org/images/blog/rocm_miles_rl/fig_1.png", - "date": "March 17, 2026" - }, - { - "slug": "2026-03-11-run-nvidia-nemotron-3-super", - "title": "SGLang Adds Day-0 Support for NVIDIA Nemotron 3 Super for building High-Efficiency Multi-Agent Systems", - "url": "https://lmsys.org/blog/2026-03-11-run-nvidia-nemotron-3-super/", - "image": "https://lmsys.org/images/blog/nemotron-3-super/figure_1.svg", - "date": "March 11, 2026" - }, - { - "slug": "2026-02-20-gb300-inferencex", - "title": "Unlocking 25x Inference Performance with SGLang on NVIDIA GB300 NVL72", - "url": "https://lmsys.org/blog/2026-02-20-gb300-inferencex/", - "image": "https://lmsys.org/images/blog/gb300_inferencex/img-1.png", - "date": "February 20, 2026" - }, - { - "slug": "2026-02-19-gb300-longctx", - "title": "Deploying DeepSeek on GB300 NVL72: Big Wins in Long-Context Inference", - "url": "https://lmsys.org/blog/2026-02-19-gb300-longctx/", - "image": "https://lmsys.org/images/blog/gb300_longctx/cover.png", - "date": "February 19, 2026" - } - ] -}