DocumentationArchitecture

Piro Inference Architecture

durableWeights = LoadWeights()
adaptationState = InitializeAdaptationState(durableWeights)
contextState = InitializeContextState()
for each observedChunk inChunkText(x.text):
runtimeWeights = BindAdaptationState(durableWeights, adaptationState)
prediction = PredictNextToken(observedChunk, contextState,runtimeWeights)
adaptationState = AdaptationStep(adaptationState, observedChunk,prediction)
contextState = AdvanceContextState(observedChunk, contextState)
for step in range(maxNewTokens):
logits = OutputHead(contextState, adaptationState)
token = Argmax(logits)
Emit(token)
if token == eosToken:
break
contextState = AdvanceContextState(token, contextState)
durableWeights = ConsolidateWeights(durableWeights, adaptationState)
SaveWeights(durableWeights)