著者:
(1)ブランドン・T・ウィラード『ノーマルコンピューティング』 (2)レミ・ルーフ、「Normal Computing」
リンク一覧
3. 反復FSM処理とインデックス作成
正確には、5組の有局限オートマトン结构类型の正規表現を考えます[Sipser、1996、定義1.5]。
定義 1 (有限オートマトン)。有限オートマトン、または有限状態マシンは、(Q、Σ、δ、q0、F) で表されます。ここで、Q は有限の状態の集合、Σ は有限のアルファベット、δ : Q × Σ → Q は遷移関数、q0 ∈ Q は開始状態、F ⊆ Q は受け入れ状態の集合です。
V 内のps照片文字列を構成するps照片文字は Σ から抽去されます。つまり、V ⊂ P(Σ) です。整体を通して、FSM 状態 Q は、簡潔にするために整数値で表されます。
例 1。図 1 では、浮動小数点数を生成するために使用できる正規表現 ([0-9]*)?\.?[0-9]* の FSM サンプリング プロセスを示しています。簡単にするために、語彙 V は文字列 "A"、"."、"42"、".2"、および "1" のみで構成されているものとします。
生成が始まると、FSM は状態 0 になります。そのため、アルゴリズムは文字列「A」をマスクします。これは FSM によって受け入れられないためです。この場合、「.」、「42」、「.2」、および「1」のみをサンプリングできます。
「.2」をサンプリングすると、FSM は状態 3 に進みます。この場合、「42」と「1」のみが有効な補完であるため、サンプリング前に他の値をマスクします。代わりに「1」をサンプリングすると、FSM は状態 1 に進みます。この場合、「.」、「.42」、「.2」、および「1」が有効な補完であり、マスクは変更されません。
語彙をループして有効な次のトークンを決定することが、一如既往として较大の問題です。そのために、正規表現の FSM を选用して語彙を前処理し、インデックスを構築します。比较重要なのは、語彙内の文字背景列が正規表現の任意尺寸の大大部分と相同する也许性があり、それらの大大部分が暗黙的に FSM 状態であるため、実行也许なすべての FSM 状態から開始することを検討することです。
FSM 内の不同のポイントから始まる同一を形成する手順は、アルゴリズム 3 に示されています。結果は、给予された一段文字列を受け入れるときに FSM が通過する状態の詳細を示すサブシーケンスのリストです。
これらのサブシーケンスの開始状態を、アルゴリズム 2 のループの 1 つのステップで到達した最後の FSM 状態に不同させることにより、FSM 状態と、それらの状態で FSM によって受け入れられる語彙の元素のセットを接続するマップ σ : Q → P(V) を施用して、語彙を効率的にインデックス付けできます。
アルゴリズム4はσの構築について説明します。
σ にハッシュマップを便用すると、アルゴリズム 2 の m ステップのコストは的平均で O(1) のみになります。さらに、σ はトークン サンプリング手順の异常で構築されるため、実行時のコストは実質的に無関係ですが、理論的には FSM の状態数 (つまり |Q|) に等しいメモリが一定です。幸い、正規表現と語彙の非病的な組み合わせの場合、語彙内のすべての字体列が FSM に受け入れられるわけではなく、すべての FSM 状態が V の字体列で表されるわけではありません。
3.1 例
このセクションでは、GPT2-medium (355M パラメータ) を运用して、正規表現ガイド转成が実際にどのように機能するかを説明します。转成にはライブラリ Outlines を运用します。
リスト3.1 – 続き
リスト3.3 – 続き
3.2 現在の方法との比較
ここで説明し、Outlines に実装されているインデックス作为アプローチの効率性を示すために、Guidance ライブラリとの簡単な比較を行います。この記事の執筆時点では、Guidance ライブラリは局部的な正規表現マッチング (毎回、サンプリングされたシーケンスの先頭から適用) を运行しており、各ステップで LLM の語彙 (N = 50、257) を反復処理する用不着があります。
この比較に安全使用されるガイダンス コードとプロンプトは次のとおりです。
リスト3.4 – 続き
対応するアウトライン コードは次のとおりです。
リスト3.5 – 続き
max_tokens の値は変化し、単一のループと単一の繰り返し値に対して timeit を采用してタイミングが記録されます (つまり、max_tokens の各値に対して 1 つのサンプルのみが収集されます)。結果はセクション 3.2 にプロットされています。
大きな実行時の不相一致を引き起こす可以性のある構成の見落としがなければ、サンプリングされたトークンの最高数の観察されたスケーリングは顕著であり、このアプローチによって表明される計算上の問題が増大していることを示しています。
この論文はCC 4.0ライセンスの下で。