LLM-Training-Dataset-Builder
Merampingkan pembuatan dataset untuk melatih model bahasa besar dengan kembar tiga: instruksi-input-output. Konfigurasi default cocok dengan persyaratan github.com/tloen/alpaca-lora.
Proyek ini memproses pesanan sampel dalam berbagai format (database XML, JSON, dan PostgreSQL) dan menghasilkan pasangan jawaban pertanyaan berdasarkan informasi pesanan?
Kode ini dirancang untuk menjadi modular dan mudah disesuaikan , memungkinkan untuk berbagai metode pretreatment dan pembuatan instruksi.
Fitur
- Mendukung pemrosesan format input basis data XML, JSON, dan PostgreSQL.
- Dataset Preprocessing dan Pembuatan Instruksi Dataset yang dapat disesuaikan.
- Opsi untuk menggabungkan file output ke dalam satu file.
- Parameter yang dapat dikonfigurasi melalui
config.py atau argumen baris perintah.
File dan fungsi
Main.py
Ini adalah titik masuk utama untuk program ini. Ini menangani argumen baris perintah, memproses file input atau database, dan menghasilkan file output.
config.py
File ini berisi parameter konfigurasi yang digunakan di seluruh proyek.
- Param_activate_config : Apakah akan menggunakan parameter config.py atau argumen baris perintah (true/false).
- Param_output_dir : Direktori tempat set pelatihan dibuat.
- Param_output_merge_file : apakah akan menggabungkan file output (true/false).
- Param_output_merge_file_name : Nama file output gabungan.
- Param_method : Metode pemrosesan (nilai: xmls, xml, jsons, json, basis data).
- Param_xml_path, param_xmls_path, param_json_path, param_jsons_path : File input/jalur direktori untuk file XML dan JSON.
- Param_database_host, param_database_user, param_database_dbname, param_database_dbpassword, param_database_port : Parameter koneksi database postgreSQL.
config_parser.py
File ini berisi fungsi untuk memproses input basis data XML, JSON, dan PostgreSQL dan menghasilkan pasangan jawaban pertanyaan berdasarkan dataset.
- dataset_pretreatment (dataset) : preprocesses dataset. Dapat disesuaikan.
- Generate_instructions (dataset) : Menghasilkan pasangan jawaban pertanyaan berdasarkan dataset. Dapat disesuaikan.
- Proses_xml_file (nama file) : Memproses file XML dan menghasilkan pasangan wafat.
- Proses_json_file (nama file) : Memproses file JSON dan menghasilkan pasangan answer pertanyaan.
- Proses_database (pengguna, kata sandi, host, port, database) : Mengambil data dari database PostgreSQL, memprosesnya, dan menghasilkan pasangan jawaban pertanyaan.
sample_orders_parser.py
File ini berisi fungsi khusus untuk dataset pretreat dan menghasilkan pasangan jawaban pertanyaan.
- Remove_duplicates (items_node) : Menghapus duplikat item dari items_node berdasarkan deskripsi mereka.
- update_sku_price (item_node, sku_dict, price_dict) : Memperbarui SKU dan harga item_node berdasarkan deskripsi.
- apply_inflation (order_date, harga, kuantitas) : Menerapkan inflasi berdasarkan order_date ke harga dan kuantitas.
- Calculate_total_price (items_node) : Menghitung total harga semua item di items_node.
- update_items_with_inflation (item, order_date) : Memperbarui item dengan harga dan jumlah yang meningkat berdasarkan order_date.
- Generate_General_instructions (dataset) : Menghasilkan instruksi umum berdasarkan dataset.
- Generate_item_instructions (item_node) : Menghasilkan instruksi khusus item berdasarkan item_node.
- DATASET_PRETREATMENT_CUSTOM (dataset) : Fungsi khusus untuk preprocess dataset.
- Generate_instructions_custom (dataset) : Fungsi khusus untuk menghasilkan pasangan pertanyaan-jawaban berdasarkan dataset.
Memulai
- Pilih salah satu dari tiga metode pemrosesan untuk diimplementasikan:
- Proses_xml_file (nama file): memproses file XML (sudah diimplementasikan dalam contoh)
- Proses_json_file (nama file): Memproses file JSON (sekarang diimplementasikan)
- Proses_Database (pengguna, kata sandi, IP, database, output_dir): Memproses catatan dari database (sekarang diterapkan)
- Ubah fungsi Dataset_Preatment (Dataset) untuk preprocess data sebelum menghasilkan instruksi.
- Ubah fungsi generate_instructions (Treated_Dataset) untuk menghasilkan instruksi yang diinginkan.
- Untuk menguji contoh yang disediakan, jalankan salah satu perintah berikut:
python main.py --xmls=./input/sample-order-xml/
atau
python main.py --xml=./input/sample-order-xml/sample-file.xml
Untuk file JSON:
python main.py --jsons=./input/sample-order-json/
atau
python main.py --json=./input/sample-order-json/sample-file.json
Untuk database PostgreSQL:
python main.py --user= < db_user > --password= < db_password > --ip= < db_host > --database= < db_name >
Contoh disediakan
Contoh yang ditampilkan dalam program ini menunjukkan kasus penggunaan yang canggih, mengharuskan parser khusus yang disesuaikan dengan konteks bisnis tertentu. Preprocessing data terjadi dalam fungsi dataset_preatment_custom, sedangkan serangkaian instruksi yang rumit dihasilkan oleh fungsi generate_instructions_custom. Dengan mematuhi langkah -langkah ini dan memanfaatkan sampel kode yang disediakan sebagai referensi, Anda dapat memodifikasi program ini untuk mengakomodasi beragam format input dan menghasilkan instruksi khusus yang disesuaikan dengan kebutuhan unik Anda.
Penafian untuk majikan saya
Ini telah dikembangkan selama satu akhir pekan pada waktu pribadi saya.
Pengarang
Pierre-Henri Ausseil LinkedIn: linkedin.com/in/ausseil/ github: github.com/ph-ausseil/
Tentang penulis
Saya bekerja dalam integrasi data (Middleware, DataHub, API ...) & Manajemen Layanan. Saya bukan pengembang. Saya ingin membuat bukti konsep tentang penggunaan LLM di tumpukan perusahaan sehingga LLM akan tahu tentang lingkungan bisnis dan meningkatkan pengambilan keputusan perusahaan.