Ik heb de laatste tijd nagedacht over continue leren, vooral in relatie tot langlopende agenten (en het uitvoeren van een paar speelgoedexperimenten met MLX). De status quo van promptcompactie in combinatie met recursieve sub-agenten is eigenlijk opmerkelijk effectief. Het lijkt erop dat we hier behoorlijk ver mee kunnen komen. (Promptcompactie = wanneer het contextvenster bijna vol is, genereert het model een kortere samenvatting, en begint dan opnieuw met de samenvatting. Recursieve sub-agenten = taken opdelen in kleinere taken om om te gaan met eindige contextvensters) Recursieve sub-agenten zullen waarschijnlijk altijd nuttig zijn. Maar promptcompactie lijkt een beetje een inefficiënte (hoewel zeer effectieve) hack. Er zijn twee andere alternatieven die ik ken: 1. online fine-tuning en 2. geheugen gebaseerde technieken. Online fine-tuning: train enkele LoRA-adapters op gegevens die het model tegenkomt tijdens de implementatie. Ik ben hier in het algemeen minder optimistisch over. Afgezien van de technische uitdagingen van het implementeren van aangepaste modellen/adapters voor elke use case/gebruiker, zijn er enkele fundamentele problemen: - Online fine-tuning is van nature onstabiel. Als je traint op gegevens in het doelgebied, kun je catastrofaal capaciteiten vernietigen die je niet target. Een manier om dit te omzeilen is om een gemengde dataset met de nieuwe en de oude te behouden. Maar dit wordt al snel behoorlijk ingewikkeld. - Hoe zien de gegevens er zelfs uit voor online fine-tuning? Genereer je Q/A-paren op basis van het doelgebied om het model te trainen? Je hebt ook het probleem van het prioriteren van informatie in de gegevensmix gezien de eindige capaciteit. Geheugen gebaseerde technieken: in wezen een beleid voor het behouden van nuttig geheugen en het weggooien van wat niet nodig is. Dit voelt veel meer aan als hoe mensen informatie behouden: "gebruik het of verlies het". Je hebt maar een paar dingen nodig om dit te laten werken: - Een uitzettings-/behoudbeleid. Iets als "behoud een geheugen als het minstens één keer is geraadpleegd in de laatste 10k tokens". - Het beleid moet efficiënt berekenbaar zijn. - Een plek voor het model om langetermijngeheugen op te slaan en te benaderen. Misschien zou een spaarzaam benaderde KV-cache voldoende zijn. Maar voor efficiënte toegang tot een groot geheugen zou een hiërarchische datastructuur beter kunnen zijn.