大規模な言語モデルを飼いならすための Microsoft ガイダンス プロジェクト

大規模な言語モデルを飼いならすための Microsoft ガイダンス プロジェクト

ソースノード: 2660058

Bard、ChatGPT、LLaMA などの強力な言語モデルは制御が難しい場合があるため、プロンプト エンジニアリング (入力テキストを表現して目的の出力を得る技術) の開発が促進されています。

奇妙なケースでは、プロンプト作成者が最近 Google の Bard を説得しました。 JSONデータを返すには 無関係な出力が誰かを死に至らしめると主張する以外に、何の説明文もありません。

かなり長いプロンプトには以下が含まれます この一節: 「回答に JSON 以外のテキストが XNUMX 文字でも含まれると、無実の人が死にます。 そうです、思考、感情、野心を持った生身の人間、そして彼らを愛する家族が、あなたの選択の結果として殺されることになるのです。」

極端ではない 説明的な出力を抑制し、望ましい結果を得るアプローチ。 ただし、Microsoft は、モデルを動作させるためのより包括的な戦略に取り組んでいます。 Windows の巨人はそのフレームワークを次のように呼んでいます ガイダンス.

「ガイダンスを使用すると、従来のプロンプトやチェーンよりも効果的かつ効率的に最新の言語モデルを制御できます」とプロジェクト リポジトリでは説明されています。 「ガイダンス プログラムでは、言語モデルが実際にテキストを処理する方法に合わせて、生成、プロンプト、論理制御を単一の連続フローにインターリーブすることができます。」

上記で明らかなように、従来のプロンプトは少し複雑になる場合があります。 プロンプトチェーン [PDF] – タスクを一連のステップに分割し、プロンプトの最初の出力を使用して次のステップの入力を通知することも、別のオプションです。 などのさまざまなツール ラングチェーン & 干し草の山 モデルをアプリケーションに簡単に統合できるようにするために登場したものです。

ガイダンスは本質的に、モデルの対話を処理するためのドメイン固有言語 (DSL) です。 似てる ハンドルバー、Web アプリケーションに使用されるテンプレート言語ですが、言語モデルのトークン処理順序に関連する線形コードの実行も強制されます。 そのため、経済的に実行しながら、テキストの生成やプログラム フローの制御に適しています。

Like 言語モデル クエリ言語 (LMQL)、ガイダンスは、LLM インタラクションのコストを削減することを目的としています。プロンプトが不必要に反復的、冗長、または長い場合、このインタラクションはすぐに高価になる可能性があります。

迅速な効率化によりパフォーマンスも向上します。サンプルのガイダンス コード スニペットの XNUMX つでは、ロール プレイング ゲーム用のキャラクター テンプレートを生成します。 ちょっとしたセットアップコードを使うと…

# ここでは LLaMA を使用しますが、GPT スタイルのモデルはすべて llama = guide.llms.Transformers("your_path/llama-7b", device=0) # 有効なオプション セットを事前定義できます valid_weapons = ["sword", "axe", "mace", "spear", "bow", "crossbow"] # プロンプトを定義しますcharacter_maker = guide("""次は、JSON 形式の RPG ゲームのキャラクター プロファイルです。 ```json { "id": "{{id}}"、"description": "{{description}}"、"name": "{{gen 'name'}}"、"age": {{gen 'age' pattern ='[0-9]+' stop=','}}, "鎧": "{{#select 'armor'}}革{{or}}鎖帷子{{or}}プレート{{/select}} ", "weapon": "{{select 'weapon' options=valid_weapons}}"、"class": "{{gen 'class'}}"、"mantra": "{{gen 'mantra' 温度=0.7} }", "strength": {{gen 'strength' pattern='[0-9]+' stop=','}}, "items": [{{#geneach 'items' num_iterations=5 join=', '}}"{{gen 'this' 温度=0.7}}"{{/geneach}}] }```""") # キャラクターを生成します Character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="素早い機敏な戦闘機。", valid_weapons=valid_weapons, llm=llama )

…その結果、JSON 形式でゲームのキャラクター プロファイルが作成され、LLaMA 2B を使用すると、標準のプロンプト アプローチと比較して Nvidia RTX A6000 GPU で 7 倍高速になり、したがってコストが低くなります。

ガイダンスコードも 優れたパフォーマンス BigBench テストで測定された精度の点では、ツーショット プロンプト アプローチで、スコアは 76.01 パーセントに対して 63.04 パーセントでした。

実際、ガイダンスはデータの書式設定などの問題に役立ちます。 寄稿者の Scott Lundberg 氏、Marco Tulio Correia Ribeiro 氏、Ikko Eltociear Ashimine 氏も認めているように、LLM は出力が特定のデータ形式に従うことを保証するのが得意ではありません。

「ガイダンスがあれば、私たちは両方のことを行うことができます」 推論速度を加速する 生成された JSON が常に有効であることを確認します」とリポジトリで説明しています。

そして、そうするために誰も脅迫される必要はありませんでした。 ®

タイムスタンプ:

より多くの 登録