LLMトレーニング-Dataset-Builder
データセットの作成を合理化して、トリプレットで大規模な言語モデルをトレーニングします:命令入力出力。デフォルトの構成は、github.com/tloen/alpaca-lora要件に適合します。
このプロジェクトは、さまざまな形式(XML、JSON、およびPostgreSQLデータベース)でサンプル注文を処理し、注文の情報に基づいて質問回答ペアを生成しますか?
このコードは、モジュール式で簡単にカスタマイズできるように設計されており、さまざまな前処理方法と命令生成を可能にします。
特徴
- XML、JSON、およびPOSTGRESQLデータベース入力形式の処理をサポートします。
- カスタマイズ可能なデータセット前処理と命令生成。
- 出力ファイルを単一のファイルにマージするオプション。
-
config.pyまたはコマンドライン引数を介した構成可能なパラメーター。
ファイルと機能
main.py
これがプログラムの主なエントリポイントです。コマンドライン引数を処理し、入力ファイルまたはデータベースを処理し、出力ファイルを生成します。
config.py
このファイルには、プロジェクト全体で使用される構成パラメーターが含まれています。
- param_activate_config :config.pyパラメーターを使用するか、コマンドライン引数(true/false)を使用するか。
- param_output_dir :トレーニングセットが作成されるディレクトリ。
- param_output_merge_file :出力ファイルをマージするかどうか(true/false)。
- param_output_merge_file_name :マージされた出力ファイルの名前。
- param_method :処理方法(値:xmls、xml、jsons、json、データベース)。
- param_xml_path、param_xmls_path、param_json_path、param_jsons_path :xmlおよびjsonファイルの入力ファイル/ディレクトリパス。
- param_database_host、param_database_user、param_database_dbname、param_database_dbpassword、param_database_port :postgresqlデータベース接続パラメーター。
config_parser.py
このファイルには、XML、JSON、およびPOSTGRESQLデータベース入力を処理し、データセットに基づいて質問回答ペアを生成する機能が含まれています。
- Dataset_pretreatment(データセット) :データセットをプレセシします。カスタマイズできます。
- Generate_instructions(dataset) :データセットに基づいて質問回答ペアを生成します。カスタマイズできます。
- process_xml_file(filename) :XMLファイルを処理し、質問回答ペアを生成します。
- process_json_file(filename) :jsonファイルを処理し、質問を生成するペアを生成します。
- process_database(ユーザー、パスワード、ホスト、ポート、データベース) :PostgreSQLデータベースからデータを取得し、それを処理し、質問回答ペアを生成します。
sample_orders_parser.py
このファイルには、データセットを前処理し、質問回答ペアを生成するカスタム関数が含まれています。
- remove_duplicates(items_node) :説明に基づいて項目_nodeから重複アイテムを削除します。
- update_sku_price(item_node、sku_dict、price_dict) :説明に基づいてitem_nodeのSKUと価格を更新します。
- Apply_inflation(Order_date、価格、数量) :Order_Dateに基づいて価格と数量に基づいてインフレを適用します。
- calculate_total_price(items_node) :items_node内のすべてのアイテムの合計価格を計算します。
- update_items_with_inflation(items、order_date) :Order_dateに基づいて、価格と数量の膨らんだアイテムを更新します。
- Generate_general_instructions(dataset) :データセットに基づいて一般的な指示を生成します。
- Generate_Item_Instructions(item_node) :item_nodeに基づいてアイテム固有の命令を生成します。
- dataset_pretreatment_custom(dataset) :データセットを事前に処理するカスタム関数。
- Generate_instructions_custom(dataset) :データセットに基づいて質問回答ペアを生成するカスタム関数。
はじめる
- 実装する3つの処理方法のいずれかを選択します。
- process_xml_file(filename):xmlファイルの処理(例で既に実装されています)
- process_json_file(filename):JSONファイルの処理(現在実装されています)
- process_database(ユーザー、パスワード、IP、データベース、output_dir):データベースからのレコードの処理(現在実装されています)
- dataset_pretreatment(dataset)関数を変更して、命令を生成する前にデータを前処理します。
- Generate_Instructions(treated_dataset)関数を変更して、目的の命令を生成します。
- 提供されている例をテストするには、次のコマンドのいずれかを実行します。
python main.py --xmls=./input/sample-order-xml/
または
python main.py --xml=./input/sample-order-xml/sample-file.xml
JSONファイルの場合:
python main.py --jsons=./input/sample-order-json/
または
python main.py --json=./input/sample-order-json/sample-file.json
PostgreSQLデータベースの場合:
python main.py --user= < db_user > --password= < db_password > --ip= < db_host > --database= < db_name >
提供されている例
このプログラムで紹介されている例は、洗練されたユースケースを示しており、特定のビジネスコンテキストに合わせたカスタムパーサーを必要とします。データの前処理はdataset_pretreatment_custom関数内で行われますが、複雑な一連の命令はGenerate_instructions_custom関数によって生成されます。これらの手順を順守し、提供されたコードサンプルを参照として利用することにより、このプログラムを変更して多様な入力形式に対応し、独自のニーズに合わせたカスタマイズされた指示を作成できます。
私の雇用主の免責事項
これは、私の個人的な時間に週末に開発されました。
著者
Pierre-Henri ausseil linkedIn:linkedin.com/in/ausseil/ github:github.com/ph-ausseil/
著者について
私はデータ統合(ミドルウェア、DataHub、API ...)およびサービス管理で作業しています。私は開発者ではありません。 LLMがビジネス環境について知り、企業の意思決定を改善するように、会社のスタックでLLMの使用に関する概念実証を作成したかったのです。