تولید داده مصنوعی برای LLM های تنظیم دقیق


نویسنده(های): کامبان پاراسورامان

در ابتدا منتشر شد به سمت هوش مصنوعی.

عکس توسط جاشوا سورتینو در پاشیدن

جیهمه منظوره مدل های زبان بزرگ (LLMs) مانند LLaMA، Mistral و Phi در پاسخگویی سریع به طیف وسیعی از سؤالات عمومی برتری دارند، زیرا بر روی مقادیر زیادی از داده های عمومی در دسترس آموزش دیده اند و به آنها امکان می دهد درک گسترده ای از موضوعات مختلف داشته باشند. با این حال، هنگامی که در حوزه های تخصصی اعمال می شوند، در درک پیچیدگی های زبانی ظریف صنعت کمتر موثر هستند. شرکت ها حجم زیادی از داده ها، از جمله اطلاعات مناسب و حساس را برای استفاده داخلی خود جمع آوری و ذخیره می کنند. این اطلاعات برای استفاده عمومی غیرقابل دسترسی باقی می‌ماند، و از این رو محدودیت‌های صورت LLM با هدف عمومی (درک شرایط خاص دامنه و نام‌های اختصاری) هنگامی که برای وظایف خاص صنعت اعمال می‌شود.

در بخش بیمه، این پویایی به ویژه مشهود است. شرکت های بیمه اطلاعات اختصاصی از جمله مشخصات دقیق مشتری، ارزیابی ریسک و تاریخچه خسارت را جمع آوری می کنند. این داده ها برای پذیره نویسی دقیق، قیمت گذاری خط مشی و کشف تقلب بسیار مهم است. با این حال، از آنجایی که این اطلاعات به صورت عمومی به اشتراک گذاشته نمی شود، LLM های همه منظوره نمی توانند به آن دسترسی داشته باشند، که منجر به عملکردی کمتر از حد مطلوب در برنامه های کاربردی بیمه می شود. مدل های سفارشی آموزش دیده، ساخته شده با داده های خاص صنعت، برای ارائه دقت و بینش مورد نیاز در صنعت بیمه ضروری هستند.

این مقاله چگونگی تولید داده های مصنوعی برای تنظیم دقیق LLM های همه منظوره را بررسی می کند. غواصی کنید و کشف کنید که چگونه می توانید بر محدودیت های LLM های همه منظوره غلبه کنید و آنها را مطابق با نیازهای تخصصی خود تطبیق دهید.

داده مصنوعی چیست؟

داده های ترکیبی اطلاعاتی هستند که به جای ایجاد اتفاقات در دنیای واقعی، به طور مصنوعی تولید می شوند. داده های ترکیبی از موجود مشتق شده است مجموعه داده ها یا مدل‌ها، ویژگی‌ها و ویژگی‌های رویدادها یا مدل‌های دنیای واقعی را تکرار می‌کنند.

چندین روش برای ایجاد داده مصنوعی وجود دارد که عبارتند از:

(الف) اضافه کردن نویز – نویز Gaussian یا Uniform ایجاد کنید و آن را به داده ها اضافه کنید. این رویکرد کمک می‌کند تا تغییرپذیری/تصادفی را که می‌توانیم در داده‌های دنیای واقعی انتظار داشته باشیم، ثبت کنیم.

(ب) تحولات – از تبدیل‌های هندسی مانند چرخش‌ها، ترجمه‌ها، اتساع یا مقیاس‌بندی برای دستیابی به اختلالات مختلف داده‌ها استفاده کنید.

ج) آماری – مدل‌های آماری از توزیع‌های مختلف (به عنوان مثال، عادی، نمایی، گاما) برای ایجاد یک مجموعه داده چند متغیره نمونه‌برداری می‌کنند. کوپولاس یک رویکرد آماری به طور گسترده برای تولید/نمونه داده‌ها هستند که ویژگی‌های آماری ویژگی‌های مختلف را حفظ می‌کنند، و همبستگی سازه ها

(د) شبکه های متخاصم مولد (GAN) – GAN ها دسته ای از مدل های تولیدی برای داده های جدولی هستند. GAN معماری شامل دو حالت فرعی است – “مولد” و “مشخص کننده”، که برای تولید مجموعه داده هایی که داده های دنیای واقعی را تقلید می کنند با یکدیگر رقابت می کنند. نقش اصلی Generator تولید داده های مصنوعی است که از مجموعه داده های آموزشی تقلید می کند تا حدی که Discriminator نمی تواند داده های مصنوعی را از داده های واقعی تشخیص دهد. برای جزئیات بیشتر در GAN، لطفا به وبلاگ من در مورد استفاده از GAN ها برای شبیه سازی داده های آب و هوای تصادفی مراجعه کنید.

چرا به داده های مصنوعی نیاز داریم؟

تجربیات زندگی واقعی شبکه های عصبی بیولوژیکی را شکل می دهند، به طور مشابه، داده ها یک شبکه عصبی مصنوعی را شکل می دهند.

داده های واقعی به سختی به دست می آیند یا ممکن است اطلاعات حساس/محرمانه ای داشته باشند که ما به راحتی نتوانیم به آنها دسترسی پیدا کنیم. همچنین، داده های دنیای واقعی بسیار بدون ساختار هستند. در مقابل، تولید داده‌های مصنوعی ارزان است و کاملاً دارای برچسب و ساختار هستند. این داده‌ها می‌توانند به سازمان‌ها کمک کنند تا مدل‌های خود را روی سناریوهایی که وجود ندارند، دقیق تنظیم و آزمایش کنند. همچنین می‌تواند به کاهش تعصبی که ممکن است در مجموعه داده‌های دنیای واقعی وجود داشته باشد کمک کند و به مدل‌های هوش مصنوعی منصفانه‌تر، دقیق‌تر و قابل اعتمادتر کمک کند.

در حالی که داده‌های مصنوعی داده‌های با حجم بالا، با برچسب‌گذاری مناسب و خاص دامنه را با هزینه‌ای معقول ارائه می‌کنند، اما مجموعه‌ای از چالش‌های خاص خود را دارد. از آنجایی که داده‌های مصنوعی از داده‌ها و مدل‌های موجود مشتق می‌شوند، نمی‌توانند رویدادهای کاملاً جدید و در عین حال قابل قبولی را که هنوز رخ نداده‌اند ایجاد کند.

چارچوب تولید کننده داده مصنوعی

ما یک برنامه Streamlit توسعه خواهیم داد که به کاربران اجازه می دهد اسناد را آپلود کنند و مجموعه داده های مصنوعی را با استفاده از مدل LLaMA 3-8B تولید کنند. همه اینها به صورت محلی در ماشین های ما با استفاده از Olama انجام می شود. برای بررسی عمیق‌تر در توسعه برنامه‌های RAG محلی با مدل‌های منبع باز، لطفاً به بخش قبلی مراجعه کنید پست وبلاگ.

به طور معمول در برنامه های RAG، LLM ها پاسخ هایی را برای یک سوال داده شده بر اساس یک زمینه مشخص تولید می کنند. کیفیت این پاسخ ها بر اساس کیفیت زمینه استخراج LLM ها است. با این حال، ما یک استراتژی «معکوس سازمان ملل متحد» را به کار خواهیم گرفت، که در آن به جای جستجوی پاسخ، از LLM می خواهیم سؤالاتی را ایجاد کند که می تواند به آنها پاسخ دهد. در این رویکرد، ابتدا سند را به پنجره‌های زمینه کوچک‌تر تقسیم می‌کنیم، و برای هر یک از زمینه‌ها، از LLM می‌خواهیم سؤالی ایجاد کند که بتواند به آن پاسخ دهد. این روش از توانایی LLM برای درک پویا و تولید سوالات مرتبط با زمینه استفاده می کند.

هدف نهایی داده های تولید شده به صورت مصنوعی، تنظیم دقیق LLM های همه منظوره است. همراه با سوالات ایجاد شده، باید پاسخ های مرجع مربوطه را نیز استخراج کنیم. سپس این پاسخ های مرجع می توانند به عنوان “حقیقت پایه” عمل کنند که LLM ها را می توان به خوبی تنظیم کرد. به طور خلاصه، برای هر پنجره زمینه، از LLM می‌خواهیم تا یک سؤال ایجاد کند، و سپس از سؤال ایجاد شده و زمینه برای تولید یک پاسخ مرجع از LLM استفاده می‌کنیم. در پایان این مرحله یک تاپل متشکل از Context، Question و Reference Answer خواهیم داشت. در زیر اعلان سیستمی است که برای ایجاد جفت پرسش و پاسخ برای یک پنجره زمینه داده شده استفاده می شود.

question_answer_prompt = """\
You are an AI system that constructs question-answer pairs based on a given Context.
Your response should always have two parts, and label the parts as follows:
Question: [Insert question here]
Answer: [Insert answer here]

Strictly follow the response format. Please do not include any
additional texts before or after Question and Answer labels.

Context:
{context}
"""

کد منبع برنامه Synthetic Data Generation در من موجود است صفحه GitHub.

تولید داده های مصنوعی

ما از ” استفاده خواهیم کردتوجه تنها چیزی است که نیاز داریدکاغذ به عنوان ورودی برنامه برای نشان دادن نحوه عملکرد برنامه و تولید مجموعه داده های مصنوعی. برای ایجاد پنجره های زمینه، از استاندارد استفاده می کنیم RecursiveCharacterTextSplitter. این منجر به 31 تکه برای مقاله ارجاع شده می شود که هر کدام یک پنجره زمینه را نشان می دهد. این برنامه با استفاده از مدل LLaMA 3-8B یک پرسش و پاسخ مرجع برای هر زمینه ایجاد می کند، در حالی که مدل Mistral پاسخی برای مقایسه با پاسخ مرجع تولید می کند. مجموعه داده مصنوعی حاصل از 31 نقطه داده برای تنظیم دقیق LLMها تشکیل شده است.

def TextSplit(raw_text):
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, # The maximum size of each text chunk
chunk_overlap=80, # The number of characters to overlap between chunks
length_function=len, # Function to calculate the length of each chunk
is_separator_regex=False, # Indicates if the separator is a regex
)
# Split the raw text into chunks and return the result
return text_splitter.split_documents(raw_text)

جدول زیر مجموعه داده مصنوعی تولید شده توسط برنامه را نشان می دهد. برای اختصار، تنها 4 مورد از 31 نقطه داده نشان داده شده است. ستون “Context” شامل تکه های متنی از سند است. ستون های “سوال” و “پاسخ مرجع” سوالات و پاسخ های مرجع تولید شده توسط مدل LLaMA 3-8B را نشان می دهند. ستون “پاسخ” شامل پاسخ های مدل Mistral است. همانطور که نمونه های آموزشی در جدول نشان داده شده است، برنامه با موفقیت سوالات مختلفی از جمله سوالات مبتنی بر واقعیت و زمینه ای را ایجاد کرد.

Fine-Tuning LLMs

تنظیم دقیق LLM خارج از محدوده این وبلاگ است و در مقاله آینده به آن پرداخته خواهد شد. با این حال، برای نشان دادن اینکه چگونه داده های مصنوعی تولید شده توسط این برنامه را می توان برای تنظیم دقیق LLM های عمومی استفاده کرد، از مدل Mistral 7-B برای ارائه دیدگاه های مختلف در مورد سوال ایجاد شده استفاده خواهیم کرد. این رویکرد مشابه تغییراتی است که هنگام تنظیم دقیق وزنه ها در LLM های همه منظوره می توانیم انتظار داشته باشیم. تابع هدف برای تنظیم دقیق LLM به حداقل رساندن متقاطع خواهد بود.آنتروپی از دست دادن بین پاسخ مرجع و پاسخ در طول هر تکرار تنظیم وزن.

افکار نهایی

LLMهای عمومی و عمومی در زمینه سازی اطلاعات عالی هستند، اما زمانی که برای وظایف خاص دامنه اعمال می شوند، کوتاهی می کنند. در حالی که مهندسی سریع می‌تواند به کشف برخی اطلاعات مرتبط کمک کند، این مدل‌های زبان ذاتاً برای درک زبان خاص صنعت مشکل دارند.

تنظیم دقیق راه حلی مناسب برای غلبه بر این محدودیت ها ارائه می دهد و LLM های همه منظوره را متناسب با نیازهای صنعت تغییر می دهد. تنظیم دقیق LLM به مقدار قابل توجهی از داده های با کیفیت (جفت پاسخ پرسش-مرجع) نیاز دارد، و برنامه به اشتراک گذاشته شده در این مقاله راه حل موثری برای ساخت سریع و مقیاس بندی مجموعه داده های مصنوعی خاص سازمانی ارائه می دهد.

با تشکر از خواندن این مقاله! همه بازخوردها قدردانی می شود. برای هر گونه سوال در صورت تمایل با من تماس بگیرید.

اگر این مقاله را دوست داشتید، در اینجا چند مقاله دیگر وجود دارد که ممکن است از آنها لذت ببرید:

مولد آب و هوای تصادفی با استفاده از شبکه های متخاصم مولد

مدل سازی توزیع های چند متغیره با استفاده از GAN

todatascience.com

ایجاد یک برنامه RAG کمیته محلی (CoE) برای کشف اسناد

دگرگونی چشم انداز بیمه و بیمه اتکایی

pub.towardsai.net

نظرات بیان شده در این مقاله متعلق به من است و لزوماً منعکس کننده نظرات کارفرمای من نیست.

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/synthetic-data-generation-for-fine-tuning-llms

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *