Ontem à noite eu ensinei nanochat d32 como contar 'r' em morango (ou variações semelhantes). Achei que este seria um exemplo bom / divertido de como adicionar recursos ao nanochat e escrevi um guia completo aqui: Isso é feito por meio de uma nova tarefa sintética 'SpellingBee' que gera exemplos de um usuário solicitando esse tipo de problema e uma solução ideal de um assistente. Em seguida, ajustamos no meio do treinamento / SFT para dotar o LLM com a capacidade ou treinamos ainda mais com o RL para torná-lo mais robusto. Há muitos detalhes a serem acertados, especialmente em modelos menores, e o guia os percorre. Como uma breve visão geral: - Você deve garantir a diversidade nas solicitações/consultas do usuário - Especialmente para modelos pequenos como o nanochat, você deve ter muito cuidado com os detalhes de tokenização para facilitar a tarefa de um LLM. Em particular, você deve ter cuidado com o espaço em branco e, em seguida, espalhar o cálculo do raciocínio por muitos tokens de solução parcial: primeiro padronizamos a palavra entre aspas, depois a soletramos (para quebrar os tokens), depois iteramos e mantemos um contador explícito, etc. - Estou incentivando o modelo a resolvê-lo de duas maneiras distintas: uma maneira manual (aritmética mental em sua cabeça) e também por meio do uso da ferramenta do interpretador Python ao qual o nanochat tem acesso. Isso é um pouco "fumaça e espelhos" porque toda solução atm é "limpa", sem erros. Pode-se ajustar a tarefa para simular erros e demonstrar recuperações por exemplo, ou executar RL. Provavelmente, uma combinação de ambos funciona melhor, onde o primeiro atua como o prior para o RL e dá a ele coisas para trabalhar. Se o nanochat fosse um modelo muito maior, você esperaria ou esperaria que esse recurso "aparecesse" mais facilmente em algum momento. Mas como o "cérebro" do nanochat d32 é do tamanho de uma ~abelha, se quisermos que ele conte r's em morango, temos que fazê-lo super-representando-o nos dados, para encorajar o modelo a aprendê-lo mais cedo. Mas funciona! :)