Laboratório GPT-2 · RoBERTa · Página de consulta

Glossário
do curso

As palavras que o curso usa, com o sentido que têm em aprendizado de máquina — e o sentido, muitas vezes bem diferente, que as mesmas palavras já tinham no resto da TI.

Página de consulta · leia logo depois do mapa Antes: apostila 00, o mapa do curso

1 Por que um glossário

A área de modelos de linguagem pegou emprestada boa parte do vocabulário da computação. Token já era a unidade que um compilador separa ao ler o código-fonte, a credencial que um servidor emite depois do login e o ativo registrado num contrato de blockchain. Camada já era um nível do modelo OSI. Modelo já era o modelo de dados de um banco e o "M" do padrão MVC. Nenhum desses sentidos deixou de valer.

O curso usa essas palavras no sentido de aprendizado de máquina, e ele não é o único nem o mais antigo. Quem vem de redes, banco de dados, segurança ou desenvolvimento lê "token", "máscara" ou "cache" com outro significado na cabeça — e tem razão de ler assim. Este glossário existe para que a leitura não dependa de adivinhar qual dos sentidos está em uso.

Como ler cada verbete

Neste curso é o sentido usado nas apostilas, em aprendizado de máquina. Em outras áreas da TI são os sentidos mais comuns da mesma palavra fora dessa área, com a disciplina entre parênteses. Capítulos são as apostilas onde o termo aparece. Quando o sentido é o mesmo nas duas colunas, o verbete diz.

2 Texto e representação

termoneste cursoem outras áreas da TIcapítulos
tokeno pedaço de texto que o modelo trata como uma peça só — pode ser uma palavra inteira, um pedaço dela, ou até um byte. Cada peça tem um número de identificação. casa é uma peça; produtividade são quatrocredencial de acesso emitida após autenticação, como um JWT (segurança); unidade léxica que o analisador de um compilador separa, como uma palavra-chave ou um identificador (compiladores); ativo digital registrado num contrato (blockchain); dispositivo físico de autenticação (segurança)01–16
tokenização, tokenizadorpartir o texto nessas peças, antes que o modelo veja qualquer coisa. O tokenizador é o programa que faz isso, e trabalha com uma lista de peças fixa, decidida antes do treino e nunca mais alteradasubstituir um dado sensível, como o número de um cartão, por um valor substituto sem significado (segurança de pagamentos); a etapa de análise léxica (compiladores)00, 01, 04, 06, 08–11, 13, 15, 16
vocabulárioa lista completa das peças que o tokenizador conhece — e é fechada: nada fora dela existe para o modelo. No GPT-2 são 50.257 peçasvocabulário controlado: lista padronizada de termos para classificar informação (ontologias, web semântica)00–02, 06–10, 12, 13, 16
embeddinga tradução de uma peça de texto em números. Cada token vira uma lista de números que o modelo aprendeu sozinho no treino, e palavras de sentido parecido acabam com listas parecidas. Também se chama embedding a tabela que guarda todas essas listassistema embarcado, embedded system (hardware); incorporar conteúdo externo numa página, como um vídeo (web)00–02, 05, 06, 11, 14–16
vetoruma lista de números em ordem, tratada como um ponto no espaço. Como um ponto tem posição, dois vetores têm distância e ângulo entre si — e é assim que o modelo mede se duas coisas são parecidasestrutura de dados com elementos em posições contíguas, o array (programação); vetor de interrupções (sistemas operacionais); imagem vetorial (computação gráfica)01–05, 11, 12, 14, 16
dimensãocada posição dentro de um vetor. Se o vetor é uma lista de 768 números, ele tem 768 dimensões; é o tamanho do GPT-2 smalltabela de dimensão, que descreve fatos de um data warehouse (modelagem dimensional); tamanho de uma tela ou imagem em pixels (interfaces)00, 02–05, 11, 12, 14
codificaçãoaqui, quase sempre codificação posicional: o número extra que diz ao modelo em que lugar da frase aquela peça está. Sem isso, o cão mordeu o homem e o homem mordeu o cão seriam idênticos para ele. Formalmente, um vetor somado ao embeddingcodificação de caracteres, como UTF-8 (sistemas); formato de compressão de áudio e vídeo, o codec (multimídia)00, 07, 15, 16

3 Arquitetura do modelo

termoneste cursoem outras áreas da TIcapítulos
modeloo programa treinado inteiro: recebe tokens e devolve, para cada peça possível, a chance de ela ser a próxima. Na prática são duas coisas juntas: o desenho (a arquitetura) e os números aprendidos (os pesos)modelo de dados, como o entidade-relacionamento (banco de dados); o "M" do padrão MVC, a camada que guarda os dados (engenharia de software); modelo de processo de desenvolvimento (engenharia de software)00–16
camadaum bloco de contas que se repete, igual, várias vezes — a saída de um é a entrada do próximo. O GPT-2 small empilha 12 blocos Transformer, e cada bloco tem uma atenção e uma pequena rede que processa cada posição em separado (o MLP)nível do modelo OSI ou da pilha TCP/IP (redes); nível de uma arquitetura em camadas, como apresentação, negócio e dados (engenharia de software)00–06, 09, 11–15
atençãoa operação que deixa cada palavra olhar para as outras da frase e decidir de quais ela depende. Em o cachorro que eu vi ontem latiu, é ela que liga latiu a cachorro, e não a ontem. Tecnicamente: uma média dos outros tokens, com pesos calculados a partir do conteúdo de cada umnão tem sentido técnico fora da área; o nome vem da ideia de foco, e não descreve atenção humana00–11, 14–16
cabeçaduas coisas com o mesmo nome. (1) Uma das atenções que rodam em paralelo dentro da mesma camada — cada uma aprende a reparar num tipo de relação. (2) A última peça do modelo, que transforma números em chances de cada palavra: a “cabeça de linguagem”cabeça de leitura e gravação de um disco (hardware); HEAD, a referência ao commit atual no Git (controle de versão); método HEAD do HTTP (web)00, 03–06, 10–12, 14, 15
máscarao que impede o modelo de ver o que não deveria. No GPT, esconde o futuro: ao prever a palavra 5, ele não pode enxergar a 6 — senão não estaria prevendo, estaria copiando. No BERT é o contrário: esconde uma palavra do meio da frase e pede que ele adivinhemáscara de sub-rede (redes); máscara de bits, bitmask (programação); máscara de entrada que formata um campo (interfaces)00, 03, 04, 08, 10, 11, 13–16
encoder, decoderas duas formas de montar um Transformer. Encoder: cada palavra vê a frase inteira, ideal para entender — é o BERT. Decoder: cada palavra só vê o que veio antes, necessário para escrever — é o GPT. A diferença cabe numa linha de códigocodificador e decodificador de caracteres ou de mídia (sistemas, multimídia); codificador rotativo que mede posição (hardware)00, 04, 09–16
parâmetrocada número que o modelo ajustou sozinho durante o treino; é neles que fica tudo o que ele “sabe”. O GPT-2 small tem 124 milhões. O que você escolhe antes de treinar não é parâmetro, é hiperparâmetrovalor passado a uma função ou comando (programação); opção de configuração de um sistema (administração de sistemas); parâmetro de consulta numa URL (web)00, 02, 03, 05–09, 11–13, 15, 16
pesoo tipo mais comum de parâmetro: o número pelo qual uma entrada é multiplicada. Quando alguém diz “baixei os pesos do modelo”, é o arquivo com todos esses números treinadospeso de uma aresta num grafo ponderado (algoritmos); peso de distribuição num balanceador de carga (redes)00–07, 10, 12–15
viéso número que é somado depois da multiplicação pelos pesos — o b da conta Wx + b. Serve para deslocar o resultado. Nada a ver com o outro sentido de viés, o de preconceito, que está na coluna ao ladoviés algorítmico: resultado que favorece ou prejudica um grupo de forma sistemática (ética de dados)01, 06, 09, 15
normalizaçãoreajustar uma lista de números para que fiquem numa faixa parecida, sem valores gigantes ao lado de minúsculos. Isso mantém o treino estável; no Transformer é o LayerNorm, que reescala cada vetor para média e variação controladasformas normais, que eliminam redundância em tabelas (banco de dados); normalização Unicode, que unifica caracteres equivalentes (sistemas)04–07, 09, 14, 16
estadoo estado oculto: a representação de uma peça de texto depois que ela já passou pelas camadas. É a mesma palavra, mas já carregando o contexto da frase inteiraestado de um programa ou de uma máquina de estados (programação); estado de uma sessão (web)00–03, 05, 07, 16

4 Treino e avaliação

termoneste cursoem outras áreas da TIcapítulos
treino, pré-treinoajustar os parâmetros, aos poucos, para que o modelo erre menos. Pré-treino é a fase longa e geral — ler muito texto e aprender a língua — feita antes de qualquer especializaçãotreinamento de pessoas no uso de um sistema (gestão de TI)00–06, 08–16
fine-tuningpegar um modelo já pré-treinado e continuar o treino, agora com dados de uma tarefa específica. É mais barato que começar do zero, porque a língua ele já sabeajuste fino de desempenho, tuning, de um banco de dados ou de um sistema operacional (administração de sistemas)00, 06, 08–12, 14, 15
perdaa nota do erro: um número único que diz o quanto o modelo errou, e que o treino tenta empurrar para baixo. Quando ela para de cair, o treino parou de aprender. Aqui ela é calculada pela entropia cruzadaperda de pacotes (redes); compressão com perda de informação (multimídia)00, 08, 09
entropiao quanto o modelo está em dúvida. Baixa quando ele aposta quase tudo numa palavra só; alta quando espalha a aposta entre muitas. Em bom dia, tudo… a entropia é baixa — quase certamente vem bem. Formalmente: a medida de incerteza de uma distribuição de probabilidade, no sentido de Shannon, contada em bitso mesmo sentido matemático, aplicado à aleatoriedade que o sistema operacional junta para gerar números aleatórios e à força de uma senha (segurança)03, 04, 07, 08, 15
gradientea bússola do treino: para cada parâmetro, diz para que lado mexer, e o quanto, para diminuir a perda. Tecnicamente, o vetor das derivadas da perda em relação a cada parâmetrotransição suave entre cores (design, CSS)02, 03, 05, 09, 15
épocauma passada completa por todo o material de treino. Duas épocas = o modelo viu cada exemplo duas vezesa época Unix, 1º de janeiro de 1970, marco zero da contagem de tempo (sistemas operacionais)08, 10, 13
loteo punhado de exemplos processados de uma vez só, em vez de um por um — é o batch. Fazer em grupo aproveita melhor a máquinaprocessamento em lote: tarefas executadas em sequência, sem interação (sistemas operacionais)00, 01, 05, 10, 14
checkpointuma cópia dos pesos salva no meio do caminho, para poder retomar dali se algo der errado, ou para comparar as versões e ficar com a melhorponto de gravação do log de transações em disco (banco de dados); fotografia do estado de uma máquina virtual (virtualização)13
precisãoaqui, quantos bits são usados para guardar cada número: float32 gasta 32, float16 gasta 16. Menos bits = menos memória e mais velocidade, com um pouco menos de exatidão. É um sentido bem diferente do de “precisão” em estatística, que está ao ladométrica de classificação: dos casos marcados como positivos, quantos eram de fato positivos (estatística, avaliação de sistemas)02, 04, 11, 15
logita nota crua que o modelo dá a cada palavra possível, antes de virar porcentagem. Pode ser negativa, e a soma não dá 100 — quem converte isso em chances é o softmax, a função que espreme todas as notas numa escala de 0 a 1 somando 1na estatística, a função log(p / (1 − p)); o uso em redes neurais estende o nome a qualquer pontuação antes da normalização00, 02, 05–08, 12, 13, 15, 16

5 Geração e execução

termoneste cursoem outras áreas da TIcapítulos
inferênciausar o modelo já pronto para produzir uma resposta. É o oposto de treinar: nenhum parâmetro muda, só se lê o que já foi aprendidodedução de novos fatos a partir de regras (sistemas especialistas, lógica); inferência de tipos pelo compilador (linguagens de programação); conclusão sobre uma população a partir de uma amostra (estatística)00, 05, 10, 14
prompto texto que você dá ao modelo para ele continuar. Não é um comando: é o começo de algo que ele vai completaro sinal da linha de comando que espera um comando, como C:\> ou $ (sistemas operacionais)01, 05–09, 11, 15
contextoquanto texto o modelo consegue ter diante dos olhos de uma vez. O GPT-2 enxerga 1.024 tokens, e nem um a mais — é limite de construção, não de configuraçãotroca de contexto entre processos na CPU (sistemas operacionais); contexto de execução de um programa (programação)00–02, 04–12, 16
temperaturao botão de ousadia na hora de escrever. Perto de zero o modelo escolhe sempre o mais provável e fica repetitivo; acima de 1 ele arrisca mais e às vezes desanda. Tecnicamente, o número que divide os logits antes do softmax; o nome vem da física estatísticatemperatura de operação de um componente, como a CPU (hardware)00, 03, 07, 12, 14, 16
amostragemsortear a próxima palavra respeitando as chances, em vez de pegar sempre a mais provável. É o que faz o mesmo prompt dar respostas diferentes a cada veztaxa de amostragem de um sinal de áudio (multimídia); amostra de uma população numa pesquisa (estatística)00, 05–08, 13, 15, 16
cacheaqui, o cache KV: o modelo guarda as contas de atenção já feitas para as palavras anteriores, para não refazer tudo a cada palavra nova. Sem ele, escrever um texto longo fica lento de forma insuportávelmemória rápida da CPU; cópia local de respostas HTTP; resultados guardados de consultas (hardware, web, banco de dados). O princípio é o mesmo: guardar para não recalcular04, 06, 10, 11, 13–15
kerneluma rotina de cálculo escrita para ser rápida na placa de vídeo — os kernels CUDA. (No capítulo 05 a palavra aparece noutro sentido, o de função de similaridade de uma SVM: um método de classificação anterior às redes neurais profundas)o núcleo do sistema operacional (sistemas operacionais)00, 05, 13, 14
servidor, servir“servir um modelo” é deixá-lo de pé, esperando pedidos e respondendo — como qualquer outro serviço na internet. É a diferença entre ter o modelo no disco e ter o modelo em usoo mesmo sentido de servidor web ou de aplicação (redes); muda só o que é servido00, 13–15
Referências

As definições de aprendizado de máquina seguem a referência geral da área; os outros sentidos seguem a norma ou o texto de referência de cada disciplina.

  1. Goodfellow, I., Bengio, Y. e Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org
  2. Aho, A. V., Lam, M. S., Sethi, R. e Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools. 2ª ed., Addison-Wesley. Capítulo 3, análise léxica.
  3. Jones, M., Bradley, J. e Sakimura, N. (2015). JSON Web Token (JWT). RFC 7519, IETF. rfc-editor.org/rfc/rfc7519
  4. Hardt, D. (2012). The OAuth 2.0 Authorization Framework. RFC 6749, IETF. rfc-editor.org/rfc/rfc6749
  5. Vogelsteller, F. e Buterin, V. (2015). ERC-20: Token Standard. Ethereum Improvement Proposals, EIP-20. eips.ethereum.org/EIPS/eip-20
  6. PCI Security Standards Council (2011). Information Supplement: PCI DSS Tokenization Guidelines.
  7. ISO/IEC 7498-1:1994. Information technology — Open Systems Interconnection — Basic Reference Model.
  8. Codd, E. F. (1970). A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13(6), 377–387.
  9. Kimball, R. e Ross, M. (2013). The Data Warehouse Toolkit. 3ª ed., Wiley.
  10. Yergeau, F. (2003). UTF-8, a transformation format of ISO 10646. RFC 3629, IETF. rfc-editor.org/rfc/rfc3629
  11. Mogul, J. e Postel, J. (1985). Internet Standard Subnetting Procedure. RFC 950, IETF. rfc-editor.org/rfc/rfc950
  12. IEEE e The Open Group. POSIX.1 (IEEE Std 1003.1), definição de "Seconds Since the Epoch".
  13. Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27, 379–423 e 623–656.

Próxima: apostila 01 — Tokenização e BPE.
Um termo faltando, ou um sentido de outra área que merece estar aqui? O glossário cresce com o curso.