Ouzhang's picture
Add files using upload-large-folder tool
3cd1076 verified
Raw
History Blame Contribute Delete
14.7 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Demo videos for Multi-Block Diffusion Language Models, generated by the Diffulex inference engine.">
<title>Demo Videos — Multi-Block Diffusion Language Models</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav class="nav" aria-label="Site navigation">
<div class="container">
<a class="nav-logo" href="https://sjtu-deng-lab.github.io/" aria-label="DENG Lab website">
<img src="assets/sjtu-deng-lab-logo.png" alt="DENG Lab">
</a>
<a href="index.html">Home</a>
<a href="videos.html" class="is-current">Videos</a>
<a href="mbd-lms.html">MBD-LMs</a>
<a href="diffulex.html">Diffulex Engine</a>
</div>
</nav>
<main class="container">
<section id="videos" class="video-section">
<div class="section-kicker video-kicker">Decoding Demo Videos</div>
<div class="video-section-head">
<div>
<h2>LLaDA2 + MBD: Same Prompts, Massive Speedup</h2>
<p class="section-lede">Each group below runs the <strong>same set of prompts</strong> across three stages of the same LLaDA2 model: <strong>vanilla LLaDA2-Mini</strong> (native single-block decoding), <strong>MBD-LLaDA2-Mini</strong> (our MultiBD post-training), and <strong>MBD-LLaDA2-Mini-DMax</strong> (with aggressive DMax parallel decoding). The speed progression from left to right comes purely from our method — all demos run on a <strong>single NVIDIA A100-SXM4-80GB</strong> through the Diffulex engine. On newer hardware the gap widens further.</p>
</div>
<div class="video-head-actions">
<button class="button video-action video-open" type="button" data-video="assets/videos/chosen.mp4" data-title="MBD-LLaDA2-Mini-DMax Demo">Watch Featured Demo</button>
<a class="button secondary" href="mbd-lms.html">How It Works</a>
</div>
</div>
<div class="video-feature">
<div class="video-player">
<video class="video-preview" muted loop controls preload="metadata" playsinline>
<source src="assets/videos/chosen.mp4" type="video/mp4">
</video>
</div>
<div class="video-feature-copy">
<span>Featured Diffulex trace</span>
<h3>MBD-LLaDA2-Mini-DMax Demo</h3>
<p>This selected trace uses <strong>MBD-LLaDA2-Mini-DMax</strong>, the fastest model we trained.</p>
<p class="video-note"><strong>Playback note.</strong> The demo videos pass through a Streamlit frontend, which can consume much of the engine-side throughput advantage. Use the aggregate TPS numbers in the Runtime Engine section to judge the actual engine path.</p>
<button class="button secondary video-open" type="button" data-video="assets/videos/chosen.mp4" data-title="MBD-LLaDA2-Mini-DMax Demo">Watch Full Size</button>
</div>
</div>
<div class="video-group">
<div class="video-group-head">
<h3>Vanilla LLaDA2-Mini</h3>
<p>Native single-block decoding baseline. Same prompts, sequential block refinement.</p>
</div>
<div class="video-grid">
<button class="video-card video-open" type="button" data-video="assets/videos/llada2_mini_1.mp4" data-title="LLaDA2-Mini 1">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/llada2_mini_1.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">LLaDA2-Mini 1</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/llada2_mini_2.mp4" data-title="LLaDA2-Mini 2">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/llada2_mini_2.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">LLaDA2-Mini 2</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/llada2_mini_3.mp4" data-title="LLaDA2-Mini 3">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/llada2_mini_3.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">LLaDA2-Mini 3</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/llada2_mini_4.mp4" data-title="LLaDA2-Mini 4">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/llada2_mini_4.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">LLaDA2-Mini 4</span>
<span>Click to watch</span>
</span>
</button>
</div>
</div>
<div class="video-group">
<div class="video-group-head">
<h3>MBD-LLaDA2-Mini</h3>
<p>Our MultiBD post-training applied to the same model. Inter-block parallelism via bounded running-set.</p>
</div>
<div class="video-grid">
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_1.mp4" data-title="MBD-LLaDA2 1">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_1.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2 1</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_2.mp4" data-title="MBD-LLaDA2 2">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_2.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2 2</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_3.mp4" data-title="MBD-LLaDA2 3">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_3.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2 3</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_4.mp4" data-title="MBD-LLaDA2 4">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_4.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2 4</span>
<span>Click to watch</span>
</span>
</button>
</div>
</div>
<div class="video-group">
<div class="video-group-head">
<h3>MBD-LLaDA2-Mini-DMax</h3>
<p>MultiBD + DMax aggressive parallel decoding. Highest throughput, same model backbone.</p>
</div>
<div class="video-grid">
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_dmax_1.mp4" data-title="MBD-LLaDA2-DMax 1">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_dmax_1.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2-DMax 1</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_dmax_2.mp4" data-title="MBD-LLaDA2-DMax 2">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_dmax_2.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2-DMax 2</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_dmax_3.mp4" data-title="MBD-LLaDA2-DMax 3">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_dmax_3.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2-DMax 3</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/mbd_llada2_dmax_4.mp4" data-title="MBD-LLaDA2-DMax 4">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/mbd_llada2_dmax_4.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">MBD-LLaDA2-DMax 4</span>
<span>Click to watch</span>
</span>
</button>
</div>
</div>
<div class="video-group">
<div class="video-group-head">
<h3>DiffusionGemma</h3>
<p>Same method applied to a second diffusion model family for cross-architecture comparison.</p>
</div>
<div class="video-grid three-up">
<button class="video-card video-open" type="button" data-video="assets/videos/dgemma_1.mp4" data-title="DiffusionGemma 1">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/dgemma_1.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">DiffusionGemma 1</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/dgemma_2.mp4" data-title="DiffusionGemma 2">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/dgemma_2.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">DiffusionGemma 2</span>
<span>Click to watch</span>
</span>
</button>
<button class="video-card video-open" type="button" data-video="assets/videos/dgemma_3.mp4" data-title="DiffusionGemma 3">
<video class="video-preview" muted loop preload="metadata" playsinline>
<source src="assets/videos/dgemma_3.mp4" type="video/mp4">
</video>
<span class="video-card-copy">
<span class="video-card-title">DiffusionGemma 3</span>
<span>Click to watch</span>
</span>
</button>
</div>
</div>
</section>
</main>
<div class="video-modal" id="video-modal" hidden>
<div class="video-modal-backdrop" data-video-close></div>
<div class="video-modal-dialog" role="dialog" aria-modal="true" aria-labelledby="video-modal-title">
<div class="video-modal-head">
<h2 id="video-modal-title">Demo Video</h2>
<button type="button" class="video-modal-close" data-video-close aria-label="Close video">Close</button>
</div>
<video id="modal-video" controls playsinline>
<source id="modal-video-source" src="" type="video/mp4">
</video>
</div>
</div>
<footer>
<div class="container">
Multi-Block Diffusion Language Models. Train with <a href="https://github.com/SJTU-DENG-Lab/mbd-lms">mbd-lms</a>; reproduce with <a href="https://github.com/SJTU-DENG-Lab/Diffulex/tree/mbd-lms">Diffulex mbd-lms</a>; develop with <a href="https://github.com/SJTU-DENG-Lab/Diffulex/tree/main">Diffulex main</a>.
</div>
</footer>
<script>
(() => {
const modal = document.getElementById("video-modal");
const modalVideo = document.getElementById("modal-video");
const modalSource = document.getElementById("modal-video-source");
const modalTitle = document.getElementById("video-modal-title");
const closeVideo = () => {
if (!modal || !modalVideo || !modalSource) return;
modal.hidden = true;
document.body.classList.remove("modal-open");
modalVideo.pause();
modalSource.removeAttribute("src");
modalVideo.load();
};
const openVideo = (trigger) => {
if (!modal || !modalVideo || !modalSource || !modalTitle) return;
const src = trigger.dataset.video;
if (!src) return;
modalTitle.textContent = trigger.dataset.title || "Demo Video";
modalSource.src = src;
modal.hidden = false;
document.body.classList.add("modal-open");
modalVideo.load();
modalVideo.play().catch(() => {});
};
document.querySelectorAll(".video-open").forEach((trigger) => {
trigger.addEventListener("click", () => openVideo(trigger));
});
document.querySelectorAll("[data-video-close]").forEach((trigger) => {
trigger.addEventListener("click", closeVideo);
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape") closeVideo();
});
document.querySelectorAll(".video-preview").forEach((video) => {
video.play().catch(() => {});
});
})();
</script>
</body>
</html>