طراحی یک پایپلاین دادههای مصنوعی فارسی
آموزش مدلهای زبانی بزرگ (LLMs) دیگر فقط مربوط به مقیاسپذیری مدلها نیست، بلکه مربوط به مقیاسپذیری کیفیت دادههاست.
اکثر مجموعهدادههای فارسی فاقد ساختار هستند. این امر باعث میشود مدلها در پیروی از دستورالعملها شکست بخورند. مشکل کمبود داده است، نه اندازه مدل.
من برای حل این مشکل یک پایپلاین طراحی کردم. این فرآیند از گرافهای موضوعی تا تنظیم دقیق (fine-tuning) با QLoRA را شامل میشود.
فرآیند پایپلاین:
- ایجاد درخت موضوعی (Topic Tree)
- تولید توسط LLM
- حذف دادههای تکراری (Deduplication)
- امتیازدهی کیفیت
- خروجی گرفتن از مجموعهداده
- تنظیم دقیق QLoRA
- ارزیابی
قوانین اصلی طراحی:
- ۵۱ حوزه برای تضمین پوشش متوازن.
- حذف تکراری معنایی (Semantic deduplication) برای حذف ایدههای تکراری.
- تولید چندمدلی با استفاده از مدلهای GPT برای کاهش سوگیری (bias).
- استفاده از Qwen2.5 3B Instruct برای تنظیم دقیق نهایی.
موتور داده چگونه کار میکند: من از چندین مدل برای ایجاد تنوع استفاده میکنم. مدلهای GPT استدلال و تنوع را فراهم میکنند. این کار باعث میشود هزینهها پایین و تنوع بالا باقی بماند.
من از فیلترینگ معنایی برای پاکسازی دادهها استفاده میکنم. اگر دو دستورالعمل امتیاز شباهت بالای ۰.۷۵ داشته باشند، یکی را حذف میکنم. این کار از بیشبرازش (overfitting) مدل روی الگوهای مشابه جلوگیری میکند.
من از یک LLM به عنوان داور برای امتیازدهی کیفیت استفاده میکنم. این داور موارد زیر را بررسی میکند:
- روانی (Fluency)
- مرتبط بودن (Relevance)
- کامل بودن (Completeness)
فقط دادههایی با امتیاز ۳.۵ یا بالاتر در مجموعه باقی میمانند.
نتایج تنظیم دقیق (Fine Tuning): من از QLoRA روی مدل Qwen2.5 3B Instruct از طریق Google Colab استفاده کردم. QLoRA به جای وزنهای کامل، آداپتورهای کوچکی را آموزش میدهد. این کار باعث صرفهجویی در حافظه و در عین حال حفظ عملکرد بالا میشود.
نتایج تفاوت چشمگیری را نشان میدهند:
- مدل پایه اغلب به زبان عربی تغییر زبان میدهد.
- مدل تنظیمشده، فارسی روان و منسجمی صحبت میکند.
درس اصلی روشن است: مهندسی داده مهمتر از مقیاسپذیری مدل است. کیفیت داده گلوگاه اصلی است.
نکات کلیدی:
- فیلترینگ دوگانه برای داشتن دادههای پاک ضروری است.
- گرافهای موضوعی ساختاریافته بهتر از پرامپتهای آزاد عمل میکنند.
- یک داور LLM بخش حیاتی سیستم است.
این سیستم یک موتور کامل برای همترازی (alignment) مدلهای زبانی بزرگ در منابع کم است.
Optional learning community: https://t.me/GyaanSetuAi
