cover

یادگیری درون‌گرا (In-Context Learning) چیست؟

مقدمه

یادگیری درون‌گرا (In-Context Learning یا ICL) یک مفهوم نوین در پردازش زبان طبیعی است که به مدل‌های پیش‌آموزش‌دیده این توانایی را می‌دهد تا در زمان استنتاج (Inference) وظایف مختلف را بدون نیاز به به‌روزرسانی وزن‌ها یا پارامترهای مدل انجام دهند. برخلاف روش‌های سنتی که نیاز به تغییرات فیزیکی در ساختار مدل دارند (مانند فین‌تیونینگ)، در یادگیری درون‌گرا مدل‌ها می‌توانند تنها با ارائه تعدادی مثال در ورودی، دانش جدید را به‌طور موقت یاد بگیرند و بلافاصله برای وظیفه جدیدی پاسخ دهند. این قابلیت باعث شده که یادگیری درون‌گرا به ابزاری کارآمد برای تعامل سریع و بی‌دردسر با مدل‌های پیش‌آموزش‌دیده تبدیل شود، بدون اینکه نیاز به پردازش‌های سنگین و بازآموزی مجدد باشد.

در این مقاله، ابتدا به تعریف یادگیری درون‌گرا و مفاهیم کلیدی آن پرداخته‌ایم، سپس نحوه عملکرد این فرآیند را از طریق مثال‌های عملی و تکنیک‌های مختلف مانند مهندسی پرامپت و مکانیزم توجه توضیح داده‌ایم. در ادامه، به بررسی انواع روش‌های تعامل مانند Zero-shot، One-shot و Few-shot پرداخته‌ایم که هرکدام از آن‌ها بسته به نیاز و پیچیدگی وظیفه، کاربرد خاص خود را دارند. همچنین به مزایا و معایب این روش‌ها، چالش‌های احتمالی و نکات کاربردی در استفاده از یادگیری درون‌گرا در صنعت پرداخته‌ایم.

تعریف جامع و مفاهیم پایه‌ای

برای درک عمیق یادگیری درون‌گرا، باید ابتدا نگاهی به “مغز” مدل‌های زبانی بیندازیم. یادگیری درون‌گرا یک ویژگی محاسباتی است که در آن مدل، دانش جدید را نه از طریق تغییر در ساختار عصبی (وزن‌ها)، بلکه از طریق پردازش هوشمندانه ورودی‌های موجود در پنجره بافت (Context Window)  به دست می‌آورد.

  • تعریف آکادمیک: یادگیری درون‌گرا به توانایی یک مدل پیش‌آموزش‌دیده (Pre-trained) برای انجام یک وظیفه در زمان استنتاج (Inference)، صرفاً بر اساس تعدادی مثال یا دستورالعمل ارائه شده در ورودی، بدون هیچ‌گونه به‌روزرسانی در پارامترهای مدل اطلاق می‌شود.
  • تعریف به زبان ساده: تصور کنید یک کتابخانه عظیم (مدل) دارید. در روش قدیمی، برای اضافه کردن یک مطلب جدید باید کل کتاب‌ها را از اول چاپ می‌کردید (Fine-tuning). اما در یادگیری درون‌گرا، شما فقط یک یادداشت روی میز کتابدار می‌گذارید؛ کتابدار با خواندن آن یادداشت، سریعاً متوجه می‌شود منظور شما چیست و همان‌جا پاسخ را می‌دهد، بدون اینکه نیازی به تغییر کتاب‌های کتابخانه باشد.

.

اصطلاحات کلیدی در یادگیری درون‌گرا

برای اینکه به عنوان یک متخصص در این حوزه شناخته شوید، باید با این چهار واژه کلیدی آشنا باشید:

  1. Context Window(پنجره بافت): این “میز کار” مدل است. فضایی که مدل می‌تواند در هر لحظه ببیند. هرچه این پنجره بزرگتر باشد، مدل می‌تواند مثال‌های بیشتری را برای یادگیری درون‌گرا در نظر بگیرد.
  2. Tokens (توکن‌ها): واحدهای سازنده متن. مدل‌ها کلمات را نمی‌فهمند، بلکه آن‌ها را به توکن تبدیل می‌کنند. در یادگیری درون‌گرا، تعداد توکن‌های مصرفی برای مثال‌ها بسیار حیاتی است.
  3. Inference (استنتاج): مرحله‌ای که مدل در حال پاسخ دادن است. برخلاف یادگیری سنتی که در مرحله آموزش (Training)  رخ می‌داد، یادگیری درون‌گرا دقیقاً در مرحله استنتاج اتفاق می‌افتد.
  4. Prompt Engineering (مهندسی پرامپت): هنر طراحیِ بهترین مثال‌ها و دستورالعمل‌ها برای هدایت مدل در فرآیند یادگیری درون‌گرا.

.

یادگیری درون‌گرا چگونه کار می‌کند؟

بزرگترین سوال در مواجهه با مدل‌های زبانی بزرگ این است: اگر ما هیچ تغییری در کدهای اصلی یا وزن‌های مدل ایجاد نمی‌کنیم، هوش مصنوعی چطور متوجه منظور ما می‌شود؟ پاسخ این معما در پدیده‌ای به نام یادگیری درون‌گرا نهفته است؛ پدیده‌ای که دانشمندان آن را به طرز غیرمنطقی کارآمد توصیف می‌کنند.

مکانیزم توجه (Attention): چشمان تیزبین مدل

قلب تپنده یادگیری درون‌گرا، مکانیزمی به نام Attention یا توجه است. تصور کنید در یک مهمانی شلوغ هستید و چندین نفر همزمان صحبت می‌کنند، اما شما فقط روی صدای دوستتان تمرکز می‌کنید؛ مدل‌های هوش مصنوعی نیز دقیقاً همین کار را انجام می‌دهند.

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

یادگیری در لحظه  (Inference-time Learning)

یکی از شگفت‌انگیزترین جنبه‌های یادگیری درون‌گرا (ICL)، ماهیت زمانی آن است. برخلاف یادگیری ماشین سنتی که فرآیندی تجمعی و کُند محسوب می‌شد، یادگیری درون‌گرا نوعی انطباق پویا (Dynamic Adaptation) در لحظه است. در این مدل، ما با پدیده‌ای روبرو هستیم که به آن یادگیری در زمان استنتاج (Inference-time Learning) می‌گویند؛ یعنی مدل دقیقاً در همان لحظه‌ای که در حال پاسخ دادن به شماست، در حال یادگیری ساختارِ مطلوب شما نیز هست.

حافظه کاری در مقابل تغییرات ساختاری

برای درک بهتر، بیایید از یک استعاره‌ی بیولوژیکی استفاده کنیم. یادگیری سنتی (فین‌تیونینگ) شبیه به ایجاد تغییرات فیزیکی در سیناپس‌های مغز و تشکیل حافظه بلندمدت است؛ فرآیندی که زمان‌بر و انرژی‌بر است. اما یادگیری درون‌گرا، دقیقاً مشابه حافظه کاری (Working Memory)  یا حافظه کوتاه‎مدت انسان عمل می‌کند.

مدل اطلاعات، مثال‌ها و لحن درخواستی شما را فقط تا زمانی که پنجره گفتگو (Context Window) باز است، در ذهنِ دیجیتالی خود نگه می‌دارد. به محض اینکه پاسخ نهایی تولید شد و نشست (Session) به پایان رسید، تمام آن آموخته‌های لحظه‌ای پاک می‌شوند. این ویژگی به مدل اجازه می‌دهد که بدون سنگین شدن یا تغییر شخصیت دائمی، در هر لحظه نقش جدیدی ایفا کند؛ یک بار به عنوان مترجم، بار دیگر به عنوان کدنویس و بار دیگر به عنوان یک منتقد ادبی.

.

روش‌های تعامل در یادگیری درون‌گرا

۱. یادگیری بدون مثال (Zero-shot Learning)

در این روش، شما فرض را بر این می‌گذارید که مدل به دلیل آموزش‌های پیشین (Pre-training)، مفهوم وظیفه را کاملاً درک می‌کند و تنها به یک دستور صریح نیاز دارد.

  • توضیح: هیچ جفت ورودی-خروجی به عنوان نمونه داده نمی‌شود؛ مدل فقط بر اساس شرح وظیفه (Instruction) پاسخ می‌دهد.
  • نحوه کار: مدل در فضای برداری خود به دنبال نزدیک‌ترین مفهوم مرتبط با دستور شما می‌گردد و پاسخ را تولید می‌کند.
  • مزایا: سرعت بسیار بالا، مصرف حداقل توکن (کاهش هزینه) و سادگی در تعامل.
  • معایب: دقت پایین در کارهای تخصصی، حساسیت بسیار زیاد به نوع نگارش دستور (Prompt Brittleness).
  • کاربرد در صنعت: سیستم‌های پاسخگویی خودکار عمومی، خلاصه‌سازی سریع اخبار و تشخیص زبان متن.
  • مثال:متن زیر را به زبان آلمانی ترجمه کن: سلام، حالت چطور است؟”

.

۲. یادگیری با یک مثال (One-shot Learning)

این روش یک پل میان سادگی و دقت است. شما با ارائه یک مثال، ساختار و لحن مورد نظر خود را به مدل دیکته می‌کنید.

  • توضیح: ارائه دقیقاً یک نمونه از جفت ورودی-خروجی قبل از پرسش اصلی.
  • نحوه کار: مدل از این تک مثال برای تنظیم قالب خروجی استفاده می‌کند. این کار ابهام را در مورد نحوه‌ی نمایش نتایج از بین می‌برد.
  • مزایا: تعیین دقیق فرمت خروجی (مثلاً JSON یا جدول) با هزینه توکن اندک.
  • معایب: اگر همان یک مثال دارای سوگیری (Bias) باشد، مدل کل خروجی را بر اساس همان اشتباه تنظیم می‌کند.
  • کاربرد در صنعت: استخراج داده از ایمیل‌ها با فرمت خاص، تبدیل کدهای برنامه‌نویسی ساده.
  • مثال:

.

۳. یادگیری با چند مثال (Few-shot Learning)

این روش استاندارد طلایی یادگیری درون‌گراست. در اینجا شما یک محیط یادگیری کوچک (Mini-training set) در پنجره بافت ایجاد می‌کنید.

  • توضیح: ارائه ۲ تا ۱۰ مثال متنوع که جنبه‌های مختلف وظیفه (شامل استثناها) را پوشش می‌دهند.
  • نحوه کار: مدل از طریق مکانیزم Self-Attention، الگوهای تکرار شونده در مثال‌ها را استخراج کرده و یک قانون موقت برای پاسخ‌دهی وضع می‌کند.
  • مزایا: بالاترین سطح دقت، توانایی یادگیری مفاهیم بسیار پیچیده و کاهش نیاز به فین‌تیونینگ سنگین.
  • معایب: مصرف بالای توکن (افزایش هزینه)، احتمال سردرگمی مدل در صورت وجود مثال‌های متناقض.
  • کاربرد در صنعت: تحلیل احساسات پیچیده (مثلاً تشخیص کنایه در نظرات)، دسته‌بندی اسناد حقوقی و تولید محتوا با لحن برند اختصاصی.
  • مثال:

.

جدول مقایسه راهبردی روش‌های ICL

این جدول به شما کمک می‌کند تا بر اساس اولویت پروژه (سرعت یا دقت)، روش مناسب را انتخاب کنید:

ویژگیZero-shotOne-shotFew-shot
تعداد مثال‌ها۰۱۳ تا ۱۰
دقت پیش‌بینیمتوسط (بسته به سختی کار)خوب (برای تعیین ساختار)عالی (برای کارهای پیچیده)
هزینه توکنبسیار پایینپایینبالا
نیاز به تخصص کاربرکم (فقط دستور‌دهی)متوسطبالا (برای انتخاب مثال‌های متنوع)
منبع یادگیریدانش پیش‌آموزش (Pre-training)بافت (Context) + دانش قبلیبافت (Context) غنی شده

  تقابل استراتژیک: کالبدشکافی زیرساختی ICL در برابر فین‌تیونینگ

  بسیاری از پژوهشگران تراز اول هوش مصنوعی، ICL را یک فین‌تیونینگ ضمنی (Implicit Fine-tuning) می‌نامند. تفاوت این دو روش در واقع تفاوت بین تغییر دادن خودِ دستگاه و تغییر دادن روش استفاده از دستگاه است. در ICL، دانش از میان لایه‌های مدل عبور می‌کند اما اثری فیزیکی بر جای نمی‌گذارد، در حالی که در فین‌تیونینگ، وزن‌های مدل جابه‌جا می‌شوند تا برای همیشه با داده‌های جدید سازگار شوند.

در جدول زیر، این تفاوت‌های زیرساختی را برای درک بهتر مهندسان و علاقمندان به هوش مصنوعی کالبدشکافی کرده‌ایم:

ویژگییادگیری درون‌گرا (ICL)فین‌تیونینگ (Fine-tuning)
نوع محاسبات ریاضیفقط محاسبات پیش‌رو (Forward Pass): داده‌ها فقط به جلو حرکت می‌کنند تا خروجی تولید شود.شامل پس‌انتشار (Backpropagation): خطا به عقب برمی‌گردد تا پارامترها را اصلاح کند.
تغییر پارامترها (وزن‌ها)ثابت و بدون تغییر: مدل دقیقاً همان مدلی است که از کارخانه بیرون آمده است.به‌روزرسانی ساختاری: وزن‌های شبکه عصبی به صورت فیزیکی تغییر می‌کنند.
سرعت و چابکیآنی و لحظه‌ای: یادگیری همزمان با تولید پاسخ اتفاق می‌افتد (Real-time).کُند و آفلاین: نیازمند زمان پردازش طولانی و تکرارهای متعدد است.
نیاز به سخت‌افزار (GPU)بسیار کم: برای کاربر نهایی هزینه‌ی پردازشیِ آموزشی ندارد.بسیار بالا: نیازمند پردازنده‌های گرافیکی قدرتمند برای بازآموزی است.
ماندگاری دانشموقت: دانش با پایانِ پنجره بافت (Context) از بین می‌رود.دائمی: مدل به طور همیشگی رفتار جدید را یاد می‌گیرد.
نیاز به دادهحداقلی: با ۱ تا ۵ مثال (Few-shot) به نتیجه می‌رسد.حداکثری: معمولاً نیازمند صدها یا هزاران داده‌ی برچسب‌دار است.

پنجره بافت (Context Window)

در واقع همان حافظه کاری (Working Memory) مدل زبانی است؛ فضایی که مشخص می‌کند مدل در لحظه‌ی استنتاج، همزمان به چه حجم از اطلاعات (شامل مثال‌ها، دستورالعمل‌ها و تاریخچه گفتگو) دسترسی دارد. اگر این پنجره را یک میز کار در نظر بگیریم، ظرفیت آن تعیین می‌کند که چه تعداد کتاب مرجع (مثال) را می‌توانید همزمان برای راهنمایی مدل روی میز باز بگذارید.

پارادوکس کمیت و کیفیت: چرا بیشتر همیشه بهتر نیست؟

اگرچه پیشرفت‌های اخیر باعث شده پنجره بافت مدل‌ها از چند هزار توکن به بیش از یک میلیون توکن برسد، اما تحقیقات ثابت کرده که در یادگیری درون‌گرا (ICL)، کیفیت مثال‌ها بر کمیت آن‌ها غلبه دارد.

اصل ورود زباله، خروج زباله (GIGO)

مدل‌های زبانی به دلیل ماهیت درون‌گرای خود، به شدت نسبت به محتوای پنجره بافت تاثیرپذیر و مطیع هستند. این موضوع یک شمشیر دو لبه است:

  • تکرار اشتباه: اگر در مثال‌های خود داده‌های متناقض، غلط‌های نگارشی یا سوگیری‌های (Bias) پنهان داشته باشید، مدل آن‌ها را به عنوان قانون جدید می‌پذیرد. در واقع مدل فرض می‌کند که شما عمداً این سبک را انتخاب کرده‌اید و با دقتِ تمام، همان اشتباهات را در خروجی بازتولید می‌کند.
  • راهکار: برای موفقیت در ICL، مثال‌ها باید به گونه‌ای انتخاب شوند که مرزهای وظیفه و استثناهای احتمالی را به شفاف‌ترین شکل ممکن برای مدل ترسیم کنند.

.

بهینه‌سازی فضا (Token Economy)

  • هر کلمه‌ای که در پنجره بافت قرار می‌گیرد، هزینه‌ی محاسباتی و زمانی دارد. مهندسی پرامپتِ هوشمندانه یعنی استفاده از مثال‌های حداقلی اما حداکثری؛ به این معنا که با کمترین تعداد مثال، متنوع‌ترین حالات ممکنِ یک وظیفه را به مدل آموزش دهیم.
  • نکته کلیدی: پنجره بافت بزرگتر به شما قدرت مانور می‌دهد، اما این دقت در انتخاب مثال‌هاست که تعیین می‌کند مدل شما مانند یک متخصص عمل کند یا یک شاگرد سردرگم.

.

پیاده‌سازی مهندسی‌شده یادگیری درون‌گرا (ICL)

برای اینکه خروجی دقیق و  به طرز غیرمنطقی کارآمد  باشد، مراحل زیر را طی می‌کنیم:

  1. انتخاب مدل مناسب: استفاده از مدلی که مفهوم  وظیفه  (Task) را در مرحله پیش‌آموزش به خوبی درک کرده باشد
  2. ساختاربندی دقیق پرامپت: استفاده از جداکننده‌های استاندارد برای اینکه مکانیزم Attention بتواند مرز بین مثال‌ها را به درستی تشخیص دهد.
  3. استفاده از تکنیک چند-مثاله (Few-shot): ارائه ۳ مثال متنوع برای پوشش دادن حالات مختلف، جهت جلوگیری از سوگیری مدل.
  4. پردازش پیش‌رو (Forward Pass): اجرای مدل بدون دستکاری پارامترها، که باعث می‌شود سیستم بسیار چابک و سریع عمل کند.

کد پایتون :

این کد یک سیستم  استخراج داده‌های کلیدی  (Entity Extraction) را پیاده‌سازی می‌کند که یکی از کاربردهای مهم ICL در صنعت است.

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import torch

# ۱. بارگذاری مدل بهینه برای درک دستورالعمل (FLAN-T5)
model_name = "google/flan-t5-small"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)

# ۲. تعریف "پنجره بافت" حاوی مثال‌های دقیق (Few-shot)
# در اینجا به مدل یاد می‌دهیم چگونه نام شهر و کشور را از متن استخراج کند
context = """
Task: Extract (City, Country) from the text.

Example 1:
Input: I visited the beautiful Eiffel Tower in Paris, France last summer.
Output: (Paris, France)

Example 2:
Input: The bustling streets of Tokyo in Japan are amazing at night.
Output: (Tokyo, Japan)

Example 3:
Input: I want to see the historical sites in Rome, Italy.
Output: (Rome, Italy)

Your Turn:
Input: I am planning a trip to the Azadi Tower in Tehran, Iran.
Output:"""

# ۳. تبدیل متن به توکن و ارسال به مدل (Inference-time Learning) 
inputs = tokenizer(context, return_tensors="pt")

# ۴. تولید خروجی بدون هیچ‌گونه فین‌تیونینگ یا تغییر وزن 
print("--- در حال استخراج الگو از بافت و تولید پاسخ ---")
outputs = model.generate(**inputs, max_new_tokens=10)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)

# ۵. نمایش خروجی نهایی
print(f"\nمتن ورودی جدید: I am planning a trip to the Azadi Tower in Tehran, Iran.")
print(f"خروجی استخراج شده توسط مدل: {result}")

خروجی:

.

کاربردهای یادگیری درون‌گرا

بینایی ماشین  

  • بصری‌سازی پرامپت: همان‌طور که در متن به مدل مثال می‌دهیم، در بینایی ماشین می‌توانیم چند تصویر نمونه به مدل بدهیم. برای مثال، اگر بخواهیم مدل یک نوع ناهنجاری خاص در قطعات صنعتی را پیدا کند، کافی است ۲ یا ۳ تصویر از قطعه سالم و قطعه معیوب را به آن نشان دهیم. مدل بدون آموزش مجدد، الگوی نقص را در تصاویر جدید پیدا می‌کند.
  • بخش‌بندی تصاویر: با دادن چند مثال از نحوه جدا کردن سوژه از پس‌زمینه، مدل می‌تواند در محیط‌های جدید (مثل عکس‌های ماهواره‌ای یا پزشکی) به سرعت خودش را تطبیق دهد.

.

خدمات مالی و بانکی  

در صنعت مالی، قوانین و الگوهای کلاهبرداری مدام در حال تغییر هستند.

  • تحلیل احساسات بازار: تحلیل‌گران می‌توانند با دادن چند مثال از توئیت‌های تأثیرگذار بر قیمت سهام، مدل را به سرعت برای شناسایی سیگنال‌های خرید و فروش در همان لحظه آماده کنند.
  • دسته‌بندی تراکنش‌ها: بانک‌ها بدون نیاز به فین‌تیون کردن مدل‌های سنگین، می‌توانند با چند مثال ساده، سیستم‌های پاسخگوی خودکار را برای دسته‌بندی تراکنش‌های مشکوک آموزش دهند.

.

پشتیبانی مشتریان و شخصی‌سازی  

  • انطباق با لحن برند: شما می‌توانید ۵ نمونه از پاسخ‌های قبلی بهترین اپراتور خود را به مدل بدهید. مدل با استفاده از یادگیری درون‌گرا، دقیقاً با همان لحن، دایره لغات و صمیمیت به مشتریان جدید پاسخ می‌دهد.
  • استخراج داده از ایمیل‌ها: شرکت‌ها از ICL برای خواندن ایمیل‌های انبوه و استخراج شماره پیگیری یا نوع شکایت استفاده می‌کنند، صرفاً با نشان دادن اینکه چطور باید این کار را انجام داد.

.

برنامه‌نویسی و توسعه نرم‌افزار

توسعه‌دهندگان بزرگترین بهره‌برداران این تکنولوژی هستند. ابزارهایی مثل GitHub Copilot بر پایه همین مفهوم کار می‌کنند.

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

.

مطالعه موردی1:بینایی ماشین: سیستم کنترل کیفیت هوشمند (صنایع تولیدی)

این مورد نشان می‌دهد که قدرت ICL فراتر از متن است و می‌تواند در پردازش تصاویر نیز انقلابی ایجاد کند.

  • هدف: شناسایی عیوب قطعات در خط تولید بدون نیاز به آموزش مدل جدید (Fine-tuning) برای هر قطعه‌ی متفاوت.
  • نحوه اجرا :به جای بازآموزی لایه‌های عمیق، تنها با قرار دادن ۲ یا ۳ تصویر نمونه از قطعه «سالم» و قطعه «معیوب» در ورودیِ یک مدل چندوجهی (Multimodal)، مدل یاد می‌گیرد ناهنجاری را در تصاویر جدید تشخیص دهد.
  • مزیت: سرعت استقرار بسیار بالا؛ برای اضافه کردن یک محصول جدید به خط تولید، نیازی به توقف سیستم برای آموزش مجدد نیست.

کد پایتون:

from transformers import pipeline

# استفاده از یک مدل Zero-shot/Few-shot برای شبیه‌سازی منطق کنترل کیفیت
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")

# تعریف بافت (Context) بر اساس ویژگی‌های بصری قطعه
# در واقعیت، این توصیف‌ها از لایه‌های Attention تصویر استخراج می‌شوند 
def quality_control(item_description):
    labels = ["سالم (Healthy)", "معیوب (Defective)"]
    
    # مدل بدون آموزش قبلی روی این قطعه، بر اساس دستورالعمل خروجی می‌دهد 
    result = classifier(item_description, candidate_labels=labels)
    return result['labels'][0], result['scores'][0]

# مورد تست: قطعه‌ای که خراشیدگی دارد
test_item = "A metal gear with a deep vertical scratch on the surface"
status, confidence = quality_control(test_item)

print(f"وضعیت قطعه: {status}")
print(f"اطمینان مدل: {confidence*100:.2f}%")

خروجی:

.

مطالعه موردی2: فین‌تک: سیستم پویای تحلیل احساسات بازار بورس

در بازارهای مالی، اصطلاحات جدید و ترندهای لحظه‌ای باعث می‌شوند مدل‌های قدیمی به سرعت منقضی شوند.

  • هدف: تشخیص سیگنال‌های خرید و فروش از میان هزاران توئیت و خبر اقتصادی در لحظه.
  • نحوه اجرا: تحلیل‌گران مالی با قرار دادن چند مثال از توئیت‌های تاثیرگذار اخیر و برچسب زدن آن‌ها، مدل را در کسر از ثانیه برای شناسایی لحن جدید بازار آماده می‌کنند.
  • مزیت: انطباق آنی با کلمات کلیدی جدید بازار بورس بدون نیاز به پردازش‌های سنگین GPU برای آموزش مجدد.

کد پایتون (Few-shot Sentiment Analysis)

from transformers import pipeline

# استفاده از مدل GPT برای یادگیری درون‌گرا 
generator = pipeline('text-generation', model='gpt2')

# طراحی پرامپت Few-shot حاوی مثال‌های بازار
prompt = """
Task: Classify Stock Market Sentiment as Bullish (Positive) or Bearish (Negative).

Example 1: The company reported record-breaking quarterly profits. -> Bullish
Example 2: New regulations might limit tech export growth. -> Bearish
Example 3: Stock prices surged after the merger announcement. -> Bullish

Input: Rumors of a massive layoff are causing panic selling.
Output:"""

output = generator(prompt, max_new_tokens=5, num_return_sequences=1)
result = output[0]['generated_text'].split("Output:")[-1].strip()

print(f"تحلیل احساسات بازار: {result}")

خروجی:

تحلیل احساسات بازار: The company's stock is

.

مزایا

  • بی‌نیازی از داده‌های کلان: بزرگترین مزیت ICL این است که به جای هزاران داده برچسب‌خورده، تنها با ۱ تا ۵ مثال به نتیجه مطلوب می‌رسد.
  • سرعت استقرار (Agility): راه‌اندازی یک سیستم مبتنی بر ICL تنها چند دقیقه زمان می‌برد، در حالی که Fine-tuning  ممکن است هفته‌ها به طول بینجامد.
  • صرفه‌جویی در هزینه‌های آموزشی: هیچ نیازی به پردازش‌های سنگین گرافیکی (GPU) برای تغییر پارامترهای مدل وجود ندارد.
  • انعطاف‌پذیری بی‌نظیر: یک مدل واحد می‌تواند در لحظه نقش‌های مختلفی (مترجم، کدنویس، تحلیل‌گر) ایفا کند، صرفاً با تغییر محتوای پرامپت.

.

معایب

  • میراث داده‌های پیش‌آموزش: مدل همان چیزی را بازتاب می‌دهد که در دوران آموزش دیده است. اگر مجموعه‌داده‌های اولیه محدود یا دارای سوگیری (Bias) باشند، مدل در زمان استنتاج همان ضعف‌ها را تکرار می‌کند که منجر به کاهش دقت و انصاف در پاسخ‌ها می‌شود.
  • مرز حوزه‌های تخصصی: اگرچه مدل‌های زبانی در کارهای عمومی خیره‌کننده هستند، اما در رشته‌های فوق‌تخصصی مثل حقوق یا پزشکی، عملکرد آن‌ها افت می‌کند. در این شرایط، چند مثال ساده در پرامپت جایگزین دانش عمیق نمی‌شود و گاهی فین‌تیونینگ سنتی همچنان اجتناب‌ناپذیر است.
  • اخلاق و انصاف: ICL می‌تواند ناخواسته سوگیری‌های اجتماعی موجود در داده‌های آموزشی را تقویت کند. تضمین خروجی عادلانه در تعاملات پویا و لحظه‌ای، همچنان یکی از بزرگترین چالش‌های اخلاقی این حوزه است.
  • لغزندگی پرامپت:  ICLبه شدت به چیدمان حساس است. کوچک‌ترین تغییر در تعداد، ترتیب یا فرمت مثال‌ها می‌تواند نتیجه نهایی را کاملاً دگرگون کند؛ این یعنی تضمین یک عملکرد پایدار و همیشگی بسیار دشوار است.

.

جمع بندی

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

اما در عین حال، یادگیری درون‌گرا به محدودیت‌هایی همچون وابستگی به کیفیت مثال‌ها و حساسیت به ساختار پرامپت‌ها دچار است. همچنین، اثربخشی آن به شدت به ابعاد مدل و توانایی آن در پردازش بافت‌های پیچیده بستگی دارد. با این حال، در بسیاری از کاربردها مانند تحلیل داده‌های غیرساختاری یا نیازهای آنی،  ICL می‌تواند به‌طور مؤثری جایگزین روش‌های سنتی بازآموزی مدل‌ها باشد. در نهایت، برای رسیدن به نتایج مطلوب در استفاده از یادگیری درون‌گرا، انتخاب صحیح پرامپت‌ها، توجه به ویژگی‌های داده و تنظیم درست مدل اهمیت ویژه‌ای دارد.

آنچه می خوانید