GPT-4 の 32k 入力ボックスではまだ不十分ですか? Unlimiformer はコンテキストの長さを無限の長さに引き伸ばします
Transformer は、現在最も強力な seq2seq アーキテクチャです。事前トレーニングされたトランスフォーマーには通常、512 (例: BERT) または 1024 (例: BART) トークンのコンテキスト ウィンドウがあり、これは現在の多くのテキスト要約データセット (XSum、CNN/DM) にとって十分な長さです。
ただし、16384 は、本の要約 (Krys-´cinski et al., 2021) や物語などの長い物語を含むタスクの生成に必要なコンテキストの長さの上限ではありません。質疑応答 (Kociskýet al., 2018)、通常は 100,000 を超えるトークンを入力します。 Wikipedia の記事から生成されたチャレンジ セット (Liu* et al.、2018) には、500,000 を超えるトークンの入力が含まれています。生成的質問応答のオープンドメイン タスクでは、Wikipedia 上の存命の著者全員による記事の集合的なプロパティに関する質問に答えるなど、より大きな入力から情報を合成できます。図 1 は、いくつかの一般的な要約データセットと Q&A データセットのサイズを一般的なコンテキスト ウィンドウの長さに対してプロットしたもので、最も長い入力は Longformer のコンテキスト ウィンドウの 34 倍以上の長さです。
これらの非常に長い入力の場合、ネイティブのアテンション メカニズムは 2 次の複雑さがあるため、バニラ トランスフォーマーはスケーリングできません。長い入力トランスフォーマーは、標準トランスフォーマーよりも効率的ではありますが、依然として大量の計算リソースを必要とし、コンテキスト ウィンドウのサイズが大きくなるにつれて増加します。さらに、コンテキスト ウィンドウを増やすには、新しいコンテキスト ウィンドウ サイズでモデルを最初から再トレーニングする必要があり、計算コストと環境コストがかかります。
記事「Unlimiformer: 無制限の長さの入力を備えた長距離変圧器」で、カーネギー メロン大学の研究者が Unlimiformer を紹介しました。これは、テスト時に無限長の入力を受け入れるために事前トレーニングされた言語モデルを拡張する検索ベースのアプローチです。
論文リンク: https://arxiv.org/pdf/2305.01625v1.pdf
Unlimiformer は既存のエンコーダー/デコーダー トランスフォーマーに挿入でき、無制限の長さの入力を処理できます。長い入力シーケンスを指定すると、Unlimiformer はすべての入力トークンの非表示状態に基づいてデータ ストアを構築できます。デコーダの標準クロスアテンション メカニズムは、データ ストアにクエリを実行し、上位 k 個の入力トークンに焦点を当てることができます。データ ストアは GPU または CPU メモリに保存でき、サブリニアにクエリを実行できます。
Unlimiformer はトレーニングされたモデルに直接適用でき、追加のトレーニングなしで既存のチェックポイントを改善できます。微調整を行うと、Unlimiformer のパフォーマンスがさらに向上します。この論文では、Unlimiformer が重みの追加や再トレーニングを行わずに、BART (Lewis et al., 2020a) や PRIMERA (Xiao et al., 2022) などの複数の基本モデルに適用できることを実証します。さまざまな長距離 seq2seq データセットにおいて、Unlimiformer は、Longformer (Beltagy et al., 2020b)、SLED (Ivgi et al., 2022)、および Memorizing Transformers (Wu et al., 2021) などの長距離 Transformer よりも強力であるだけではありません。 ) これらのデータ セットではパフォーマンスが向上しており、この記事では、Unlimiform を Longformer エンコーダー モデルの上に適用してさらに改善できることもわかりました。
これまでにない技術原理
エンコーダ コンテキスト ウィンドウのサイズが固定されているため、Transformer の最大入力長は制限されています。ただし、デコード中に、異なる情報が関連する可能性があり、さらに、異なる注意が異なる種類の情報に焦点を当てる可能性があります (Clark et al.、2019)。したがって、固定されたコンテキスト ウィンドウでは、あまり注目されていないトークンに労力が無駄になる可能性があります。
各デコード ステップで、Unlimiformer の各アテンション ヘッドはすべての入力から個別のコンテキスト ウィンドウを選択します。これは、デコーダに Unlimiformer ルックアップを挿入することで実現されます。クロスアテンション モジュールに入る前に、モデルは外部データ ストアで k 最近傍 (kNN) 検索を実行し、各デコーダ層で各アテンション ヘッドのセットを選択します。参加するためのトークン。 ###############コーディング######### モデルのコンテキスト ウィンドウの長さよりも長い入力シーケンスをエンコードするために、この記事では、Ivgi et al. (2022) (Ivgi et al., 2022) の方法に従って入力の重複ブロックをエンコードします。エンコード プロセスの前後に十分なコンテキストを確保するために、各チャンクの出力の中央部分のみが保持されます。最後に、この記事では Faiss (Johnson et al., 2019) などのライブラリを使用して、データ ストア内のエンコードされた入力のインデックスを作成します (Johnson et al., 2019)。 強化されたクロスアテンション メカニズムの取得 標準のクロスアテンション メカニズムでは、トランスフォーマーのデコーダがエンコーダーの最終的な隠し状態では、エンコーダーは通常、入力を切り捨て、入力シーケンスの最初の k 個のトークンのみをエンコードします。 この記事では、入力の最初の k 個のトークンだけに焦点を当てているのではなく、クロス アテンション ヘッドごとに、長い入力系列の最初の k 個の隠れ状態を取得し、そのトークンのみに焦点を当てています。最初の k トークン。これにより、キーワードを切り詰めるのではなく、入力シーケンス全体からキーワードを取得できるようになります。また、私たちのアプローチは、すべての入力トークンを処理するよりも計算と GPU メモリの点で安価であり、通常は 99% 以上の注意パフォーマンスを維持します。 図 2 は、この記事による seq2seq トランスフォーマー アーキテクチャへの変更を示しています。完全な入力は、エンコーダーを使用してブロック エンコードされ、データ ストアに保存されます。その後、デコード時に、エンコードされた潜在状態データ ストアがクエリされます。 kNN 検索はノンパラメトリックであり、以下で詳しく説明するように、事前トレーニングされた任意の seq2seq トランスフォーマーに注入できます。
長い文書の概要
表 3 は、長いテキスト (4k および 16k トークン入力) の概要データセットの結果を示しています。
表 4 のトレーニング方法の中で、Unlimiformer はさまざまな指標で最高の結果を達成できます。
#書籍の概要
表 5 の表示書籍の要約に関する結果。 BARTbase と PRIMERA に基づいて、Unlimiformer を適用すると一定の改善結果が得られることがわかります。
#
以上がGPT-4 の 32k 入力ボックスではまだ不十分ですか? Unlimiformer はコンテキストの長さを無限の長さに引き伸ばしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









vue.jsのオブジェクトに文字列を変換する場合、標準のjson文字列にはjson.parse()が推奨されます。非標準のJSON文字列の場合、文字列は正規表現を使用して処理し、フォーマットまたはデコードされたURLエンコードに従ってメソッドを削減できます。文字列形式に従って適切な方法を選択し、バグを避けるためにセキュリティとエンコードの問題に注意してください。

この記事では、MySQLデータベースの操作を紹介します。まず、MySQLWorkBenchやコマンドラインクライアントなど、MySQLクライアントをインストールする必要があります。 1. mysql-uroot-pコマンドを使用してサーバーに接続し、ルートアカウントパスワードでログインします。 2。CreatedAtaBaseを使用してデータベースを作成し、データベースを選択します。 3. createTableを使用してテーブルを作成し、フィールドとデータ型を定義します。 4. INSERTINTOを使用してデータを挿入し、データをクエリし、更新することでデータを更新し、削除してデータを削除します。これらの手順を習得することによってのみ、一般的な問題に対処することを学び、データベースのパフォーマンスを最適化することでMySQLを効率的に使用できます。

700万のレコードを効率的に処理し、地理空間技術を使用したインタラクティブマップを作成します。この記事では、LaravelとMySQLを使用して700万を超えるレコードを効率的に処理し、それらをインタラクティブなマップの視覚化に変換する方法について説明します。最初の課題プロジェクトの要件:MySQLデータベースに700万のレコードを使用して貴重な洞察を抽出します。多くの人は最初に言語をプログラミングすることを検討しますが、データベース自体を無視します。ニーズを満たすことができますか?データ移行または構造調整は必要ですか? MySQLはこのような大きなデータ負荷に耐えることができますか?予備分析:キーフィルターとプロパティを特定する必要があります。分析後、ソリューションに関連している属性はわずかであることがわかりました。フィルターの実現可能性を確認し、検索を最適化するためにいくつかの制限を設定しました。都市に基づくマップ検索

概要:Vue.js文字列配列をオブジェクト配列に変換するための次の方法があります。基本方法:定期的なフォーマットデータに合わせてマップ関数を使用します。高度なゲームプレイ:正規表現を使用すると、複雑な形式を処理できますが、慎重に記述して考慮する必要があります。パフォーマンスの最適化:大量のデータを考慮すると、非同期操作または効率的なデータ処理ライブラリを使用できます。ベストプラクティス:コードスタイルをクリアし、意味のある変数名とコメントを使用して、コードを簡潔に保ちます。

Vue axiosのタイムアウトを設定するために、Axiosインスタンスを作成してタイムアウトオプションを指定できます。グローバル設定:Vue.Prototype。$ axios = axios.create({Timeout:5000});単一のリクエストで:this。$ axios.get( '/api/users'、{timeout:10000})。

MySQLの起動が失敗する理由はたくさんあり、エラーログをチェックすることで診断できます。一般的な原因には、ポートの競合(ポート占有率をチェックして構成の変更)、許可の問題(ユーザー許可を実行するサービスを確認)、構成ファイルエラー(パラメーター設定のチェック)、データディレクトリの破損(テーブルスペースの復元)、INNODBテーブルスペースの問題(IBDATA1ファイルのチェック)、プラグインロード障害(エラーログのチェック)が含まれます。問題を解決するときは、エラーログに基づいてそれらを分析し、問題の根本原因を見つけ、問題を防ぐために定期的にデータをバックアップする習慣を開発する必要があります。

リモートシニアバックエンジニアの求人事業者:サークル場所:リモートオフィスジョブタイプ:フルタイム給与:$ 130,000- $ 140,000職務記述書サークルモバイルアプリケーションとパブリックAPI関連機能の研究開発に参加します。ソフトウェア開発ライフサイクル全体をカバーします。主な責任は、RubyonRailsに基づいて独立して開発作業を完了し、React/Redux/Relay Front-Endチームと協力しています。 Webアプリケーションのコア機能と改善を構築し、機能設計プロセス全体でデザイナーとリーダーシップと緊密に連携します。肯定的な開発プロセスを促進し、反復速度を優先します。 6年以上の複雑なWebアプリケーションバックエンドが必要です

MySQLパフォーマンスの最適化は、インストール構成、インデックス作成、クエリの最適化、監視、チューニングの3つの側面から開始する必要があります。 1。インストール後、INNODB_BUFFER_POOL_SIZEパラメーターやclose query_cache_sizeなど、サーバーの構成に従ってmy.cnfファイルを調整する必要があります。 2。過度のインデックスを回避するための適切なインデックスを作成し、説明コマンドを使用して実行計画を分析するなど、クエリステートメントを最適化します。 3. MySQL独自の監視ツール(ShowProcessList、ShowStatus)を使用して、データベースの健康を監視し、定期的にデータベースをバックアップして整理します。これらの手順を継続的に最適化することによってのみ、MySQLデータベースのパフォーマンスを改善できます。
