Osa 1 kuvaili putkilinjaa: SuunnitelmaM SK1 Ehdokas , Johdanto-osan käyttäjä. Yksi todennäköinen osatekijäMSC4 rajattu deterministiseen totuuteenMST5
Mutta mitä tapahtuu, kun on moninkertainen esittäjät? Useat LLM-järjestelmät ? Tekstimallien kanssa puhuvat näkemismallit
Se on rajattu hämärä MoM (CFMoMM SK1 rajoitettu valinta useista ehdottajista, vahvistettu yhteisen totuuden vastaisestiM SK1 Ei "liittää monet mallit puhumaan
CFMoM on malli, jossa useat todennäköisyyteen perustuvat osat ehdottavat signaaleja, mutta vain deterministinen logiikka voi yhdistääM SK1 vahvistaa, tai toimia niiden perusteella .
Säännös:
"Yhdessä monessa järjestelmässä, virastojärjestelmissä, ,, yhteisenä substrattina on kieli, M SK3, ja constrainerina on grammatika.
Ennen alkamista, korjaa sanasto
| Määräaika | |
|---|---|
| CFMoM | Rajoitettu hämärä MoMM SK1 rajoitettu valinta monista ehdottajista |
| Alkuperä | tosiasiat SSK1 todisteet + budjetit S(deterministinen |
| Signalisopimus | Miten komponentit kirjoitetaan substrattiin |
| Konsensuksen alue | varasto + etenemissuuntaus + asynkkiarviointi |
| Koordinointiharjoittelija | Toimien lopullinen vartiosto |
Huomautus: Konsensustila on linja-auto ja muisti, ei arbittiM SK1 Se voi suorittaa syöttämistä-aikatodistusta MSC3esitysjärjestelmäMST4 todisteet olemassaolostaMSV5 mutta ei koskaan tee päätöksiäMSP6 Päätökset elävät konstrainerissaMSM7
Nämä eivät ole uusia käsitteitä. Ne ovat osia 1 mallia, joka on laajennettu osittain
Ne eivät ole neuvottelukelpoisia
| Asia | Miksi CFMoM on erilainen? |
|---|---|
| Asiantuntijoiden yhdistelmä (MoE | MoE sekoittaa mallitulokset matemaattisesti rajoitusten alla olevat signaalit todisteiden ja politiikan perusteella |
| Agenttikeskustelu | Monet agenttijärjestelmät kulkevat vapaasti -muodolliset viestit komponenttien välille . CFMoM kieltää vapaanM SK3muodostetut inter-toimet-komponenttiviestitMSC5 vain kirjatut signaalit pääsevät substrattiinMRK6 |
| Routiointi | Routing selects millainen malli kutsua. CFMoM hyväksyy useat ehdotukset ja rajoittaa valintavirkoja |
| Äänestys | Äänestys edellyttää, että tulokset ovat vertailukelpoisia |
| LangChain-muodon grafiikat | Graffit välittävät viestin, . CFMoM julkaisee muuttamattomia signaaleja yhteiselle substratille |
CFMoM ei ole kirjasto tai kehys. Se on epistemillinen sääntö Todennäköiset osatekijät voivat ehdottaa,, mutta vain deterministisetM SK1 todisteet -toteutunut logiikka voi yhdistää tai toimia
Kun kaksi LLM:ta viestivät luonnollisen kielen välityksellä, saamme moninkertaistumishäiriöitä. Vaikka kaikki hyökkäykset ovat suurin piirtein oikeitaM SK2 virheet moninkertoutuvat odotettua nopeammin .
Semanttinen ajo: Kukin malli tulkitsee hieman eri tavalla . Malli A sanoo, että "käyttäjä vaikuttaa turhautuneeltaM SK3 Mallia B lukee, että kun "käyttäjä on vihainen." Mallio C syventyy "hätääntyvä käyttäjä havaittiinMSC7 Kolme hyökkäystäMST8 kolme tulkintaaMstK9 yksi väärä johtopäätösM stk10
LuottamuksenpesuMalli A on 80% varma jostakin, . Se kertoo mallille B sujuvassa runossa, M SK3 Malli B kohtelee sitä tosiasiana, koska kieli kuulostaa varmalta.
Hallucinaatioheikkeneminen: malli A keksii uskottavan yksityiskohdan, . malli B rakentuu siihen, M SK2 malli C mainitsee sen sellaisena kuin se on vahvistettu
Formatti epävakaus: malli A tuo outputs JSON . Toisinaan. malli B analysoi sitä
Instinkt on lisätä enemmän kannustimia muotojen täytäntöönpanoon. Mutta pehmeät rajoitukset epäonnistuvat komponenttien välillä aivan kuten ne epäonnistuvat osien sisällä.
: pakottaa kaikki osatekijät väliseen viestintään yhteisen deterministisen avaruuden kautta.
Tämä on vaikeaa sääntöä.
Tämä tappaa ", mutta minun agenttini voi tiivistää toisen agentin " porsaanreikiä M SK2 Tämä porsaanreikä on se, miten semanttinen ajo alkaa
Muodon ytimenä on kirjattu pöytäkirja, jonka kaikkien osatekijöiden on käytettävä. Ei prosoaM SK1 Ei vapaata -muodollinen output. täytettävät olotMSC4
Ensinnäkin määritellään, mitä "todisteet " tarkoittavat
public record EvidenceRef(
string Kind, // "chunk", "frame", "timestamp", "request", "row"
string Store, // namespace (e.g., "documents", "video-frames")
string Id, // chunk-12, frame-0042, t=00:13:21.200, req-abc
JsonElement? Locator = null, // span, bbox, row-range - schema depends on Kind
string? ContentHash = null // optional hash for version verification
);
Tämä ei ole ketju. Se on viittaus todistettavissa olevaan lähdemateriaaliinM SK1 Kaikkien väitteiden on mainittava, mihin ne perustuvat Locator field handles spans, bounding boxes , timestamps, tai jokin muu paikkajärjestelmä M SK3 sen järjestelmä on määritelty Kind.
public record EmbeddingRef(string ModelId, float[] Vector);
public record ConstrainedSignal(
string Id, // stable identifier
string SourceId, // component name/version
string FactsSchemaId, // "bot-detection/1.0", "summarization/2.1"
DateTimeOffset At, // when produced
string? CorrelationId, // ties signals to one input/request
string? SubjectId, // what this signal is about, if known
JsonElement Facts, // schema-validated, not ad-hoc object
IReadOnlyList<EvidenceRef> Evidence, // what it's based on
float Confidence, // self-estimated probability of correctness
IReadOnlyList<EmbeddingRef>? Embeddings = null // optional, supports multi-model migration
);
FactsSchemaId viittaa malliin, joka määrittelee, mitä palette_dominant_hue merkitsee, minkä tyyppinen se on , mitä yksiköitä se käyttääM SK2 Ei mainintaa Dictionary<string, object>. Järjestelmät ovat JSON-järjestelmän mukaisia.Signaaleja validoidaan ja kananikalisoidaan, kun ne saapuvat substrattiin, eikä silloin, kun constraineri käsittelee niitäM SK1
public async Task IngestAsync(ConstrainedSignal signal)
{
// Hard fail if schema invalid
_schemaRegistry.Validate(signal.FactsSchemaId, signal.Facts);
// Canonicalise units, formats, types
_canonicaliser.Apply(signal.FactsSchemaId, ref signal);
// Verify evidence pointers exist and are in scope
foreach (var evidence in signal.Evidence)
_evidenceStore.VerifyExists(evidence);
await _store.WriteAsync(signal);
}
Kun constraineri näkee signaalin, se on jo suunnitelmassa, -, validi,,, kanoniinisoitu ja todisteet vahvistettu.
_evidenceStore.VerifyExists suorittaa todellista työtä. Nämä ovat tasot
Signalit, jotka eivät täytä minkäänlaista tasoa, hylätään syöttäessä. Ei osittaisia todisteitaM SK1
Tämä on se kohta, jossa monet monimutkaiset agenttirakenteet ovat väärässä.
Sisällytykset annetaan kauko geometria, joka liittyy samankaltaisuuteen. Ne ovat todennäköisiä , vain vähemmän kiihkeitä kuin luonnollinen kieliM SK2 Kaksi signaalia, joilla on samanlaiset sisällytykset mahdollisuus olisi sama asia.
Tosiasiat + Todisteet on totta. Asia, jonka mukaan M SK1 tarkoittaa samaa " eri osissa, on oltava
Siirrot auttavat löytämään signaaleja, jotka mahdollisuus Tosiasiat varmistavat, että ne ovat.
Siihen Bot-tutkimukset, Wave- ja Wave-detektorit sekä LLM:t viestivät DetectionContribution:
DetectionContribution.Bot(
source: "UserAgent", // or "LLM"
category: "BotSignature",
confidence: 0.85,
reason: "Contains automation keyword",
weight: 1.0
);
Pöytäkirja on rajoite. LLM ei voi ramblea. Sen on täytettävä pisteitä . UserAgent-detektor ja LLM tuottavat saman muodon merkinnän outputinM SK3 Downstream-komponentit eivät tarvitse tietää, kuka sen on tuottanut
Yhteinen substratti ei ole passiivinen varastointi. Se koordinoi aktiivisesti signaalivirtaaM SK1
flowchart TB
subgraph Specialists["Specialist Proposers"]
S1[Text Analyzer]
S2[Image Processor]
S3[Behavioral Model]
S4[Domain Expert LLM]
end
subgraph Consensus["Consensus Space (includes Ingestion Gate)"]
C1[Ingestion Gate]
C2[Signal Aggregator]
C3[Async Evaluator]
C4[Cluster by Embedding]
end
subgraph Constrainer["Coordination Constrainer"]
B1[Verify Facts + Resolve]
B2[Conflict Resolution]
B3[Budget Management]
end
subgraph Output["System Output"]
O1[Coordinated Response]
O2[Audit Trail]
end
S1 --> C1
S2 --> C1
S3 --> C1
S4 --> C1
C1 --> C2 --> C3 --> C4
C4 --> B1 --> B2 --> B3 --> O1
B3 --> O2
style Consensus stroke:#ef4444,stroke-width:3px
style Constrainer stroke:#22c55e,stroke-width:2px
Asiantuntijat eivät odota toisiaan. He antavat signaaleja, kun he täyttävät
public class ConsensusSpace
{
private readonly ConcurrentDictionary<string, ConstrainedSignal> _signals = new();
public async Task ContributeAsync(ConstrainedSignal signal)
{
_signals.TryAdd(signal.Id, signal);
// Trigger evaluation without blocking the contributor
_ = Task.Run(async () =>
{
var evaluation = await _evaluator.EvaluateAsync(signal);
await _distributor.DistributeAsync(evaluation);
});
}
public IDisposable Subscribe<T>(Func<T, Task> handler)
where T : ConstrainedSignal
{
// Components subscribe to signals they care about
}
}
Nopeat detektaattorit (UserAgent-tarkastuksetM SK1otsakeanalyysi) eivät pysäydy hitaisiin (LLM-analyysi,käytösmallitMSC5 Konsensaatioalue kerää signaaleja ajan mittaanMST6 varhaiset signaalit voivat käynnistää varhaisen loppumisenMSV7 myöhäiset signaalit viimeistelevät tai ylittävät
Yhteisellä signaalisopimuksella asiantuntijat voivat keskittyä siihen, mitä he tekevät parhaiten
public class TextSpecialist : ISpecialist
{
public async Task<ConstrainedSignal> AnalyzeAsync(InputData input, string correlationId)
{
var entities = await ExtractEntitiesAsync(input.Text);
var sentiment = await AnalyzeSentimentAsync(input.Text);
var facts = JsonSerializer.SerializeToElement(new
{
entities = entities.Select(e => e.Label).ToArray(),
sentiment_score = sentiment.Score,
sentiment_label = sentiment.Label
});
return new ConstrainedSignal(
Id: Guid.NewGuid().ToString(),
SourceId: "TextSpecialist/1.2",
FactsSchemaId: "text-analysis/1.0",
At: DateTimeOffset.UtcNow,
CorrelationId: correlationId,
SubjectId: input.Id,
Facts: facts,
Evidence: entities.Select(e => new EvidenceRef(
"span", "documents", input.Id,
JsonSerializer.SerializeToElement(new { Start = e.Start, End = e.End }))).ToList(),
Confidence: CalculateConfidence(entities, sentiment),
Embeddings: [new EmbeddingRef("all-MiniLM-L6-v2", _embedder.Embed(entities, sentiment))]
);
}
}
public class ImageSpecialist : ISpecialist
{
public async Task<ConstrainedSignal> AnalyzeAsync(InputData input, string correlationId)
{
var objects = await DetectObjectsAsync(input.Image);
var palette = await ExtractPaletteAsync(input.Image);
var facts = JsonSerializer.SerializeToElement(new
{
objects = objects.Select(o => o.Label).ToArray(),
palette_dominant_hex = palette.Dominant.ToHex(),
palette_accent_hex = palette.Accent.ToHex()
});
return new ConstrainedSignal(
Id: Guid.NewGuid().ToString(),
SourceId: "ImageSpecialist/2.1",
FactsSchemaId: "image-analysis/1.0",
At: DateTimeOffset.UtcNow,
CorrelationId: correlationId,
SubjectId: input.Id,
Facts: facts,
Evidence: objects.Select(o => new EvidenceRef(
"region", "images", input.Id,
JsonSerializer.SerializeToElement(o.BoundingBox))).ToList(),
Confidence: CalculateConfidence(objects, palette),
Embeddings: [new EmbeddingRef("all-MiniLM-L6-v2", _embedder.Embed(objects, palette))]
);
}
}
Molemmat asiantuntijat julkaisevat samalle substratille kirjattujen tosiasioiden kanssa. mutta eri alojen tosiasioita ei voida verrata suoraanM SK1
Kun tekstiasiantuntija laatii entity_color: "blue" ja kuvaasiantuntija tuottaa palette_dominant_hex: "#0000CC", miten vahvistetaan sopimus
Ei raaka-arvoa. "blueM SK1 != | | "#0000CC
public interface IFactResolver
{
bool CanResolve(string factNameA, string factNameB);
FactAgreement Resolve(JsonElement factA, JsonElement factB);
}
public class ColorResolver : IFactResolver
{
public bool CanResolve(string a, string b) =>
(a.Contains("color") && b.Contains("hex")) ||
(a.Contains("hex") && b.Contains("color"));
public FactAgreement Resolve(JsonElement factA, JsonElement factB)
{
// Canonicalise both to RGB space
var colorA = ParseToRgb(factA);
var colorB = ParseToRgb(factB);
// Tolerance-based comparison in perceptual space
var distance = CieDeltaE(colorA, colorB);
return new FactAgreement(distance < 10.0, distance);
}
}
(The Contains edellä mainittu logiikka on ilmeistä. tuotannossaM SK1 ratkaisut kirjataan schemaparin avulla + tosiasiallinen avain , ei substring-heuristiikkaa
Yhdensuuntainen-järjestelmä comparison on mahdoton standardin mukaan Saatte sen vain rekisteröimällä nimenomaisen ratkaisun. Tämä on turvallisuusominaisuuksiaM SK1 ei rajoituksia.
Koordinointikonstraineri käyttää ratkaisurekisteriä:
Mitään luonnollista kieltä ei vaadita. On havaittavissa erimielisyyksiä , ei peitetäM SK2 ristiriitainen-modaalisia tosiasioita verrataan yhteisessä kanonallisessa avaruudessaan
Osaan 1, liitännäistraineri oli verkonvalvoja.
Osissa 2, koordinointikonstraineri on orkesteri. Se
Konstraineri on deterministinen. Se ei sisällä mitään LLM:tä, ei todennäköistä logiikkaa , ei MSC2 tuomiopuhelujaM SK3 Jokainen päätös noudattaa selviä sääntöjä. Tämä on rakenteellinen takuutus, joka tekee muodon muutoksen toimivaksi
public class CoordinationConstrainer
{
public async Task<CoordinatedResult> ConstrainAsync(
IReadOnlyList<ConstrainedSignal> signals)
{
// Step 1: Cluster candidates by embedding (cheap, fuzzy)
var clusters = ClusterByEmbedding(signals);
// Step 2: Within each cluster, verify agreement on FACTS (hard)
var verified = new List<ConstrainedSignal>();
foreach (var cluster in clusters)
{
// Time-of-use re-check: evidence may have expired or been GC'd since ingestion
var withValidEvidence = cluster.Where(s =>
s.Evidence.Any() && _evidenceStore.IsStillAuthorisedAndAvailable(s.Evidence)).ToList();
var factAgreement = VerifyFactAgreement(withValidEvidence);
if (factAgreement.Agreed)
verified.AddRange(factAgreement.Signals);
// Disagreeing signals are logged for analysis, not merged
}
// Step 3: Check consensus threshold (policy, hard)
if (verified.Count < _policy.MinimumSignals)
{
if (_policy.AllowEscalation)
return await EscalateToTiebreakerAsync(signals);
else
return CoordinatedResult.Degraded("Insufficient consensus");
}
// Step 4: Merge and apply output constraints
var merged = MergeSignals(verified);
return ApplyOutputConstraints(merged);
}
private FactAgreement VerifyFactAgreement(IReadOnlyList<ConstrainedSignal> cluster)
{
// Agreement is on Facts via rules registry, not raw equality
foreach (var (signalA, signalB) in AllPairs(cluster))
{
var result = _rules.CheckAgreement(
signalA.FactsSchemaId, signalA.Facts,
signalB.FactsSchemaId, signalB.Facts);
if (!result.Agreed)
return new FactAgreement(false, cluster, result.ConflictingFact);
}
return new FactAgreement(true, cluster, null);
}
}
// The rules registry handles type-appropriate comparison
public class FactAgreementRules
{
private readonly Dictionary<string, IFactResolver> _resolvers = new();
private readonly IFactResolver _defaultResolver = new DefaultFactResolver();
public void Register(string factPattern, IFactResolver resolver) =>
_resolvers[factPattern] = resolver;
public AgreementResult CheckAgreement(
string schemaA, JsonElement factsA,
string schemaB, JsonElement factsB)
{
// Cross-schema: use resolvers to map between schemas
if (schemaA != schemaB)
return CheckCrossSchemaAgreement(schemaA, factsA, schemaB, factsB);
// Same schema: compare fact by fact
foreach (var prop in factsA.EnumerateObject())
{
if (!factsB.TryGetProperty(prop.Name, out var valueB))
continue;
var resolver = FindResolver(prop.Name);
var result = resolver.Resolve(prop.Value, valueB);
if (!result.Agreed)
return new AgreementResult(false, prop.Name);
}
return new AgreementResult(true, null);
}
private IFactResolver FindResolver(string factName) =>
_resolvers.FirstOrDefault(r => factName.Contains(r.Key)).Value
?? _defaultResolver;
}
public class DefaultFactResolver : IFactResolver
{
public bool CanResolve(string a, string b) => true;
public FactAgreement Resolve(JsonElement a, JsonElement b)
{
return a.ValueKind switch
{
JsonValueKind.Number => ResolveNumeric(a, b), // Tolerance
JsonValueKind.String => ResolveString(a, b), // Exact match
JsonValueKind.True or JsonValueKind.False =>
new FactAgreement(a.GetBoolean() == b.GetBoolean(), 0),
_ => new FactAgreement(a.GetRawText() == b.GetRawText(), 0)
};
}
private FactAgreement ResolveNumeric(JsonElement a, JsonElement b)
{
var va = a.GetDouble();
var vb = b.GetDouble();
var tolerance = Math.Max(Math.Abs(va), Math.Abs(vb)) * 0.001; // 0.1%
return new FactAgreement(Math.Abs(va - vb) <= tolerance, Math.Abs(va - vb));
}
private FactAgreement ResolveString(JsonElement a, JsonElement b) =>
new FactAgreement(a.GetString() == b.GetString(), 0);
}
Keskeinen käsitys: Ehdotus sisällytyksistä. Siihen sisältyvä samankaltaisuus viittaa siihen, että " nämä signaalit saattavat olla yhteydessä toisiinsa M SK2 tosiasioiden vertailu vahvistaa, että
Constrainerin päätöksenteko on deterministinen. Ei LLM:täM SK2 ei helistiikkaa , ei "judgmentti". Tässä on virtaMSC6
Jokainen askel on määriteltävä toimenpide. Jokainen päätös tuottaa tilintarkastuspöytäkirjan
Konsensustila mahdollistaa jotain voimakasta: riippumaton oppiminen yhteisestä objektiivisesta totuudesta.
flowchart TB
subgraph Specialists["Specialist LLMs"]
S1[Model A]
S2[Model B]
S3[Model C]
end
subgraph Consensus["Consensus Space"]
C1[Signal Aggregation]
C2[Decision Selection]
end
subgraph Action["Deterministic Execution"]
A1[Execute Decision]
A2[Measure Outcome]
end
subgraph Memory["Long-Running RAG"]
M1[Decision Record]
M2[Objective Outcome]
M3[Attribution]
end
subgraph Feedback["Independent Learning"]
F1[Model A reviews own history]
F2[Model B reviews own history]
F3[Model C reviews own history]
end
S1 --> C1
S2 --> C1
S3 --> C1
C1 --> C2 --> A1 --> A2
A2 --> M1 --> M2 --> M3
M3 --> F1 --> S1
M3 --> F2 --> S2
M3 --> F3 --> S3
style Memory stroke:#3b82f6,stroke-width:3px
style Feedback stroke:#22c55e,stroke-width:2px
public record DecisionRecord(
string DecisionId,
string ProposingModel, // Which LLM proposed this
ConstrainedSignal OriginalSignal, // What it claimed
float ConsensusScore, // Agreement at decision time
DateTime Timestamp
);
public record OutcomeRecord(
string DecisionId,
bool ObjectiveSuccess, // Deterministic measurement
Dictionary<string, float> Metrics, // What we measured
TimeSpan TimeToOutcome
);
Jokainen LLM voi hakea RAG:tä eri tavalla:
// Model A: Conservative, focuses on avoiding failures
var modelAContext = await _memory.QueryAsync(
"decisions WHERE ProposingModel = 'ModelA' AND ObjectiveSuccess = false",
limit: 100
);
// Learns: "I was overconfident when X, be more cautious"
// Model B: Aggressive, focuses on missed opportunities
var modelBContext = await _memory.QueryAsync(
"decisions WHERE ProposingModel != 'ModelB' AND ObjectiveSuccess = true",
limit: 100
);
// Learns: "Others succeeded where I hesitated, be bolder on pattern Y"
// Model C: Specialist, focuses on its domain
var modelCContext = await _memory.QueryAsync(
"decisions WHERE Domain = 'security' ORDER BY ObjectiveSuccess DESC",
limit: 100
);
// Learns: "These security patterns work, reinforce them"
Tämä toimii vain siksi, että palaute on tavoitteellinen.
| Ilman deterministista palautusta | |
|---|---|
| "Modelli A katsoi, että se toimi hyvin | |
| "Model B ei ollut samaa mieltä tuloksestaM SK2 | "Botti vahvistettiin Honeypotilla |
Deterministinen kerros mittaa todellisuutta. LLM:t eivät voi kiistää mittauksiaM SK1 Jokainen malli oppii samasta perustodellisuudesta, mutta mukautuu itsenäisesti omien historiansa ja painopisteensä perusteella
Ajan myötä,-mallit erikoistuvat luonnollisesti
Yksikään keskeinen orkesteri ei määritä roolia. erikoistuminen syntyy objektiivisesta palautteesta todellisista tuloksista
Counterintuitive insight: paremmat mallit tekevät yhteisistä substrateista MORE critical, ei vähemmän.
| Muodot paranevatM SK1 | Riski kasvaa, koska |
|---|---|
| Tehokkaammat tulokset | Mahdollisuuksia hienotunteiseen väärinkäsitykseen |
| Suurempi luottamus | |
| Laajempi toimintavalmius | |
| Parempi näyttää johdonmukaiselta | vaikeampaa havaita, kun he eivät ole semanttisesti samaa mieltä |
Rajamalli, joka viestii toisen rajamallin kanssa luonnollisen kielen kautta, ei ole turvallisempi kuin kaksi pientä mallia, jotka tekevät samaa.. Epäonnistumiseen liittyvät menetelmät ovat monimutkaisempia.
Ratkaisu on sama: voimaviestintä deterministisen yhteisen alueen välityksellä . Siirtämismalli ei välittele siitä, onko ehdottaja pieni tai rajallinen
Koska viestintä tapahtuu kirjattujen tietojen ja yhteisten sisällytteiden kautta:
Haluatte ajantasaistua all-MiniLM-L6-v2 vuodeksi nomic-embed-text-v1.5. Mutta kaikissa tallennetuissa signaaleissa on vanhan mallin sisällytyksiä
Ratkaisu: kaksinkertainenM SK1kirjaaminen useiden sisällytteiden kanssa .
Koska Embeddings on luettelo EmbeddingRef, maahanmuutto on yksinkertainen
public class EmbeddingMigration
{
// Phase 1: Dual-write (new signals get both embeddings)
public ConstrainedSignal EnrichWithDualEmbedding(ConstrainedSignal signal)
{
var oldVector = _oldModel.Embed(signal.Facts);
var newVector = _newModel.Embed(signal.Facts);
return signal with
{
Embeddings =
[
new EmbeddingRef("all-MiniLM-L6-v2", oldVector),
new EmbeddingRef("nomic-embed-text-v1.5", newVector)
]
};
}
// Phase 2: Compare agreement rates
public async Task<MigrationReport> CompareAgreementAsync()
{
var signals = await _store.GetRecentSignalsAsync(limit: 10000);
var oldClusters = ClusterByEmbedding(signals, s =>
s.Embeddings?.FirstOrDefault(e => e.ModelId == "all-MiniLM-L6-v2")?.Vector);
var newClusters = ClusterByEmbedding(signals, s =>
s.Embeddings?.FirstOrDefault(e => e.ModelId == "nomic-embed-text-v1.5")?.Vector);
// Do the same Facts end up in the same clusters?
var agreementRate = CalculateClusterAgreement(oldClusters, newClusters);
return new MigrationReport(agreementRate, threshold: 0.95);
}
// Phase 3: Flip readers after threshold met
public void CompleteMigration()
{
// Update config to use new model for queries
// Keep old embeddings for rollback if needed
// Optionally prune old embeddings after confidence period
}
}
Keskeiset kohdat:
Tämä malli särkyy, kun asiat menevät pieleen. Valvontaa koskevat vaatimukset-järjestelmäpuitteet merkitsevät, että epäonnistumiset ovat selviä ja korjattavissaM SK2
Kaksi asiantuntijaa ilmoittavat samasta asiasta eriarvoisista arvoista. Ratkaistelija ei voi sovittaa niitä yhteen
Vastaus: Luettelo konfliktista täydessä kontekstissa . Älkää sekoittako sitäM SK2 heikennä tulosta vähennetyn luottamuksen osoittamiseksi
signaali saapuu todisteiden osoittajien kanssa, joita ei ole olemassa, eivät kuulu soveltamisalaanM SK1 tai tarkastus on epäonnistunut
Vastaus: Hylätään signaali syöttäessä. Se ei koskaan pääse substrattiinM SK2 Ehdotetun osan ilmoitetaan, ja se voi yrittää uudelleen pätevien todisteiden avulla .
Liian vähän signaaleja, tai liian suuria erimielisyyksiä politiikan kynnysarvon saavuttamiseksi .
Vastaus: Fall back to a deterministic baseline
Todisteet olivat päteviä syöttäessä, mutta niiden voimassaoloaika on päättynyt.
Vastaus: KonstraineriM SK1aika--käyttötarkastelu (IsStillAuthorisedAndAvailable) ottaa tämän vastaanM SK1 signaali suljetaan pois nykyisestä päätöksestä, koska "todisteet ovat vanhentuneita"tarkastussyytteen vuoksi
Alkuperä ei ole saatavilla.
Vastaus: Lähtöputken katkaisejaM SK1 Ei voida ottaa tai käsitellä signaaleja . Järjestelmä heikentyy turvallisiin standardeihin tai etujärjestelmiin myöhemmin käsiteltäväksi saataviin tuloihin . Tämä on infrastruktuurihäiriön aiheuttama häiriö M SK4 ei mallihäiriön johdosta
Muodot eivät esitä epäonnistumista. Ne tekevät niistä kovaa, lokalisoitua , ja takaisinkelpoista.
Monien ryhmien rakentamiseksi-agenttijärjestelmätM SK1
ConstrainedSignal + EvidenceRef) ennen kuin rakennetaan mitään erikoistunuttaOsa 1: Rajoitukset luovat hyödyllistä käyttäytymistä yksittäisissä osissa
Osa 2: Yhteiset rajoitukset luovat johdonmukaista toimintaa eri osatekijöiden välillä.
Konsensaatioalue ei ole keskinäinen tietolähde. Se on laajentunut substratti. Kun asiantuntijat viestivät kirjattujen tosiasioiden sijasta kielellä , todisteiden osoittajien sijasta lausuntojen välityksellä–, rajoitukset, jotka tekevät yksittäisistä osista luotettavia, tekevät koko järjestelmän luotettaviksiM SK4
Useat esittäjät. Yhteinen totuus
Muodot eivät puhu toistensa kanssa. Ne julkaistaan substratilleM SK1 Konstraineri vahvistaa . Tulokset mitataan. RAG muistaaMST4 Jokainen malli oppiiMSC5
Osa 1 rajoittaa mallin. osa 2 rajoittao avaruusmallien jakautumistaM SK3
Tämä on rajattu hämärä MoM.
| Osuus | Muodos | Axis SSK3 | |
|---|---|---|---|
| 1 | Rajoitettu epämääräisyys | Yksittäinen osake | |
| 2 ≥ | Rajoitetut hämärät MoM | tämä artikla | |
| 3 | Rajoitettu hämärän taustan vetäminen | Aika / muisti |
Osa 1 rajoittaa yhden todennäköisen osan determinististen rajojen kanssa.
Osa 3 laajentaa tätä rakennetta ajanjaksolla. Muodot saattavat huomataM SK1 mutta insinööri päättää, mikä pysyy ennallaan . Rajoituksesta tulee itse muisti
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.