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 parameters.
config_parser.py
يحتوي هذا الملف على وظائف لمعالجة مدخلات قاعدة بيانات XML و JSON و PostgreSQL وإنشاء أزواج إجابات أسئلة بناءً على مجموعة البيانات.
- dataset_pretreatment (مجموعة البيانات) : المعالجة المسبقة لمجموعة البيانات. يمكن تخصيصها.
- cenerte_instructions (مجموعة البيانات) : إنشاء أزواج إجابات أسئلة بناءً على مجموعة البيانات. يمكن تخصيصها.
- Process_xml_file (اسم الملف) : يعالج ملف XML ويقوم بإنشاء أزواج إجابات أسئلة.
- Process_JSON_FILE (اسم الملف) : يعالج ملف JSON ويقوم بإنشاء أزواج إجابات أسئلة.
- Process_database (المستخدم ، كلمة المرور ، المضيف ، المنفذ ، قاعدة البيانات) : يجلب البيانات من قاعدة بيانات postgresql ، وتبحيدها ، وإنشاء أزواج إجابة أسئلة.
sample_orders_parser.py
يحتوي هذا الملف على وظائف مخصصة لتلبية مجموعات البيانات وإنشاء أزواج إجابات أسئلة.
- remove_duplicates (عناصر _node) : يزيل العناصر المكررة من العناصر_node بناءً على وصفها.
- update_sku_price (item_node ، sku_dict ، price_dict) : يقوم بتحديث SKU وسعر item_node استنادًا إلى الوصف.
- application_inflation (order_date ، السعر ، الكمية) : يطبق التضخم بناءً على order_date على السعر والكمية.
- COLECUTER_TOTAL_PRICE (items_node) : يحسب السعر الإجمالي لجميع العناصر في العناصر.
- update_items_with_inflation (العناصر ، order_date) : يقوم بتحديث العناصر ذات الأسعار والكميات المتضخمة بناءً على order_date.
- cenderate_general_instructions (مجموعة البيانات) : ينشئ تعليمات عامة بناءً على مجموعة البيانات.
- cenerte_item_instructions (item_node) : يقوم بإنشاء إرشادات خاصة بالبناد بناءً على item_node.
- dataset_pretreatment_custom (مجموعة البيانات) : وظيفة مخصصة للمعالجة المسبقة لمجموعة البيانات.
- cenerte_instructions_custom (مجموعة البيانات) : وظيفة مخصصة لإنشاء أزواج إجابات أسئلة بناءً على مجموعة البيانات.
ابدء
- اختر واحدة من طرق المعالجة الثلاث لتنفيذ:
- Process_XML_File (اسم الملف): معالجة ملفات XML (التي تم تنفيذها بالفعل في المثال)
- Process_JSON_FILE (اسم الملف): معالجة ملفات JSON (تم تنفيذها الآن)
- Process_Database (المستخدم ، كلمة المرور ، IP ، قاعدة البيانات ، Output_dir): معالجة السجلات من قاعدة بيانات (تم تنفيذها الآن)
- قم بتعديل وظيفة Dataset_Pretreatment (مجموعة البيانات) للمعالجة المسبقة للبيانات قبل إنشاء التعليمات.
- قم بتعديل الدالة ender_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 ، في حين يتم إنشاء السلسلة المعقدة من الإرشادات بواسطة وظيفة cenert_instructions_custom. من خلال الالتزام بهذه الخطوات واستخدام عينات التعليمات البرمجية المقدمة كمرجع ، يمكنك تعديل هذا البرنامج لاستيعاب تنسيقات الإدخال المتنوعة وإنتاج تعليمات مخصصة مصممة لتلبية احتياجاتك الفريدة.
إخلاء المسئولية لصاحب العمل الخاص بي
تم تطوير هذا على مدار عطلة نهاية أسبوع واحدة في وقتي الشخصي.
مؤلف
Pierre-Henri Ausseil LinkedIn: LinkedIn.com/in/ausseil/ github: github.com/ph-ausseil/
عن المؤلف
أنا أعمل في تكامل البيانات (الوسيطة ، Datahub ، API ...) وإدارة الخدمة. أنا لست مطور. كنت أرغب في تقديم دليل على مفهوم استخدام LLM في مكدس الشركة ، بحيث تعرف LLM عن بيئة الأعمال وتحسين اتخاذ القرارات للشركة.