داده مصنوعی چیست؟ آموزش ساخت Synthetic Data با هوش مصنوعی
داده مصنوعی، اطلاعاتی است که با الگوریتم، شبیهسازی یا مدل هوش مصنوعی تولید میشود. در این راهنما کاربردها، روشهای ارزیابی و ساخت Dataset فارسی با Python و API درواره را بررسی میکنیم.
داده مصنوعی یا Synthetic Data به دادهای گفته میشود که بهجای جمعآوری مستقیم از رویدادهای واقعی، با استفاده از قواعد، الگوریتمها، شبیهسازی یا مدلهای هوش مصنوعی تولید شده است.
این داده میتواند در قالبهای مختلف ساخته شود:
- متن
- جدول
- تصویر
- صوت
- ویدئو
- کد
- مکالمه
- سؤال و پاسخ
- دستور و خروجی
- داده حسگر
- محیط شبیهسازیشده
برای مثال، اگر بخواهید یک مدل را برای دستهبندی پیامهای مشتریان آموزش دهید، به تعداد زیادی پیام همراه با برچسب صحیح نیاز دارید:
{
"text": "سفارش من هنوز ارسال نشده است",
"label": "پیگیری سفارش"
}
اگر تعداد نمونههای واقعی کافی نباشد، میتوان با یک مدل زبانی، نمونههای مصنوعی متنوعی برای هر برچسب تولید کرد. این نمونهها پس از ارزیابی و اصلاح میتوانند در توسعه Dataset مورد استفاده قرار گیرند.
براساس تعریف NVIDIA از Synthetic Data Generation، داده مصنوعی اطلاعاتی است که بهشکل مصنوعی تولید میشود و میتواند برای توسعه و آموزش مدلهای هوش مصنوعی به کار رود.
داده مصنوعی جایگزین بدونقیدوشرط داده واقعی نیست. بهترین نتیجه معمولاً زمانی به دست میآید که داده مصنوعی در کنار نمونههای واقعی، معیارهای کیفیت و بررسی انسانی استفاده شود.
داده مصنوعی به زبان ساده چیست؟
فرض کنید قصد دارید دستیار پشتیبانی یک فروشگاه اینترنتی را برای تشخیص موضوع پیامها آماده کنید.
برچسبها عبارتاند از:
- وضعیت سفارش
- بازگشت کالا
- پرداخت
- موجودی محصول
- تغییر آدرس
- پرسش عمومی
برای آموزش یا ارزیابی سیستم به صدها پیام متنوع نیاز دارید. نوشتن دستی تمام نمونهها زمانبر است و ممکن است تنوع کافی نداشته باشد.
یک مدل زبانی میتواند برای برچسب «تغییر آدرس» نمونههای زیر را تولید کند:
میخواهم آدرس تحویل سفارشم را عوض کنم.
بسته هنوز ارسال نشده؛ امکان تغییر نشانی وجود دارد؟
آدرس را اشتباه وارد کردهام، چطور اصلاحش کنم؟
میشود سفارش به محل کارم فرستاده شود؟
کد پستی سفارش قبلی نیاز به اصلاح دارد.
این پیامها از کاربر واقعی دریافت نشدهاند، اما ساختار و کاربرد آنها به داده واقعی شباهت دارد. بنابراین داده مصنوعی محسوب میشوند.
تفاوت داده واقعی و داده مصنوعی
| ویژگی | داده واقعی | داده مصنوعی |
|---|---|---|
| منبع | رویداد یا کاربر واقعی | الگوریتم، شبیهسازی یا مدل |
| هزینه جمعآوری | ممکن است زیاد باشد | معمولاً قابلکنترلتر است |
| سرعت تولید | وابسته به وقوع رویدادها | قابلتولید در حجم بالا |
| تنوع | محدود به نمونههای ثبتشده | قابل هدایت به سناریوهای مختلف |
| برچسبگذاری | اغلب نیازمند کار دستی | میتواند هنگام تولید انجام شود |
| موارد نادر | ممکن است بسیار کم باشند | میتوان هدفمند تولید کرد |
| کیفیت طبیعی | معمولاً بالاتر | به روش تولید و ارزیابی وابسته است |
| کنترل ساختار | محدودتر | قابل تعریف با Schema و قواعد |
| احتمال خطا | وابسته به جمعآوری و برچسبگذاری | وابسته به مدل و Pipeline تولید |
داده واقعی نشان میدهد در عمل چه اتفاقی افتاده است. داده مصنوعی میتواند سناریوهایی را پوشش دهد که ممکن است رخ دهند یا برای توسعه سیستم موردنیاز باشند.
تفاوت Synthetic Data و Mock Data
Mock Data و Synthetic Data گاهی بهجای یکدیگر استفاده میشوند، اما همیشه یکسان نیستند.
Mock Data
Mock Data معمولاً برای توسعه و آزمایش نرمافزار ساخته میشود. هدف اصلی آن پرکردن جدول، آزمایش رابط کاربری یا شبیهسازی پاسخ API است.
مثال:
{
"id": 101,
"name": "کاربر آزمایشی",
"status": "active"
}
این داده لزوماً الگوهای واقعی یک مجموعهداده را بازسازی نمیکند.
Synthetic Data
داده مصنوعی تلاش میکند ویژگیها، روابط، توزیع یا تنوع موردنیاز یک کاربرد واقعی را بازآفرینی کند.
برای مثال، اگر Dataset سفارشها شامل رابطه میان فصل، گروه محصول، مبلغ خرید و تعداد سفارش باشد، داده مصنوعی جدولی باید این روابط را تا حد لازم حفظ کند.
بنابراین:
- هر Synthetic Data میتواند برای آزمایش استفاده شود.
- هر Mock Data الزاماً Synthetic Data باکیفیت نیست.
- Mock Data بیشتر روی ساختار فنی تمرکز دارد.
- Synthetic Data بیشتر روی الگو، تنوع و کاربرد تحلیلی یا آموزشی تمرکز میکند.
راهنمای تولید داده تست با هوش مصنوعی روی Mock Data و Mock API تمرکز دارد؛ اما موضوع این مقاله ساخت داده برای آموزش و ارزیابی مدلهای هوش مصنوعی است.
تفاوت داده مصنوعی و Data Augmentation
Data Augmentation یا افزایش داده به تغییر نمونههای موجود برای ساخت نسخههای جدید گفته میشود.
برای متن میتوان:
- ترتیب جمله را تغییر داد.
- متن را بازنویسی کرد.
- لحن را عوض کرد.
- از مترادفها استفاده کرد.
- طول جمله را کم یا زیاد کرد.
- خطاهای تایپی کنترلشده اضافه کرد.
برای تصویر میتوان:
- تصویر را چرخاند.
- اندازه را تغییر داد.
- نور را کم یا زیاد کرد.
- بخشی از تصویر را برش داد.
- زاویه دید را تغییر داد.
در Data Augmentation یک نمونه واقعی نقطه شروع است. در تولید داده مصنوعی ممکن است نمونه کاملاً جدیدی براساس Schema، قواعد یا توضیح وظیفه ساخته شود.
انواع داده مصنوعی
داده متنی مصنوعی
مدل زبانی میتواند انواع مختلفی از داده متنی ایجاد کند:
- سؤال و پاسخ
- پیام مشتری و برچسب
- مکالمه چندمرحلهای
- خلاصه و متن اصلی
- دستور و پاسخ مطلوب
- نمونههای مثبت و منفی
- توضیح محصول
- متن با لحنهای مختلف
- داده آموزشی برای طبقهبندی
- سناریوی ارزیابی Agent
پژوهش Synthetic Data Generation Using Large Language Models کاربرد مدلهای زبانی در تولید متن و کد مصنوعی را بررسی میکند و بر ضرورت پالایش، تنوع و ارزیابی خروجی تأکید دارد.
داده جدولی مصنوعی
داده جدولی شامل ستونها و روابط مشخص است:
تاریخ | شهر | گروه محصول | تعداد سفارش | مبلغ
هدف فقط تولید مقادیر تصادفی نیست. داده باید قواعد و روابط منطقی جدول را رعایت کند.
برای مثال:
- تعداد سفارش نمیتواند منفی باشد.
- تاریخ تحویل نباید قبل از تاریخ ثبت سفارش باشد.
- گروه محصول باید از فهرست مشخص انتخاب شود.
- وضعیت سفارش باید با مراحل Workflow هماهنگ باشد.
کتابخانه متنباز Synthetic Data Vault یا SDV برای تولید داده مصنوعی جدولی با Python طراحی شده و میتواند الگوهای داده آموزشی را یاد بگیرد و نمونههای جدید ایجاد کند.
تصویر مصنوعی
تصاویر مصنوعی میتوانند با مدل تولید تصویر یا محیط شبیهسازی ساخته شوند.
کاربردها:
- آموزش تشخیص شیء
- ساخت شرایط نوری متفاوت
- تولید زاویههای مختلف
- ایجاد پسزمینههای متنوع
- آموزش مدلهای صنعتی
- تولید صحنههای سهبعدی
- ساخت نمونههای تصویری کمیاب
داده تصویری باید از نظر شباهت به شرایط واقعی و ارتباط با وظیفه نهایی بررسی شود.
صوت مصنوعی
مدلهای گفتار میتوانند داده صوتی متنوعی تولید کنند:
- گویندگان مختلف
- سرعتهای متفاوت گفتار
- لحنهای متفاوت
- جملههای مشخص
- اصطلاحات تخصصی
- نمونههای فارسی و گویشهای مختلف
- شرایط صوتی متفاوت
متن، فایل صوتی و برچسب آن باید با یکدیگر هماهنگ باشند.
داده ویدئویی و شبیهسازی
برای رباتیک، سیستمهای صنعتی و مدلهای درک محیط میتوان داده را از محیطهای شبیهسازیشده تولید کرد.
در این روش، عواملی مانند زاویه دوربین، نور، حرکت، فاصله و وضعیت اشیا قابلکنترلاند. مستندات NVIDIA درباره تولید داده با شبیهسازی این رویکرد را برای آموزش مدلهای ادراکی توضیح میدهد.
کد مصنوعی
مدلهای برنامهنویسی میتوانند دادههایی مانند این موارد تولید کنند:
- مسئله و راهحل کدنویسی
- کد و توضیح
- تابع و تست
- کد دارای خطا و نسخه اصلاحشده
- تبدیل کد میان دو زبان
- پرسش فنی و پاسخ
- ورودی و خروجی نمونه
مزیت کد این است که بخش مهمی از کیفیت آن را میتوان با اجرای تست بررسی کرد. صرفاً صحیحبودن ظاهری کد کافی نیست.
داده مصنوعی چه کاربردهایی دارد؟
آموزش مدلهای طبقهبندی
اگر تعداد نمونهها برای بعضی برچسبها کم باشد، میتوان نمونههای مصنوعی هدفمند تولید کرد.
فرض کنید Dataset دارای این وضعیت است:
| برچسب | تعداد نمونه |
|---|---|
| پیگیری سفارش | ۲۵۰۰ |
| پرداخت | ۱۸۰۰ |
| تغییر آدرس | ۱۲۰ |
| درخواست فاکتور | ۸۰ |
مدل ممکن است برچسبهای پرتعداد را بهتر یاد بگیرد. داده مصنوعی میتواند به افزایش پوشش گروههای کمنمونه کمک کند.
Fine-tuning مدل زبانی
برای Fine-tuning معمولاً به دادهای شامل دستور و پاسخ مطلوب نیاز دارید:
{
"messages": [
{
"role": "user",
"content": "درخواست کاربر"
},
{
"role": "assistant",
"content": "پاسخ مطلوب"
}
]
}
یک مدل قویتر میتواند پیشنویس نمونهها را تولید کند، اما داده نباید بدون ارزیابی وارد Train Set شود.
راهنمای Fine-tuning مدل زبانی با LoRA و QLoRA مراحل آمادهسازی Dataset و آموزش را توضیح میدهد.
ساخت Dataset ارزیابی
داده مصنوعی فقط برای آموزش نیست. میتوان از آن برای ساخت مجموعه آزمون استفاده کرد.
برای مثال، برای ارزیابی دستیار فروش میتوان سناریوهایی با این شرایط ساخت:
- درخواست ساده
- اطلاعات ناقص
- چند نیاز همزمان
- پیام بسیار کوتاه
- متن محاورهای
- غلط تایپی
- درخواست خارج از وظیفه
- دو شرط متناقض
- اصطلاحات تخصصی صنعت
مجموعه ارزیابی باید مستقل از داده آموزش باقی بماند.
پوشش موارد نادر
برخی سناریوها در داده واقعی کم هستند، اما برای عملکرد محصول اهمیت دارند.
برای نمونه:
- سفارش شامل چند وضعیت همزمان
- پرسش دارای چند موضوع
- متن ترکیبی فارسی و انگلیسی
- جمله بسیار کوتاه و مبهم
- درخواست دارای چند محدودیت
- داده با قالب غیرمعمول
این موارد را میتوان هدفمند تولید و به مجموعه ارزیابی اضافه کرد.
توسعه محصول پیش از جمعآوری داده کافی
یک محصول جدید در روز اول داده واقعی زیادی ندارد. داده مصنوعی میتواند برای ساخت نسخه اولیه این اجزا مفید باشد:
- طبقهبندی اولیه
- طراحی Workflow
- ارزیابی Prompt
- تست رابط کاربری
- ساخت Demo
- بررسی خروجی ساختاریافته
- مقایسه مدلها
پس از ورود کاربران واقعی، ارزیابی باید با دادههای واقعی نیز تکرار شود.
آموزش مدلهای کوچکتر
یک مدل قدرتمند میتواند Dataset تولید کند و از آن برای آموزش یا تنظیم مدل کوچکتر استفاده شود. این فرایند با Distillation ارتباط دارد، اما کیفیت مدل کوچکتر به کیفیت و پوشش داده تولیدی وابسته است.
تولید داده فارسی
داده فارسی باکیفیت در برخی حوزهها کمتر از انگلیسی در دسترس است. مدلهای زبانی میتوانند در ساخت نمونههای فارسی برای وظایف زیر کمک کنند:
- تشخیص موضوع
- تحلیل لحن
- استخراج موجودیت
- پرسش و پاسخ
- اصلاح نگارش
- ترجمه تخصصی
- دستهبندی پیام
- تولید پاسخ پشتیبانی
- تشخیص هدف کاربر
- ارزیابی دستیار فارسی
برای نتیجه بهتر باید تنوع نوشتاری فارسی بهطور صریح در فرایند تولید تعریف شود.
روشهای ساخت Synthetic Data
تولید قاعدهمحور
برای داده دارای قوانین روشن میتوان از کد استفاده کرد.
برای مثال:
cities = ["تهران", "شیراز", "تبریز"]
statuses = ["جدید", "در حال پردازش", "تکمیلشده"]
سپس مقادیر براساس قواعد ترکیب میشوند.
این روش سریع و قابلکنترل است، اما ممکن است تنوع طبیعی کافی ایجاد نکند.
تولید با شبیهسازی
در این روش یک محیط یا فرایند مدلسازی میشود و داده از اجرای شبیهسازی به دست میآید.
این رویکرد برای این حوزهها مناسب است:
- رباتیک
- ترافیک
- فرایند تولید
- لجستیک
- زنجیره تأمین
- سیستمهای فیزیکی
- محیطهای سهبعدی
تولید با مدل آماری
مدل میتواند الگوها و روابط موجود در داده جدولی را یاد بگیرد و نمونههای مشابه تولید کند.
SDV یکی از ابزارهای متنباز قابلاجرا با Python برای این کاربرد است.
تولید با مدل زبانی
مدل زبانی برای تولید دادههای متنی، مکالمهای و کد مناسب است. تولید باید با تعریف دقیق وظیفه، Schema، برچسبها و معیارهای کیفیت انجام شود.
روش ترکیبی
در روش ترکیبی، هر بخش با ابزار مناسب انجام میشود:
قواعد قطعی
+
مدل زبانی
+
اعتبارسنجی با کد
+
حذف نمونههای تکراری
+
بررسی انسانی
برای مثال، مدل متن پیام را تولید میکند؛ اما کد بررسی میکند که برچسب معتبر باشد، طول متن در محدوده قرار بگیرد و نمونه تکراری نباشد.
مراحل ساخت Dataset مصنوعی باکیفیت
۱. هدف Dataset را تعریف کنید
ابتدا مشخص کنید داده برای چه کاری ساخته میشود:
- آموزش
- Fine-tuning
- ارزیابی
- آزمایش Prompt
- مقایسه مدل
- توسعه رابط
- شبیهسازی Workflow
Dataset بدون هدف مشخص معمولاً شامل حجم زیادی داده کمفایده خواهد شد.
۲. Schema را قبل از تولید مشخص کنید
برای دستهبندی پیامهای مشتری میتوان چنین Schemaای تعریف کرد:
{
"id": "string",
"text": "string",
"label": "string",
"tone": "formal | conversational",
"difficulty": "easy | medium | hard"
}
Schema مشخص میکند چه اطلاعاتی باید تولید شوند و ارزیابی هر نمونه چگونه انجام شود.
۳. برچسبها را دقیق تعریف کنید
اگر مرز برچسبها روشن نباشد، مدل نیز نمونههای مبهم تولید میکند.
تعریف ضعیف:
پرداخت: پیامهای مربوط به پول
تعریف بهتر:
پرداخت: پیامهایی درباره ناموفقبودن پرداخت،
کسر مبلغ، روش پرداخت یا وضعیت تأیید تراکنش.
پیامهای مربوط به قیمت محصول در این گروه قرار نمیگیرند.
۴. چند نمونه مرجع ارائه دهید
چند نمونه باکیفیت به مدل نشان میدهند چه نوع خروجی مورد انتظار است. نمونهها باید نماینده تنوع واقعی باشند، نه نسخههای تقریباً یکسان.
۵. تنوع را هدفمند تعریف کنید
از مدل بخواهید در ابعاد مشخص تنوع ایجاد کند:
- رسمی و محاورهای
- کوتاه و بلند
- مستقیم و غیرمستقیم
- دارای غلط تایپی محدود
- دارای اصطلاحات رایج
- دارای جزئیات اضافی
- دارای چند جمله
- ساده و دشوار
- همراه با واژههای انگلیسی متداول
- شهرها و نامهای عمومی متفاوت
فقط نوشتن «نمونههای متنوع تولید کن» کنترل کافی ایجاد نمیکند.
۶. داده را در Batchهای کوچک تولید کنید
تولید هزاران نمونه در یک درخواست میتواند باعث تکرار، افت کیفیت و ناقصشدن خروجی شود.
روش مناسبتر:
- تولید ۲۰ تا ۵۰ نمونه
- ارزیابی
- اصلاح Prompt
- تولید Batch بعدی
- ترکیب و پاکسازی نتایج
۷. خروجی را با کد بررسی کنید
برای هر نمونه میتوان این موارد را کنترل کرد:
- JSON معتبر است.
- تمام فیلدها وجود دارند.
- برچسب مجاز است.
- متن خالی نیست.
- طول متن مناسب است.
- شناسه تکراری نیست.
- مقدارهای عددی در محدودهاند.
- رابطه زمانی صحیح است.
۸. نمونههای مشابه را حذف کنید
مدل ممکن است چند جمله با تغییرات جزئی تولید کند. شباهت را میتوان با این روشها بررسی کرد:
- تطبیق مستقیم متن
- نرمالسازی فاصله و علائم
- شباهت واژگانی
- Embedding و شباهت معنایی
- بررسی خوشههای بسیار نزدیک
Dataset بزرگ اما تکراری معمولاً ارزش کمتری از Dataset کوچک و متنوع دارد.
۹. نمونهها را بازبینی کنید
بخشی از داده باید توسط فرد آشنا با مسئله بررسی شود.
سؤالهای مهم:
- برچسب درست است؟
- جمله طبیعی است؟
- نمونه واقعاً به کاربرد مربوط است؟
- نمونه بیشازحد شبیه بقیه نیست؟
- آیا اطلاعات ساختگی ناموجه دارد؟
- آیا دشواری ثبتشده درست است؟
- آیا نمونه برای آموزش یا ارزیابی مفید است؟
۱۰. روی وظیفه نهایی آزمایش کنید
کیفیت داده مصنوعی با ظاهر آن مشخص نمیشود. باید بررسی کنید آیا استفاده از آن واقعاً عملکرد سیستم را روی مجموعه آزمون مستقل بهتر میکند یا خیر.
ساخت Dataset فارسی با API درواره
در این نمونه، با استفاده از API درواره داده مصنوعی برای تشخیص موضوع پیام مشتری تولید میکنیم.
آدرس پایه API درواره:
https://api.darvareh.ir/v1
ابتدا کتابخانه را نصب کنید:
pip install openai
سپس کد زیر را در Backend اجرا کنید:
import json
import os
import uuid
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DARVAREH_API_KEY"],
base_url="https://api.darvareh.ir/v1"
)
model_id = os.environ["DARVAREH_MODEL"]
allowed_labels = {
"پیگیری سفارش",
"پرداخت",
"تغییر آدرس",
"بازگشت کالا",
"موجودی محصول"
}
prompt = """
برای ساخت Dataset تشخیص موضوع پیام مشتری، ۲۰ نمونه فارسی تولید کن.
برچسبهای مجاز:
- پیگیری سفارش
- پرداخت
- تغییر آدرس
- بازگشت کالا
- موجودی محصول
شرایط:
- برای هر برچسب دقیقاً ۴ نمونه بساز.
- متنها طبیعی و مناسب کاربران ایرانی باشند.
- بخشی رسمی و بخشی محاورهای باشند.
- طول هر پیام بین ۵ تا ۳۰ کلمه باشد.
- نمونهها از نظر جملهبندی تکراری نباشند.
- اطلاعاتی را که برای تشخیص برچسب ضروری نیست اضافه نکن.
- فقط یک آرایه JSON برگردان.
ساختار هر آیتم:
{
"text": "متن پیام",
"label": "یکی از برچسبهای مجاز",
"tone": "formal یا conversational",
"difficulty": "easy یا medium یا hard"
}
"""
response = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "system",
"content": "شما تولیدکننده داده آموزشی فارسی هستید."
},
{
"role": "user",
"content": prompt
}
],
temperature=0.7
)
raw_content = response.choices[0].message.content
items = json.loads(raw_content)
validated_items = []
for item in items:
text = item.get("text", "").strip()
label = item.get("label", "").strip()
if not text:
continue
if label not in allowed_labels:
continue
validated_items.append({
"id": str(uuid.uuid4()),
"text": text,
"label": label,
"tone": item.get("tone"),
"difficulty": item.get("difficulty")
})
print(json.dumps(
validated_items,
ensure_ascii=False,
indent=2
))
این نمونه فرض میکند مدل خروجی JSON تمیز تولید میکند. برای محیط عملیاتی بهتر است از Structured Outputs یا JSON Schema استفاده کنید؛ البته فقط در صورتی که مدل انتخابی از آن پشتیبانی کند.
راهنمای Structured Outputs چیست؟ نحوه دریافت خروجی ساختاریافته را توضیح میدهد.
مدلها، شناسهها و قابلیتهای فعال ممکن است تغییر کنند. پیش از اجرا، کاتالوگ جاری درواره را بررسی کنید.
تولید داده در چند Batch
برای Dataset بزرگتر، بهتر است تنوع هر Batch را جداگانه تعریف کنید.
batch_configs = [
{
"tone": "رسمی",
"difficulty": "آسان",
"count": 30
},
{
"tone": "محاورهای",
"difficulty": "متوسط",
"count": 30
},
{
"tone": "ترکیبی",
"difficulty": "دشوار",
"count": 30
}
]
سپس هر تنظیم در یک درخواست جداگانه به مدل ارسال میشود. این روش کنترل توزیع Dataset را سادهتر میکند.
نمونه تولید داده سؤال و پاسخ
برای ساخت Dataset پرسش و پاسخ میتوان Schema زیر را به کار برد:
{
"question": "پرسش کاربر",
"answer": "پاسخ مرجع",
"topic": "موضوع",
"difficulty": "سطح دشواری",
"required_facts": [
"نکته ضروری اول",
"نکته ضروری دوم"
]
}
وجود required_facts ارزیابی پاسخ مدل را سادهتر میکند. میتوان بررسی کرد پاسخ تولیدشده چه تعداد از نکات ضروری را پوشش میدهد.
ساخت داده منفی
Dataset فقط نباید شامل پاسخها یا نمونههای ایدئال باشد.
برای ارزیابی دقیقتر میتوان نمونههای منفی ساخت:
- برچسب اشتباه
- پاسخ ناقص
- پاسخ نامرتبط
- پاسخ بیشازحد کلی
- خروجی با قالب نادرست
- پاسخ دارای اطلاعات حدسزدهشده
- نمونه نزدیک به دو برچسب
- درخواست خارج از محدوده
داده منفی به مدل یا سیستم ارزیابی کمک میکند تفاوت خروجی مطلوب و نامطلوب را بهتر تشخیص دهد.
چگونه کیفیت داده مصنوعی را ارزیابی کنیم؟
صحت برچسب
آیا نمونه واقعاً به برچسب ثبتشده تعلق دارد؟
تنوع
آیا نمونهها فقط بازنویسی یک جمله هستند یا سناریوهای متفاوتی را پوشش میدهند؟
طبیعیبودن
آیا متن شبیه زبان واقعی کاربران فارسی است یا لحن مصنوعی و بیشازحد رسمی دارد؟
پوشش
آیا تمام برچسبها، لحنها، طولها و سطوح دشواری به اندازه کافی حضور دارند؟
سازگاری ساختاری
آیا تمام نمونهها از Schema یکسان پیروی میکنند؟
کاربرد در وظیفه نهایی
آیا اضافهکردن داده مصنوعی، عملکرد مدل را روی داده آزمون مستقل بهتر میکند؟
فاصله آموزش و ارزیابی
داده آموزش و مجموعه ارزیابی نباید شامل نمونههای یکسان یا بسیار مشابه باشند.
ابزار SDMetrics نیز معیارهایی برای ارزیابی کیفیت و پوشش داده مصنوعی جدولی ارائه میکند.
مشکلات رایج داده مصنوعی
تکرار الگوهای محدود
اگر Prompt، نمونههای مرجع یا مدل تنوع کافی نداشته باشند، Dataset شامل جملههایی با ساختار مشابه میشود.
تولید اطلاعات نادرست
مدل ممکن است مثالهایی تولید کند که از نظر زبانی رواناند، اما با قواعد واقعی کسبوکار هماهنگ نیستند.
اشتباه در برچسبگذاری
تولید همزمان متن و برچسب به معنی صحیحبودن قطعی برچسب نیست. نمونههای مبهم باید بررسی یا حذف شوند.
سادهبودن بیشازحد
مدل معمولاً در اولین تلاش نمونههای واضح و آسان میسازد. باید موارد دشوار، چندمنظوره و نزدیک به مرز برچسبها نیز هدفمند تولید شوند.
تغییر توزیع Dataset
تولید تعداد مساوی برای تمام گروهها همیشه مناسب نیست. توزیع باید با هدف آموزش یا ارزیابی هماهنگ باشد.
ارزیابی داده با همان مدل تولیدکننده
اگر همان مدل هم داده را بسازد و هم تمام نمونهها را تأیید کند، ممکن است خطاهای خودش را تشخیص ندهد. بهتر است از ترکیب قواعد، مدل دیگر و بررسی انسانی استفاده شود.
اتکای کامل به داده مصنوعی
Dataset مصنوعی میتواند الگوهای تولیدکننده را بیشازحد بازتاب دهد. داده واقعی و ارزیابی مستقل همچنان برای سنجش عملکرد محصول ضروریاند.
معماری پیشنهادی Pipeline تولید داده
یک Pipeline کاربردی میتواند چنین ساختاری داشته باشد:
تعریف وظیفه و Schema
↓
انتخاب نمونههای مرجع
↓
تولید Batch با مدل
↓
اعتبارسنجی JSON و قواعد
↓
حذف نمونههای تکراری
↓
بررسی برچسب و کیفیت
↓
نمونهبرداری برای بازبینی انسانی
↓
تقسیم Train، Validation و Test
↓
آموزش یا ارزیابی مدل
↓
اندازهگیری اثر داده مصنوعی
API درواره لایه دسترسی به مدل را فراهم میکند. تعریف Schema، اجرای قواعد، ذخیره Dataset، حذف تکرار و ارزیابی باید در برنامه شما پیادهسازی شوند.
چه زمانی داده مصنوعی انتخاب مناسبی نیست؟
داده مصنوعی ممکن است انتخاب مناسبی نباشد اگر:
- تعریف وظیفه هنوز مشخص نیست.
- برچسبها مرز روشنی ندارند.
- هیچ نمونه مرجعی برای سنجش کیفیت وجود ندارد.
- نتیجه نهایی فقط با داده واقعی قابلارزیابی است.
- تیم امکان بررسی خروجی را ندارد.
- مدل تولیدکننده با اصطلاحات حوزه آشنا نیست.
- هدف صرفاً افزایش ظاهری تعداد ردیفهاست.
- داده مصنوعی عملکرد سیستم را روی آزمون مستقل بهتر نمیکند.
در این شرایط، بهتر است ابتدا مسئله، Schema و معیار ارزیابی اصلاح شوند.
ابزارهای قابلاستفاده برای ساخت داده مصنوعی
برای پروژههای قابلاجرا در بازار ایران میتوان از ابزارهای زیر استفاده کرد:
Python
برای تولید قاعدهمحور، پردازش فایل، اعتبارسنجی و ساخت Pipeline.
Pandas
برای پاکسازی، ترکیب، فیلتر و تحلیل Datasetهای جدولی.
SDV
کتابخانه متنباز Python برای تولید داده مصنوعی تکجدولی، چندجدولی و ترتیبی.
scikit-learn
برای آموزش مدل اولیه، تقسیم Dataset و ارزیابی اثر داده مصنوعی.
API درواره
برای تولید متن، مکالمه، سؤال و پاسخ، کد و داده ساختاریافته با مدلهای موجود در کاتالوگ.
این ترکیب به سرویس خارجی مشخصی وابسته نیست و بخش پردازش داده را میتوان در محیط توسعه یا سرور خود اجرا کرد.
پرسشهای متداول
داده مصنوعی چیست؟
داده مصنوعی اطلاعاتی است که با الگوریتم، شبیهسازی یا مدل هوش مصنوعی تولید میشود و میتواند برای آموزش، ارزیابی یا توسعه سیستمها استفاده شود.
آیا داده مصنوعی همان داده جعلی است؟
همیشه خیر. داده جعلی ممکن است فقط چند مقدار تصادفی باشد، اما Synthetic Data معمولاً با هدف بازسازی ساختار، روابط یا تنوع موردنیاز یک کاربرد تولید میشود.
آیا میتوان با مدل زبانی Dataset ساخت؟
بله. مدل زبانی برای تولید متن، سؤال و پاسخ، مکالمه، برچسب و کد مناسب است؛ اما خروجی باید با Schema، قواعد و بازبینی کنترل شود.
آیا داده مصنوعی جایگزین داده واقعی است؟
معمولاً بهطور کامل خیر. داده مصنوعی بیشتر برای تکمیل داده واقعی، افزایش پوشش، ساخت موارد نادر و توسعه اولیه مفید است.
آیا میتوان Dataset فارسی تولید کرد؟
بله. باید نوع زبان، لحن، اصطلاحات، طول، سطح دشواری و برچسبها را دقیق تعریف و خروجی را با نمونههای واقعی فارسی مقایسه کنید.
داده مصنوعی برای Fine-tuning مناسب است؟
میتواند مناسب باشد، اما کیفیت پاسخها، تنوع و ارتباط آنها با وظیفه نهایی باید بررسی شود. داده کمکیفیت ممکن است عملکرد مدل را کاهش دهد.
چند نمونه مصنوعی باید تولید کنیم؟
عدد ثابت و عمومی وجود ندارد. مقدار مناسب به پیچیدگی وظیفه، تعداد برچسبها، تنوع موردنیاز و نتیجه ارزیابی مدل بستگی دارد. از Batch کوچک شروع کنید و اثر آن را اندازهگیری کنید.
بهترین مدل برای تولید داده مصنوعی کدام است؟
بهترین مدل به زبان، نوع داده، پیچیدگی Schema، هزینه و کیفیت موردنیاز بستگی دارد. مدلها را روی یک درخواست و معیار یکسان مقایسه کنید.
درواره چه نقشی در تولید Synthetic Data دارد؟
درواره API دسترسی به مدلهای هوش مصنوعی را فراهم میکند. میتوانید از مدلهای مناسب برای تولید داده متنی، کد یا خروجی ساختاریافته استفاده کنید. پاکسازی و ارزیابی Dataset باید در Pipeline پروژه انجام شود.
جمعبندی
داده مصنوعی روشی برای تولید هدفمند اطلاعات موردنیاز آموزش، ارزیابی و توسعه سیستمهای هوش مصنوعی است. این داده میتواند با قواعد، مدل آماری، شبیهسازی یا مدل مولد ساخته شود.
برای تولید Dataset باکیفیت باید:
- هدف را مشخص کنید.
- Schema و برچسبها را تعریف کنید.
- نمونههای مرجع ارائه دهید.
- تنوع را هدفمند بسازید.
- داده را در Batchهای کوچک تولید کنید.
- خروجی را با کد اعتبارسنجی کنید.
- نمونههای تکراری را حذف کنید.
- بخشی از داده را بازبینی کنید.
- اثر Dataset را روی وظیفه واقعی بسنجید.
برای ساخت Dataset فارسی میتوانید مدلهای موجود را از طریق API درواره آزمایش کنید و با Python یک Pipeline کامل برای تولید، اعتبارسنجی و ذخیره داده بسازید.
مقالات مرتبط
- تولید داده تست با هوش مصنوعی؛ ساخت Mock Data و Mock API
- Fine-tuning مدل زبانی با LoRA و QLoRA
- تحلیل داده با هوش مصنوعی
- Structured Outputs چیست؟
- API هوش مصنوعی چیست؟
- هوش مصنوعی چندوجهی چیست؟
منابع
- NVIDIA: What Is Synthetic Data Generation?
- SDV: Synthetic Data Vault Documentation
- SDMetrics: Evaluating Synthetic Data
- Synthetic Data Generation Using Large Language Models
- Google Research: CodecLM Synthetic Data Framework
این مقاله صرفاً با هدف آموزش و اطلاعرسانی تهیه شده است. پیش از استفاده عملی، مستندات رسمی سرویسها و صفحه سلب مسئولیت را مطالعه کنید.