نویسنده (ها): لورنتز یونگ
در ابتدا منتشر شده در به سمت هوش مصنوعیبشر
در دنیای به سرعت در حال تحول هوش مصنوعی ، تغییر شکل زبان طبیعی سؤالات مربوط به نمایش داده های SQL اجرایی-معروف به متن به SQL-به یک تغییر دهنده بازی برای تجزیه و تحلیل داده ها تبدیل شده است. تصور کنید از پایگاه داده خود سؤال کنید ، “چه تعداد مشتری در سه ماه گذشته سفارش داده اند ، که بر اساس منطقه گروه بندی شده و با نرخ رشد مرکب سفارش داده شده اند؟” و در عوض دریافت یک پرس و جو کاملاً ساخته شده SQL. این پروژه به بررسی دقیق منبع باز می پردازد مدل های بزرگ زبان (LLMS) مانند Meta’s Llama 3.1 8B Indrict و سری QWEN 2.5 Alibaba در این کار ، با استفاده از تکنیک های پیشرفته مانند بهینه سازی سیاست پاداش هدایت شده (GRPO). بیش از 60 جلسه تمرینی (1600+ ساعت) ، من در یک تنظیم سطح بالا (RTX 4090 از طریق WSL2 در ویندوز 11) آزمایش کردم تا این مدل ها را به سمت رسیدگی به نمایش داده های پیچیده سوق دهم.
این اولین بار در یک سری مقاله است. در اینجا ، روش شناسی پروژه ، عناصر اصلی ، روش ها را پوشش می دهم مجموعه داده ها، انگیزه های من (از جمله اینکه چرا مدل های منبع باز برای اکوسیستم های بسته بسیار مهم هستند) و پیش نمایش سطح بالا از نتایج. مقاله دوم به راه اندازی دستگاه شیرجه می زند و سوم نتایج و نتایج کلیدی را نیز شرح می دهد.
این پروژه چیست؟
در قلب خود ، این پروژه با هدف ایجاد یک “متخصص” LLM متناسب با وظایف متن به SQL در یک طرحواره پایگاه داده خاص است. من با مدل آموزش Llama 3.1 8B (از متا) شروع کردم و بعداً برای عملکرد بهتر در کارهای مربوط به کدگذاری ، به انواع QWEN 2.5 (مانند qwen2.5-coder-7b-7b) تغییر یافتم و در نهایت آنها را برای مقایسه به جلو و عقب تعویض کردم. تنظیم دقیق با تمرکز بر نمایش داده های سازگار با SQLite ، با تأکید بر عملیات پیچیده مانند خود پیوستن ، تجزیه و تحلیل زمانی ، اجرای کل و تشخیص عود.
هدف نهایی؟ مدلی که رقیب سرویس هایی مانند Grok یا گیج کننده برای نسل پیچیده SQL پرداخت می کند ، اما در یک منبع باز و با محوریت حریم خصوصی. آیا ممکن است؟ اگر بله ، چند ساعت طول می کشد؟ چقدر خوب می توانیم انتظار داشته باشیم؟ در پایان این پروژه ، من پاسخ های خود را برای همه این سؤالات دارم. اگر فقط به نتایج/پاسخ های نهایی علاقه دارید. لطفاً به مقاله سوم بروید.
روشهای استفاده شده
من تکنیک هایی را از مقالاتی مانند “تنظیم دقیق متن به SQL LLM برای استدلال در استفاده از GRPO” توسط Yi AI ، بهینه سازی برای سخت افزار من (RTX 4090 با VRAM 24 گیگابایتی) تنظیم کردم. من این اسکریپت را متناسب با نیاز من اصلاح کردم ، به عنوان مثال ، اسکریپت من روی تعادل مجموعه داده های آموزش متمرکز شده و سپس روی نمایش داده های پیچیده SQL متمرکز شده است. من همچنین مجموعه داده های خودم را برای این پروژه تنظیم کردم. من روش ارزیابی خودم را برای ارزیابی بعد از آموزش دارم.
به هر حال ، روشهای کلیدی عبارتند از:
1. بهینه سازی سیاست پاداش هدایت شده (GRPO)
GRPO یک رویکرد یادگیری تقویت کننده است که مدل را بر اساس سیگنال های پاداش چندگانه اصلاح می کند. بر خلاف تنظیم دقیق نظارت استاندارد ، اکتشاف را در حالی که مجازات انحرافات از یک خط مشی مرجع (از طریق واگرایی KL) را تشویق می کند ، تشویق می کند.
توابع پاداش:
- پاداش قالب: از موارد زیر استفاده را تضمین می کند
… … (مبتنی بر اکتشافی ، نمره 0-1). - پاداش صحت SQL: مقایسه نتایج حاصل از اجرای SQL با حقیقت زمین (با استفاده از SQLGLOT برای تجزیه و پرس و جو واقعی).
- پاداش پیچیدگی: پیچیدگی پرس و جو را با استاندارد طلا (در طول و عملیات توکن) تراز کنید.
- پاداش کیفیت استدلال: وضوح استدلال را ارزیابی می کند (اکتشافی مانند طول ، استفاده از اصطلاح SQL و ساختار).
HyperParameters: نرخ یادگیری از 1E-6 به 4E-5 ، بتا (مجازات KL) 0.01-0.1 ، حداکثر گرادیان هنجار 1.0-10.0 ، دوره های 3-10 (حداقل 12 توصیه شده) ، اندازه دسته 8.
کتابخانه ها: TRL برای Grpotrainer ، Unloth for GPU بهینه سازی ها ، peft برای lora ، bitsandbytes برای تعیین کمیت 4 بیتی/8 بیتی برای قرار گرفتن در VRAM 14-20 گیگابایتی.
2. لورا برای تنظیم دقیق کارآمد
- به جای به روزرسانی های مدل کامل ، لورا آداپتورهای کم رتبه (رتبه 8-32) را برای هدف قرار دادن ماژول ها مانند لایه های توجه اضافه می کند ، فقط پارامترهای 20 میلیون پوند را آموزش می دهد.
- این زمان تمرین معقول (2-72 ساعت در هر اجرا) و حافظه زیر 15 گیگابایت برای بیشتر جلسات بود.
3. معیارهای ارزیابی
- نمره روایی نحوی (SVS): آیا پرس و جو بدون خطا اجرا می شود؟
- نمره صحت معنایی حقیقت زمین (GTSC): آیا نتایج با پرس و جو طلایی مطابقت دارد؟
- نمره صحت معنایی AI (AISCS): اگر شبیه GT نباشد ، آیا هنوز درست است؟ Grok به این معنا در مورد هم ارزی معنایی قضاوت می کند.
- نمره دقیق کامپوزیت (CPS): میانگین SVS ، GTSC ، AISCS.
- آزمایش شده در 10 نمایش داده شده (5 آسان/متوسط ، 5 سخت) ، از طریق SQLITE اجرا شد.
4. سخت افزار و محیط
- در WSL2 (اوبونتو 22.04) با CUDA 12.1 ، Pytorch 2.2.0 اجرا شد.
- وابستگی ها: ترانسفورماتورها 4.43.0 ، مجموعه داده های 2.20.0 ، SQLGLOT 25.1.0 و غیره (لیست کامل در الزامات. txt).
- چالش ها: عدم تطابق CUDA حل شده و درگیری های وابستگی (به عنوان مثال ، برای سازگاری TRL به 0.8.6 کاهش می یابد).
مجموعه داده ها
مجموعه داده ها در جلسات تکامل یافته اند تا روی پیچیدگی تمرکز کنند:
- مجموعه داده: از B-MC2/SQL-CREATE-CONTEXT (چهره بغل کردن) ، 300-500 پوند برای نمونه سازی سریع ، سپس کل مجموعه داده برای معیار. فرمت شده با اعلان هایی مانند: “طرح: [context] سوال: [natural language]”
- مجموعه داده: مجموعه داده اصلی 10،000 ردیف ~ در کل ، در ابتدا به 5،020 اعتبار رسید ، سپس بر روی 616 Contractity-3 نمایش داده شد (پیچیدگی 1 = آسان ، 2 = متوسط ، 3 = سخت) که با آن تأیید شد ، EG Counting با تعداد در حال اجرا (به عنوان مثال ، مصالح سه ماهه با استفاده از strftime). توالی های زمانی (به عنوان مثال ، با استفاده از Julianday برای تفاوت های تاریخ) ، موضوعات تکراری (به عنوان مثال ، رتبه () برای تشخیص). در این مرحله ، نقطه داده با اعلان هایی مانند: “طرح:” طرح بندی شده است: ” [context] سوال: [natural language]، حقیقت زمین: [SQL]، پیچیدگی: [Level in INT]”
- مجموعه ارزیابی: مجموعه ارزیابی شامل 10 نمایشگاه تست بهینه شده است که برای ارزیابی مدل های تولید SQL در یک پایگاه داده مرکز تماس مصنوعی (“Wandsworth_callcenter_sampled.db”) طراحی شده است که در لینک زیر یافت می شود. این شامل مواردی از زبان طبیعی است که نیاز به نمایش داده های پیچیده SQL ، به طور مساوی به 5 نمونه آسان/متوسط و 5 نمونه سخت (بر اساس عواملی مانند پیوستن به خود ، منطق زمانی و تجمع) تقسیم می شود. این مجموعه مدلها را در مورد اعتبار نحوی (SQL اجرایی) ، صحت معنایی (از طریق تطبیق خروجی حقیقت زمین و بررسی AI با استفاده از GROK) ارزیابی می کند ، و دقت کلی را ارائه می دهد ، و بینش هایی در مورد عملکرد مدل در کارهای واقع گرایانه و خاص دامنه ارائه می دهد.
- تقویت: پرس و جوهای مصنوعی برای تنوع اضافه شده و از سازگاری SQLite اطمینان حاصل می کند. برای جلوگیری از نشت ، مجموعه داده های خارجی مانند عنکبوت وجود ندارد.
آموزش از 200-10،000 نمونه در هر اجرا استفاده شده است ، با حداکثر طول دنباله 4،096 برای رسیدگی به طرحواره های طولانی.
دلایل پروژه
این فقط یک تمرین پژوهشی نیست-بلکه توسط نیازهای دنیای واقعی هدایت می شود. به همین دلیل است که من این کار را کردم:
- آیا تنظیم دقیق برای یک پایگاه داده واحد قابل انجام است؟
من می خواستم آزمایش کنم که آیا می توانیم یک “Domain Expert” LLM برای یک پروژه یا پایگاه داده ایجاد کنیم. شرکت ها اغلب دارای طرح های اختصاصی هستند (به عنوان مثال ، داده های مشتری در CRM). آیا می توان یک مدل کوچک با منبع باز با تنظیمات دقیق ، سؤالات سخت و ظریف مانند ، “درخواست های مکرر خدمات را در بخش هایی با موضوعات تشدید کننده طی یک سال گذشته شناسایی کنید و آنها را با شدت رتبه بندی کنید“، یا”آدرس ها را با موضوعات مکرر پرواز در ماه های مختلف شناسایی کنید و با تعداد چنین آدرس بخش ها را رتبه بندی کنید“ایده این است که این مدل را چنان محاصره کنید که کاربران بتوانند از نمایش داده های پیچیده و موقت بپرسند و بدون نوشتن SQL دستی پاسخ های قابل اعتماد دریافت کنند. - چه مقدار آموزش لازم است؟
اگر قابل دوام باشد ، نقطه شیرین چیست؟ اجرای اولیه 300-500 نمونه برای نمایش داده شدگان کافی نشان داد ، اما موارد پیچیده احتمالاً به 600+ نمایش داده شده سخت در طول 3-8 دوره نیاز داشتند. من قصد داشتم کمیت کنم: آیا می توان 1000 نقطه داده و 12 دوره GTSC> 50 ٪ را در نمایش داده شد؟ - چقدر زمان نیاز دارد؟
کارآیی برای فرزندخواندگی واقعی اهمیت دارد. در RTX 4090 ، دویدن 2-4 ساعت (250-3000 مرحله) طول کشید. مقیاس گذاری به 12 دوره ممکن است 48-72 ساعت یا حتی بیشتر طول بکشد ، اما آیا برای دقت در سطح تولید ارزش آن را دارد؟ - کدام مدل منبع باز بهتر مناسب است؟
من آموزش LLAMA 3.1 8B (قوی در دستورالعمل) در مقابل سری کدر QWEN 2.5 (بهینه سازی شده برای کد/SQL) مقایسه کردم. Spoiler: Qwen در انتخاب توابع جدید ، اما هر دو اندازه 7b-8b با نحو فوق العاده پیچیده مبارزه کردند. آزمایشات من به من گفت حتی مدل های 13B تلاش کردند با آن سؤالات - حریم خصوصی و اکوسیستم های بسته خواستار راه حل های منبع باز هستند
بسیاری از شرکت ها پایگاه داده ها را برای امنیت نگه می دارند-آنها را در معرض API های ابری مانند OpenAi یا Grok Receps نقض می کند. مدل های پرداخت شده خارج از حد هستند ، بنابراین منبع باز مهم است. از مارس 2025 ، فقط سیستم عامل های عظیم پرداخت شده با نمایش داده های دشوار برخوردار هستند. به عنوان مثال: “محاسبه تعداد زیادی درخواست درخواست در هر بخش ، با استفاده از CTE برای شناسایی ماه ها با تشدید متوالی ، که توسط اختلافات Julianday رتبه بندی شده است.” Grok و Perplexity آن را با CTE های صحیح و توابع پنجره میخکوب کردند ، اما مدل های منبع باز کوچکتر ، حتی SYNTAX نامعتبر نامعتبر Chatgpt 4o. این پروژه در صورتی که پل های تنظیم ریز و درشت باشد ، تست می کند.
این انگیزه ها ناشی از استقرار عملی هوش مصنوعی است: توانمندسازی ابزارهای داخلی بدون قفل فروشنده.
تقریباً نتایج چیست؟
در طول 60+ اجرا ، 1600+ ساعت تجمعی ، مدل ها در نمایش داده های آسان/متوسط بهبود یافته اند (CPS 0.53-0.87 ، از 0.43-0.50 بدون کنترل نشده) ، اما سخت ترین آنها چالش برانگیز باقی مانده است (GTSC 0.00-0.20 در مقابل 0.60 Openai). Qwen از Llama در SQL ساده بهتر عمل کرد و بیت های یادگیری مانند Strftime و پیوستن – اما CTE و رتبه بندی آنها را از دست داد. پارامترهای بهینه: 2E-5 یا میزان یادگیری کمتر برای ثبات ، 0.03 بتا ، 12+ دوره در 1000 پرسش. زمان: 72+ ساعت در هر اجرای جامد. قابل دوام؟ بله ، برای اصول ، اما تخصص پیچیده به داده ها و دوره های بیشتری نیاز دارد. جزئیات کامل در ماده 3! من تصمیم گرفتم که تنظیمات خود را در ماده 2 به این معنا که خودم در راه اندازی دستگاه خودم برای آموزش LLM و Finetuning بسیار تلاش کردم. بسیاری از تصادفات و ناسازگاری. با جزئیات تنظیم فعلی من ، هرکسی که بخواهد راه حل سریع برای دستگاه خود داشته باشد ، نه تنها برای تنظیم دقیق GRPO یا SQL محدود می شود.
برای راهنمای تنظیم و نتایج عمیق شیرجه با ما همراه باشید. سوال؟ نظر زیر!
منابع:
B-MC2/SQL-CREATE-CONTEXT · مجموعه داده ها در بغل کردن صورت
wandsworth_callcenter_sampled.db · entz/counciation_2 at main
wandsworth_callcenter_sampled.csv · entz/counciation_2 at main
و اگر از مقاله لذت بردید – اگر فکر می کنید یک سکه را از طریق من پرتاب کنید پیپ یا تبدیل شدن به حامی جیتوببشر پشتیبانی شما قطار را در حال اجرا نگه می دارد. بیایید سخنان جیمز بیلی را تکرار کنیم ، بیایید به جامعه هوش مصنوعی کمک کنیم و به نفع بشریت باشیم.
از نویسنده پشتیبانی کنید
اگر این مقاله را مفید دیدید ، لطفاً اهداء به شیشه نوک پی پال من را در نظر بگیرید!
با استفاده از paypal.me pui yug را بپردازید
به paypal.me/entzyeung بروید و مبلغ را وارد کنید. ایمن تر و ایمن تر است. حساب پی پال ندارید؟ مشکلی نیست
paypal.me
پشتیبانی شما به معنای جهان برای من است و به من اجازه می دهد تا در این جاده تنها اکتشافی بمانم – به آزمایش ، نوشتن مقاله ، آموزش آموزش ، …
ممنون
منتشر شده از طریق به سمت هوش مصنوعی