Este tutorial visa os codificadores interessados em entender os blocos de construção de grandes modelos de idiomas (LLMS), como os LLMs funcionam e como codificá -los desde o início em Pytorch. Vamos iniciar este tutorial com uma introdução ao LLMS, marcos recentes e seus casos de uso. Em seguida, codificaremos um pequeno LLM do tipo GPT, incluindo seu pipeline de entrada de dados, componentes de arquitetura do núcleo e código pré-treinamento de nós mesmos. Depois de entender como tudo se encaixa e como procurar um LLM, aprenderemos como carregar pesos pré-traidos e Finetune LLMs usando bibliotecas de código aberto.
O material de código é baseado no meu modelo de construção de um grande idioma do Scratch Book e também usa a biblioteca LitGPT.
Um ambiente de nuvem pronto para uso, completo com todos os exemplos de código e dependências instalados, está disponível aqui. Isso permite que os participantes executem todo o código, particularmente nas seções pré -figurinistas e finetuning, em uma GPU.
Além disso, consulte as instruções na pasta de configuração para configurar seu computador para executar o código localmente.
| Título | Descrição | Pasta | |
|---|---|---|---|
| 1 | Introdução ao LLMS | Uma introdução ao workshop que apresenta LLMs, os tópicos abordados neste workshop e instruções de configuração. | 01_intro |
| 2 | Dados de entrada do entendimento LLM | Nesta seção, estamos codificando o pipeline de entrada de texto implementando um tokenizador de texto e um pytorch dataloader personalizado para o nosso LLM | 02_Data |
| 3 | Codificando uma arquitetura LLM | Nesta seção, examinaremos os blocos de construção individuais do LLMS e os montaremos no código. Não abordaremos todos os módulos em detalhes meticulosos, mas focaremos no quadro geral e como montá-los em um modelo semelhante ao GPT. | 03_Architecture |
| 4 | LLMS pré -treinamento | Na Parte 4, abordaremos o processo de pré -treinamento do LLMS e implementaremos o código para pré -travar a arquitetura do modelo que implementamos anteriormente. Como a pré -treinamento é cara, apenas a pré -reta em uma pequena amostra de texto disponível no domínio público, para que o LLM seja capaz de gerar algumas frases básicas. | 04_PRETRAINING |
| 5 | Carregando pesos pré -teremam | Como o pré-treinamento é um processo longo e caro, agora carregaremos pesos pré-terenciados em nossa arquitetura auto-implementada. Em seguida, apresentaremos a biblioteca de código aberto LitGPT, que fornece código mais sofisticado (mas ainda legível) para treinamento e Finetuning LLMS. Aprenderemos como carregar pesos de LLMs pré -tenhados (llama, phi, gemma, Mistral) em litgpt. | 05_WeightLoading |
| 6 | Finetuning LLMS | Esta seção introduzirá técnicas de Finetuning LLM e prepararemos um pequeno conjunto de dados para a instrução Finetuning, que usaremos para finalizar um LLM no litgpt. | 06_FINETUNING |
(O material de código é baseado no meu modelo de construção de um grande idioma do Scratch Book e também usa a biblioteca LitGPT.)