LLM訓練數據庫構建器
簡化了數據集的創建,以訓練具有三重態的大型語言模型:說明輸入輸出。默認配置適合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,DATABASE)。
- 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_preteatment(數據集) :預處理數據集。可以自定義。
- GENTATE_INSTRUCTIONS(數據集) :基於數據集生成問答對。可以自定義。
- process_xml_file(文件名) :處理XML文件並生成問答對。
- process_json_file(文件名) :處理一個JSON文件並生成問答對。
- process_database(用戶,密碼,主機,端口,數據庫) :從PostgreSQL數據庫中獲取數據,對其進行處理並生成問答對。
sample_orders_parser.py
該文件包含預處理數據集的自定義功能,並生成問答對。
- remove_duplicates(items_node) :根據其描述從ittem_node中刪除重複的項目。
- update_sku_price(item_node,sku_dict,price_dict) :根據描述更新item_node的SKU和價格。
- apply_inflation(order_date,價格,數量) :根據訂單_date的價格和數量應用通貨膨脹。
- calculate_total_price(items_node) :計算items_node中所有項目的總價格。
- UPDATE_ITEMS_WITH_INFLATION(項目,order_date) :根據order_date更新價格和數量的項目。
- generate_general_instructions(數據集) :基於數據集生成一般說明。
- generate_item_instructions(item_node) :基於item_node生成特定於項目的指令。
- dataset_preteatment_custom(數據集) :自定義功能以預處理數據集。
- GENTATE_INSTRUCTIONS_CUSTOM(數據集) :基於數據集生成問題答案對的自定義函數。
入門
- 選擇要實施的三種處理方法之一:
- process_xml_file(文件名):處理XML文件(示例中已經實現)
- process_json_file(文件名):處理JSON文件(現已實現)
- process_database(用戶,密碼,IP,數據庫,output_dir):從數據庫中處理記錄(現已實現)
- 修改DataSet_preteatment(DataSet)功能,以在生成指令之前進行預處理。
- 修改generate_instructions(處理的_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_preteatment_custom函數中,而復雜的一系列指令是由generate_instructions_custom函數生成的。通過遵守這些步驟並利用提供的代碼示例作為參考,您可以修改此程序以適應各種輸入格式,並製作滿足您獨特需求的定制說明。
我的雇主免責聲明
這是在我個人的一個週末內開發的。
作者
Pierre-Henri Ausseil LinkedIn:LinkedIn.com/in/ausseil/ github:github.com/ph-ausseil/
關於作者
我從事數據集成(中間件,DataHub,API ...)和服務管理。我不是開發人員。我想為在公司堆棧中使用LLM使用的概念證明,以便LLM了解商業環境並改善公司的決策。