Крихітний фільтр значущості: як квадрат у формулі тримає затримку біля 119 мс
Розбираємо фільтр перед моделлю, що оцінює повідомлення за формулою «пі на псі в квадраті»: чому квадрат виділяє сильні сигнали і як локальний класифікатор за 0,2 мс зберігає швидкі відповіді.
Фільтр, який вирішує, що асистентові варто запам'ятати, може бути зовсім маленьким. H-Governor — це шар оцінювання перед моделлю, він віддає перший байт приблизно за 119 мс, і вся його швидкість тримається на одній формулі, невеликому класифікаторі та кількох рядках Python. Нижче математика, код і те, що саме вимірюється, щоб ви могли перевірити все самі, а не вірити цифрі затримки на слово.
Одна формула
Уся оцінка виглядає так:
H = πψ²
Читається як «пі, помножене на псі в квадраті», і має три складники:
- H — підсумкова «енергія», кінцевий результат. Набуває значень від 0 приблизно до 3,14.
- pi — звичайна константа, приблизно 3,14159.
- psi — оцінка зв'язності від 0 до 1: наскільки осмислено написано вхідний текст і як побудовані його речення.
Жодної нейромережі й жодного трансформера тут немає. Це звичайне обчислення в замкненій формі, за духом ближче до фізичного рівняння, ніж до моделі-«чорної скриньки».
Навіщо підносити psi до квадрата
Квадрат нелінійний, і саме в цьому суть. Нормалізоване значення зв'язності спершу підноситься до квадрата і лише потім множиться на pi, тож слабкі сигнали стискаються, а сильні вирізняються. За psi = 0,2 внесок лише 0,04, а за psi = 1,0 — ціла одиниця, тобто в 25 разів більше ваги.
На практиці це означає, що буденні репліки лишаються в тіні, а важливі факти виходять на перший план. Звичайна чат-модель, якій поставили питання про ту саму ідею, описала її так само: квадрат пригнічує слабкі сигнали й значно посилює сильні, тому формула цілком годиться як регулятор значущості. Це перевірка на здоровий глузд, а не доведення, але з арифметикою вона збігається.
Що тут робить NumPy, а чого не робить
NumPy — стандартна бібліотека Python для чисельних розрахунків: вектори, матриці, статистика й математика загалом. У цій системі вона відповідає за обчислювальну половину: ви передаєте вже оцінене psi й отримуєте узгоджену оцінку H. Далі ця оцінка впливає на долю повідомлення: чи має воно потрапити в пам'ять, вплинути на зв'язність діалогу або на вибір моделі.
А от обчислити psi NumPy не може. Найскладніше — прочитати живе людське повідомлення настільки добре, щоб зрозуміти, які сигнали в ньому важливі, і це завдання шару оцінювання psi. Кілька прикладів показують розкид:
- Згадка про переїзд до Лос-Анджелеса минулого тижня — найімовірніше, стала особиста інформація.
- Роздуми про звільнення з роботи — ймовірно, важливе рішення або нерозв'язана мета.
- Туга за батьком чи матір'ю має емоційну вагу, але ніхто не просить зберегти з неї факт.
- Прохання нагадати про підготовку до марафону — зобов'язання, яке знадобиться в наступних розмовах.
Регуляторові не потрібно розуміти все так, як розуміє передова мовна модель. Його завдання вужче: помітити сигнали, які мають змінити пам'ять, зв'язність, маршрутизацію чи поведінку відповіді.
Саме якість класифікації вирішує, чи спрацює підхід. Якщо psi оцінено погано, формула лишається математично правильною, але на практиці марною. Виглядатиме це так:
- Дрібне повідомлення отримує надто високий бал і зберігається, хоча його варто було проігнорувати.
- Справжнє зобов'язання отримує надто низький бал і забувається.
- Емоційну репліку сприймають як довготривалий факт.
- Коротке, але важливе повідомлення програє довгому й одноманітному.
Формула детермінована, тож її користь цілком залежить від вхідних даних. Грубо кажучи, якість пам'яті — це якість psi плюс поведінка регулятора.
Тому цей шар і стоїть до генерації. Це легкий і прозорий крок ухвалення рішення, який задає узгоджений стан ще до того, як мовна модель видасть свою ймовірнісну відповідь. LLM отримує контекст, уже сформований явною політикою, і їй не доводиться з нуля вирішувати, що важливо. Арифметика дешева. Справжня інженерна задача — це судження, закладене в psi.
Класифікатор на п'ять категорій
То звідки береться psi? У цій реалізації це класифікатор на п'ять категорій, який працює локально приблизно за 0,2 мс: без виклику API й без звернення до LLM, лише регулярні вирази та арифметика:
def infer_tem_inputs(user_input):
# 1. Durable personal info (name, location, goals)
# 2. Important decisions (job change, trade entry)
# 3. Emotional significance (loss, breakthrough, frustration)
# 4. Commitments / unresolved objectives (psi-seeds)
# 5. Future-relevant context (next steps, deadlines)
# Returns: emotion, clarity, focus scores (0-1)
# These combine into ψ
Кожна категорія додає свій внесок у підсумкове psi від 0 до 1, після чого H = pi × psi² обчислюється за мікросекунди.
Такий порядок і пояснює швидкість. Psi обчислюється до будь-якого дорогого інференсу, тож затратний шар бачить лише ті повідомлення, що вже пройшли фільтр значущості.
Шлях запиту
Ось як виглядає прохід регулятора в обробнику запитів застосунку:
start_ns = time.perf_counter_ns()
emo, clarity, focus = infer_tem_inputs(request.input)
psi_report = tem_engine.evaluate(ThoughtSignal(clarity, focus, emo))
g_core = GongjuCore(psi=psi_report.coherence)
h_energy = g_core.holistic_energy() # H = πψ²
latency_us = (time.perf_counter_ns() - start_ns) / 1_000
latency_buffer.append(latency_us)
Він засікає власний час у наносекундах, оцінює емоції, ясність і зосередженість, зводить їх у значення зв'язності й обчислює H. Можна запустити код, переконатися в цифрі 0,2 мс і перевірити формулу. Відтворювані числа важать більше, ніж обіцянки вендорів.
Що з цього винести
Формула проста, математика доказова, масштабування нелінійне. Увесь інтелект живе в psi: розуміння того, які повідомлення важливі, які факти довговічні, які рішення є зобов'язаннями і який контекст знадобиться пізніше.
Тому регулятор працює до моделі, коштує набагато менше за повний інференс, і тому 119 мс до першого байта досяжні без втрат у якості пам'яті. Це не трюк заради бенчмарку. Це те, що виходить, коли рішення переносять у дешевий шар.