Como se realiza um conjunto de dados para modelo de linguagem simples
O panorama da IA consiste hoje em modelos de linguagens grandes que estão progredindo em um ritmo rápido.
Considero importante a compreensão desses modelos. Um conhecimento que a humanidade deveria saber.
O impacto desses modelos justifica isso.
Quando pensamos nessa compreensão, o que seria importante?
O primeiro passo seria a pessoa saber sobre os dados.
Trabalhar com os dados, manipular esses dados, pensar na tarefa para a qual os dados servem, preparar os dados pensando no modelo. Todas essas ações ajudam na construção do arcabouço que diz respeito ao desenvolvimento de modelos de linguagem, em redes neurais ou aprendizado de máquina, em geral.
Implementemos então código com ações pensando na tarefa de treinar uma rede neural simples para a predição do próximo caractere. Os modelos de linguagem realizam isso. Eles predizem o próximo caractere.
A biblioteca.
Quando se fala de implementação de redes neurais, o PyTorch seria a escolha.
Precisamos importá-la.
import torch
Simples assim.
O conjunto de dados.
O próximo passo seria ter a base a qual o modelo irá treinar para o aprendizado.
Construiremos uma simples utilizando o dataset que o Karpathy disponibilizou em um arquivo de texto.
Considere como aprendizado ativo a busca pelo dataset. O nome do arquivo seria names.txt.
O Karpathy tem todo o material dele organizado.
O arquivo em si não dá os dados já preparados para uso na tarefa de predição de próximo caractere.
Precisamos estruturá-lo.
Antes, pensemos em uma questão. O que queremos com a predição do próximo caractere?
Apesar de ser uma tarefa simples, a predição do próximo caractere ensina o modelo a escrever.
Considerando o dataset simples de names, o modelo aprenderá a escrever nomes de acordo com o que ele aprender na base. E ele poderá criar novos nomes porque ele estudará a relação dos caracteres.
Para os LLMs como ChatGPT, ele aprendeu utilizando a Web, o que significa que ele aprendeu todo o conteúdo da Web. Ele não simplesmente registra todos os dados. Ele aprende a relação dos tokens. Por isso falam que a predição seria uma forma de compressão.
Bom, então, com esse objetivo de predição do próximo caractere para o aprendizado de escrever compreendido, sigamos para a preparação do conjunto de dados.
Primeiro, a leitura do arquivo.
words = open('names.txt', 'r').read().splitlines()
Depois, a criação do conjunto de dados.