243 mil textos para um modelo pequeno de 29 milhões de parâmetros: como o autor selecionou dados da Wikipédia e de livros de psicologia
O autor de uma série no Habr, que não é programador, conta na segunda parte como montou 243 412 textos para treinar um modelo pequeno de 29 milhões de parâmetros. Ele pegou 200 mil parágrafos da Wikipédia russa e 50 mil parágrafos de seus próprios livros de psicologia. Após a remoção de duplicatas, sobraram 248 379 textos, e 4 967 deles foram separados para a verificação de qualidade. O modelo aprende a reproduzir os embeddings (vetores de números em que o texto é convertido) de um modelo grande. Esse tipo de treinamento se chama destilação. O código foi escrito pela rede neural DeepSeek, e o autor apenas fez a depuração. A Wikipédia entra para dar amplitude de temas, e a psicologia, para a tarefa-alvo. De um único trecho do dump (arquivo) da Wikipédia, com 380 MB, saíram 1,24 milhão de parágrafos. Depois dos filtros de tamanho e de proporção de letras e da remoção de duplicatas, o corpus completo ficou com 1 359 942 textos. Para o treino, o autor usou 5,6 vezes menos: assim fica mais barato calcular os embeddings com o modelo grande e treinar o pequeno em uma GPU T4 no Colab. • O parsing da Wikipédia rodou a cerca de 1185 artigos por segundo: 76 mil artigos em 64 segundos. • Corpus de psicologia: 587 arquivos, 382 327 parágrafos, cerca de 18,9 milhões de palavras. • No conjunto de treino, a psicologia responde por cerca de 20%: 48 477 linhas de 243 412.
Processado por IA de Habr AI; editado por Hamidun News
O autor de uma série no Habr, que não se considera programador, prepara os dados para um modelo pequeno de 29 milhões de parâmetros. O título traz o número 243 mil: é quantos textos ficam no conjunto de treino. O autor pega 200 mil parágrafos da Wikipédia russa e 50 mil parágrafos de livros de psicologia. Após a remoção de duplicatas, restam 248 379 textos. Desses, 4 967 vão para a verificação de qualidade, e 243 412 ficam para o treino.
Para que servem esses textos? Embedding é um vetor de números em que o texto é convertido para que a máquina possa comparar textos por significado. O modelo pequeno (aluno) aprende a gerar os mesmos vetores que o grande (professor). Essa técnica se chama destilação. O objetivo final da série, composta por dez partes, são os embeddings isotrópicos, isto é, vetores que preenchem o espaço de maneira uniforme, em vez de se concentrarem em um feixe estreito. Na segunda parte, o autor trata dos dados: onde obtê-los, como limpá-los e de quantos, na prática, é preciso. Todo o código foi escrito pela rede neural DeepSeek, e o autor cuidou da depuração e da correção de erros.
Wikipédia a partir de um arquivo de 380 MB: parsing em um minuto
São necessários dois tipos de texto. O corpus geral dá ao aluno ampla cobertura de temas: sem ele, o modelo se ajustaria demais a uma área estreita e funcionaria mal com textos de outros assuntos. O corpus de domínio, de psicologia, ensina o modelo a entender as especificidades da tarefa que motivou todo o projeto.
O dump completo da Wikipédia russa pesa cerca de 5,5 GB compactado, o que é muito para o Colab, com seu disco limitado. A solução é a versão multistream: o mesmo dump, mas dividido em centenas de arquivos menores. O autor baixou um deles, ruwiki-latest-pages-articles-multistream1.xml-p1p224167.bz2, de 380 MB. Para 250 mil textos, bastariam de 100 a 200 MB de texto limpo, mas o resultado foram 1,24 milhão de parágrafos e 835,9 MB.
O texto foi extraído com o utilitário WikiExtractor, com a flag --no-templates para não carregar os templates da wiki, e com quatro processos. A velocidade foi de 1185 artigos por segundo, cerca de 76 mil artigos em 64 segundos.
Depois dessa etapa, restam três tipos de lixo:
- títulos de seções no formato == História ==;
- parênteses vazios () no lugar de templates removidos;
- a primeira linha dentro de <doc>, que repete o título do artigo.
O script limpa tudo isso com expressões regulares e descarta parágrafos com menos de 40 caracteres. Há um efeito colateral: em vez de «Área — 65 300 km²», sobra «Área — km²». O autor considera isso inofensivo: os números de qualquer forma são fragmentados em subtokens (pedaços menores de palavras), e para o embedding importa mais o contexto da frase.
Psicologia: 587 arquivos e um limite de dez palavras
O corpus de domínio vem de uma coleção pessoal de livros em formato .md: psicologia, psicoterapia, psiquiatria, estatística matemática para psicólogos, anatomia e fisiologia. O autor não publica os textos. O script remove a marcação Markdown e as tags HTML, junta palavras separadas por hifenização no fim da linha e mantém apenas linhas com no mínimo dez palavras. Assim saem números de página, cabeçalhos e rodapés e títulos isolados.
Resultado:
- 587 arquivos;
- 382 327 parágrafos;
- cerca de 18,9 milhões de palavras;
- 258,4 MB.
Por que de 1,36 milhão de textos se usam 243 mil
Primeiro vem o filtro de tamanho (60–800 caracteres) e de proporção de letras (no mínimo 55%), que elimina restos de tabelas e fórmulas. Depois dele, a parte da Wikipédia fica com 1 056 981 parágrafos, e a de psicologia, com 330 714. O autor guarda o corpus completo, de 1 359 942 textos únicos, como reserva: se faltarem dados, não será preciso processar a Wikipédia de novo.
Para o treino, ele usa uma amostra reduzida: 200 mil parágrafos da Wikipédia e 50 mil de psicologia, com seed fixo (valor inicial do gerador de números aleatórios). Após a deduplicação, isto é, a remoção de repetições, restam 248 379 textos, dos quais 49 484 são de psicologia. Se uma linha aparece nas duas fontes, ela é classificada como psicologia. Em seguida, 2% (4 967 textos) vão para a validação, ou seja, para a verificação de qualidade, e 243 412 ficam no treino. Os índices das linhas de domínio na parte de treino ficam em um array separado, domain_indices.npy: são 48 477, e o restante caiu na validação. Isso permite avaliar depois a qualidade separadamente em psicologia.
O motivo do corte é o custo. O aluno, de três camadas, é treinado em uma GPU T4 no Colab. Uma época (passagem completa pelos dados) com batch_size=64 no volume total leva de 15 a 20 minutos, e com 3 a 10 épocas isso significa horas. A maior parte do gasto vem do professor: ele precisa calcular os embeddings de cada texto de treino, e mesmo em GPU, com 1,33 milhão de exemplos, isso leva dezenas de minutos. Uma amostra de 243 mil sai de 5 a 6 vezes mais barata e é suficiente para o primeiro ciclo.
O que o engenheiro pode tirar disso
- As partes menores do dump multistream da Wikipédia evitam o download de 5,5 GB e servem para discos limitados.
- Manter o corpus completo no disco custa pouco: reamostrá-lo com outras cotas leva 28 segundos.
- Uma fatia de cerca de 20% de domínio no treino é uma referência razoável para destilação voltada a uma tarefa restrita.
- A abordagem tem falhas. O primeiro script mantém cerca de 800 MB na memória, e o tamanho do corpus.txt aparece no texto com dois números diferentes (753,8 e 718,9 MB). Para um experimento no Colab, isso é tolerável.
Nas próximas partes da série, vêm os embeddings do professor e o treinamento do aluno.
- 1 de nov. de 2026IAs locais aceitaram pagar golpistas, mas as regras barraram os 42 golpes
- 31 de out. de 2026DeepSeek reduz o cache de memória do modelo para 890 bytes por token, contra 3514
- 30 de out. de 2026Mistral abre os pesos do Large 4: forte em código, mas chineses marcam 32 pontos contra 26
- 30 de out. de 2026Claude Enterprise ganha relatórios inteligentes: quem usa IA, como usa e quanto isso custa
Perguntas frequentes sobre a notícia
O que se sabe sobre Wikipédia a partir de um arquivo de 380 MB: parsing em um minuto?
São necessários dois tipos de texto. O corpus geral dá ao aluno ampla cobertura de temas: sem ele, o modelo se ajustaria demais a uma área estreita e funcionaria mal com textos de outros assuntos. O corpus de domínio, de psicologia, ensina o modelo a entender as especificidades da tarefa que motivou todo o projeto. O dump completo da Wikipédia russa pesa cerca de 5,5 GB compactado, o que é muito para o Colab, com seu disco limitado. A solução é a versão multistream: o mesmo dump, mas dividido em centenas de arquivos menores. O autor baixou um deles, ruwiki-latest-pages-arti
O que se sabe sobre Psicologia: 587 arquivos e um limite de dez palavras?
O corpus de domínio vem de uma coleção pessoal de livros em formato .md: psicologia, psicoterapia, psiquiatria, estatística matemática para psicólogos, anatomia e fisiologia. O autor não publica os textos. O script remove a marcação Markdown e as tags HTML, junta palavras separadas por hifenização no fim da linha e mantém apenas linhas com no mínimo dez palavras. Assim saem números de página, cabeçalhos e rodapés e títulos isolados. Resultado: 587 arquivos; 382 327 parágrafos; cerca de 18,9 milhões de palavras; 258,4 MB.
Por que de 1,36 milhão de textos se usam 243 mil?
Primeiro vem o filtro de tamanho (60–800 caracteres) e de proporção de letras (no mínimo 55%), que elimina restos de tabelas e fórmulas. Depois dele, a parte da Wikipédia fica com 1 056 981 parágrafos, e a de psicologia, com 330 714. O autor guarda o corpus completo, de 1 359 942 textos únicos, como reserva: se faltarem dados, não será preciso processar a Wikipédia de novo. Para o treino, ele usa uma amostra reduzida: 200 mil parágrafos da Wikipédia e 50 mil de psicologia, com seed fixo (valor inicial do gerador de números aleatórios). Após a deduplicação, isto é, a remoção
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.