Skip to content

ClasCat® AI Research

クラスキャット – 生成 AI, AI エージェント, MCP

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

TensorFlow : Tensor2Tensor

Posted on 07/11/2018 by Sales Information

TensorFlow : Tensor2Tensor (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 07/11/2018 (v1.6.6)

* Tensor2Tensor は 2017 年 6 月に v1.0 が公開されましたが、1 年が経過して現在では v1.6.6 まで更新されていますので、ドキュメントを再翻訳します。
* 本ページは、github の tensorflow/tensor2tensor の README.md – “Tensor2Tensor” を翻訳した上で適宜、補足説明したものです:

  • https://github.com/tensorflow/tensor2tensor/blob/master/README.md

* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

本文

Tensor2Tensor, あるいは短縮して T2T は、深層学習をより利用しやすくて ML 研究を加速化するために設計された深層学習モデルとデータセットのライブラリです。T2T は Google Brain チームとユーザ・コミュニティ内の研究者と技術者により実際に使用されて保守されています。

 

提案されるデータセットとモデル

以下に、(適切な問題上で適切なモデルを訓練するとき) T2T で解決できる多くのタスクをリストアップします。問題とモデルを与えて (私達のセットアップで) 上手く動作することが分かっているハイパーパラメータの設定を提案します。私達は通常は Cloud TPU か 8-GPU マシン上で実行します ; 異なるセットアップ上で実行する場合にはハイパーパラメータを変更する必要があるかもしれません。

 

画像分類

画像分類については、多くの標準的なデータセットを持ちます :

  • ImageNet (巨大データセット): –problem=image_imagenet, またはリスケールされたバージョンの一つ (image_imagenet224, image_imagenet64, image_imagenet32)
  • CIFAR-10: –problem=image_cifar10 (またはデータ増強を無効にするために –problem=image_cifar10_plain)
  • CIFAR-100: –problem=image_cifar100
  • MNIST: –problem=image_mnist

ImageNet については、ResNet か Xception を使用することを提案します、i.e. use –model=resnet –hparams_set=resnet_50 または –model=xception –hparams_set=xception_base です。Resnet は ImageNet 上で 76% top-1 精度以上に到達するはずです。

CIFAR と MNIST については、shake-shake モデルを試すことを提案します: –model=shake_shake –hparams_set=shakeshake_big です。–train_steps=700000 で訓練されたこの設定は CIFAR-10 上で 97% 近い精度を生成するはずです。

 

言語モデリング

言語モデリングについては、T2T でこれらのデータセットを持ちます :

  • PTB (小さいデータセット): 単語レベル・モデリングのための –problem=languagemodel_ptb10k と文字レベル・モデリングのための –problem=languagemodel_ptb_characters
  • LM1B (10 億単語の語彙): 部分語レベル・モデリングのための –problem=languagemodel_lm1b32k と文字レベル・モデリングのための –problem=languagemodel_lm1b_characters

このタスク上では –model=transformer で始め、そして PTB のために –hparams_set=transformer_small を使用して LM1B のために –hparams_set=transformer_base を使用することを提案します。

 

センチメント解析

センテンスのセンチメントを認識するタスクのためには、次を使用してください :

  • IMDB データセット: –problem=sentiment_imdb

ここでは –model=transformer_encoder を使用することを提案します、そしてそれは小さいデータセットですので、–hparams_set=transformer_tiny を試して少ないステップ (e.g., –train_steps=2000) のために訓練してください。

 

スピーチ認識

スピーチ-to-テキストのためには、T2T でこれらのデータセットを持ちます :

  • Librispeech (US English): セット全体のための –problem=librispeech そしてより小さいけれども素晴らしくフィルタされたパートのための –problem=librispeech_clean
  • Mozilla Common Voice (US English): セット全体のための –problem=common_voice そして品質チェックされたサブセットのための –problem=common_voice_clean

 

要約

より長いテキストをより短いテキストに要約するためには、これらのデータセットを持ちます :

  • 数センテンスに要約された CNN/DailyMail 記事: –problem=summarize_cnn_dailymail32k

このタスクのためには –model=transformer と –hparams_set=transformer_prepend を使用することを提案します。これは良い ROUGE スコアを生成します。

 

翻訳

T2T には多くの翻訳データセットがあります :

  • 英独: –problem=translate_ende_wmt32k
  • 英仏: –problem=translate_enfr_wmt32k
  • 英語-チェコ語: –problem=translate_encs_wmt32k
  • 英中: –problem=translate_enzh_wmt32k
  • 英越 (英語-ベトナム語): –problem=translate_envi_iwslt32k

problem 名に _rev を付加することで他の方向の翻訳を得ることができます、e.g., 独英のためには –problem=translate_ende_wmt32k_rev を使用します (t2t-datagen –problem=translate_ende_wmt32k で元データをダウンロードする必要が依然としてあることに注意してください)。

総ての翻訳問題に対して、Transformer モデルを試すことを提案します : –model=transformer。まずは基本設定 –hparams_set=transformer_base を試すのがベストです。8 GPU 上で 300K ステップ訓練するとき、英独データセット上でこれはおよそ 28 の BLEU スコアに達するはずで、これは最先端に近いです。シングル GPU 上で訓練する場合には、–hparams_set=transformer_base_single_gpu 設定を試してください。非常に良い結果やより巨大なデータセット (e.g., 英仏) のためには、–hparams_set=transformer_big で大きなモデルを試してください。

 

基本

ウォークスルー

WMT データ上で Attention Is All You Need からの Transformer モデルを使用して良い英独翻訳モデルを訓練するウォークスルーがここにあります :

pip install tensor2tensor

# See what problems, models, and hyperparameter sets are available.
# You can easily swap between them (and add new ones).
t2t-trainer --registry_help

PROBLEM=translate_ende_wmt32k
MODEL=transformer
HPARAMS=transformer_base_single_gpu

DATA_DIR=$HOME/t2t_data
TMP_DIR=/tmp/t2t_datagen
TRAIN_DIR=$HOME/t2t_train/$PROBLEM/$MODEL-$HPARAMS

mkdir -p $DATA_DIR $TMP_DIR $TRAIN_DIR

# Generate data
t2t-datagen \
  --data_dir=$DATA_DIR \
  --tmp_dir=$TMP_DIR \
  --problem=$PROBLEM

# Train
# *  If you run out of memory, add --hparams='batch_size=1024'.
t2t-trainer \
  --data_dir=$DATA_DIR \
  --problem=$PROBLEM \
  --model=$MODEL \
  --hparams_set=$HPARAMS \
  --output_dir=$TRAIN_DIR

# Decode

DECODE_FILE=$DATA_DIR/decode_this.txt
echo "Hello world" >> $DECODE_FILE
echo "Goodbye world" >> $DECODE_FILE
echo -e 'Hallo Welt\nAuf Wiedersehen Welt' > ref-translation.de

BEAM_SIZE=4
ALPHA=0.6

t2t-decoder \
  --data_dir=$DATA_DIR \
  --problem=$PROBLEM \
  --model=$MODEL \
  --hparams_set=$HPARAMS \
  --output_dir=$TRAIN_DIR \
  --decode_hparams="beam_size=$BEAM_SIZE,alpha=$ALPHA" \
  --decode_from_file=$DECODE_FILE \
  --decode_to_file=translation.en

# See the translations
cat translation.en

# Evaluate the BLEU score
# Note: Report this BLEU score in papers, not the internal approx_bleu metric.
t2t-bleu --translation=translation.en --reference=ref-translation.de

 

インストール

# Assumes tensorflow or tensorflow-gpu installed
pip install tensor2tensor

# Installs with tensorflow-gpu requirement
pip install tensor2tensor[tensorflow_gpu]

# Installs with tensorflow (cpu) requirement
pip install tensor2tensor[tensorflow]

バイナリ :

# Data generator
t2t-datagen

# Trainer
t2t-trainer --registry_help

ライブラリ使用方法 :

python -c "from tensor2tensor.models.transformer import Transformer"

 

特徴

  • 多くの最先端で基準となるモデルが組み込まれていて新しいモデルは簡単に追加できます (issue をオープンするかプルリクエストしてください!)
  • 様式 – テキスト、音声、画像 – に渡る多くのデータセットが生成と使用のために利用可能で、新しいものも簡単に追加できます。
  • モデルは任意のデータセットと入力モードで使用できます (あるいは複数でさえも) ; 総ての様式特定の処理 (e.g. テキスト・トークンのための埋め込み検索) は Modality オブジェクトで成され、これはデータセット/タスク仕様で特徴毎に指定されます。
  • マルチ GPU マシンと同期 (1 マスター、多数ワーカー) と非同期 (パラメータ・サーバを通して同期する独立的なワーカー) 分散訓練 のサポート。
  • データ生成スクリプト t2t-datagen と訓練スクリプト t2t-trainer でコマンドライン・フラグによるデータセットとモデル内の容易なスワップ。
  • Google Cloud ML と Cloud TPUs 上の訓練。

 

T2T 概要

データセット

Datasets は tensorflow.Example protocol buffers で TFRecord ファイル上に総て標準化されています。総てのデータセットは データ generator で登録されて生成され、多くの一般的なシークエンス・データセットは生成と使用のために既に利用可能です。

 

問題と様式

Problems はデータセットとタスクのための訓練時のハイパーパラメータを主として入力と出力様式 (e.g. シンボル、画像、音声、ラベル) と (利用可能であれば) 語彙を設定することにより定義します。総ての problems は problem_hparams.py で定義されるか、@registry.register_problem で登録されます (総ての利用可能な problems のリストを見るためには t2t-datagen を実行してください)。Modalities (様式) は modality.py で定義され、models が様式独立な tensor を扱えるように入力と出力データ型を抽象化します。

 

モデル

T2TModel は、入出力様式やタスク独立に、中心的な tensor-to-tensor 変換を定義します。Models は密 tensor を取って密 tensor を生成します、それから最後のステップでタスク依存の様式で変換されるかもしれません (e.g. クラスに渡る softmax のためのロジットを生成するために最後の線形変換を通して供給等)。総てのモデルは models サブパッケージ でインポートされ、(t2t_model.py で定義された) T2TModel から継承されて @registry.register_model で登録されます。

 

ハイパーパラメータ・セット

Hyperparameter セット は @registry.register_hparams のコードで定義されて登録され、tf.contrib.training.HParams オブジェクトでエンコードされます。HParams は problem 仕様と model の両者で利用可能です。hyperparameter の基本セットは common_hparams.py で定義されて hyperparameter セット関数は他の hyperparameter セット関数を構成できます。

 

トレーナー

trainer バイナリは訓練、評価、そして推論のための主要なエントリポイントです。ユーザは –model, –problem と –hparams_set フラグを使用して problems, models, そして hyperparameter セット間で容易に切り替えることができます。特定の hyperparameters は –hparams フラグでオーバーライド可能です。–schedule と関連フラグはローカルと分散訓練/評価を制御します (distributed training ドキュメント)。

 

貴方自身のコンポーネントを追加する

T2T のコンポーネントは、新しいものを容易に追加してコマンドライン・フラグでそれらの中で容易に交換することを可能にする、中心的な登録メカニズムを使用して登録されます。t2t-trainer で –t2t_usr_dir フラグを指定することにより T2T コードベースを編集することなしに貴方自身のコンポーネントを追加することができます。

models, hyperparameter sets, modalities と problems に対してそのようにできます。サンプルのユーザ・ディレクトリについては example_usr_dir を見てください。

 

データセットを追加する

新しいデータセットを追加するためには、Problem をサブクラス化してそれを @registry.register_problem で登録してください。サンプルのためには TranslateEndeWmt8k を見てください。

また data generators README も見てください。

 

ペーパー

(訳注: citation 表記については 原文 を確認してください。)

Tensor2Tensor は多くの最先端技術のモデルと深層学習メソッドを開発するために使用されました。ここでは、最初から T2T に基づいて、T2T を紹介する Google Research ブログ記事 で説明されている方法でその特徴とアーキテクチャから恩恵を受けた幾つかのペーパーをリストアップします。

  • Attention Is All You Need
  • Depthwise Separable Convolutions for Neural Machine Translation
  • One Model To Learn Them All
  • Discrete Autoencoders for Sequence Models
  • Generating Wikipedia by Summarizing Long Sequences
  • Image Transformer
  • Training Tips for the Transformer Model
  • Self-Attention with Relative Position Representations
  • Fast Decoding in Sequence Models using Discrete Latent Variables
  • Adafactor: Adaptive Learning Rates with Sublinear Memory Cost

Note:これは公式 Google プロダクトではありません。

 
以上






クラスキャット

最近の投稿

  • LangGraph 0.5 on Colab : Get started : Tavily Web 検索ツールの追加
  • LangGraph 0.5 on Colab : Get started : カスタム・ワークフローの構築
  • LangGraph 0.5 on Colab : Get started : クイックスタート
  • LangGraph on Colab : SQL エージェントの構築
  • LangGraph on Colab : マルチエージェント・スーパーバイザー

タグ

AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) DGL 0.5 (14) Eager Execution (7) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.6 (7) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangGraph (24) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Agents SDK (8) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) OpenAI ヘルプ (8) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Deploy (8) TensorFlow Get Started (7) TensorFlow Graphics (7) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2018年7月
月 火 水 木 金 土 日
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« 6月   8月 »
© 2025 ClasCat® AI Research | Powered by Minimalist Blog WordPress Theme