Це почалося з мого блогу's інструмент для перекладу. Cache зберігає лише 5 завдання на одного користувача M SK2 з МSK3 годиною абсолютної і МSK4 годинною закінчуванням, що рухається повідомленням МСК5 шостою задачейМСК6 найстаріша виїхала М СК7 Після години неактивності M СК8 все закінчилося MСК9
Більшість розробників бачили б це як обмеження для роботи навколо. Але кэш став self-czyszczenie і самоспеціалізація. Воно зберігає те, чого потребували користувачі і забув, що вони не робили. 'tM SK2 Загальним вікном не було МSK3 не боролися з системою. була система.
Я витягнув цей примітив Найяскравіший.Ефемеральний: обмежене співпадіння , скорочення терміну витрачування МSK2 сигнал M SK3 основа координації між операціями . одна і та сама ідея узагальнилася
Модель постійно з 'являється. В ДиС, ЛСМ розвинули код МSK1 але тести на одиниці та перевірки якості вирішують, що виживає МSK2 ЛРМ запропонує МСК3 обмеження тестів . В Розпізнавання Bot, геуристичні детектори просять показники, МSK1 але пороги політики вказують на остаточне рішення МSK2 В розвідці з клієнтами , LLM генерують поведінкові сегменти \ , \ , а обчислені метрики обмежують те, що вони можуть заявити
Чотири системи
Обмеження перетворює двозначність у примусовий вибір. ресурс МSK0 розмір, час МSK2 вартість ). Іноді це освіченість ( доказиM SK1 інваріанти ). Те ж саме, що і МSK3 примусять до відбору і запобігають незбагненному певності M SK4
flowchart LR
subgraph Constraint["The Constraint (Primitive)"]
C1[Constrained Size]
C2[Sliding Expiration]
end
subgraph Emergence["Emergent Behavior"]
E1[Selective Forgetting]
E2[Focus on Relevance]
E3[Self-Optimization]
end
C1 --> E1
C2 --> E1
E1 --> E2
E2 --> E3
style Constraint stroke:#ef4444,stroke-width:2px
style Emergence stroke:#22c55e,stroke-width:2px
Це головне розуміння Серії семантичного інтелекту і DiSE (Direkted Synthetic Evolution):
Обмеження не обмежують інтелекту. створити корисне поведінку в системах, які інакше дрейфують.
Cache LRU під тиском . LLM обмежений обчислюваними фактами. Хіристична модель обмежена політичними шкаламиM SK2 Кожна з цих обмежень змушує систему приймати рішення. Ці рішення створюють тиск відборуMSC4
| Система МSK1 Стримання МSK2Primітивні ) M | Невідкладна поведінка МСК5 |
|---|---|
| LRU Cache | |
| Підсумовник LLM МSK1 Потрібно цитувати фрагменти джерела МSK2 Може ' галюцинувати не підтвердzone твердження | |
| Detector Bot ♫ ♫ | ♫ Policy thresholds ♫ |
| Об 'єктив для зображення МSK1 Перерахурована палетка кольорів МSK2 Можемо ' вигадувати кольори, які не існують |
Один і той самий візерунок. Різні домениM SK1 Спертою є вчитель.
TL;DR: Дозвольте моделювати ймовірність запропонувати; дозволити детерміністичним системам вирішити. Вирахуйте факти, які можна перевірити , дозвольте штучний інтелект їх інтерпретувати МSK2 а потім підтвердить кожну твердження проти фактів M SK3 Pracs for LLMs, heuristicsM SK5 vision models MSC6 anything uncertain .
| Намір | Безпечно використовувати ймовірнісні компоненти в системах з реальними гарантіями |
| Сили | високий МSK1 виходи варіацій МSK2 мовчазний провал , обмежений комп 'ютерні розрахунки |
| Рішення МSK0 Субстрат ( факти МSK2 → Запропонувач MSК4 невизначеность МСК5 МСК6 Констрейнер СМСК7validate СМСК8 rewrite | |
| Наслідки | Ще більше інженерії на передньому плані ; значно безпечніша еволюція та операційна система МSK2 |
Що ви отримуєте:
Скільки це коштує:
Тут обмежене означає обмежені: жорсткі обмеження, що нав 'язуються механічно, а не переговорами через пропони МSK1 Бюджети МSK2 інваріантні , і констренатори
Після побудови систем у дуже різних областях (сумування документівM SK1 аналіз зображення, виявлення роботівМSK3 пошук данихMSC4 ця архітектура продовжувала з 'являтися
flowchart TB
subgraph Input
I[Input Data]
end
subgraph Truth["Deterministic Substrate (Truth Layer)"]
T1[Compute Facts]
T2[Extract Evidence]
T3[Calculate Metrics]
end
subgraph Fuzzy["Fuzzy Proposer (Creativity Layer)"]
F1[Generate Proposals]
F2[Score/Rank]
F3[Synthesize Output]
end
subgraph Constrain["Constrainer (Contract Layer)"]
B1{Acceptable?}
B2[Rewrite/Hedge]
B3[Enforce Limits]
end
subgraph Output
O[Constrained Result]
D[Degraded Fallback]
end
I --> T1 --> T2 --> T3
T3 --> F1 --> F2 --> F3
F3 --> B1
B1 -->|"Full"| B3 --> O
B1 -->|"Partial"| B2 --> B3
B1 -->|"None"| D
T3 -.->|"Evidence"| B1
style Truth stroke:#22c55e,stroke-width:3px
style Fuzzy stroke:#f59e0b,stroke-width:3px
style Constrain stroke:#ef4444,stroke-width:3px
Погляньмо на суть. дозволити можливим компонентам запропонувати,, але ніколи не дозволити їм вирішити. Використовуйте їх для того, що вони
Ось що робить цю модель потужною: її гнучкість.
Архітектура залишається такою ж, як і раніше. Зміняються тільки компонентиM SK1
Без обмежень, ймовірністичні системи провалюються так, що їх важко виявити і неможливо запобігти
flowchart LR
subgraph Unconstrained["❌ Unconstrained System"]
U1[Input] --> U2[LLM/Model]
U2 --> U3[Output]
end
subgraph Constrained["✓ Constrained System"]
B1[Input] --> B2[Compute Facts]
B2 --> B3[LLM/Model]
B3 --> B4{Validate}
B4 -->|Pass| B5[Output]
B4 -->|Fail| B6[Fallback]
end
style Unconstrained stroke:#ef4444,stroke-width:2px
style Constrained stroke:#22c55e,stroke-width:2px
Неускладнені режими невдачі:
Інстинкт полягає в тому, щоб додати більше стимулів МСК0 більше прикладів , більше м 'яких захисних рельєфів. Але ймовірністичні системи не можна довіряти тому, що вони поважають м' язові кордони МSK4 Вони потребують жорстких
Модель кристалізувалася операційні правила що кодують обмежену неясність (вибранийM SK1
| Команда | Перевод обмеженої невизначеності МSK2 |
|---|---|
| I. ЛЛМ не мають власності на державу | Государство живе в підґрунті , не запропонуючий МSK2 |
| II. ЛЛМ не є єдиною причиною побічних ефектів | Констренер гарантує ; LLM рекомендує МSK2 |
| IV. Використовуйте LLM, коли ймовірність прийнятна | класифікаціяМSK1 підсумокМСК2 рейтинг М СК3не інваріантніM СК4 М СК5 |
| V. Ніколи не питайте LLM вирішити відтворюваний bool | Якщо ви можете обчислити це, , обчислюйте це |
| VIII. Зруйнувати LLM до консультантаM SK1 не агента | ЗапропонувачM SK1 не вирішальний МSK2 |
Прибутки: Ви не потребуєте передових моделей. Невеликий локальний LLM на товарному апараті стає мультиплікатором сили, коли він займається класифікацією та створенням гіпотез , не викидає себе базою даних чи становою машиною МSK3 Занудливі машини обробляють важкі деталі M SK4 LLM обробляє туманні деталі
Ця модель має глибокі коріння в теорія контролю: губернатор, який обмежує високий
Classical Control: Steam Engine → Governor → Constrained Speed
Constrained Fuzziness: LLM/Heuristic → Constrainer → Constrained Output
Ви не робите, що двигун вибухне. Ви фізично запобігаєте йому. Ви робите те ж саме з системами вірогідності. Ви не підштовхуєте ЛЛМ до галюцинацій.
Подібна робота для академічно схильних
Очевидна протирічкаМSK0 " Звісно МSK2 але ГПЗM SK3 \ / Клод МСК5 | / Геміни Ультра буде настільки хорошим, що ці обмеження виграютьMСК7 неважливоM СК8
Можливо. Frontier моделі їжа писати над багатьма розривами, які маліші системи викривають. Вони галюцинують менш часто. Вони слідують інструкціям більш надійноM SK2 Вони обробляють краєвидні cases більш граційно . Якщо ви' будуєте прототип чи інструмент, де випадкові невдачі є прийнятними МSK5 парадигма з добрим наказом може бути достатньоюMSC6
Але МСК0 не часто МСК1 не МСК2 ніколи МСК3 І СМСК4 більш надійно СМСК5 не Guaranteed "
І малі моделі досліджує це в глибині. передні моделі провалюються по-іншому, не менш. Їхні невдачі більш семантичні, аніж структурні. важче нелегше виявити,
Ще важливіше: швидка інженерія не може замінити технічну дисципліну. Незалежно від того, наскільки хороша буде модель , ці проблеми залишаються МSK2
| Проблема МSK1 Чому прохання може МSK2 не виправити це | |
|---|---|
| Держава управління МSK1 Моделі не мають постійної пам 'яті на всіх дзвінках | |
| побічні ефекти | Моделі можуть запропонувати дії, але не гарантують їх виконання |
| Аудиторність МSK1 МSK2 Модель так говорить " - це не прийнятна аудиторська траєкторія | |
| Детермінізм | |
| Ценоща в масштабі МSK1 В / МSK2 Состави для встановлення цін на токен з об 'ємом МSK3 |
Навіть якщо фронтальна модель могла б надійно виробляти правильний результат 99.9% за певний час , вам все ще потрібноM SK2
Це - констренерний шар. МСК1, Ви - МСК2 - все одно його будуєте. МSK3
Різниця полягає в тому, чи ви будуєте його до цього невдачі вчать вас чому це важливо після. Конstrained Fuzziness каже: : збудувати його спочатку МSK2 Потім розмір моделі стає вибором для використання МSK3 не архітектурним мSK4 Модель Б з хорошими обмеженнями часто перевершує фронтальну модель з поганими
Зміни вибору моделі як часто Ви натиснете на конструктор.
Що потрібно ніколи не було нарушено?
public class SummaryInvariants
{
public bool ValidateSummary(Summary summary, SourceDocument source)
{
// No claims without evidence pointers (e.g., "[chunk-3]" must exist in source)
if (summary.Claims.Any(c => !source.ChunkIds.Contains(c.EvidenceChunkId)))
return false;
// No color assertions unless we computed a palette from the image
if (summary.ColorClaims.Any() && !source.HasComputedPalette)
return false;
// No PII in output
if (PiiDetector.ContainsPii(summary.Text))
return false;
return true;
}
}
Поширені інваріанти::
Що потрібно завжди бути обмеженим?
public record ProcessingBudget(
int MaxContextTokens = 4000,
int MaxModelCalls = 5,
TimeSpan MaxLatency = default, // e.g., 30 seconds
int MaxVramMb = 2048,
decimal MaxCostUsd = 0.10m
)
{
public ProcessingBudget() : this(MaxLatency: TimeSpan.FromSeconds(30)) { }
}
Бюджет - це МСК0 , а не натяк, МСК1 . Це "'", це блокатор схем. МСК3 . Коли його перевищують, система граційно зруйнується, а не продовжує спалювати ресурси.
Констренер не просто відкидає переписати надмірна впевненість в вихідних даних у спекуляціях ("можливоM SK1 МSK2невизначні", "на основі наявних доказівMSC5 або повністю відокремлює не підтвердzone твердженняMSL6 Переписання зберігає сигнал, в той час як відокромлює надмірну впевненістьMST7 зберігає системи корисними під невизначністю замість нерозбірливихM ST8 Те, що МST9 є характерною частиноюМST10 це МST11 не підтвердження входуМ ST12 це MST13 управління виходамиМ st14
Поширені конструктори, які ви використовуватимете в усіх системах
Шема-Ґейт: схема JSON + перевірки типу
public class SchemaGate<T>
{
public (bool Valid, T? Result, string? Error) Validate(string json)
{
try
{
var result = JsonSerializer.Deserialize<T>(json, _options);
return (true, result, null);
}
catch (JsonException ex)
{
return (false, default, ex.Message);
}
}
}
Допоміжні ворота: Кожна заявка має бути пов 'язана з шматочками джерела
public class EvidenceGate
{
public Summary EnforceEvidence(Summary proposed, IReadOnlySet<string> sourceChunkIds)
{
// Keep only claims that reference chunks we actually have
var validClaims = proposed.Claims
.Where(claim => sourceChunkIds.Contains(claim.EvidenceChunkId))
.ToList();
return proposed with { Claims = validClaims };
}
}
Мережа політики: PrywatністьM SK1Правила безпеки Бюджет бюджетуМSK0 Час/рахункиM SK2вімкости токенів Знову написати ворота: Перетворити твердження на хеджовані твердження
Коли нерозбірлива частина зазнає невдачі, don 't crashM SK2 Degrade:
public async Task<SummaryResult> SummarizeWithFallback(Document doc)
{
try
{
var proposed = await _llm.GenerateSummary(doc);
var constrained = _constrainer.Enforce(proposed, doc);
if (constrained.Claims.Count > 0)
return SummaryResult.Success(constrained);
// LLM output was entirely invalid. Fall back to extractive
return SummaryResult.Degraded(
_extractiveSummarizer.Summarize(doc),
reason: "LLM claims failed validation");
}
catch (BudgetExceededException ex)
{
// Log for evolution, return deterministic-only
_logger.LogWarning(ex, "Budget exceeded for {DocId}", doc.Id);
return SummaryResult.Degraded(
_extractiveSummarizer.Summarize(doc),
reason: ex.Message);
}
}
Головні принципи:
| Система МSK1 Субстрат МSK2 Запропонувач | Констрейнатор မ်SK4 | |
|---|---|---|
| DocSummarizer | BERTM SK1 Extraction chunk of RAG | LLM narrative synthesis [chunk-N]) |
| Обмеження зображення | Palette ImageSharp | |
| DataSummarizer | схема DuckDB | LLM МSK2 SQL |
| Медиа-аналіз | Тайм-тамп на сценіM SK1 транскрипція | LLM бит-шаф МSK3 Біти повинні цитувати тайм- тамп |
Pattern завжди один і той самий: обчислювані факти , дозволити LLM інтерпретувати в межах цих фактів
Ця частина навмисно деталізована, тому що вона показує модель без LLM взагалі.
Моя система виявлення роботів (Найяскравіший.Detection Bot) показує, що стримана невизначеність не обмежена systemами, базованими на LLM - МSK3 Тут \ , \ proposer fuzzy collection of heuristic detectors with learned weights \ МSK5 \ No language model required for core functionality
Три шари:
Субстрата ( Правдоподібний шар МSK1: Індивідуальні детектори обчислюють об 'єктивні сигнали з HTTP запитів
ua.is_bot, ua.contains_automation_keywordhdr.accept_language_count, hdr.missing_standard_headersip.is_datacenter, ip.reputation_scorebeh.requests_per_minute, beh.path_entropyАвтор: (Креативність: Геристична модель об 'єднує сигнали за допомогою вужених сигмоїдів
// Each detector emits a contribution, not a verdict
DetectionContribution.Bot(
source: "UserAgent",
category: "BotSignature",
confidence: 0.85,
reason: "Contains 'Googlebot' signature",
weight: 1.0
);
// Aggregation via weighted sigmoid
var weightedSum = contributions.Sum(c => c.ConfidenceDelta * c.Weight);
var botProbability = 1.0 / (1.0 + Math.Exp(-weightedSum));
Конструктор (Полоння контрактуM SK1: Policy engine enforces hard thresholds and actions
public record DetectionPolicy(
double EarlyExitThreshold = 0.3, // Exit if < 30% = confident human
double ImmediateBlockThreshold = 0.95, // Block only if 95%+ certain
double AiEscalationThreshold = 0.6 // Escalate if risk unclear
);
Найголовніша інформація МСК0 Детектори дають докази МSK1 Не викидають вердикти
Кожен детектор веде до остаточного рішення, не роблячи цього сам. DetectionContribution записів:
ConfidenceDelta: Наскільки це підштовхує до робота (+) чи людини МSK2Weight: Який вплив має цей детекторSignals: Комп 'ютерні фактиReason: ЛюдськаЦе відокремлення означає, що
Опціональна Escalation LLM
Тут – ', де стає цікаво – МSK1 – модель підтримує опціональна ескалація до LLM коли геристична модель непередбачувана. Це конфігурується за допомогою політикиM SK1
// Default policy: fast heuristics only
var defaultPolicy = new DetectionPolicy {
FastPath = ["UserAgent", "Header", "Ip", "Behavioral"],
EscalateToAi = false
};
// High-security policy: escalate uncertain cases to LLM
var strictPolicy = new DetectionPolicy {
FastPath = ["UserAgent", "Header", "Ip"],
SlowPath = ["Behavioral", "ClientSide"],
AiPath = ["Onnx", "Llm"], // Optional ML/LLM detectors
EscalateToAi = true,
AiEscalationThreshold = 0.4 // Escalate when 40-60% uncertain
};
Коли ескалація спричиняє,, ЛСМ отримує накопичені сигнали і проводить аналіз мови на природному рівні ,, але констренер все ще встановлює граничні показники (МSK2). Мнение ЛСМ(MSC3) впливає на результат(M SK4), але не впливає на політику (M SK5).
Оркестрування на основі хвиль
Система запускає детектори на хвилях, з пізнішими хвилями, викликаними ранніми сигналамиM SK1
flowchart LR
subgraph Wave0["Wave 0: Fast & Free"]
W0A[UserAgent]
W0B[Header]
W0C[IP]
end
C1{Consensus?}
subgraph Wave1["Wave 1: Expensive"]
W1A[Behavioral]
W1B[ClientSide]
end
C2{Still Uncertain?}
subgraph Wave2["Wave 2: AI"]
W2A[ONNX Model]
W2B[LLM]
end
subgraph Policy["Policy Enforcement"]
P1{Score > 0.95?}
P2[Block]
P3[Allow]
P4[Log & Learn]
end
Wave0 --> C1
C1 -->|"Yes: 3+ agree"| Policy
C1 -->|"No"| Wave1
Wave1 --> C2
C2 -->|"No"| Policy
C2 -->|"Yes + AI enabled"| Wave2
Wave2 --> Policy
P1 -->|Yes| P2
P1 -->|No| P3
P3 --> P4
style Wave0 stroke:#22c55e,stroke-width:2px
style Wave1 stroke:#f59e0b,stroke-width:2px
style Wave2 stroke:#ef4444,stroke-width:2px
style Policy stroke:#8b5cf6,stroke-width:2px
Це обмежена неясність з прогресивна ескалація: дешева гуристика вирішує прості справи , дорогий штучний інтелект вирішував крайні проблеми МSK2 і політика встановлює обмеження на кожному кроці
Навчання без ризику
Тому що констренер стверджує безпеку, незалежно від того, що видають детектори.
// After each request, submit learning event (non-blocking)
LearningCoordinator.TrySubmit("ua.pattern", new LearningEvent {
Features = extractedFeatures,
Label = actualOutcome, // Was it actually a bot?
Confidence = detectionConfidence
});
// Background: EMA weight update
var alpha = 0.1; // Learning rate
newWeight = existingWeight * (1 - alpha) + observedDelta * alpha;
Ваги з часом сходяться у напрямку справжньої моделі. МСК0 високий рівень. - спостереження за впевненістю мають більший вплив.. Але погане налаштування ваги ніколи не може спричинити непоганої шкоди.
Чому це важливо
BotDetection доводить, що обмежена невизначеність не стосується LLM, а лише .. Це стосується будь-якої системи, де
LLM - це лише одна з можливих неясних складових: МСК0, эвристичні моделі, МСК1, класifierи ансамблю, МSK2 та правило, Скорори, що базуються на МСК3, всі мають однакову архітектуру.
Модель має певну ціну.
Проминіть його, коли:
Задача повністю детерміністична. Якщо ви можете писати if X then Y, ви не маєте ' вам не потрібен пропонувач МSK2 Просто напишете код
Ви – МСК0, ви – прототип, МSK1 Ви ще не знаєте, які обмеження мають значення. Дозвольте йому спочатку провалитисяM SK2 Загадайте його після того, як ви зрозуміли режими невдачі . МSK4Доки радіус вибуху не буде високим
Виход - одноразовий. brainstorming, drafts, creative explorationM SK2 if a human reviews everything anyway , the constrainer is redundant
Часові невдачі є прийнятними. Якщо рівень галюцинацій у вашому випадку невеликий,
Ви не маєте підґрунтя. Якщо ви можете' не обчислювати базову правдуM SK1 ви можете(' не обмежувати її) . не імітувати МSK4 не вдаватись в неї M SK5 або знайти обчислювані факти, або прийняти туманність
Модель для систем, де
Якщо це не ваша ситуація, то простіший підхід вимагає.
Стримана невизначеність стає ще потужнішою, якщо поєднати її з DiSE (Directed Synthetic Evolution) patternsM SK2 Тому що ви можете оцінити кандидатів дешево і детерміністично
Найголовніша думка: ви можете розвинути учасника без ризику системи, тому що констренер гарантує безпеку і правильність, незалежно від того, що видає запропонувач
public async Task<EvolvedPrompt> EvolvePromptAsync(
Prompt current,
IReadOnlyList<FailureCase> failures)
{
// Failures are safe to collect because constrainers caught them
var patterns = AnalyzeFailurePatterns(failures);
// Generate candidate prompt mutations
var candidates = await _llm.GeneratePromptVariants(current, patterns);
// Test each against held-out validation set
var scored = await Task.WhenAll(candidates.Select(async c =>
{
var results = await RunValidationSet(c);
return (Prompt: c, Score: CalculateScore(results));
}));
return scored.OrderByDescending(x => x.Score).First().Prompt;
}
"Constrained Fuzziness is the practice of letting probabilistic components propose meaning while deterministic systems enforce truth
Повернімося до тієї LRU-каші, яка стала розумнішою, коли закінчилася пам 'ять.
Це було так: МСК0 , не даючи більше можливостей . ".". Це було дозволити обмеження виконувати свою роботу. Примушений вибір через обмежену величину . Повільне закінчування примушує забути МSK2 Разом МSK3 вони створили навчання
Це ключовий момент. Ви не виправляєте систем ймовірності, створюючи їх менше вірогідність. Ви виправляєте їх, не дозволяючи ймовірності втекти у ваші гарантіїM SK1
flowchart LR
E[🔥 High-Variance<br/>Engine] --> G[⚙️ Governor] --> O[✓ Constrained<br/>Output]
style E stroke:#ef4444,stroke-width:2px
style G stroke:#22c55e,stroke-width:3px
style O stroke:#3b82f6,stroke-width:2px
Паровий двигун не розуміє, що він повинен вибухнути. Губернатор фізично його запобігає. МСК5. ЛЛМ не розуміє. МSK6. Не розуміє. ". Не має галюцинувати кольорами. МСК10. Конструктор комп 'ютерно його запостерігає.
Те ж саме. МСК0. Інший століття. МSK1.
Наступного разу, коли вам здасться додати до системи ще один абзац, сподіваючись, що модель зробить це. чи можу я обчислити цей обмеження?
Якщо так, то, обчислюйте йогоM SK1 Потім сконструйуйте модель до нього .
Хворі межі перевершують м 'які запити. Кожного разуM SK1
| частина МSK1 візерунок МSK2 вісь | |------|---------|------| МSK0 1 ♫ ♫ МSK2 ♫ Стримана невизначеність ♫ ( ♫ Цей artykuł ♫ | 2 | Обмежений фузій МСМ | Багато компонентів МSK1 | 3 | Перетягування обмеженого неясного контексту МSK0 Час / пам 'ять | | 4 | Підсумовувач зображення | Практична Implementation МSK1
Частина 2 розширює цю архітектуру до багатьох систем агентів. Моделі не спілкуються між собою. Модели публікують надруковані сигнали на об 'єднаному підґрунті. Модель перетворюється на саму зв' язок.
Частина 3 розширює його вздовж часової осі. Моделі можуть помітити , але інженер вирішує, що залишається МSK2 Обмеження стає пам 'яттю
Частина 4 показує всі три моделі, вбудовані у ImageSummarizer— хвиля -, що базується на аналізі зображення, де ColorWave обчислює факти
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.