LLM-Prepareは、複雑なプロジェクトディレクトリ構造とファイルを単一のフラットファイルまたはフラットファイルのセットに変換し、コンテキスト学習(ICL)プロンプトを使用して処理を促進します。
このnode.jsツールは、提供された引数(少なくともディレクトリ)に基づいてプロジェクトディレクトリを再帰的にスキャンします。すべてのディレクトリとマッチングファイルを含む単純化されたレイアウトビューを生成します。さらに、このレイアウトビューとプロジェクト全体の集約されたテキストコンテンツを組み合わせます。デフォルトでは、集約されたファイルコンテンツには、コメントと不必要な空白が剥がされます。このツールは、出力圧縮をサポートしてトークンの使用を削減し、出力をチャンキングすることで大規模なプロジェクトを処理できます。ガイダンスのために、例のプロンプトが含まれています。
コンテキスト学習(ICL)により、モデルはプロンプト内で提供されるコンテキストを解釈し、追加のトレーニングや微調整の必要性を排除することにより、タスクを実行できます。
コンテキスト学習の詳細(ICL)
--configオプションを使用して、以前に定義された引数とパスを含むJSON構成ファイルをロードします。 .ignoreファイルを自動的に尊重します。CREATE TABLEステートメントを生成します。fsモジュールの拡張機能と、追加の方法と約束のサポートを提供します。.gitignoreに似た.ignoreファイルを処理するために使用されます。yargsにユーティリティメソッドを提供します。 インストールする前に、システムにnode.jsとnpm(ノードパッケージマネージャー)がインストールされていることを確認してください。 node.js公式Webサイトからnode.jsをダウンロードしてインストールできます。
LLM-Prepareをインストールして使用するには、次の手順に従ってください。
リポジトリのクローン:LLM-Prepareを含むリポジトリをローカルマシンにクローニングすることから始めます。
git clone https://github.com/samestrin/llm-prepare/プロジェクトのルートディレクトリに移動して実行します。
npm installシステム上の任意の場所からLLM-Prepareを利用可能にするには、グローバルにインストールする必要があります。 NPMを使用してこれを行うことができます。
プロジェクトディレクトリで次のコマンドを実行します。
npm linkこれにより、スクリプトにグローバルなシンリンクが作成されます。これで、端末のどこからでもllm-prepareを使用してスクリプトを実行できます。
提供されたインストール手順は、MacOSプラットフォームとLinuxプラットフォームの両方でAS-ISに機能する必要があります。
Windowsの場合、インストール中にnode.jsがパスに追加されるようにします。 npm linkコマンドは、Windows PowerShellまたはコマンドプロンプトでも動作し、グローバルにスクリプトを実行できるようにする必要があります。
スクリプトを実行するには、1つの必須引数を提供する必要があります。プロジェクトディレクトリへのパス( --path-nameまたは-p )です。
これにより、指定されたプロジェクトディレクトリ内のすべてのファイルを処理して、任意の.ignoreファイルを尊重し、コンソールに統合されたコンテンツと構造を出力します。ファイルパターンを「*」にデフォルトします
llm-prepare -p " /path/to/project "または
llm-prepare --path " /path/to/project " これにより、指定されたプロジェクトディレクトリ内のすべてのJavaScriptファイルを処理し、任意の.ignoreファイルを尊重し、コンソールと構造をコンソールに出力します。
llm-prepare -p " /path/to/project " -f " *.js " これにより、指定されたプロジェクトディレクトリ内のすべてのファイルを処理し、任意の.ignoreファイルを尊重し、統合コンテンツと構造をoutput.txtに出力します。
llm-prepare -p " /path/to/project " -o " output.txt "ファイル名を特定しない場合、これにより、指定されたプロジェクトディレクトリ内のすべてのファイルを処理し、任意の.ignoreファイルを尊重し、統合されたコンテンツと構造をproject.txtに出力します。ファイル名は、Path-Name変数のトップレベルのディレクトリに基づいて自動生成されます。
llm-prepare -p " /path/to/project " -oオプションでLLM_PREPARE_OUTPUT_DIR環境変数を設定できます。 LLM_PREPARE_OUTPUT_DIR環境変数が設定されている場合、出力ファイルはそのディレクトリに書き込まれます。
特定のファイルやディレクトリを含めたくない場合は、 --custom-ignore-stringを使用してルールを指定できます。
llm-prepare -p " /path/to/project " -o --custom-ignore-string " *docs*,*test* " 特定のファイルやディレクトリを含めたくない場合は、外部および--custom-ignore-filenameを使用してルールを指定できます。 .gitignoreファイルのフォーマットを使用します。
llm-prepare -p " /path/to/project " -o --custom-ignore-filename " /path/to/.ignorefile " 特定のファイルやディレクトリを含めたくない場合は、外部および--custom-ignore-filenameを使用してルールを指定できます。 .gitignoreファイルのフォーマットを使用します。
llm-prepare -p " /path/to/project " -o --custom-ignore-filename " /path/to/.ignorefile " JSON構成ファイルを使用して、処理に含める引数とパスを事前定義できます。
config.jsonファイルの例:
{
"args" : {
"output-filename" : " output.txt " ,
"compress" : true
},
"include" : [ " ./src/ " , " ./lib/ " ]
}構成ファイルでスクリプトを実行するには:
llm-prepare -c " config.json " --help Show help [boolean]
-p, --path Path to the project directory[string] [required]
-f, --file-pattern Pattern of files to include, e.g., ' .js$ ' or
' * ' for all files [string] [default: " * " ]
-o, --output-filename Output filename [string]
-i, --include-comments Include comments ? (Default: false) [boolean]
-c, --compress Compress ? (Default: false) [boolean]
--chunk-size Maximum size (in kilobytes) of each file[number]
-s, --suppress-layout Suppress layout in output (Default: false)
[boolean]
--default-ignore Use a custom default ignore file [string]
--ignore-gitignore Ignore .gitignore file in the root of the
project directory [boolean]
--show-default-ignore Show default ignore file [boolean]
--show-prompts Show example prompts in your browser [boolean]
--custom-ignore-string Comma-separated list of ignore patterns [string]
--custom-ignore-filename Path to a file containing ignore patterns
[string]
--config Path to the config file [string]
-v, --version Display the version number [boolean]「データがコンテキストの長さを大幅に超えている場合、完全なデータセットを使用してFinetuningは強力なオプションですが、我々の結果は、長いコンテンツの長さを使用する効果と効率性が増加し続けるため、長いコンファレンス時間の増加のための効果的な代替時間と取引時間コストであることを示唆しています。
- 大規模なプロンプトはLLMの微調整を上回る可能性がある、と研究者は発見した
コンテキスト内学習(ICL)により、追加のトレーニングや微調整なしでプロンプト内で提供されるコンテキストを解釈することにより、大規模な言語モデル(LLM)がタスクを実行できます。このアプローチは、モデルが広大なデータセットを使用して特定のタスクで明示的にトレーニングされた以前の方法とは大きく異なります。代わりに、ICLはモデルの事前に訓練された知識ベースを活用します。これは、最初の広範なトレーニング段階で蓄積された包括的な理解です。
トークンサイズ、またはLLMが単一のインスタンスで処理および生成できるデータの量は、劇的に増加したため、ICLの値はさらに重要になりました。トークンサイズのこの増加により、LLMはより長く複雑な入力と出力を処理できるようになり、洗練されたテキストを理解して生成する能力が向上します。
コンテキスト学習(ICL)プロンプトは、入力プロンプト内で関連するコンテキストを提供することにより、タスクの実行において大きな言語モデル(LLM)をガイドします。これらのプロンプトには、通常、モデルが適切な応答を生成する方法をモデルに理解するのに役立つ例、指示、またはパターンが含まれます。 ICLプロンプトのいくつかの特性と例を次に示します。
このプロジェクトへの貢献は大歓迎です。リポジトリをフォークして、変更または改善を備えたプルリクエストを送信してください。
このプロジェクトは、MITライセンスに基づいてライセンスされています。詳細については、ライセンスファイルを参照してください。