Spaces:
Paused
Paused
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <meta name="theme-color" content="#080908" /> | |
| <meta | |
| name="description" | |
| content="Explore WeMM-Embedding-9B across text, images, video, figures, and visual documents." | |
| /> | |
| <title>WeMM — Semantic Universe</title> | |
| <link rel="stylesheet" href="/ui/app.css?v=4" /> | |
| <script type="module" src="/ui/app.js?v=2"></script> | |
| </head> | |
| <body> | |
| <div class="noise" aria-hidden="true"></div> | |
| <div class="aurora aurora-a" aria-hidden="true"></div> | |
| <div class="aurora aurora-b" aria-hidden="true"></div> | |
| <header class="site-header"> | |
| <a class="brand" href="#top" aria-label="WeMM home"> | |
| <span class="brand-mark" aria-hidden="true"><i></i><i></i><i></i></span> | |
| <span><b>WeMM</b><small>SEMANTIC UNIVERSE</small></span> | |
| </a> | |
| <nav class="mode-nav" aria-label="Studio mode"> | |
| <button class="nav-pill active" data-mode="search">Semantic search</button> | |
| <button class="nav-pill" data-mode="compare">Vector microscope</button> | |
| </nav> | |
| <div class="header-actions"> | |
| <span class="model-status" id="model-status"><i></i><span>Connecting</span></span> | |
| <a class="icon-link" href="/gradio_api/info" target="_blank" title="API schema" aria-label="Open API schema">API</a> | |
| <a class="icon-link arrow-link" href="https://huggingface.co/tencent/WeMM-Embedding-9B" target="_blank" rel="noreferrer" aria-label="Open model card">↗</a> | |
| </div> | |
| </header> | |
| <main id="top"> | |
| <section class="hero" aria-labelledby="hero-title"> | |
| <div class="hero-copy"> | |
| <div class="overline"><span>UNIVERSAL MULTIMODAL EMBEDDING</span><b>QWEN3.5 · 9B</b></div> | |
| <h1 id="hero-title">Meaning has <em>no file type.</em></h1> | |
| <p> | |
| Project language, imagery, video, charts, and visual documents into one shared | |
| geometry—then watch meaning arrange itself. | |
| </p> | |
| <div class="hero-meta"> | |
| <div><b>4,096</b><span>native dimensions</span></div> | |
| <div><b>80.6</b><span>MMEB-v2 average</span></div> | |
| <div><b>190</b><span>MMEB-v3 tasks</span></div> | |
| </div> | |
| </div> | |
| </section> | |
| <section class="studio" data-panel="search"> | |
| <div class="section-heading"> | |
| <div><span>01 / RETRIEVAL UNIVERSE</span><h2>Ask in one medium.<br />Discover in another.</h2></div> | |
| <p>Search the curated field or add a small collection of your own. Every result is scored in the same normalized vector space.</p> | |
| </div> | |
| <div class="studio-grid"> | |
| <form class="control-deck" id="search-form"> | |
| <div class="deck-heading"> | |
| <span>QUERY COMPOSER</span> | |
| <button class="text-button" type="reset">Clear all</button> | |
| </div> | |
| <div class="deck-examples" id="expeditions"> | |
| <div class="deck-examples-heading"> | |
| <span>CURATED EXPEDITIONS</span> | |
| <small>ONE-CLICK EXAMPLES</small> | |
| </div> | |
| <div class="deck-example-list"> | |
| <button class="expedition" type="button" data-example="llama"><span>01</span><b>Find Llama 4</b><small>text → screenshot</small></button> | |
| <button class="expedition" type="button" data-example="tofu"><span>02</span><b>Find mapo tofu</b><small>text → video</small></button> | |
| <button class="expedition" type="button" data-example="safety"><span>03</span><b>Read road safety</b><small>text → document</small></button> | |
| <button class="expedition" type="button" data-example="image"><span>04</span><b>Match a screenshot</b><small>image + text</small></button> | |
| <button class="expedition" type="button" data-example="video"><span>05</span><b>Understand a clip</b><small>video → text</small></button> | |
| </div> | |
| </div> | |
| <label class="field-label" for="query-text">Describe what you mean</label> | |
| <div class="textarea-wrap"> | |
| <textarea id="query-text" rows="4" maxlength="1200" placeholder="Which document explains temporary road closures?"></textarea> | |
| <span class="key-hint">⌘ ↵</span> | |
| </div> | |
| <div class="visual-query-grid"> | |
| <label class="drop-field" id="query-image-drop"> | |
| <input id="query-image" type="file" accept="image/*" /> | |
| <span class="drop-icon">⌁</span><b>Add image</b><small>PNG, JPG, WEBP</small> | |
| <div class="file-chip" hidden><span></span><button type="button" aria-label="Remove image">×</button></div> | |
| </label> | |
| <label class="drop-field" id="query-video-drop"> | |
| <input id="query-video" type="file" accept="video/*" /> | |
| <span class="drop-icon play">▷</span><b>Add video</b><small>MP4, WEBM, MOV</small> | |
| <div class="file-chip" hidden><span></span><button type="button" aria-label="Remove video">×</button></div> | |
| </label> | |
| </div> | |
| <p class="context-note"><span>+</span> Visual media and text become one interleaved query.</p> | |
| <details class="collection-builder"> | |
| <summary><span><i>+</i> Build your candidate collection</span><small>optional</small></summary> | |
| <div class="details-body"> | |
| <label class="field-label" for="custom-texts">Text candidates · one per line</label> | |
| <textarea id="custom-texts" rows="5" placeholder="Title :: Candidate text Another title :: Another candidate"></textarea> | |
| <label class="mini-upload"> | |
| <input id="candidate-media" type="file" accept="image/*,video/*" multiple /> | |
| <span>+</span><b>Add candidate media</b><small>up to 6 files</small> | |
| </label> | |
| <div class="candidate-chips" id="candidate-chips"></div> | |
| </div> | |
| </details> | |
| <div class="switch-line"> | |
| <div><b>Curated universe</b><small>10 mixed-media candidates</small></div> | |
| <label class="switch"><input id="include-showcase" type="checkbox" checked /><span></span></label> | |
| </div> | |
| <fieldset class="dimension-field"> | |
| <legend><span>EMBEDDING BUDGET</span><output id="search-dimension-output">1,024D</output></legend> | |
| <div class="dimension-pills" data-dimension-group="search"> | |
| <button type="button" data-value="64">64</button><button type="button" data-value="128">128</button> | |
| <button type="button" data-value="256">256</button><button type="button" data-value="512">512</button> | |
| <button type="button" data-value="1024" class="active">1K</button><button type="button" data-value="2048">2K</button> | |
| <button type="button" data-value="4096">4K</button> | |
| </div> | |
| <input id="search-dimension" type="hidden" value="1024" /> | |
| <p>Smaller vectors trade storage for retrieval fidelity.</p> | |
| </fieldset> | |
| <button class="primary-button" id="search-button" type="submit"> | |
| <span>Map the semantic field</span><i>→</i> | |
| </button> | |
| </form> | |
| <div class="result-deck" id="search-results" aria-live="polite"> | |
| <div class="result-topbar"> | |
| <div><span class="signal"><i></i>MODEL READY</span><small>tencent / WeMM-Embedding-9B</small></div> | |
| <span class="result-count">AWAITING QUERY</span> | |
| </div> | |
| <div class="empty-universe"> | |
| <div class="empty-field" aria-hidden="true"> | |
| <i></i><i></i><i></i><i></i><i></i><i></i><span>W</span> | |
| </div> | |
| <h3>Your semantic field is quiet.</h3> | |
| <p>Compose a query or choose a curated expedition. The first run maps the multimodal corpus; later runs reuse its cached vectors.</p> | |
| <div class="media-preview-rail"> | |
| <img src="/assets/llama4_hgf.png" alt="Llama 4 model card screenshot" /> | |
| <img src="/assets/doc2.jpg" alt="Historical budget infographic" /> | |
| <video src="/assets/mapo_tofu.mp4" muted playsinline aria-label="Mapo tofu cooking clip"></video> | |
| <img src="/assets/doc4.jpg" alt="Road safety assessment page" /> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <section class="studio compare-studio" data-panel="compare" hidden> | |
| <div class="section-heading"> | |
| <div><span>02 / VECTOR MICROSCOPE</span><h2>Put any two ideas<br />under the lens.</h2></div> | |
| <p>Compare any supported pair, then observe whether their relationship survives Matryoshka compression from 4,096 to 64 dimensions.</p> | |
| </div> | |
| <form id="compare-form"> | |
| <div class="compare-inputs"> | |
| <article class="compare-side" data-side="a"> | |
| <header><span>A</span><div><b>QUERY</b><small>What are you looking for?</small></div></header> | |
| <textarea id="pair-query-text" rows="5" placeholder="A picture or description of an idea…"></textarea> | |
| <div class="pair-uploads"> | |
| <label><input id="pair-query-image" type="file" accept="image/*" /><span>⌁</span>IMAGE</label> | |
| <label><input id="pair-query-video" type="file" accept="video/*" /><span>▷</span>VIDEO</label> | |
| </div> | |
| <div class="pair-file" id="pair-query-file" hidden></div> | |
| </article> | |
| <div class="versus" aria-hidden="true"><span>↔</span><small>COSINE</small></div> | |
| <article class="compare-side" data-side="b"> | |
| <header><span>B</span><div><b>CANDIDATE</b><small>What should it align with?</small></div></header> | |
| <textarea id="pair-candidate-text" rows="5" placeholder="A candidate in text, image, or video…"></textarea> | |
| <div class="pair-uploads"> | |
| <label><input id="pair-candidate-image" type="file" accept="image/*" /><span>⌁</span>IMAGE</label> | |
| <label><input id="pair-candidate-video" type="file" accept="video/*" /><span>▷</span>VIDEO</label> | |
| </div> | |
| <div class="pair-file" id="pair-candidate-file" hidden></div> | |
| </article> | |
| </div> | |
| <div class="compare-controls"> | |
| <div class="dimension-pills" data-dimension-group="compare"> | |
| <button type="button" data-value="64">64</button><button type="button" data-value="128">128</button> | |
| <button type="button" data-value="256">256</button><button type="button" data-value="512">512</button> | |
| <button type="button" data-value="1024" class="active">1K</button><button type="button" data-value="2048">2K</button> | |
| <button type="button" data-value="4096">4K</button> | |
| </div> | |
| <input id="compare-dimension" type="hidden" value="1024" /> | |
| <button class="primary-button" id="compare-button" type="submit"><span>Measure alignment</span><i>→</i></button> | |
| </div> | |
| </form> | |
| <div class="compare-results" id="compare-results" aria-live="polite"> | |
| <div class="compare-empty"><span>+</span><p>Add one input on each side to activate the microscope.</p></div> | |
| </div> | |
| </section> | |
| <section class="model-story"> | |
| <div class="story-number">4096</div> | |
| <div class="story-copy"> | |
| <span>ONE MODEL · MANY RESOLUTIONS</span> | |
| <h2>Fold the vector.<br /><em>Keep the meaning.</em></h2> | |
| <p>WeMM emits a 4,096-dimensional embedding with Matryoshka structure. Store fewer leading dimensions when latency or memory matters, and inspect the tradeoff here before choosing.</p> | |
| </div> | |
| <div class="dimension-tower" aria-hidden="true"> | |
| <i style="--w:100%"><span>4096</span></i><i style="--w:72%"><span>2048</span></i> | |
| <i style="--w:50%"><span>1024</span></i><i style="--w:36%"><span>512</span></i> | |
| <i style="--w:24%"><span>256</span></i><i style="--w:16%"><span>128</span></i> | |
| <i style="--w:10%"><span>64</span></i> | |
| </div> | |
| </section> | |
| </main> | |
| <footer> | |
| <div class="footer-brand"><span class="brand-mark"><i></i><i></i><i></i></span><b>WeMM</b></div> | |
| <p>Cosine similarity ranks candidates within a collection. It is not a calibrated probability. Audio is not supported.</p> | |
| <div><a href="https://huggingface.co/tencent/WeMM-Embedding-9B" target="_blank" rel="noreferrer">MODEL CARD ↗</a><a href="https://arxiv.org/abs/2608.24053" target="_blank" rel="noreferrer">PAPER ↗</a></div> | |
| </footer> | |
| <div class="job-toast" id="job-toast" hidden> | |
| <div class="job-orbit"><i></i><i></i><span>W</span></div> | |
| <div><span id="job-label">ALLOCATING ZERO GPU</span><b id="job-phase">Entering the semantic field…</b><small id="job-elapsed">00:00 elapsed</small></div> | |
| <button id="job-close" type="button" aria-label="Dismiss">×</button> | |
| <div class="job-progress"><i id="job-progress-bar"></i></div> | |
| </div> | |
| <div class="error-toast" id="error-toast" hidden><b>Something interrupted the field.</b><span></span><button type="button">×</button></div> | |
| </body> | |
| </html> | |