LLM-Training-Dataset-Builder
ปรับปรุงการสร้างชุดข้อมูลเพื่อฝึกอบรมรูปแบบภาษาขนาดใหญ่ด้วยทริปเปิล: คำสั่งอินพุทเอาต์พุต การกำหนดค่าเริ่มต้นเหมาะกับ github.com/tloen/alpaca-lora ข้อกำหนด
โครงการนี้ประมวลผลคำสั่งซื้อตัวอย่างในรูปแบบต่าง ๆ (XML, JSON และฐานข้อมูล PostgreSQL) และสร้างคู่ตอบคำถามตามข้อมูลคำสั่งซื้อหรือไม่
รหัสได้รับการออกแบบให้เป็น แบบแยกส่วน และ ปรับแต่งได้ ง่ายช่วยให้สามารถปรับสภาพวิธีการและการสร้างคำสั่งต่างๆได้
คุณสมบัติ
- รองรับการประมวลผลของรูปแบบการป้อนข้อมูล XML, JSON และ PostgreSQL
- ชุดข้อมูลที่ปรับแต่งได้ล่วงหน้าและการสร้างคำสั่ง
- ตัวเลือกในการผสานไฟล์เอาต์พุตเข้ากับไฟล์เดียว
- พารามิเตอร์ที่กำหนดค่าได้ผ่าน
config.py หรือบรรทัดคำสั่ง
ไฟล์และฟังก์ชั่น
main.py
นี่คือจุดเริ่มต้นหลักสำหรับโปรแกรม มันจัดการอาร์กิวเมนต์บรรทัดคำสั่งประมวลผลไฟล์อินพุตหรือฐานข้อมูลและสร้างไฟล์เอาต์พุต
config.py
ไฟล์นี้มีพารามิเตอร์การกำหนดค่าที่ใช้ตลอดทั้งโครงการ
- param_activate_config : ไม่ว่าจะใช้พารามิเตอร์ config.py หรืออาร์กิวเมนต์บรรทัดคำสั่ง (จริง/เท็จ)
- param_output_dir : ไดเรกทอรีที่สร้างชุดการฝึกอบรม
- param_output_merge_file : ไม่ว่าจะรวมไฟล์เอาต์พุต (จริง/เท็จ)
- 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 (ชุดข้อมูล) : สร้างคู่คำถามตอบคำถามตามชุดข้อมูล สามารถปรับแต่งได้
- process_xml_file (ชื่อไฟล์) : ประมวลผลไฟล์ XML และสร้างคู่ตอบคำถาม
- process_json_file (ชื่อไฟล์) : ประมวลผลไฟล์ JSON และสร้างคู่คำถามตอบคำถาม
- process_database (ผู้ใช้, รหัสผ่าน, โฮสต์, พอร์ต, ฐานข้อมูล) : ดึงข้อมูลจากฐานข้อมูล PostgreSQL ประมวลผลและสร้างคู่ตอบคำถาม
sample_orders_parser.py
ไฟล์นี้มีฟังก์ชั่นที่กำหนดเองเพื่อตั้งค่าชุดข้อมูลและสร้างคู่ตอบคำถาม
- remove_duplicates (items_node) : ลบรายการที่ซ้ำกันออกจากรายการ item_node ตามคำอธิบายของพวกเขา
- update_sku_price (item_node, sku_dict, price_dict) : อัปเดต SKU และราคาของ item_node ตามคำอธิบาย
- Apply_inflation (Order_date, ราคา, ปริมาณ) : ใช้เงินเฟ้อตาม ORDER_DATE กับราคาและปริมาณ
- calculate_total_price (item_node) : คำนวณราคารวมของรายการทั้งหมดใน item_node
- update_items_with_inflation (รายการ, order_date) : อัปเดตรายการที่มีราคาและปริมาณที่สูงเกินจริงตาม order_date
- generate_general_instructions (ชุดข้อมูล) : สร้างคำแนะนำทั่วไปตามชุดข้อมูล
- generate_item_instructions (item_node) : สร้างคำแนะนำเฉพาะรายการตาม item_node
- dataSet_pretreatment_custom (ชุดข้อมูล) : ฟังก์ชั่นที่กำหนดเองเพื่อประมวลผลชุดข้อมูลล่วงหน้า
- generate_instructions_custom (ชุดข้อมูล) : ฟังก์ชั่นที่กำหนดเองเพื่อสร้างคู่ตอบคำถามตามชุดข้อมูล
เริ่มต้น
- เลือกหนึ่งในสามวิธีการประมวลผลเพื่อนำไปใช้:
- process_xml_file (ชื่อไฟล์): การประมวลผลไฟล์ XML (นำไปใช้ในตัวอย่างแล้ว)
- process_json_file (ชื่อไฟล์): การประมวลผลไฟล์ JSON (ตอนนี้นำไปใช้)
- process_database (ผู้ใช้, รหัสผ่าน, IP, ฐานข้อมูล, output_dir): การประมวลผลบันทึกจากฐานข้อมูล (ตอนนี้นำไปใช้)
- แก้ไขฟังก์ชั่น DataSet_pretreatment (ชุดข้อมูล) เพื่อประมวลผลข้อมูลล่วงหน้าก่อนที่จะสร้างคำแนะนำ
- ปรับเปลี่ยนฟังก์ชั่ น 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 จะรู้เกี่ยวกับสภาพแวดล้อมทางธุรกิจและปรับปรุงการตัดสินใจของ บริษัท