Um estudante conversa com uma disciplina por meses: milhares de mensagens, dezenas de arquivos, centenas de pequenas verificações. Colocar mais disso no prompt não escala e não torna o tutor honesto. É assim que demos a cada disciplina uma memória que classifica o passado por relevância, um mapa de conceitos do material, e crenças sobre o estudante que carregam suas próprias evidências, e o que históricos reais nos ensinaram ao reproduzi-los. Nenhum fornecedor é citado de propósito; o método não depende deles. Todos os números aqui foram medidos, não estimados.
O que "lembrar" precisa significar
A resposta ingênua para "o tutor esquece" é uma janela maior: manter mais da conversa no prompt e resumir o resto. Isso falha de três formas distintas, e cada uma é um problema de produto antes de ser um problema técnico.
- Tempo. Um estudante que pergunta em setembro sobre algo visto em julho precisa da sessão de julho, não das últimas quarenta mensagens. Um resumo de "o que aconteceu até agora" fica mais vago à medida que cresce; o detalhe relevante é exatamente o que um resumo descarta.
- Arquivos. Uma disciplina reúne dezenas de documentos. A recuperação busca as oito passagens mais próximas da pergunta, o que funciona bem para fatos e não serve para "como este capítulo se relaciona com aquele", a estrutura do material nunca está em uma única passagem.
- Honestidade. Um tutor que relata "você entende osmose" precisa saber dizer por quê: qual verificação, em que dia, o que o estudante respondeu. Um número sem evidência é um palpite com casas decimais.
Por isso fixamos três promessas antes de escrever uma linha: todo turno se torna um episódio durável e a recuperação classifica todo o histórico por relevância, não por data; os conceitos são extraídos uma vez por arquivo e mesclados em um único mapa por disciplina; e o domínio é alimentado só por evidência, uma verificação respondida, um quiz feito, uma rodada jogada, com cada crença preservando sua evidência e seu histórico. E uma quarta promessa, mais discreta: quando o tutor não tem memória de algo, ele diz isso, claramente.
A forma do sistema
Três repositórios, uma leitura com orçamento por turno, um ciclo à noite. Os arquivos alimentam o mapa; a conversa alimenta o registro de episódios; as verificações alimentam as crenças. Cada turno de chat lê uma fração pequena e classificada dos três e a coloca no prompt dentro de um orçamento fixo de tokens. Nada no caminho de leitura chama um modelo generativo. O único modelo que ele chama é o embedding, uma vez por turno, compartilhado pelo roteamento e pela recuperação; a única passagem generativa fora do chat é a que lê um novo arquivo para o mapa.
Episódios: um registro apenas de inclusão, encadeado por hash
Todo evento se torna um episódio: uma pergunta, uma resposta, uma verificação com seu veredito, o resultado de um quiz, a chegada de um arquivo, algo que o estudante ensinou explicitamente ao tutor. Um episódio traz um resumo de uma linha, o texto completo, os conceitos que tocou, uma pontuação de saliência definida no momento da escrita, e sua evidência: no caso de uma resposta, o arquivo e a página citados, com a impressão digital do arquivo naquele instante. Episódios nunca são editados. Cada um guarda o hash do episódio anterior na mesma cadeia, de modo que o registro é recomputável e qualquer adulteração, ou qualquer reescrita silenciosa feita por uma migração bem-intencionada, aparece como uma quebra. Isso é evidência de adulteração, não proteção contra adulteração: uma reescrita é detectada, nunca impedida, e apenas enquanto a cadeia, ou um checkpoint dela, for mantido.
A saliência é definida pelo que um episódio é, não por um humor: uma verificação perdida (0.7) importa mais do que uma aprovada (0.6), e algo que o estudante ensinou ao tutor (0.85) importa mais que tudo, porque é a única memória que uma pessoa pediu explicitamente para guardar. Uma pergunta é um modesto 0.35, a própria pergunta do estudante é uma recuperação correta e um lembrete inútil, o que acaba importando mais adiante, no caminho de "o que isso me lembra".
Recuperação: a relevância precisa vencer a recência
A recuperação é associativa, não cronológica. Os candidatos são reunidos de várias fontes, cada uma alcançando todo o histórico, e só então pontuados: os quinhentos mais recentes, todo episódio que contém uma palavra distintiva da pergunta, todo episódio que toca os conceitos para os quais a pergunta foi roteada, e os vizinhos semânticos de um índice vetorial. Ampliar primeiro e cortar depois é a decisão de design mais importante do módulo, a primeira versão cortava antes ("os 500 mais recentes") e não conseguia recuperar uma memória de março perfeitamente relevante em nenhuma pontuação, porque ela era descartada antes de ser avaliada.
Pesos por si só não bastam. Quando a pergunta é sobre algo específico e algo corresponde a ela, episódios que não correspondem a nada são descartados, não apenas rebaixados, uma nota recente e irrelevante marca 0.15 × 1.0 só de recência, enquanto uma correspondência exata de 200 dias marca 0.55 × 0.156, e nenhuma ponderação que deixe um não correspondente superar uma correspondência está certa em qualquer configuração. A recência desempata, não classifica. Duas perguntas que o leitor deveria fazer sobre esses números: de onde vieram e se nós os ajustamos. Eles foram definidos manualmente, herdados de uma memória anterior nossa construída para outro produto, e não foram ajustados a nenhum dos dados deste artigo. Nada abaixo passou por varredura ou foi ajustado; a única mudança que fizemos na pontuação veio de uma falha que sabíamos nomear, não de uma busca, e foi no filtro, não em um peso. O filtro tem duas exceções: nenhuma consulta (aí a recência é tudo que existe), e nada correspondeu (aí o passado recente é a oferta honesta possível).
Duas coisas que históricos reais acrescentaram
Repetições colapsam. Em uma disciplina real, 161 perguntas de um estudante eram 56 frases distintas, "o que é uma célula" perguntado nove vezes em três meses. Nove cópias são uma memória, lembrada nove vezes, então a recuperação colapsa episódios idênticos e informa quantos a sobrevivente representa. Tempo é um filtro, não uma dica. "O que vimos em julho?" é interpretado como uma janela, e a recuperação roda dentro dela primeiro; se a janela está vazia, o bloco diz isso explicitamente (ver § honestidade). Nomes de meses funcionam nos idiomas em que nossos estudantes escrevem, assim como "semana passada" e "ontem".
O mapa de conceitos
Passagens respondem "o que o arquivo diz aqui"; um mapa responde "do que esta disciplina é feita, e o que se apoia em quê". Cada arquivo é lido uma vez por uma passagem de modelo que retorna uma lista limitada de conceitos, nome, resumo de uma frase, uma definição curta, os conceitos em que se apoia a partir da própria lista, as páginas onde o arquivo o explica. Títulos de seção ("Introdução", "Erros comuns") são rejeitados por um validador; um nome que é na verdade um título de capítulo é mobília do arquivo, não uma ideia da disciplina.
Conceitos se fundem entre arquivos por uma chave canônica (um nome normalizado, sensível ao roteiro de escrita) e por similaridade de embedding acima de 0.86. A proveniência se acumula: um capítulo que reexplica osmose se soma a um único nó em vez de criar um segundo, e todo arquivo que contribuiu permanece listado com suas páginas. Um pré-requisito que o arquivo pressupõe mas nunca explica só se torna um nó quando dois conceitos o pressupõem, aí a lacuna é real e vale mostrar; um caso isolado é registrado no conceito como "pressupõe" e não é desenhado em lugar nenhum. O primeiro documento de política que lemos transformou 11 conceitos em 34 nós antes de essa regra existir.
Três números derivados saem do mapa. Centralidade é um PageRank ponderado sobre as arestas (um pré-requisito em que tudo se apoia é um hub). Prontidão por conceito segue quatro faixas, 0.35 apenas nomeado, 0.60 explicado por um arquivo, 0.85 confirmado por uma verificação aprovada, 1.0 ensinado por uma pessoa, e a prontidão da disciplina é a média ponderada pela centralidade, então um hub que os arquivos não explicam custa mais que uma folha. Ordem de ensino é um escalonamento topológico: pré-requisitos primeiro, hubs primeiro dentro de cada nível; substituiu uma chamada a um modelo que antes esboçava "o que ensinar" a partir de catorze passagens.
SUBJECT MAP (16 concepts; the files explain 79% of it, this is about the material, NOT the student's mastery):
- Mitochondria: Mitochondria release energy from glucose. [taught: in our class we call the mitochondria the powerhouse of the cell] (builds on: Cytoplasm)
- Cytoplasm: Cytoplasm is the gel-like substance inside the cell membrane. (builds on: Cell Membrane)
- Chloroplasts: Chloroplasts are involved in photosynthesis. (builds on: Cell Wall)
- Endosymbiosis: Endosymbiosis explains the origin of mitochondria and chloroplasts. (builds on: Mitochondria, Chloroplasts)
…
A redação daquele cabeçalho foi uma lição em si. A primeira versão dizia "79% entendido", e um modelo que a lia dizia alegremente a um estudante "dado seu entendimento atual de 79%…". Um número de prontidão que pode ser lido como o domínio do estudante será lido assim; a linha agora diz o que ela é sobre.
Ensinando a disciplina
Uma pessoa pode acrescentar ao mapa conversando com ele. "Lembre-se de que em nossa aula chamamos a mitocôndria de usina de energia da célula" anexa uma nota de ensino ao conceito que ela nomeia (roteamento por nome; só correspondência exata), define a prontidão daquele conceito para 1.0, grava um episódio de ensino, e coloca a nota no resumo. Quando a frase não nomeia nenhum conceito existente, um novo nó é criado na camada de ensino com um nome curto, nunca a frase inteira. Perguntas nunca ensinam; só um "lembre-se de que", "trate X como", ou seu equivalente no idioma do estudante, ensina.
Crenças que preservam seu histórico
Uma crença é o que o tutor pensa atualmente sobre este estudante neste conceito, "tem dificuldade com osmose", "entende citoplasma", com uma confiança e os episódios por trás dela. A regra que importa: linhas nunca são atualizadas para uma afirmação diferente. Quando o tutor muda de ideia, a linha antiga permanece exatamente como estava, uma nova linha é inserida, e a antiga aponta para a nova. A recuperação lê só as linhas que nada substitui; um relatório pode percorrer a cadeia quando alguém pergunta o que mudou e por quê. Retenção e atualidade são propriedades diferentes, e uma memória que preserva as duas é uma sobre a qual um relatório pode ser construído.
Crenças são baratas onde importa: cerca de vinte tokens cada, e uma representa dezenas de episódios. Essa proporção, não uma janela maior, é o que "lembrar mais do que cabe no contexto" realmente significa. Episódios não são descartados, são aquilo contra o que uma crença é conferida, mas vêm em segundo lugar, e quem chama gasta o orçamento restante com eles.
Sobre qual tópico é uma crença?
Essa foi a parte que os dados reais quebraram primeiro. No modo Ensinar, o "tópico" de uma verificação era as próprias palavras do estudante, então verificações reproduzidas geravam crenças como entende pergunte-me as perguntas (ask me the questions) e tem dificuldade com bueno ahora explícame todos los pasos. Agora o tópico de uma verificação é roteado para um conceito por nome, e, quando a string do tópico é uma frase, pelo próprio texto de avaliação do tutor (que geralmente nomeia o conceito), só por correspondência exata de nome. Um tópico que não corresponde a nada e se lê como uma fala, palavras de pergunta, verbos de perguntar, pronomes, palavras de preenchimento, nos idiomas que nossos estudantes usam, é mantido como evidência, mas nunca se torna uma crença. Uma mudança de regra assim precisa de um jeito de rederivar: aposentar as crenças atuais (nunca excluir), reproduzir as verificações registradas sob as regras de hoje, sem tocar em nenhum episódio.
Um turno, dentro de um orçamento
Cada turno de chat pede ao cérebro um bloco, construído fora do caminho da requisição com um limite de tempo rígido. Ao longo de 155 turnos, o bloco levou 295 ms na mediana, 403 ms no percentil 90 e 445 ms no percentil 95, com uma construção acima de um segundo e nenhuma acima do limite de 2.5 s, passado o qual o pacote é descartado em vez de esperado, para que uma memória lenta nunca fique na frente do primeiro token. Um único embedding da pergunta serve tanto ao roteamento quanto à recuperação. O bloco entra no espaço de memória já existente no prompt, antes das passagens do material, e nada mais no prompt muda.
===== YOUR MEMORY OF THIS STUDENT AND SUBJECT ===== THE STUDENT IS ASKING ABOUT THEIR OWN RECORD. Answer from the beliefs and the earlier work listed here … WHAT YOU CURRENTLY BELIEVE ABOUT THIS STUDENT (from their checks; confidence 0–1): - understands cytoplasm (0.72) - understands eukaryotic cells (0.72) EARLIER WORK WITH THIS STUDENT (oldest first): - 12 Jul · you were asked: Can we go over Eukaryotic Cells today? I keep mixing it up. - 12 Jul · you answered: Of course. Eukaryotic Cells: Eukaryotic cells contain a nucleus and organelles. We worked through two examples and you got the second one right. - 18 Sep · the student taught you: Taught: in our class we call the mitochondria the powerhouse of the cell - 18 Sep · check: Check on cytoplasm: right (and 3 more times like it) SUBJECT MAP (16 concepts; the files explain 79% of it, …) … HOW TO USE THIS: it is your own memory of past work with this student, not their material. When you rely on it, say when it happened ("in July we…"). Never claim a memory that is not listed here. … ===== END OF MEMORY =====
A ordem dentro do bloco acabou importando tanto quanto o conteúdo. Para uma pergunta comum, o mapa vem primeiro. Para uma pergunta de registro: "o que eu errei até agora", "o que já estudamos", "ماذا أخطأت", as crenças e o trabalho anterior vêm primeiro e o mapa por último, com uma primeira linha explícita dizendo que o estudante está perguntando sobre o próprio registro. Aprendemos isso com uma falha: o prompt também trazia uma seção legada de "resultados de avaliação" que começava com "NENHUMA TENTATIVA DE QUIZ registrada", e o modelo respondia a um estudante que já tinha respondido vinte e oito verificações na conversa com "você ainda não tentou nenhum quiz". Um modelo lê a primeira afirmação com autoridade sobre um registro e para ali. O bloco de memória agora vem antes dessa seção, uma nota de transição liga as duas, e uma seção de avaliação que só diz "nada registrado" é descartada quando o bloco de memória existe.
Estudante: O que eu errei nas verificações até agora, e o que eu deveria revisar?
Tutor: O que você errou nas verificações: 1. Verificação sobre o que é uma célula: parcialmente correto, você a descreveu como "é como uma coisinha pequena?", o que é incompleto. Respostas incorretas: você respondeu "sim" e "agua" em ocasiões separadas, que foram marcadas como erradas. 2. Verificação sobre enzimas: você afirmou corretamente que enzimas são "proteínas que quebram o alimento para facilitar a digestão". Revisões sugeridas: dado que você tem dificuldade com o que é uma célula: estrutura celular (procarionte vs eucarionte)… componentes de uma célula… por exemplo, mitocôndrias liberam energia da glicose, que você aprendeu em aula.
Dizendo "não tenho registro"
A falha mais instrutiva de todo o projeto foi um cenário que escrevemos para passar: semear uma conversa de julho, perguntar "o que vimos em julho sobre X", conferir a resposta. A resposta começava com "Em julho, vimos X…" e era fluente, fundamentada no arquivo, e completamente fabricada, a memória de julho não tinha chegado ao prompt, e o modelo narrou julho a partir do enquadramento da pergunta. Duas causas. O modo de pergunta de registro tinha mantido só verificações e quizzes e descartado a conversa que era o registro; e as próprias narrações anteriores do tutor ("Em julho vimos…", guardadas como episódios de resposta) estavam sendo recuperadas como se fossem memórias de julho, o cérebro se lembrando de que se lembrou.
antes "Em junho, vimos o tema da Membrana Celular, que é descrita da seguinte forma: a membrana celular é uma dupla camada de fosfolipídios…"
depois "Não tenho nenhum registro do que vimos especificamente em junho sobre a membrana celular. No entanto, posso te passar informações sobre a membrana celular a partir dos materiais que temos…"
As duas situações agora são cenários em um executor repetível: a de julho só passa se as memórias de julho estiverem no prompt (verificado pelos ids de memória guardados na mensagem, não pela redação da resposta), e a do mês vazio só passa se a resposta disser que não tem registro e não descrever uma sessão.
A memória como citação
Nosso chat já tinha um painel de proveniência: toda afirmação em uma resposta é rastreada até uma linha nos arquivos do estudante, e uma resposta com poucas afirmações rastreadas é marcada como pouco fundamentada. Esse rastreador só conhecia arquivos. Uma afirmação correta como "em julho vimos X, e você acertou o segundo exemplo" seria então lida como não está em suas notas: o recurso chamando uma afirmação verdadeira de falsa. Então as memórias que lembraram o tutor são guardadas na resposta, e o rastreador trata cada episódio recuperado como mais uma fonte, rotulada com quando aconteceu.
O mesmo resultado de fundamentação dá a cada episódio de resposta uma postura: respondido, parcial, ou não pode, guardada depois do fato. É assim que o relatório aprende quais perguntas os arquivos não conseguiram responder, sem uma segunda chamada a um modelo e sem uma linha oculta de "moldura" no fluxo, o que tentamos e rejeitamos: no modo Resposta direta nada filtra o fluxo, então uma linha oculta teria chegado ao estudante.
Uma memória que se verifica sozinha
Uma memória que não consegue se verificar fica mais confiante e menos certa com o tempo. Como a evidência de uma resposta registra a impressão digital do arquivo no momento, a verificação é uma consulta, não uma chamada a um modelo: firme: o arquivo citado ainda está lá, sem mudanças; mudada: foi substituído ou removido, e a nota diz qual; inverificável: a memória não cita nenhum arquivo (uma conversa, uma verificação). Essa terceira resposta é um resultado de primeira classe, não um erro; relatar uma memória de conversa como "firme" seria o defeito real. Um episódio recuperado chega ao prompt já rotulado: "[nota: o arquivo citado aqui foi substituído ou removido desde então]".
O ciclo noturno
Uma vez por noite, para cada par estudante-disciplina ativo no último dia, um ciclo determinístico roda sem chamadas a modelo: comprime o dia em um episódio de consolidação (contagens por tipo, a soma de verificações, os tópicos, os cinco destaques mais salientes; um dia tranquilo não escreve nada, e a nota nunca resume seu próprio tipo); decai qualquer crença intocada por 45 dias em 15 % e a marca para a próxima verificação confirmar; calibra o domínio que o tutor previu antes de cada verificação contra o veredito; verifica um lote limitado de citações, as nunca conferidas primeiro; reconstrói o pequeno conjunto de trabalho; recompõe a autoavaliação.
A calibração é a verificação de honestidade sobre a confiança do tutor: antes de cada verificação, sabemos qual domínio ele previu; depois, sabemos o veredito. Agrupado em faixas, isso dá uma curva de confiabilidade e um erro de calibração esperado, e a autoavaliação relata "calibrada" só a partir de cinco verificações com previsão. Até lá, seus limites dizem isso, trate a confiança como uma classificação, não uma probabilidade.
O que históricos reais nos ensinaram
Cenários provam mecanismos; eles não provam que a coisa funciona do jeito que as pessoas realmente falam. Então construímos uma reprodução: usar os históricos reais mais ricos de pares estudante-disciplina, somente leitura, reconstruir cada um em uma cópia isolada da plataforma, construir o cérebro para ele, e fazer três perguntas com formato real pelo endpoint de chat real, como aquele usuário. Seis pares, 65–142 mensagens cada, 13–32 veredictos em modo Ensinar cada, um em espanhol. Eles não são uma amostra aleatória e não devem ser lidos como se fossem. Selecionamos históricos com pelo menos quarenta mensagens, no máximo dois por estudante, excluindo contas de teste e internas, priorizando os que tinham mais respostas avaliadas, porque um histórico sem nada dentro não exercita nada. Isso enviesa todos os números aqui em direção a usuários intensivos. A disciplina de um usuário leve daria à memória menos para recuperar e menos para errar.
Isso também produziu as três correções descritas acima: crenças sobre frases do estudante, o registro respondido a partir do mapa em vez do registro e a linha legada de "sem tentativas de quiz" liderando respostas; e uma confirmação que ficamos felizes em ver: uma consolidação sinalizou onze memórias cujo arquivo citado não existia mais. O verificador fazendo seu trabalho.
| Disciplina (real, reproduzida) | Mensagens | Verificações | Conceitos | Crenças após rederivação | Prontidão do mapa |
|---|---|---|---|---|---|
| Módulo de álgebra | 142 | 32 | 16 | 0, todo tópico de verificação era uma frase e nenhuma avaliação nomeou um conceito; as verificações ficam no registro e o relatório diz isso | 0.60 |
| Unidade de literatura | 97 | 14 | 10 | 3, todas com chave de conceito | 0.68 |
| Computação & resolução de problemas | 91 | 29 | 7 | 4, todas com chave de conceito | 0.60 → 0.81 |
| Biología (espanhol) | 88 | 31 | 15 | 6 (5 com chave de conceito), a maioria "tem dificuldade com…" depois de uma sequência de respostas erradas | 0.62 |
| Ciências combinadas | 75 | 13 | 16 | 2, ambas com chave de conceito | 0.64 |
| Apostila de religião | 65 | 18 | 12 | 6 (5 com chave de conceito) | 0.72 |
A linha da álgebra é a honesta. Trinta e duas verificações e nenhuma crença, porque nenhuma pôde ser ligada a um conceito: o estudante respondia aritmética, as respostas do tutor nunca nomeavam os conceitos do capítulo, e uma fala não é um tópico. O relatório para aquele estudante diz "32 verificações estão no registro, mas nenhuma pôde ser ligada a um conceito no mapa ainda" em vez de "nenhuma verificação ainda". Nada inventado, incluindo o domínio.
Um benchmark, não uma demo
Tudo o que vimos até aqui é uma medição ou uma amostra: quanto tempo as coisas levam, o que a repetição produziu, respostas de que gostamos. Nada disso comprova que a memória vale a pena, porque nada foi comparado com o mesmo tutor sem ela. Por isso fizemos a comparação. Um conjunto de perguntas pré-registrado, quatro versões do mesmo tutor que diferem apenas no que chega ao prompt, e avaliadores que são comparações de string e de id, não opiniões, de modo que a mesma resposta sempre pontua da mesma forma.
As perguntas são geradas por matéria a partir dos próprios dados registrados dessa matéria, o que é o que as torna avaliáveis: uma pergunta sobre o que o aluno errou é verificada contra as verificações de fato registradas, uma pergunta sobre um pré-requisito contra uma aresta real no mapa, uma pergunta sobre um mês contra os meses em que essa matéria esteve realmente ativa. Quando uma matéria admite mais de uma, ela recebe mais de uma, então três conceitos e três meses vazios em vez de um de cada. Seis categorias, 420 perguntas pontuadas por versão, em 45 históricos reais de alunos reproduzidos em uma cópia isolada da plataforma e enviados pelo endpoint de chat comum como esse aluno.
As quatro versões
As quatro executam a mesma recuperação sobre os mesmos arquivos. Recup. simples é o tutor sem memória alguma. Janela é a resposta a que a maioria recorre primeiro: os últimos vinte turnos da conversa, inseridos sem classificação. Episódios é a recuperação classificada apenas do registro de episódios, sem mapa de conceitos, sem crenças e sem tratamento especial para perguntas sobre o registro. Mem. total é tudo o que este artigo descreve.
O que a tabela mostra
No geral, o tutor vai de 168 de 420 para 383, o que equivale a 40% contra 91%. A média é o número menos interessante aqui; a forma da diferença é a descoberta.
Uma janela maior não é a resposta. Inserir os últimos vinte turnos no prompt leva de 40% para 65%, e é só isso que ela compra. Ela responde corretamente a 5 de 32 perguntas sobre o que o aluno errou, porque vinte turnos de chat não é onde isso está registrado, e ainda erra sobre um mês vazio mais vezes do que acerta. Essa é a resposta do tipo "é só colocar mais conversa", agora medida em vez de apenas afirmada.
A recuperação classificada faz quase tudo. O registro de episódios, por si só, chega a 83%. Se você for construir uma única coisa, construa essa: um registro apenas para acréscimos, pontuado por relevância, é a maior parte do valor deste artigo.
O mapa e as crenças valem as outras 33 perguntas, e isso se confirma em dois lugares específicos, não em toda parte. Ao perguntar o que revisar antes de um tópico, as versões sem mapa de conceitos acertam cerca de 55% das vezes, e a memória completa 96%, porque pré-requisitos são arestas e um registro de episódios não tem nenhuma. Ao perguntar o que o aluno errou, as crenças e o ramo de registro levam de 24 de 32 para 30. Ao pedir para explicar um conceito, o mapa não acrescenta nada: 100 de qualquer forma.
recuperação simples, um mês sem atividade 1 de 132 respostas corretas. Ao ser perguntado o que foi coberto em um mês em que o aluno nunca esteve ativo, ela descreve o conteúdo e atribui o mês a ele, quase todas as vezes.
mem. total, a mesma pergunta 128 de 132. Ela diz que não tem registro desse período e oferece o que tem.
O preço disso
O que este benchmark não mostra
O último desses números é o que vale manter em mente ao ler o restante. Perguntamos à memória completa as mesmas 420 perguntas uma segunda vez, e 44 delas pontuaram de forma diferente. Então o ruído de execução para execução é de cerca de um décimo, a diferença de 33 perguntas entre as duas melhores versões está bem acima disso, e a diferença de 2 perguntas entre elas no mês vazio não está: nessa categoria elas empatam, e não vamos afirmar o contrário.
Uma categoria acabou se revelando inútil, e estamos deixando ela no gráfico em vez de simplesmente removê-la. Um mês em que o aluno foi ativo pontua 44 de 44 em cada versão, inclusive na que não tem memória alguma. Ela não consegue distinguir uma lembrança fundamentada de uma descrição plausível que por acaso carrega o mês certo, que é exatamente a falha que sua categoria irmã capta. Um teste que tudo passa não mede nada.
Os avaliadores são comparações de string escritas pelas mesmas pessoas que construíram o recurso. Eles recompensam uma resposta que reaproveita as palavras registradas e não conseguem reconhecer uma resposta correta formulada de um jeito totalmente diferente, e isso já nos custou caro uma vez: as perguntas de pré-requisito foram geradas com o sentido da aresta invertido, de modo que, por um bom tempo, essa categoria parecia a mais fraca da memória, quando na verdade o tutor estava dando a própria resposta do mapa e sendo marcado como errado por isso. É a categoria mais forte do mapa. Descobrimos isso lendo as falhas, e não os totais, que é a única forma de essas falhas virem à tona.
E a população não é aleatória. São 45 históricos reais escolhidos por terem algo neles: pelo menos quinze mensagens, arquivos anexados e, para as categorias que exigem respostas avaliadas, pelo menos cinco dessas. Um aluno que mal começou exercitaria muito menos disso tudo, e perceberia muito menos a diferença.
O que isso não é
Quatro coisas com que isso é confundido, e o que é de fato.
- Não é uma janela de contexto maior. O custo por turno é limitado e não cresce com o histórico. O benchmark coloca um número nessa diferença: a janela ingênua respondeu 65% de 420 perguntas, enquanto a memória respondeu 91%.
- Não é sumarização. Nada é reescrito. Episódios são imutáveis, uma correção é uma nova linha que aponta para a anterior, e a crença de março ainda pode ser lida depois que a de agosto a substituiu.
- Não é busca vetorial sobre o histórico do chat. O índice vetorial é um de quatro pools, e a classificação filtra por relevância antes que recência, saliência ou frequência tenham vez.
- Não é um perfil do estudante escrito por um modelo. Nenhuma passagem pelo histórico produz uma descrição do aprendiz. Cada crença é uma faixa calculada a partir de respostas avaliadas, com os ids de evidência anexados e uma cadeia de substituição por trás dela.
O que é: uma leitura limitada sobre um registro imutável, um grafo do material extraído uma vez por arquivo, e crenças que carregam sua própria evidência.
Princípios que mantivemos
- Nada inventado. O domínio vem só de verificações, quizzes e rodadas; um conceito existe só porque um arquivo o explicou ou uma pessoa o ensinou; um período vazio diz isso.
- Evidência, ou não aconteceu. Toda crença, toda linha de relatório, toda lacuna carrega os ids do que a sustenta, e o painel de citações mostra memórias ao lado de páginas.
- Retenção não é atualidade. Guarde a crença de março para sempre; nunca se fundamente nela depois que agosto a substituiu. Uma correção é uma nova linha com um link, nunca uma edição.
- Relevância vence recência. Amplie antes de cortar; filtre, não apenas pondere.
- A própria narração do tutor não é memória. Uma resposta que reconta o registro é marcada no momento em que é escrita e nunca recuperada como uma memória da disciplina.
- Ordem é conteúdo. Um modelo lê a primeira afirmação com autoridade sobre um registro e para ali; coloque o registro antes de qualquer coisa que possa ser confundida com ele.
- Uma fala é evidência, nunca um tópico. "Pergunte-me as perguntas" pode estar certo ou errado; ninguém a entende.
- Uma memória precisa conseguir se verificar. Registre a impressão digital no momento; verifique por consulta; trate "inverificável" como uma resposta.
A coisa toda são alguns milhares de linhas, a maior parte comum: um livro-razão, um grafo, uma função de pontuação, um renderizador com orçamento, e uma tarefa noturna. A parte difícil não foi o código, mas decidir, cada vez que o modelo dizia algo fluente e errado, que a correção pertencia à memória, não ao tom de voz do prompt.