{"slug": "quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision", "title": "Quiet Pair: let an open model find repetitions, and keep the decision", "summary": "A developer built Quiet Pair, a browser-based tool that uses the open all-MiniLM-L6-v2 sentence model via Transformers.js 3.8.1 and ONNX Runtime Web to surface similar English sentences in a small CSV for human review rather than automatic merging. The app ranks candidate pairs by cosine similarity but requires a reviewer to mark each as Same meaning, Different, or Not sure, exporting an audit that records verdicts, scores, the model revision and a source-text fingerprint while leaving the original CSV intact. Six Node tests passed and a UI check ran the real model, with 12 synthetic rows producing 66 pairs and four candidates at a 0.72 similarity floor; the developer notes the timing figures are not a cold-load benchmark or accuracy evaluation.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady](https://dev.to/challenges/hacktoberfest-week3-2026-10-19).*\n\nQuiet Pair finds similar English sentences in a small CSV and puts them into a review queue. It is for the tedious moment when a text column contains the same request written several ways, but deleting a near-match could erase an important difference.\n\nAn open sentence model does the searching. The reviewer chooses **Same meaning**, **Different**, or **Not sure**, with undo available. There is no delete button and no automatic merge. If A resembles B and B resembles C, the app does not conclude that A equals C.\n\nThe deliberate laziness is avoiding the search through every possible pair. The deliberate slowness is reading before deciding. The output is a decision audit; the original CSV stays intact.\n\n[Try Quiet Pair in your browser](https://kgway.github.io/quiet-pair/).\n\nChoose **Try a synthetic example**, then **Find similar pairs**. The first run downloads the model. Read both sentences, make a decision, and download the audit before closing the tab.\n\nThat screenshot captures the most useful result from testing: “I want to cancel my subscription” and “Do not cancel my subscription” ranked highest. A confident-looking similarity score must not become an irreversible action.\n\n[Source code, synthetic fixtures and tests](https://github.com/kgway/quiet-pair), with the original application under the MIT License.\n\nThe core is [all-MiniLM-L6-v2](https://huggingface.co/Xenova/all-MiniLM-L6-v2), an Apache-2.0 open sentence model, running through [Transformers.js](https://github.com/huggingface/transformers.js) 3.8.1 and [ONNX Runtime Web](https://github.com/microsoft/onnxruntime). A worker loads pinned q8 weights and performs WebAssembly inference. Mean-pooled, normalized embeddings produce cosine scores; a separate review journal records individual decisions.\n\nThe model is essential: exact string matching would miss paraphrases. It is also fallible. Scores rank candidates rather than certify duplicates, and the similarity floor only filters what appears in the queue. Lowering it reveals more pairs without silently judging the rest.\n\nThe exported audit includes original texts, row numbers, verdicts, scores, a model revision and a source-text fingerprint. Formula-like cells receive a protective prefix for spreadsheet export. English matching, 150 rows and short cells keep the scope small; even these cells can exceed the model's token limit.\n\nSix Node tests passed for parsing, ranking, independent decisions, undo, export and source preservation. An automated UI check in the Codex in-app browser on Windows also ran the real model and exercised all decisions, undo and a four-row audit download. Twelve synthetic rows produced 66 pairs and four candidates at a 0.72 floor. The UI reported 1.68 seconds initialization and 0.25 seconds for embeddings in that single run. Cache state and hardware were not measured, so this is no cold-load benchmark, human user study or accuracy evaluation.\n\nOpen weights let the application run inference in the user's browser without an inference account, API key or per-request inference bill. A pinned model revision and readable scoring code also make the source of each suggestion inspectable. The audit records which model produced it, rather than hiding that choice behind a changing service.\n\nThe application has no CSV upload endpoint. It does download model and runtime files from Hugging Face and jsDelivr, whose suppliers receive normal connection metadata. Those dependencies remain trusted software, and initial network access is required. Offline reloading has not been verified; synthetic or non-sensitive input is appropriate while evaluating this preview.\n\nThe useful saving is attention spent finding candidates. How much time it saves in real work is still unmeasured. For now, the design goal is concrete: let an open model do the repetitive search, while keeping the final decision visible and reversible.", "url": "https://wpnews.pro/news/quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision", "canonical_source": "https://dev.to/kgway/quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision-1ibp", "published_at": "2026-10-24 05:28:00+00:00", "updated_at": "2026-10-24 05:41:59.398196+00:00", "lang": "en", "topics": ["artificial-intelligence", "machine-learning", "natural-language-processing", "ai-tools", "ai-safety"], "entities": ["Quiet Pair", "all-MiniLM-L6-v2", "Transformers.js", "ONNX Runtime Web", "Hugging Face", "jsDelivr", "Codex"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision", "markdown": "https://wpnews.pro/news/quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision.md", "text": "https://wpnews.pro/news/quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision.txt", "jsonld": "https://wpnews.pro/news/quiet-pair-let-an-open-model-find-repetitions-and-keep-the-decision.jsonld"}}