Uma reimplementação mínima do TensorFlow.js do minGPT (Generative Pre-trained Transformer) do Karpathy.
Uma definição completa deste modelo de linguagem GPT "caseiro" (todo ele) pode ser encontrada neste único arquivo model.ts (menos de 300
linhas de código).
Como model.ts é escrito em TypeScript, você pode usar o playground GPT caseiro para treiná-lo, experimentar parâmetros e gerar suas previsões diretamente no navegador usando uma GPU.
O modelo e o playground foram escritos para fins de aprendizado , para entender como o GPT funciona e para usar o WebGPU para treinamento.
Para entender o que está acontecendo no arquivo model.ts, consulte a palestra prática e bem explicada de Andrej Karpathy "Vamos construir o GPT: do zero, em código, explicado" (sem dúvida uma das melhores explicações do GPT que existem).
Dentro da pasta ./gpt/src/ você encontrará os seguintes arquivos:
Heads
dentro de CausalSelfAttention
sequencialmente (em vez de em paralelo). Como resultado, o modelo é um pouco mais lento, mas mais legível. Alguns pesos de modelos pré-treinados são publicados no repositório caseiro-gpt-js-weights. Você pode aplicá-los por meio do playground da web (seção "Geração") ou por meio do playground do Node.js ( model.setWeights()
).
Para experimentar parâmetros de modelo, treinamento e geração de texto, você pode usar o playground Homemade GPT JS.
Parque infantil GPT JS caseiro |
---|
Você também pode iniciar o playground localmente se quiser modificar e experimentar o código do próprio modelo do transformador.
Instale dependências:
npm i
Inicie o playground da web localmente:
npm run playground-web
O playground estará acessível em http://localhost:3000/homemade-gpt-js
Execute esses comandos na raiz do projeto. Você precisa ter Node.js ≥ 20.0.0.
Você também pode experimentar o modelo no ambiente Node.js.
Instale dependências:
npm i
Inicie o playground Node.js:
npm run playground-node
O arquivo ./playground-node/src/index.ts contém o exemplo básico de treinamento e geração de texto.
Execute esses comandos na raiz do projeto. Você precisa ter Node.js ≥ 20.0.0.