「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

WBOY
リリース: 2024-08-05 17:09:49
オリジナル
569 人が閲覧しました

Im aktuellen KI-Bereich ist Transformer die gängige Architektur, die von großen Sprachmodellen verwendet wird. Mit dem Aufkommen von Architekturen wie RWKV und Mamba gibt es jedoch einen offensichtlichen Trend: Zyklische große Sprachmodelle, die in Bezug auf die Sprachmodellierungsschwierigkeit mit Transformer konkurrieren, geraten schnell in die Aufmerksamkeit der Menschen.

Das Spannende ist, dass diese Architekturen während der Inferenz eine konstante Menge Speicher verwenden. Aufgrund des begrenzten Speichers können sich rekurrente Sprachmodelle (LM) jedoch nicht alle Informationen in langen Kontexten merken und verwenden, was zu einer schlechten Qualität des kontextbezogenen Lernens (ICL) führt. Daher besteht eine zentrale Herausforderung bei der Erlangung effizienter großer Sprachmodelle darin, zu entscheiden, welche Informationen gespeichert oder verworfen werden sollen.

In der kürzlich erschienenen Arbeit „Just Read Two: Closing the Recall Gap for Recurrent Language Models“ entdeckten Forscher der Stanford University und der University at Buffalo durch einfache Beobachtung, dass Daten während der Inferenz in den Sortierpol rekurrenter Sprachmodelle fließen beeinflusst die Schwierigkeit, vorherzusagen, welche Informationen im begrenzten Speicher gespeichert werden sollen.

Wir gehen davon aus, dass wir die Frage auf der Grundlage von Dokument D (z. B. der ausführlichen Wikipedia von Galileo Galilei) stellen: Wann zog Galileo nach Florenz? Wenn die Eingabeaufforderungen zu diesem Zeitpunkt der Reihenfolge [Q, D] folgen, muss sich das Modell nur eine Tatsache in Dokument D merken. Wenn die Hinweise dagegen der Reihenfolge [D, Q] folgen, muss sich das Modell alle Fakten merken. Dies ist in Abbildung 1 (links) unten dargestellt.

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

Daher formalisiert dieser Artikel zunächst theoretisch, wie sich die Datensortierung auf den Speicherbedarf auswirkt, und schlägt dann zwei Methoden vor, um die Abhängigkeit von der Datensortierung zu verringern, nämlich die Just-Read-Twice (JRT)-Eingabeaufforderungsstrategie und die JRT-Schleife Architektur. Dieser Artikel ist hauptsächlich in die folgenden Teile unterteilt:

Die Rolle der Datensortierung verstehen. Die erste Erkenntnis, die die Forscher gewannen, war, dass die Härte des Gedächtnisproblems auf das gleiche Maß wie die Mengendisjunktheit (SD) reduziert werden sollte, das typischste Problem in der Kommunikationskomplexitätstheorie, das seit Jahrzehnten besteht. SD erfordert einen Streaming-Algorithmus (z. B. ein wiederkehrendes Modell), um zu entscheiden, ob der im Kontext bereitgestellte Eingabesatz abgezogen werden soll:

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

Theoretische Analyse und experimentelle Ergebnisse zeigen, dass der erste Satz |A| den zur Lösung erforderlichen Speicher dominiert SD. Ein Kausalmodell erfordert die Speicherung aller Elemente in A, um sie mit Elementen in B vergleichen zu können. Dies zeigt, dass die Verwendung der „richtigen Datenreihenfolge“ im Kontext (z. B. indem der kleinste Mindestsatz (|A|, |B|) an die erste Stelle gesetzt wird) Modellen mit eingeschränktem Speicher hilft. Darüber hinaus wird beobachtet, dass Modelle mit kontextueller akausaler Logik auf kleinstem Raum (|A|, |B|) nach SD auflösen können, ohne die Datenreihenfolge zu berücksichtigen.

Zweitens geht es darum, die „richtige“ Sortierung zu nutzen. In diesem Artikel wird eine sehr einfache JRT-Prompt-Strategie vorgeschlagen, bei der Informationen im Kontext mehrmals wiederholt werden, bevor das Modell eine Antwort generiert (siehe Abbildung 1 oben rechts). In der zweiten und den folgenden Runden ist das Sprachmodell bei der Entscheidung, welche Informationen gespeichert werden sollen, vom vollständigen Kontext abhängig, wodurch das Problem einer „Reformierung“ der Datensortierung effektiv vermieden wird.

Die Ergebnisse zeigen, dass JRT-Prompt eine durchschnittliche Verbesserung von 11,0 ± 1,3 Prozentpunkten bei 16 vorhandenen wiederkehrenden Sprachmodellen und 6 ICL-Aufgaben erreicht, während der Durchsatz 11,9 des FlashAttention-2-fachen (Länge 32 KB, Stapelgröße 16) beträgt. Obwohl JRT-Prompt die Kontextlänge erhöht, ist es immer noch asymptotisch rechen- und speichereffizienter als Aufmerksamkeit.

Jenseits des Kausalmodells. In diesem Artikel wird JRT-RNN vorgeschlagen, das vom einfachen Prefix-LM-Encoder-Decoder-Architekturdesign inspiriert ist. Die meisten kontextuellen Lerneingaben bestehen aus zwei Teilen, nämlich Eingabeaufforderungen (Kontext, Anweisungen) und modellgeneriertem Text als Ausgabe. In der Präfix-LM-Architektur verarbeitet der LM den Cue-Bereich nicht nach der Kausallogik, sondern decodiert die Ausgabe kausal, wobei nur der standardmäßige nächste Token-Vorhersageverlust für den Kausalbereich und der Verlust für den Nicht-Kausalbereich verwendet wird.

Leider war die bisherige Trainingsmethode des Prefix-LM-Modells jedoch nur begrenzt erfolgreich und nutzte das ineffiziente Transformer-Backbone. Daher verbessert dieser Artikel die Qualität und Effizienz durch einige einfache Änderungen, einschließlich der Verbesserung des Trainingsverlusts und der Verwendung einer linearen Aufmerksamkeitsformel namens „Prefix Linear Attention, PLA“. Die Forscher fanden heraus, dass JRT-RNN mithilfe ihrer IO-bewussten Implementierung eine durchschnittliche Qualitätsverbesserung von 13,7 bzw. 6,9 Prozentpunkten bei Parametereinstellungen von 360 m bzw. 1,3 b bieten kann, mit einem Durchsatz, der 19,2-mal so hoch ist wie der von FA2.

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

  • Papieradresse: https://arxiv.org/pdf/2407.05483

  • Projekthomepage: https://github.com/HazyResearch/prefix-linear-attention

JRT- Prompt-Methodenübersicht

コンテキスト学習タスクは (C、Q、Y) を入力として受け取ります。ここで、C は何らかのコンテキスト ソース (ドキュメントやコード リポジトリなど)、Q はコンテキストを考慮したモデルへの質問またはリクエスト、Y は答えです。自己回帰 LM A を使用した標準的なコンテキスト学習の場合、研究者は入力 C と Q を受け取り、その結果得られる出力 Y^ = A (C, Q) を正しい完了 Y に対して評価します。

JRT-Prompt は、Y^ = A (C, Q, C on the right以下の図 1)、Q)。したがって、コンテキストが 2 回目に表示されると、モデルは完全なコンテキストに基づいてどの情報を保存するかを決定します。

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

さらに、JRT-Prompt は既製の LLM で使用できます。研究者らは、ゼロサンプル プロンプトの下で一連のメモリ集約型のコンテキスト タスクで次の LM を評価しました。 Mamba 事前トレーニング済み LM、パラメーター サイズは 130M、370M、1.4B、2.8B、Pile の 300B トークンでトレーニング済み

  • Gated Linear Attendee トレーニング済み LM、パラメーター サイズは 1.3B と 2.7B、100B トークンでトレーニング済みSlimPajama データセットの

  • Mamba-2 事前トレーニング済み LM、パラメーター サイズは 130M、370M、1.3B、2.7B で、Pile の 300B トークンでトレーニングされました。

  • 結果を以下の表 1 に示します。研究者は、状態サイズを増やすことにより、これを使用したベース モデルで、JRT-Prompt メソッドが平均 11.0 ± 1.3 パーセント ポイントのパフォーマンス向上をもたらしたことを発見しました。この方法は、平均して、標準ヒントを使用した Transformer モデルよりも優れたパフォーマンスを発揮します。

  • 彼らはまた、JRT-Prompt が Transformer モデルに利点をもたらし、この方法が一部のタスクでは少数ショット学習よりも効果的であることも発見しました (付録 2)。注目に値するのは、「繰り返しにより言語モデルの埋め込みが改善される」という論文で、Springerらは、埋め込みを生成する目的を達成するために自己回帰Transformerモデルを使用することを提案していることです。この論文の研究結果も同様です。研究者は、二次二次アーキテクチャと文脈学習タスクに焦点を当てています。
JRT-Prompt 繰り返しによりコンテキストの長さは増加しますが、使用されるサブ 2 次ループ アーキテクチャは、2 次 Transformer モデルを使用するよりも依然として効率的です。研究者らは、NVIDIA H100 上で JRT-Prompt (シーケンス長 2N) を使用すると、シーケンス長 N = 32768、バッチ サイズ 16 の場合、FlashAttendant-2 (シーケンス長 N) の 11.9 倍のスループットが得られることを発見しました。

JRT-RNN: エンコーダ-デコーダ ループ アーキテクチャ

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。JRT-RNN は Prefix-LM からインスピレーションを得ていますが、品質と効率のトレードオフ空間のパレート フロンティアを拡張することに焦点を当てています。品質を向上させるために、JRT-RNN はエンコーダ側で個別の k_e および v_e マッピングを使用し、デコーダ側で k_d および v_d マッピングを使用します。 Prefix LM モデルはエンコーダ領域とデコーダ領域に共有マッピング重みを使用しますが、研究者らは 2 セットのマッピングを使用することで品質が向上することを発見しました。

効率を向上させるために、JRT-RNN はエンコーダーには非因果的線形アテンションを使用し、デコーダーには標準の因果的線形アテンションを使用します。研究者らはこれを Prefix Linear Attendant (PLA) と呼んでいます (図 1 の右)。式は次のとおりです:

JRT-RNN トレーニング目標。プレフィックス LM は通常、非因果領域での損失を計算しませんが、JRT-RNN は次のトークン予測とマスク言語モデリング (MLM) 目標を組み合わせます。そして、追加された MLM ターゲットについて、研究者らはエンコーダー領域 {u_1, ..., u_M} の割合 P を持つトークンを [MASK] トークンに置き換え、元のトークンを予測する際のクロスエントロピー損失

を測定しました。

損失は次のとおりです:

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。実験結果

実験では、研究者らは次の 3 つの指標で JRT-RNN の品質と効率を評価しました:

「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

コンテキスト学習の品質

全体的な言語モデリング

  • の生成

  • コンテキスト学習の品質
  • 以下の表 2 に示すように、研究者らは、パラメータが 360M の場合、JRT-RNN がデコーダのみのベースライン (Based) よりも優れていることを発見しました。 (30B トークン) 平均は 13.7 パーセント ポイント高く、パラメーターが 1.3B (500 億トークン) の場合、平均は 6.9 パーセント ポイント高くなります。

    동시에 매개변수가 각각 360M과 1.3B일 때 JRT-RNN과 Transformer++의 격차는 0.5%포인트 이내와 1.9%포인트 이내로 좁아졌습니다.

    아래 표 3에서 연구자들은 사전 채우기 길이 l이 인코더 길이 M보다 작을 때 JRT-RNN의 성능을 유사한 추론 전략과 비교합니다.

    「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

    전반적인 자연어 이해

    이전 연구를 기반으로 연구원들은 복잡성을 두 그룹으로 더 나누었습니다. 연관 메모리 "AR 슬라이스"에는 모델이 따라야 하는 "AR 히트"라는 토큰이 포함되어 있습니다. 다음 토큰을 정확하게 예측하기 위해 순차적으로, "기타 슬라이스"에는 나머지 토큰(예: 기억된 지식)이 포함됩니다.

    메모리 주파수의 경우 JRT-RNN이 "AR 슬라이스"에서 잘 작동합니다. 훈련 중에 흔하지 않은(즉, 모델 매개변수에서 기억될 가능성이 낮은) 바이그램의 경우 JRT-RNN의 당혹성은 두 가지 강력한 인과 루프 기준선인 Based 및 Mamba에 비해 향상됩니다.

    메모리 거리의 경우 "AR 슬라이스"에서는 컨텍스트에서 반복되는 바이그램 수가 증가함에 따라 JRT-RNN과 디코더 전용 기준선 간의 간격이 넓어집니다. 이는 JRT-RNN이 더 긴 상황별 메모리 작업을 완료하는 데 도움이 될 수 있음을 더욱 입증합니다.

    비메모리 주파수. 훈련 중에 거의 볼 수 없는 비메모리 "기타 슬라이스"의 바이그램의 경우 JRT-RNN은 디코더 전용 LM보다 더 복잡합니다. JRT-RNN은 디코더 LM의 토큰 중 65%에 대해서만 손실을 계산하므로 이는 예상된 결과이다.

    우리는 이 격차가 규모와 훈련 시간에 따라 줄어들 것으로 예상합니다(바이그램 빈도에 따라 증가)(그림 3, 왼쪽 상단).

    「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

    세대 처리량

    세대는 프롬프트 "사전 채우기 처리"와 "다음 토큰 예측" 디코딩의 두 단계로 분해될 수 있습니다. 표준 디코더 전용 루프 모델과 비교하여 JRT-RNN은 디코딩 단계를 수정하지 않으므로 논의는 사전 채우기 단계에 중점을 둡니다.

    Simran Arora 등의 "Simple Linear Attention Language Model Balance the Recall-throughput tradeof" 논문에서 제안된 기반 CUDAn 커널을 사용하면 사전 채우기 처리 시 JRT-Prompt의 처리량은 FlashAttention-2의 11.9 및 13.7이고 FLA Triton 커널은 아래 표 5와 같습니다.

    연구원들이 배치 크기를 64로 늘렸을 때 JRT-Prompt 처리량은 FlashAttention-2 및 FLA Triton 커널보다 각각 6.1배 및 7.2배 더 높았습니다.

    다음으로 그들은 JRT-RNN을 지원하도록 기반 커널을 확장했으며 시퀀스 길이를 32768로 늘릴 때 처리량이 FlashAttention-2와 FLA의 각각 19.2배와 22.0배라는 것을 입증했습니다. 배치 크기를 64로 늘리면 JRT-RNN은 각각 9.7배 및 11.5배의 처리량 향상을 제공합니다. JRT-RNN에 필요한 시간은 Based prefill의 1.24배로 JRT-Prompt보다 효율적입니다.

    「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。

    더 자세한 기술적 내용과 실험 결과는 원본 논문을 참고해주세요.

以上が「プロンプトを 2 回読むだけ」という小さなトリックで大きな効果が得られ、循環言語モデルは Transformer++ を超えることができます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jiqizhixin.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート