Modelos de linguagem Wiki40B

Ver no TensorFlow.org Executar no Google Colab Ver no GitHub Baixar caderno Veja os modelos TF Hub

Gerar Wikipedia-like texto usando os modelos de linguagem Wiki40B de TensorFlow Hub !

Este bloco de notas ilustra como:

  • Carregar a 41 monolíngue e 2 modelos linguísticos multilingues que fazem parte da coleção Wiki40b-LM no TF-Hub
  • Use os modelos para obter perplexidade, ativações por camada e embeddings de palavras para um determinado trecho de texto
  • Gerar texto token por token a partir de um pedaço de texto inicial

Os modelos de linguagem são treinados sobre o recém-publicado, limpa-up Wiki40B conjunto de dados disponíveis sobre TensorFlow conjuntos de dados. A configuração treinamento é baseado no papel “Wiki-40B: Multilingual Língua Modelo Dataset” .

Configurar

Instalando Dependências

Importações

Escolha o seu idioma

Vamos escolher qual modelo de linguagem para carregar a partir TF-Hub e o comprimento do texto a ser gerado.

Using the https://tfhub.dev/google/wiki40b-lm-en/1 model to generate sequences of max length 20.

Construir o modelo

Ok, agora que já configurado que pré-treinados modelo para uso, vamos configurá-lo para gerar texto até max_gen_len . Precisaremos carregar o modelo de linguagem do TF-Hub, inserir um pedaço de texto inicial e, em seguida, alimentar iterativamente os tokens à medida que são gerados.

Carregue as peças do modelo de linguagem

2021-11-05 13:33:19.950673: W tensorflow/core/common_runtime/graph_constructor.cc:1511] Importing a graph with a lower producer version 359 into an existing graph with producer version 808. Shape inference will have run different parts of the graph with different producer versions.

Construir o gráfico de geração por token

Construir o gráfico estaticamente desenrolado para max_gen_len fichas

Gere algum texto

Vamos gerar algum texto! Vamos definir um texto seed para solicitar que o modelo de linguagem.

Você pode usar uma das sementes pré-definido ou, opcionalmente, digite o seu próprio. Este texto será usado como semente para o modelo de idioma para ajudar a solicitar o modelo de idioma para o que gerar a seguir.

Você pode usar os seguintes tokens especiais que precedem partes especiais do artigo gerado. Use _START_ARTICLE_ para indicar o início do artigo, _START_SECTION_ para indicar o início de uma seção, e _START_PARAGRAPH_ para gerar texto no artigo

Sementes Predefinidas

Insira sua própria semente (opcional).

Generating text from seed:

_START_ARTICLE_
1882 Prince Edward Island general election
_START_PARAGRAPH_
The 1882 Prince Edward Island election was held on May 8, 1882 to elect members of the House of Assembly of the province of Prince Edward Island, Canada.

Inicialize a sessão.

Gerar texto

_START_SECTION_ Candidates _START_PARAGRAPH_ Thirteen members of the House of Assembly were all members nominations. Among

Também podemos olhar para as outras saídas do modelo - a perplexidade, os ids de token, as ativações intermediárias e os embeddings

ppl_result
array([23.507753], dtype=float32)
token_ids_result
array([[   8,    3, 6794, 1579, 1582,  721,  489,  448,    8,    5,   26,
        6794, 1579, 1582,  721,  448,   17,  245,   22,  166, 2928, 6794,
          16, 7690,  384,   11,    7,  402,   11, 1172,   11,    7, 2115,
          11, 1579, 1582,  721,    9,  646,   10]], dtype=int32)
activations_result.shape
(12, 1, 39, 768)
embeddings_result
array([[[ 0.12262525,  5.548009  ,  1.4743135 , ...,  2.4388404 ,
         -2.2788858 ,  2.172028  ],
        [-2.3905468 , -0.97108954, -1.5513545 , ...,  8.458472  ,
         -2.8723319 ,  0.6534524 ],
        [-0.83790785,  0.41630274, -0.8740793 , ...,  1.6446769 ,
         -0.9074106 ,  0.3339265 ],
        ...,
        [-0.8054745 , -1.2495526 ,  2.6232922 , ...,  2.893288  ,
         -0.91287214, -1.1259722 ],
        [ 0.64944506,  3.3696785 ,  0.09543293, ..., -0.7839227 ,
         -1.3573489 ,  1.862214  ],
        [-1.2970612 ,  0.5961366 ,  3.3531897 , ...,  3.2853985 ,
         -1.6212384 ,  0.30257902]]], dtype=float32)