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

HuggingFace Transformers 3.4 : モデルの概要

Posted on 11/12/2020 by Sales Information

HuggingFace Transformers 3.4 : モデルの概要 (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 11/12/2020 (3.4.0)

* 本ページは、HuggingFace Transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

  • Summary of the models

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

★ 無料セミナー開催中 ★ クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。

◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

HuggingFace Transformers : モデルの概要

これは Transformers で利用可能なモデルの概要です。元の transformer モデル に馴染みがあることを仮定しています。優しいイントロダクションのためには annotated transformer を確認してください。ここではモデル間の高位な違いにフォーカスします。それぞれのドキュメントでそれらをより詳細に調べることができます。各タイプのモデルと総ての コミュニティ・モデル のために利用可能なチェックポイントを見るために 事前訓練モデルページ を確認することもできます。

ライブラリのモデルの各一つは以下のカテゴリーの一つに分類されます :

  • 自己回帰モデル
  • オートエンコーダ・モデル
  • sequence-to-sequence モデル
  • ProphetNet
  • Retrieval-based (検索ベース) モデル

自己回帰 (= autoregressive) モデルは古典的な言語モデリング・タスク上で事前訓練されます : 次のトークンを前の総てのものを読んだときに推測します。それらは元の transformer モデルのデコーダに相当し、そして注意ヘッドが後に何があるかではなく前に何があったかだけを見ることができるようにマスクが full センテンスの上に使用されます。これらのモデルは多くのタスク上で再調整されて素晴らしい結果を獲得できますが、最も自然な応用はテキスト生成です。そのようなモデルの典型的な例は GPT です。

※ 訳注: 自己回帰モデルはある時間ステップにおけるモデル出力がそれ以前のモデル出力に依存する確率過程です。

オートエンコーディング・モデルは入力トークンを何らかの方法で corrupt させて元のセンテンスを再構築することを試みることにより事前訓練されます。それらはどのようなマスクもなしで完全な入力にアクセスするという意味で元の transformer モデルのエンコーダに対応します。それらのモデルは通常はセンテンス全体の双方向表現を構築します。それらはテキスト生成のような多くのタスク上で再調整されて素晴らしい結果を獲得できますが、それらの最も自然な応用はセンテンス分類やトークン分類です。そのようなモデルの典型的な例は BERT です。

自己回帰モデルとオートエンコーディング・モデルの唯一の違いはモデルが事前訓練される方法にあることに注意してください。従って自己回帰とオートエンコーディング・モデルの両者のために同じアーキテクチャが利用できます。与えられたモデルが両者のタイプの事前訓練のために使用されたとき、それが最初に紹介された記事に対応するカテゴリーにそれを入れます。

sequence-to-sequence モデルは、翻訳タスクのためか他のタスクを sequence-to-sequence 問題に変換することにより、元の transformer のエンコーダとデコーダの両者を利用します。それらは多くのタスクに再調整できますが、それらの最も自然な応用は翻訳、要約そして質問応答です。元の transformer モデルは (翻訳のためだけの) そのようなモデルの例で、T5 は他のタスク上で再調整できる例です。

マルチモーダル (多様)・モデルはテキスト入力を他の種類 (e.g. 画像) と混在させそして与えられたタスクに対してより固有です。

 

自己回帰モデル

前に言及したように、これらのモデルは元の transformer のデコーダ・パートに依拠していて各位置でモデルが注意ヘッドの前のトークンだけを見れるように注意マスクを利用します。

 

Original GPT

  • All モデルページ : gpt2 ; モデル文書 : gpt2
  • Improving Language Understanding by Generative Pre-Training, Alec Radford et al.
    (生成的事前訓練による言語理解の改良)

transformer アーキテクチャに基づく最初の自己回帰モデルです、Book Corpus データセット上で事前訓練されました。

このライブラリは言語モデリングとマルチタスク言語モデリング/マルチ選択分類のためのモデルのバージョンを提供します。

 

GPT-2

  • All モデルページ : gpt2 ; モデル文書 : gpt2
  • Language Models are Unsupervised Multitask Learners, Alec Radford et al.
    (言語モデルは教師なしマルチタスク学習者です)

GPT のより大きくてより良いバージョンです、WebText 上で事前訓練されました (3 karma 以上を持つ Reddit の outgoint リンクからの web ページ)。

このライブラリは言語モデリングとマルチタスク言語モデリング/マルチ選択分類のためのモデルのバージョンを提供します。

 

CTRL

  • All モデルページ : ctrl ; モデル文書 : ctrl
  • CTRL: A Conditional Transformer Language Model for Controllable Generation, Nitish Shirish Keskar et al.
    (CTRL : 制御可能な生成のための条件付き Transformer 言語モデル)

GPT モデルと同じですが、制御コードのアイデアを追加しています。テキストは prompt (empty であり得ます) とテキスト生成に影響を与えるために使用される制御コードの一つ (or 幾つか) から生成されます : wikipedia 記事、本や映画レビューのスタイルで生成します。

このライブラリは言語モデリングのためのモデルのバージョンだけを提供します。

 

Transformer-XL

  • All モデルページ : transfo-xl ; モデル文書 : transfo-xl
  • Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context, Zihang Dai et al.
    (Transformer-XL: 固定長コンテキストを越える注意深い言語モデル)

通常の GPT モデルと同じですが、2 つの連続するセグメントに対してリカレンス機構を導入します (2 つの連続する入力を持つ通常の RNN に類似しています)。このコンテキストでは、セグメントは数多くの連続するトークン (例えば 512) で、これは複数のドキュメントに渡って広がるかもしれません、そしてセグメントは順番にモデルに供給されます。

基本的には、前のセグメントの隠れ状態は attention スコアを計算するために現在の入力に結合されます。これはモデルに現在のセグメントに加えて前のセグメント内の情報に注意を払うことを許容します。マルチ attention 層をスタックすることにより、受容野 (= receptive field) は複数の前のセグメントに増加できます。

これは位置埋め込みを位置相対的 (= relative) 埋め込みに変更します、(何故ならば通常の位置埋め込みは与えられた位置で現在の入力と現在の隠れ状態の同じ結果を与えるからです) そして attention スコアが計算される方法で何某かの調整を行なう必要があります。

このライブラリは言語モデリングのためのモデルのバージョンだけを提供します。

 

Reformer

  • All モデルページ : reformer ; モデル文書 : reformer
  • Reformer: The Efficient Transformer, Nikita Kitaev et al .
    (Reformer : 効率的な Transformer)

メモリ使用量と計算時間を削減するために多くのトリックを持つ自己回帰 transformer モデルです。これらのトリックは以下を含みます :

  • axial (軸の) 位置エンコーディング を使用します (より詳細は下を見てください)。それは (シークエンス長が非常に大きいとき) 巨大な位置エンコーディング行列を持つことをそれをより小さい行列に (因数) 分解することにより回避する機構です。
  • 伝統的な attention を LSH (local-sensitive hashing) attention により置き換えます (より詳細は下を見てください)。それは attention 層で full 積 query-key を計算することを回避するテクニックです。
  • 各層の中間結果をストアすることを、backward パスの間にそれらを得るために reversible transformer 層を使用するか (次の層の入力から残差を減算することはそれらを与え戻します)、与えられた層内で結果のためにそれらを再計算することにより (それらをストアするよりも非効率的ですがメモリを節約します) 回避します。
  • バッチ全体上ではなく chunks により feedforward 演算を計算します。

これらのトリックで、モデルは伝統的な transformer 自己回帰モデルよりも遥かに大きなセンテンスが供給できます。

Note: このモデルはオートエンコーディング設定で非常に上手く利用できるでしょう、けれどもそのような事前訓練のためのチェックポイントはまだありません。

このライブラリは言語モデリングのためのモデルのバージョンだけを提供します。

 

XLNet

  • All モデルページ : xlnet ; モデル文書 : xlnet
  • XLNet: Generalized Autoregressive Pretraining for Language Understanding, Zhilin Yang et al.
    (XLNet: 言語理解のための一般化された自己回帰事前訓練)

XLNet は伝統的な自己回帰モデルではありませんが、その上で構築する訓練ストラテジーは利用します。それはセンテンスのトークンを並べ替えて (= permute) から、トークン n+1 を予測するために最後の n トークン(s) を使用することをモデルに許容します。これはマスクで成されますので、センテンスは実際には正しい順序でモデルに供給されますが、n+1 のために最初の n トークンをマスクする代わりに、XLNet は 1,…,シークエンス長のある与えられた並べ替え (= permutation) 内の前のトークンを隠すマスクを使用します。

XLNet はまた長期依存性を構築するために Transformer-XL と同じリカレンス機構も利用します。

このライブラリは言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

オートエンコーディング・モデル

前に言及したように、これらのモデルは元の transformer のエンコーダ・パートに依拠していてマスクは使用しませんのでモデルは注意ヘッドの総てのトークンを見ることができます。事前訓練については、ターゲットは元のセンテンスで入力はそれらの corrupted バージョンです。

 

BERT

  • All モデルページ : bert ; モデル文書 : bert
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, Jacob Devlin et al.
    (BERT: 言語理解のための深層双方向 Transformer の事前訓練)

ランダム・マスキングを使用して入力を corrupt します、より正確には、事前訓練の間、トークンの与えられたパーセンテージ (通常は 15%) が以下によりマスクされます :

  • 確率 0.8 で特別なマスクトークン
  • 確率 0.1 でマスクされた一つとは異なるランダムトークン
  • 確率 0.1 で同じトークン

モデルは元のセンテンスを予測しなければなりませんが、2 番目の目標を持ちます : 入力は 2 つのセンテンス A と B です (間には分離トークンを伴います)。確率 50% で、センテンスはコーパス内で連続的です、残りの 50% でそれらは関係ありません。モデルはセンテンスが連続的か否かを予測しなければなりません。

このライブラリは言語モデリング (伝統的 or マスク付き)、次文 (= next sentence) 予測、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

ALBERT

  • All モデルページ : albert ; モデル文書 : albert
  • ALBERT: A Lite BERT for Self-supervised Learning of Language Representations, Zhenzhong Lan et al.
    (ALBERT : 言語表現の自己教師あり学習のための Lite BERT)

BERT と同じですが 2, 3 の捻りを伴います :

  • 埋め込みサイズ E は理にかなった隠れサイズ H とは異なります、何故ならば埋め込みはコンテキスト独立である (一つの埋め込みベクトルは一つのトークンを表します) 一方で、隠れ状態はコンテキスト依存である (一つの隠れ状態はトークンのシークエンスを表します) からです、従って H >> E を持つことはより論理的です。また、埋め込み行列は巨大です、何故ならばそれは V x E (V は vocab サイズ) であるからです。E < H であれば、それはより少ないパラメータを持ちます。
  • 層は (メモリを節約するために) パラメータを共有するグループに分割されます。
  • 次文予測はセンテンス順序予測に置き換えられます : 入力では、2 つのセンテンス A と B を持ち (それらは連続的です) A に続いて B か B に続いて A のいずれかを供給します。モデルはそれらがスワップされているか否かを予測しなければなりません。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

RoBERTa

  • All モデルページ : roberta ; モデル文書 : roberta
  • RoBERTa: A Robustly Optimized BERT Pretraining Approach, Yinhan Liu et al.
    (RoBERTa: 堅固に最適化された BERT 事前訓練アプローチ)

BERT と同じですが以下のより良い事前訓練トリックを持ちます :

  • 動的マスキング : トークンは各エポックで異なってマスクされます、その一方で BERT はそれを一度限り行ないます。
  • no NSP (次文予測) 損失そして単に 2 センテンスを一緒に置く代わりに、512 トークンに達するまで連続するテキストのチャンクを一緒にまとめます (従ってセンテンスは幾つかのドキュメントに渡るかもしれない順番どおりです)。
  • より巨大なバッチで訓練する
  • サブユニットとして文字ではなくバイトを持つ BPE を使用します (ユニコード文字ゆえに)。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

DistilBERT

  • All モデルページ : distilbert ; モデル文書 : distilbert
  • DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter, Victor Sanh et al.
    (DistilBERT, BERT の蒸留されたバージョン: より小さく、高速で、低コストでそして軽い)

BERT と同じですがより小さいです。事前訓練された BERT モデルの蒸留により訓練されます、より大きいモデルと同じ確率を予測するために訓練されたことを意味します。実際の目標は以下の組合せです :

  • 教師モデルと同じ確率を見つける
  • マスクされたトークンを正しく予測する (しかし次文目的ではない)
  • 生徒と教師モデルの隠れ状態の間の cos 類似度

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類と質問応答のためのモデルのバージョンを提供します。

 

XLM

  • All モデルページ : xlm ; モデル文書 : xlm
  • Cross-lingual Language Model Pretraining, Guillaume Lample and Alexis Conneau
    (交差-lingual 言語モデル事前訓練)

幾つかの言語上で訓練された transformer モデルです。このモデルのための 3 つの異なるタイプの訓練がありそしてライブラリはそれらの総てのためのチェックポイントを提供します :

  • 因果関係的 (= Causal) 言語モデリング (CLM)、これは伝統的自己回帰訓練です (従ってこのモデルは前のセクションにも入れるかもしれません)。各訓練サンプルのために言語の一つが選択され、そしてモデル入力は 256 トークンのセンテンスで、それらの言語の一つで幾つかのドキュメントに渡るかもしれません。
  • マスク付き言語モデリング (MLM)、これは RoBERTa のようなものです。各訓練サンプルのために言語の一つが選択され、そしてモデル入力は 256 トークンのセンテンスで、トークンの動的マスクを伴い、それらの言語の一つで幾つかのドキュメントに渡るかもしれません。
  • MLM と翻訳言語モデリング (TLM) の組合せ。これはランダム・マスキングを伴い、 2 つの異なる言語のセンテンスを連結することから構成されます。マスクされたトークンの一つを予測するため、モデルは言語 1 の周囲のコンテキストと言語 2 で与えられるコンテキストの両者を利用できます。

チェックポイントはそれらの名前で clm, mlm or mlm-tlm を持つことにより事前訓練のためにどの方法が利用されたかを参照します。位置埋め込みの上にモデルは言語埋め込みを持ちます。MLM/CLM を使用して訓練するとき、これは使用される言語の indication を、そして MLM+TLM を使用して訓練するとき、各パートのために使用される言語の indication をモデルに与えます。

このライブラリは言語モデリング、トークン分類、センテンス分類と質問応答のためのモデルのバージョンを提供します。

 

XLM-RoBERTa

  • All モデルページ : xml-roberta ; モデル文書 : xml-roberta
  • Unsupervised Cross-lingual Representation Learning at Scale, Alexis Conneau et al.
    (大規模な教師なし交差-lingual 表現学習)

XLM アプローチ上で RoBERTa トリックを利用しますが、翻訳言語モデリング objective は利用しません。それは一つの言語から来るセンテンス上のマスク付き言語モデリングだけを使用します。けれども、モデルはより多くの言語 (100) 上で訓練されて言語埋め込みは使用しませんので、入力言語を自身で検出することができます。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

FlauBERT

  • All モデルページ : flaubert ; モデル文書 : flaubert
  • FlauBERT: Unsupervised Language Model Pre-training for French, Hang Le et al.
    (FlauBERT: フランス語のための教師なし言語モデル事前訓練)

RoBERTa のように、センテンス順序予測はありません (従って単に MLB objective 上で訓練されます)。

このライブラリはマスク付き言語モデリングとセンテンス分類のためのモデルのバージョンを提供します。

 

ELECTRA

  • All モデルページ : electra ; モデル文書 : electra
  • ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators, Kevin Clark et al.
    (ELECTRA: Generator よりも Discriminator としての事前訓練テキストエンコーダ)

ELECTRA はもう一つの別の (小さい) マスク付き言語モデルの使用で訓練される transformer モデルです。入力はその言語モデルにより corrupt されます、それはランダムにマスクされた入力テキストを取りそしてテキストを出力します、その (出力) テキストでは ELECTRA はどのトークンが元のものでありどれが置き換えられたかを予測しなければなりません。GAN 訓練のためのように、その小さい言語モデルは数ステップの間訓練されてから (しかし目的としての元のテキストで、伝統的な GAN 設定でのように ELECTRA モデルを騙したりはしません)、ELECTRA モデルが数ステップの間訓練されます。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類のためのモデルのバージョンを提供します。

 

Funnel Transformer

  • All モデルページ : funnel ; モデル文書 : funnel
  • Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing, Zihang Dai et al.
    (Funnel-Transformer: 効率的な言語処理のためにシーケンシャルな余剰 (= Redundancy) をフィルタして除去する)

Funnel Transformer は pooling を使用する transformer モデルで、少し ResNet モデルのようです : 層はブロック内でグループ分けされ、そして (最初の一つを除いて) 各ブロックの最初で、隠れ状態はシークエンス次元内でプーリングされます。この方法で、それらの長さは 2 で除算され、これは次の隠れ状態の計算をスピードアップします。総ての事前訓練モデルは 3 つのブロックを持ち、これは最後の隠れ状態は元のシークエンス長の 4 分の 1 のシークエンス長を持つことを意味します。

分類のようなタスクについては、これは問題ではありませんが、マスク付き言語モデリングやトークン分類のようなタスクについては、元の入力と同じシークエンス長を持つ隠れ状態を必要とします。それらの場合には、最後の隠れ状態は入力センテンス長にアップサンプリングされて 2 つの追加層を通り抜けます。それが各チェックポイントの 2 つのバージョンがある理由です。“-base” でサフィックスされるバージョンは 3 つのブロックだけを含む一方で、そのサフィックスがないバージョンは 3 つのブロックとその追加層を持つアップサンプリング・ヘッドを含みます。

利用可能な事前訓練モデルは ELECTRA と同じ事前訓練 objective を使用しています。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

Longformer

  • All モデルページ : longformer ; モデル文書 : longformer
  • Longformer: The Long-Document Transformer, Iz Beltagy et al.
    (Longformer: 長いドキュメント Transformer)

高速にするために attention 行列をスパース行列に置き換えた transformer モデルです。しばしば、ローカル・コンテキスト (e.g. 左と右の 2 つのトークンは何でしょう?) は与えられたトークンに対してアクションするために十分です。ある事前選択された入力トークンには依然として global attention が与えられますが、attention 行列はよりパラメータが少ない方法を持ち (訳注: 原文: the attention matrix has way less parameters)、スピードアップという結果になります。より多くの情報については ローカル attention セクション を見てください。

それはさもなければ RoBERTa と同じ方法で事前訓練されます。

Note: このモデルは自己回帰設定で非常に上手く利用できるでしょう、けれどもそのような事前訓練のためのチェックポイントはまだありません。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

Sequence-to-sequence モデル

前に言及したように、これらのモデルは元の transformer のエンコーダとデコーダの両者を保持しています。

 

BART

  • All モデルページ : bart ; モデル文書 : bart
  • BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension, Mike Lewis et al.
    (BART: 自然言語生成、翻訳と理解のためのノイズ除去する Sequence-to-Sequence 事前訓練)

エンコーダとデコーダを持つ sequence-to-sequence モデル。エンコーダはトークンの corrupted バージョンが供給され、デコーダは元のトークンが供給されます (しかし通常の transformer デコーダのように先の単語を隠すマスクを持ちます)。エンコーダについては、事前訓練タスク上、以下の変換の組合せが適用されます :

  • ランダムにトークンをマスクします (BERT のように)
  • ランダムにトークンを削除します
  • 単一のマスクトークンで k トークンのスパンをマスクします (0 トークンのスパンはマスクトークンの挿入です)
  • センテンスを並べ替える (= permute)
  • 特定のトークンで開始されるようにドキュメントを rotate します

このライブラリは条件付き生成とシークエンス分類ためのモデルのバージョンを提供します。

 

Pegasus

  • All モデルページ : pegasus ; モデル文書 : pegasus
  • PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization, Jingqing Zhang, Yao Zhao, Mohammad Saleh and Peter J. Liu on Dec 18, 2019.
    (生成型要約のための抽出された Gap-センテンスによる事前訓練)

BART と同じエンコーダ・デコーダモデルを持つ sequence-to-sequence モデルです。Pegasus は 2 つの自己教師あり objective 関数上で同時に事前訓練されます : マスク付き言語モデリング (MLM) と Gap センテンス生成 (GSG, Gap Sentence Generation) と呼称される、新規の要約固有の事前訓練 objective です。

  • MLM: エンコーダ入力トークンはマスクトークンによりランダムに置き換えられてエンコーダにより予測されなければなりません (BERT のように)。
  • GSG: エンコーダ入力センテンス全体が 2 番目のマスクトークンにより置き換えられてデコーダに供給されますが、それは通常の自己回帰 transformer デコーダのように先の (= future) 単語を隠すために causal マスクを持ちます。

BART と対称的に、Pegasus の事前訓練タスクは意図的に要約に類似しています : 重要なセンテンスはマスクされて残りのセンテンスからの一つの出力センテンスとして一緒に生成されます、抽出型要約に類似しています。

このライブラリは要約のために使用されるべき条件付き生成のためのモデルのバージョンを提供します。

 

MarianMT

  • All モデルページ : marian ; モデル文書 : marian
  • Marian: Fast Neural Machine Translation in C++, Marcin Junczys-Dowmunt et al.
    (Marian: C++ の高速なニューラル機械翻訳)

翻訳モデルのためのフレームワークです、BART と同じモデルを使用しています。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

 

T5

  • All モデルページ : t5 ; モデル文書 : t5
  • Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer, Colin Raffel et al.
    (統一されたテキスト-to-テキスト Transformer による転移学習の限界の探求)

伝統的な transformer モデルを使用します (位置埋め込みで僅かな変更を伴います、これは各層で学習されます)。総ての NLP タスク上で動作できるために、それは特定のプレフィックスを使用することによりそれらをテキスト-to-テキスト問題に変換します : “summarize: ”, “question: ”, “translate English to German: ” 等々。

事前訓練は教師ありと自己教師あり訓練の両者を含みます。教師あり訓練は GLUE と SuperGLUE ベンチマークにより提供されるダウンストリーム・タスク上で処理されます (それらを上で説明されたように text-to-text タスクに変換します)。

自己教師あり訓練はトークンの 15% をランダムに除去してそれらを個別の sentinel (見張り) トークンで置き換えることにより (もし幾つかの連続するトークンが除去のためにマークされる場合、グループ全体が単一の sentinel トークンで置き換えられます)、 corrupted トークンを利用します。エンコーダの入力は corrupted センテンスで、デコーダの入力は元のセンテンスでそれからターゲットは sentinel トークンで範囲が定められた落とされた (= dropped out) トークンです。

例えば、センテンス “My dog is very cute .” を持ち、そしてトークン “dog”, “is” と “cute” を取り除くことを決めた場合、エンコーダ入力は “My <x> very <y> .” となりそしてターゲット入力は “<x> dog is <y> cute .<z>” になります。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

 

MBart

  • All モデルページ : mbart ; モデル文書 : mbart
  • Multilingual Denoising Pre-training for Neural Machine Translation by Yinhan Liu, Jiatao Gu, Naman Goyal, Xian Li, Sergey Edunov Marjan Ghazvininejad, Mike Lewis, Luke Zettlemoyer.
    (ニューラル機械翻訳のための多言語ノイズ除去事前訓練)

モデル・アーキテクチャと事前訓練 objective は BART と同じですが、MBart は 25 言語上で訓練されてそして教師ありと教師なし機械翻訳が対象とされています。多言語の full テキストをノイズ除去することによる完全な sequence-to-sequence モデルを事前訓練するための最初の方法の一つです。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

mbart-large-en-ro チェックポイント は英語 -> ルーマニア語翻訳のために利用できます。

mbart-large-cc25 チェックポイントは `examples/seq2seq/` のコードを使用して、他の翻訳と要約タスクのために再調整できますが、再調整なしではそれほど有用ではありません。

 

ProphetNet

  • All モデルページ : prophetnet ; モデル文書 : prophetnet
  • ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training, by Yu Yan, Weizhen Qi, Yeyun Gong, Dayiheng Liu, Nan Duan, Jiusheng Chen, Ruofei Zhang, Ming Zhou.
    (ProphetNet: Sequence-to-Sequence 事前訓練のために Future N-gram を予測する)

ProphetNet は future n-gram 予測と呼ばれる、新規の sequence-to-sequence 事前訓練 objective を導入します。future n-gram 予測では、各時間ステップで前のコンテキスト・トークンに基づいてモデルは (単に単一の次のトークンの代わりに) 次の n トークンを同時に予測します。future n-gram 予測はモデルが future トークンのために計画して強い局所的な相関性上で overfitting を回避することを促進します。モデル・アーキテクチャは元の Transformer に基づきますが、デコーダの「標準的な」self-attention 機構を主要な self-attention 機構と self と n-stream (predict) self-attention 機構と置き換えます。

このライブラリは条件付き生成のためのモデルの事前訓練バージョンと要約のための再調整バージョンを提供します。

 

XLM-ProphetNet

  • All モデルページ : xprophetnet ; モデル文書 : xprophetnet
  • ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training, by Yu Yan, Weizhen Qi, Yeyun Gong, Dayiheng Liu, Nan Duan, Jiusheng Chen, Ruofei Zhang, Ming Zhou.
    (ProphetNet: Sequence-to-Sequence 事前訓練のために Future N-gram を予測する)

XLM-ProphetNet のモデル・アーキテクチャと事前訓練 objective は ProphetNet と同じですが、XLM-ProphetNet は交差 lingual データセット XGLUE 上で事前訓練されました。

このライブラリは多言語条件付き生成のためのこのモデルの事前訓練バージョンとヘッドライン生成と質問応答のための再調整バージョンをそれぞれ提供します。

 

マルチモーダル・モデル

ライブラリには一つのマルチモーダル・モデルがあります、これは他のもののような自己教師あり流儀での事前訓練はされません。

 

MMBT

  • Supervised Multimodal Bitransformers for Classifying Images and Text, Douwe Kiela et al.
    (画像とテキストのための教師ありマルチモーダル Bitransformers)

マルチモーダル設定では transformers モデルが使用され、予測を行なうためにテキストと画像を連結します。transformer モデルは入力としてトークン化されたテキストの埋め込みと画像上で事前訓練された resnet の (resnet の最後の多くの特徴から transformer の隠れ状態次元へ通り抜けるための) 線形層を通り抜けた (最後のプーリング層の後の) 最後の活性を取ります。

異なる入力は連結されて、そして位置埋め込みの上に入力ベクトルのどのパートがテキストに対応してどれが画像に対応するかをモデルに知らせるためにセグメント埋め込みが追加されます。

事前訓練モデルは分類のためだけに動作します。

 

Retrieval-based (検索ベース) モデル

幾つかのモデルは、例えばオープンドメイン質問応答のために (事前) 訓練と推論の間にドキュメント検索を利用します。

 

DPR

  • All モデルページ : dpr ; モデル文書 : dpr
  • Dense Passage Retrieval for Open-Domain Question Answering, Vladimir Karpukhin et al.
    (オープンドメイン質問応答のための Dense Passage Retrieval)

Dense Passage Retrieval (DPR) – 最先端のオープンドメイン質問応答研究のためのツールとモデルのセットです。

DPR は 3 つのモデルにあります :

  • 質問エンコーダ: 質問をベクトルとしてエンコードする
  • コンテキスト・エンコーダ: コンテキストをベクトルとしてエンコードする
  • リーダー (= Reader): 関連 (= relevance) スコア (推論された span が実際に質問に答える場合に高い) と一緒に、検索されたコンテキスト内から質問の答えを抽出する。

DPR のパイプラインはある質問が与えられたときに top k コンテキストを見つけるために検索ステップを使用し、それからそれは回答を得るために質問と検索されたドキュメントとともにリーダーを呼び出します。

 

RAG

  • All モデルページ : rag ; モデル文書 : rag
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Patrick Lewis, Ethan Perez, Aleksandara Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela
    (Knowledge-Intensive NLP タスクのための Retrieval-Augmented 生成)

Retrieval-augmented 生成 (“RAG”) モデルは事前訓練 dense retrieval (DPR) と Seq2Seq モデルのパワーを結合しています。RAG モデルは docs を取得し、それらを seq2seq モデルに渡してから、出力を生成するために周辺化します。ダウンロードストリーム・タスクに適応するために retrieval と生成の両者を許容するために、retriever と seq2seq モジュールは事前訓練モデルから初期化され、同時に再調整されます。

2 つのモデル RAG-Token and RAG-Sequence は生成のために利用可能です。

 

以上






クラスキャット

最近の投稿

  • LangGraph Platform : Get started : クイックスタート
  • LangGraph Platform : 概要
  • LangGraph : Prebuilt エージェント : ユーザインターフェイス
  • LangGraph : Prebuilt エージェント : 配備
  • LangGraph : Prebuilt エージェント : マルチエージェント

タグ

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 (20) 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)
2020年11月
月 火 水 木 金 土 日
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« 10月   12月 »
© 2025 ClasCat® AI Research | Powered by Minimalist Blog WordPress Theme