Языковые модели Wiki40B

Посмотреть на TensorFlow.org Запускаем в Google Colab Посмотреть на GitHub Скачать блокнот Посмотреть модели TF Hub

Сформировать Википедию как текст с использованием моделей Wiki40B языка из TensorFlow Hub !

В этом блокноте показано, как:

  • Загрузите 41 толковых и 2 модели многоязычных языка , которые являются частью коллекции Wiki40b-LM на TF-концентратор
  • Используйте модели, чтобы получить недоумение, активацию слоя и встраивание слов для заданного фрагмента текста.
  • Генерировать токен за токеном из фрагмента исходного текста

Модели языка обучаются на недавно опубликовано, очищены до Wiki40B набора данных доступны на TensorFlow Datasets. Настройка обучения основана на статье «Wiki-40B: Многоязычный модели языка Dataset» .

Настраивать

Установка зависимостей

Импорт

Выберите язык

Давайте выберем какой язык модель для загрузки из TF-хаб и длина текста , которые будут созданы.

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

Постройте модель

Хорошо, теперь, когда мы настроили которые предварительно подготовленные модели для использования, давайте настроим его для создания текста до max_gen_len . Нам нужно будет загрузить языковую модель из TF-Hub, ввести фрагмент начального текста, а затем итеративно вводить токены по мере их создания.

Загрузите части языковой модели

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.

Построить график генерации токенов

Построить статический развернутый график для max_gen_len маркеров

Создать текст

Сгенерируем текст! Мы установим текстовые seed , чтобы побудить модель языка.

Вы можете использовать один из предварительно определенных семян или необязательно вводить свои собственные. Этот текст будет использоваться в качестве начального числа для языковой модели, чтобы помочь ей подсказать, что сгенерировать дальше.

Вы можете использовать следующие специальные токены перед специальными частями созданной статьи. Используйте _START_ARTICLE_ , чтобы указать начало статьи, _START_SECTION_ указать начало раздела, а _START_PARAGRAPH_ генерировать текст в статье

Предварительно определенные семена

Введите собственное семя (необязательно).

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.

Инициализировать сеанс.

Создать текст

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

Мы также можем посмотреть на другие выходы модели - недоумение, идентификаторы токенов, промежуточные активации и вложения.

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)