داستان پشت تولیدکننده Dataset AI ما

در Metabase، من اغلب به داده جعلی برای دمو ویژگیهای جدید نیاز دارم. خودم را در حال کاوش در Kaggle یافتم، اما احساس الهام زیادی نمیکردم، و زمان زیادی را برای جستجو تلف میکردم. بنابراین یک ابزار کوچک برای کمک به تولید مجموعه دادهها ساختم و تصمیم گرفتم آن را منبع باز کنم.
در نهایت به صفحه اول Hacker News رسید، ۶۰۰+ ستاره در GitHub دریافت کرد، کمکهای یک استارتاپ پشتیبانی شده توسط YC دریافت کرد، و توسط خبرنامه TLDR انتخاب شد.
ما تولیدکننده داده AI را به مرورگر آوردهایم تا جامعه بتواند فوراً مجموعه دادهها را تولید کند. دسترسی باز، نتایج فوری، و رایگان برای کاوش.
چرا نه Kaggle یا ChatGPT
همانطور که در بالا ذکر شد، من احساس الهام زیادی از مجموعه دادههای Kaggle نمیکردم و مدام به ChatGPT برای تولید داده جعلی روی میآوردم. برای چیزی میپرسیدم، نتایج را دریافت میکردم، تجسم میکردم، و مشکلات را میدیدم. نمودارهای میلهای همه با همان ارتفاع، روندهای رشد به اشتباه، تغییرات کافی نیست، و غیره. خودم را در حال تکرار آن چرخه یافتم و فکر کردم... شاید راه بهتری وجود دارد.
آنچه واقعاً انجام دادم
از آنجایی که قبلاً promptها را مینوشتم و تجربهای داشتم، فکر کردم، چرا آن فرآیند را به یک ابزار ساده تبدیل نکنم؟ بنابراین ورودیهای prompt خود را به چند dropdown تبدیل کردم:
- نوع کسبوکار
- تعداد ردیف
- Schema تک جدول یا چند جدول
- محدوده تاریخ
- الگوی رشد
- تغییر و دانهبندی
"Preview Data" را میزنید و یک schema نمونه و ۱۰ ردیف داده دریافت میکنید. اگر خوب به نظر میرسد، میتوانید یک مجموعه داده کامل را به عنوان CSV، SQL صادر کنید، یا Metabase را برای کاوش آن راهاندازی کنید.
چگونه کار میکند
مرحله ۱: نحوه کار تولید schema
وقتی "Preview Data" را میزنید، برنامه یک prompt را به ارائهدهنده LLM انتخابی شما (OpenAI، Anthropic، یا Google) از طریق LiteLLM ارسال میکند. آن برای نوع کسبوکار تنظیم شده است و یک spec JSON که جداول، فیلدها، روابط و منطق را تعریف میکند برمیگرداند. آن را به عنوان یک نقشه برای یک مجموعه داده باورپذیر در نظر بگیرید.
در ابتدا، من فقط schema را با ChatGPT تولید میکردم. اما پس از اینکه چند نفر در Hacker News ذکر کردند که عالی میشد اگر مدلها را عوض کنیم، یک PR عالی دریافت کردیم که پشتیبانی LiteLLM را اضافه کرد، بنابراین اکنون میتوانید به راحتی بین ارائهدهندگان جابهجا شوید. ممنون از کمک @manueltarouca!
مرحله ۲: ردیفها به صورت محلی توسط DataFactory تولید میشوند
من در ابتدا LLM را برای تولید همه ردیفها داشت، اما به شدت کند بود، حتی برای ۱۰۰ ردیف. سعی کردم کار را به دستهها تقسیم کنم، اما این مسائل جدیدی ایجاد کرد. به عنوان مثال، یک شناسه کاربر ممکن است 001، 002، 003 در دسته اول و چیزی مانند u099، u100 در دسته دوم باشد.
بنابراین یک قدم به عقب برداشتم و یک بحث عمیق با Cursor داشتم. به چیزی سریع، واقعبینانهتر و ارزانتر برای اجرا نیاز داشتم. پس از برخی رفت و برگشت، تصمیم گرفتم DataFactory را بسازم. آن داده را به صورت محلی با استفاده از Faker.js تولید میکند و schema + قوانین شبیهسازی از LLM را اعمال میکند. همچنین منطق مانند:
- ریزش SaaS واقعبینانه و برنامههای قیمتگذاری
- جمعفرعیهای تجارت الکترونیک، مالیات و حمل و نقل که واقعاً جمع میشوند
- ادعاهای مراقبتهای بهداشتی که پرداختها هرگز از هزینههای روش تجاوز نمیکنند

مرحله ۳: عملکرد و هزینه
با تقسیم آن به دو فاز، ابزار سریع و به طرز شگفتآوری ارزان میماند. تولید schema تنها بخشی است که به LLM برخورد میکند، و میخواستم مطمئن شوم که من را به ورشکستگی نمیکشاند. بنابراین ردیابی token را اضافه کردم و اعداد را با استفاده از یک فرمول فوقالعاده پیشرفته اجرا کردم:
total_tokens × cost_per_token = ???
معلوم شد... خیلی بد نیست. بیشتر پیشنمایشها با GPT-4o حدود ۰.۰۳–۰.۰۵ دلار میآیند. پس از آن، همه رایگان است. هیچ فراخوانی API اضافی، فقط داده خالص، ۱۰۰٪، درجه A.
خودتان امتحان کنید + کمک کنید
هنوز زود است، بنابراین ضد گلوله نیست. اما اگر به مجموعه دادههای سریع و واقعبینانه نیاز دارید، آن را امتحان کنید. همه چیز به صورت محلی با Docker اجرا میشود، و تنها چیزی که نیاز دارید یک کلید API از ارائهدهنده LLM مورد علاقه خود برای شروع است.
اگر میخواهید کمک کنید، فضای زیادی برای ورود وجود دارد:
- افزودن انواع کسبوکار جدید یا تنظیم موارد موجود
- بهبود منطق schema یا قوانین شبیهسازی
- افزودن ویژگی عالی خود اینجا
زیرساخت از قبل وجود دارد. اگر ایدهای دارید، دوست دارم کمک شما را برای پیش بردن آن داشته باشم. ستاره بزنید، fork کنید، یا یک PR در GitHub باز کنید.

