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了解商业环境并改善公司的决策。