Buckets:

rtrm's picture
|
download
raw
11.8 kB

Questionário de fim de capítulo

1. Qual é a ordem do pipeline para a modelagem de linguagem?

<Question choices={[ { text: "Primeiro, o modelo trata de textos e devolve previsões em bruto. O tokenizer, então, trás sentido a estas previsões e as converte de volta ao texto quando necessário.", explain: "O modelo não consegue entender o texto! O tokenizer deve primeiro simbolizar o texto e convertê-lo em IDs para que seja compreensível pelo modelo." }, { text: "Primeiro, o tokenizer trata de textos e devolve as identificações (IDs). O modelo lida com estas identificações e produz uma predição, que pode ser algum texto.", explain: "A predição do modelo não pode ser feita de imediato. O tokenizer tem que ser usado para converter a predição de volta ao texto!" }, { text: "O tokenizer trata de textos e devolve os IDs. O modelo lida com estes IDs e produz uma predição. O tokenizer pode então ser usado mais uma vez para converter estas previsões de volta para algum texto.", explain: "Correto! O tokenizer pode ser usado tanto para a tokenização quanto para a destokenização.", correct: true } ]} />

2. Quantas dimensões tem o tensor do Transformer de base, e quais são elas?

<Question choices={[ { text: "2: O comprimento da sequência e o tamanho do batch (lote)", explain: "Falso! A saída do tensor pelo modelo tem uma terceira dimensão: o tamanho das camadas ocultas" }, { text: "2: O comprimento da sequência e o tamanho das camadas ocultas", explain: "Falso! Todos os Transformer lidam com batches, mesmo com uma única sequência; isso seria um tamanho de batch de 1!" }, { text: "3: O comprimento da sequência, o tamanho do batch (lote) e o tamanho das camadas ocultas", explain: "Correto!", correct: true } ]} />

3. Qual dos seguintes é um exemplo de Tokenização por sub-palavras?

<Question choices={[ { text: "WordPiece", explain: "Exatamente, este é um exemplo de Tokenização por sub-palavra!", correct: true }, { text: "Character-based tokenization", explain: "Character-based tokenization não é uma tokenização por sub-palavra!." }, { text: "Divisão no espaço em branco e pontuação", explain: "Esse é um esquema de tokenization baseado em palavras!" }, { text: "BPE", explain: "Exatamente, este é um exemplo de Tokenização por sub-palavra!", correct: true }, { text: "Unigram", explain: "Exatamente, este é um exemplo de Tokenização por sub-palavra!", correct: true }, { text: "Nenhuma das acimas", explain: "Errado!" } ]} />

4. O que é uma model head?

<Question choices={[ { text: "Um componente dos transformers de base que redireciona os tensores para suas camadas corretas", explain: "Incorreto! Não existe tal componente." }, { text: "Também conhecido como mecanismo de auto-atenção (*self-attention*), ele adapta a representação de um símbolo de acordo com os outros tokens da sequência", explain: "Incorreto! A camada de auto-atenção contém 'attention heads', mas estas não são as heads de adaptação." }, { text: "Um componente adicional, geralmente composto de uma ou poucas camadas, para converter as previsões do Transformer em uma saída específica de tarefa", explain: "É isso mesmo. As heads de adaptação, também conhecidos simplesmente como heads, surgem em diferentes formas: heads de modelagem de linguagem, heads de resposta a perguntas, heads de classificação de sequência.. ", correct: true } ]} />

{#if fw === 'pt'}

5. O que seria um AutoModel?

<Question choices={[ { text: "Um modelo que treina automaticamente com seus dados", explain: "Incorreto. Você está confundindo isto com nosso produto de AutoNLP?" }, { text: "Um objeto que devolve a arquitetura correta com base em um checkpoint", explain: "Exatamente: o AutoModel só precisa saber o checkpoint para saber como inicializar então devolver a arquitetura correta.", correct: true }, { text: "Um modelo que detecta automaticamente a linguagem utilizada para suas entradas a fim de carregar os pesos corretos", explain: "Incorreto; embora alguns checkpoints e modelos sejam capazes de lidar com vários idiomas, não há ferramentas embutidas para seleção automática de checkpoints de acordo com o idioma. Você deve ir para o Model Hub para encontrar o melhor checkpoint para realizar sua tarefa!" } ]} />

{:else}

5. O que seria um TFAutoModel?

<Question choices={[ { text: "Um modelo que treina automaticamente com seus dados", explain: "Incorreto. Você está confundindo isto com nosso produto de AutoNLP?" }, { text: "Um objeto que devolve a arquitetura correta com base em um checkpoint", explain: "Exatamente: o TFAutoModel só precisa saber o checkpoint para saber como inicializar então devolver a arquitetura correta.", correct: true }, { text: "Um modelo que detecta automaticamente a linguagem utilizada para suas entradas a fim de carregar os pesos corretos", explain: "Incorreto; embora alguns checkpoints e modelos sejam capazes de lidar com vários idiomas, não há ferramentas embutidas para seleção automática de checkpoints de acordo com o idioma. Você deve ir para o Model Hub para encontrar o melhor checkpoint para realizar sua tarefa!" } ]} />

{/if}

6. Quais são as técnicas a serem observadas quando realizar batches com sequências de diferentes tamanhos?

<Question choices={[ { text: "Truncar", explain: "Sim, a truncagem é uma forma correta de sequências de saída noturna para que elas se encaixem em forma retangular.No entanto, seria a única?", correct: true }, { text: "Retornar tensores", explain: "Enquanto as outras técnicas permitem retornar tensores retangulares, retornar tensores não é útil quando realizar batches de sequências juntas." }, { text: "Padding", explain: "Sim, padding é uma forma correta para as sequências de saída para que elas se encaixem em uma forma retangular. No entanto, seria a única?", correct: true }, { text: "Attention masking", explain: "Exatamente! As attention masks são de primordial importância quando se trata de sequências de diferentes tamanhos. No entanto, essa não é a única técnica a ser conhecida.", correct: true } ]} />

7. Qual é o objetivo de aplicar uma função SoftMax à saída de logits para um modelo de classificação sequencial??

<Question choices={[ { text: "Suaviza os logits para que sejam mais confiáveis.", explain: "Não, a função SoftMax não afeta a confiabilidade dos resultados." }, { text: "Aplica um limite inferior e um limite superior para que eles sejam compreensíveis.", explain: "Correto! Os valores resultantes estão vinculados entre 0 e 1. Mas essa não é a única razão pela qual usamos uma função SoftMax.", correct: true }, { text: "A soma total da saída é 1, resultando em uma possível interpretação probabilística.", explain: "Correto! Mas essa não é a única razão pela qual usamos uma função SoftMax.", correct: true } ]} />

8. Qual é o método core da API tokenizer?

<Question choices={[ { text: "encode, pois pode codificar texto em IDs e IDs em predições", explain: "Errado! O método encode existe na tokenização, porém não existe nos modelos." }, { text: "Chamando diretamente o objeto de tokenização (tokenizer).", explain: "Exatamente! O método call do tokenizer é um método muito poderoso que pode lidar com praticamente qualquer coisa. É também o método usado para recuperar as predições de um modelo.", correct: true }, { text: "padding", explain: "Errado! O padding é muito útil, mas é apenas uma parte da API do tokenizer." }, { text: "tokenize", explain: "O método tokenize é indiscutivelmente um dos métodos mais úteis, mas não é o núcleo do API do tokenizer." } ]} />

9. O que a variável result contém nesta pedaço de código?

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
result = tokenizer.tokenize("Hello!")

<Question choices={[ { text: "Uma lista de strings, sendo cada uma delas um token", explain: "Exatamente! Converta isto em IDs, e envie-os para um modelo!", correct: true }, { text: "Uma lista de IDs", explain: "Incorreto; isto é o para o os métodos call ou convert_tokens_to_ids!" }, { text: "Uma string contendo todos os tokens ", explain: "Isto seria subótimo, pois o objetivo é dividir a string em vários tokens." } ]} />

{#if fw === 'pt'}

10. Tem algo errado com o código abaixo?

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = AutoModel.from_pretrained("gpt2")

encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)

<Question choices={[ { text: "Não, parece correto.", explain: "Infelizmente, acoplar um modelo com um tokenizer que foi treinado com um checkpoint diferente raramente é uma boa ideia. O modelo não foi treinado para fazer sentido a partir da saída deste tokenizer, então a saída do modelo (isto se ele realmente funcionar!) não fará nenhum sentido." }, { text: "O tokenizer e o modelo devem ser sempre a partir do mesmo checkpoint.", explain: "Correto!", correct: true }, { text: "É uma boa prática realizar o padding e truncar com o tokenizer, pois cada entrada é um batch.", explain: "É verdade que cada entrada do modelo precisa ser um batch. Entretanto, truncando ou realizando o padding desta sequência não faria necessariamente sentido, pois existe apenas uma delas, e estas são técnicas para criar batches de uma lista de sentenças." } ]} />

{:else}

10. Tem algo errado com o código abaixo?

from transformers import AutoTokenizer, TFAutoModel

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = TFAutoModel.from_pretrained("gpt2")

encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)

<Question choices={[ { text: "Não, parece correto.", explain: "Infelizmente, acoplar um modelo com um tokenizer que foi treinado com um checkpoint diferente raramente é uma boa ideia. O modelo não foi treinado para fazer sentido a partir da saída deste tokenizer, então a saída do modelo (isto se ele realmente funcionar!) não fará nenhum sentido." }, { text: "O tokenizer e o modelo devem ser sempre a partir do mesmo checkpoint.", explain: "Correto!", correct: true }, { text: "É uma boa prática realizar o padding e truncar com o tokenizer, pois cada entrada é um batch.", explain: "É verdade que cada entrada do modelo precisa ser um batch. Entretanto, truncando ou realizando o padding desta sequência não faria necessariamente sentido, pois existe apenas uma delas, e estas são técnicas para criar batches de uma lista de sentenças." } ]} />

{/if}

Xet Storage Details

Size:
11.8 kB
·
Xet hash:
f6d982a01e2b4202cab706d430c63739eb01bf747eafa563c72504386f1f0a12

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.