Wiki40B 言語モデル

TensorFlow.org で表示 Google Colabで実行 GitHub でソースを表示 ノートブックをダウンロード TF Hub モデルを見る

TensorFlow HubWiki40B 言語モデルを使用して、ウィキペディアのようなテキストを生成しましょう!

このノートブックでは、次の項目を行う方法を説明します。

  • TF-Hub の Wiki40b-LM コレクションの一部である単一言語モデル 41 個と多言語モデル 2 個を読み込みます。
  • モデルを使用して、特定のテキストピースの複雑さ、レイヤーごとのアクティベーション、および単語埋め込みを取得します。
  • シードテキストのピースからトークンごとにテキストを生成します。

言語モデルは、TensorFlow Datasets で新たに公開された、クリーンアップ済みの Wiki40B データセットでトレーニングされています。トレーニングは、論文「Wiki-40B: Multilingual Language Model Dataset」に基づいてセットアップされています。

セットアップ

Installing Dependencies

Imports

2024-01-11 18:19:57.578562: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2024-01-11 18:19:58.255387: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory
2024-01-11 18:19:58.255478: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory
2024-01-11 18:19:58.255487: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.

言語を選択する

TF-Hub から読み込む言語モデルと、生成されるテキストの長さを選択しましょう。

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

モデルを構築する

使用するトレーニング済みのモデルの構成が完了したので、最大 max_gen_len のテキストを生成するように構成することにしましょう。TF-Hub から言語モデルを読み込み、スターターテキストピースをフィードし、生成されるたびにインタラクティブにトークンをフィードする必要があります。

Load the language model pieces

2024-01-11 18:20:05.255301: W tensorflow/core/common_runtime/graph_constructor.cc:1526] Importing a graph with a lower producer version 359 into an existing graph with producer version 1286. Shape inference will have run different parts of the graph with different producer versions.
2024-01-11 18:20:07.410253: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2024-01-11 18:20:07.410371: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublas.so.11'; dlerror: libcublas.so.11: cannot open shared object file: No such file or directory
2024-01-11 18:20:07.410462: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublasLt.so.11'; dlerror: libcublasLt.so.11: cannot open shared object file: No such file or directory
2024-01-11 18:20:07.410519: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory
2024-01-11 18:20:07.465976: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusparse.so.11'; dlerror: libcusparse.so.11: cannot open shared object file: No such file or directory
2024-01-11 18:20:07.466177: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1934] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...

Construct the per-token generation graph

Build the statically unrolled graph for max_gen_len tokens

テキストを生成する

テキストを生成しましょう!言語モデルを促すテキストの seed を設定します。

事前定義済みのシードを使うか、別のオプションとして独自のシードを入力することができます。このテキストは、言語モデルが次に何を生成するのかを促すための言語モデルのシードとして使用されます。

生成される記事の特別な部分の前に、次の特別なトークンを使用することができます。_START_ARTICLE_ は、記事の始まりを示し、_START_SECTION_ はセクションの始まりを示し、_START_PARAGRAPH_ は記事のテキストを生成します。

Predefined Seeds

Enter your own seed (Optional).

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.

Initialize session.

Generate text

As governor, the eight members of the House of Assembly, the District-Indy Pensioner

また、モデルのほかの出力を見ることも可能です。複雑さ、トークン ID、中間アクティベーション、および埋め込みがあります。

ppl_result
array([23.507736], 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)