نویسنده (ها): ayo akinkugbe
در ابتدا منتشر شده در به سمت هوش مصنوعیبشر


مقدمه
در فیلم 2004 “Sunshine Eternal of the Spotless Mind” ، کلمنتین (بازی شده توسط کیت وینسلت) و جوئل (بازی شده توسط جیم کری) از Lacuna Inc. بازدید کنید تا پس از شکستن یک روش انقلابی انجام شود: پاک کردن انتخابی خاطرات دردناک. این روند با یک مرحله “نقشه برداری حافظه” آغاز می شود ، جایی که تکنسین های پاتریک (چوب الیاس) ، جبهه (مارک روفالو) ، و مریم(کرستن دانست) قبل از حذف جراحی آنها از ذهن بیماران ، خاطرات خاص را دقیقاً مشخص و نقشه برداری کنید. آنچه این روش داستانی را بسیار قانع کننده می کند فقط توانایی آن در حذف خاطرات ناخواسته نیست ، بلکه دقت جراحی آن است – از بین بردن تجربیات هدفمند در حالی که بقیه خاطرات شخص را دست نخورده می کند.
این مفهوم دیگر فقط علمی تخیلی نیست – حداقل با مدل های بزرگ زبانبشر در دنیای یادگیری ماشین، ما با یک چالش بسیار مشابه روبرو هستیم: چگونه می توانیم بدون از بین بردن هر چیز دیگری که می دانند ، آنچه را که مدل های ما “آموخته اند” را تغییر دهیم؟
این سناریو را در نظر بگیرید: شما یک مدل زبان پیشرفته را برای پلت فرم تجارت الکترونیکی خود مستقر کرده اید که در طبقه بندی محصول ، خدمات به مشتری و تولید محتوا برتری دارد. اما پس از آن متوجه می شوید که برخی از انجمن های مغرضانه در مورد دسته بندی های خاص محصولات آموخته است ، یا به آن نیاز دارید تا انواع کاملاً جدیدی را که هنگام آموزش آن وجود نداشت ، درک کنید. رویکردهای سنتی شما را به هر دو مورد نیاز دارد:
- از ابتدا از ابتدا استفاده کنید -این گران ، وقت گیر است ، و شما تمام دانش ارزشمندی را که مدل جمع کرده است از دست می دهید.
- تنظیم دقیق روی داده های جدید – این خطر فاجعه بار را به خطر می اندازد که در آن مدل توانایی های قبلی خود را از دست می دهد
- با محدودیت ها استفاده کنید – عملکرد زیر حد متوسط به جای اینکه خطر شکستن آنچه را انجام می دهد پذیرفته می شود
ویرایش مدل را وارد کنید-معادل دنیای واقعی ما از فناوری نقشه برداری حافظه شرکت Lacunaبشر
ویرایش مدل چیست
ویرایش مدل فرآیند تغییر رفتار یک مدل بدون بازیابی آن از ابتدا است. این شامل:
- افزودن قابلیت های جدید (یادگیری دسته بندی محصولات جدید)
- از بین بردن رفتارهای ناخواسته (از بین بردن تعصب یا خروجی های مضر از مدل ها)
- اصلاح مهارت ها و وظایف موجود (تنظیم اعتماد به نفس یا سبک پاسخ ها)
- ترکیب قابلیت ها و مدالها (ادغام مدل های تخصصی در یک سیستم چند کاره)
حساب حساب ، معرفی شده توسط Ilharco و همکاران. در “ویرایش مدل ها با بردارهای کار“قابلیت های مدل را به عنوان بردارهایی که می توانند با دقت ریاضی ترکیب ، مقیاس و دستکاری شوند ، رفتار می کند. درست همانطور که تکنسین های داستانی می توانند خاطرات خاص را نقشه برداری و دستکاری کنند ، حساب حساب کاربری ما به ما اجازه می دهد تا رفتارهای آموخته شده را به عنوان بردارهای ریاضی تهیه کنیم که می توانند اضافه شوند ، می توانند از بین بروند ، مقیاس بندی و ترکیب شوند. آنچه را اضافه کرده اید یا به عنوان مثال اضافه کرده اید.
- برای از بین بردن رفتار مغرضانه – آن بردار کار را کم کنید.
- آیا نیاز به اضافه کردن قابلیت های جدید دارید؟ – بردارهای وظیفه مربوطه را اضافه کنید.
- آیا می خواهید قدرت یک مهارت خاص را تنظیم کنید؟ – بردار آن را به سمت بالا یا پایین مقیاس دهید.
این رویکرد امکانات مهیج را که قبلاً غیر عملی یا غیرممکن بودند ، باز می کند: ایجاد مدلهایی که می توانند به عنوان جراحی به عنوان ویرایش یک سند ، ترکیب بهترین قابلیت ها از چندین مدل تخصصی و حفظ کنترل ریز بر رفتار مدل در سیستم های تولیدی به روز شوند.
در این پست به بررسی چگونگی عملکرد حساب کاربری ، عمیق در تکنیک های اجرای و بررسی برنامه های عملی می پردازیم.
درک بردارهای کار
در هسته اصلی آن ، حساب حسابی به طرز شگفت آور ظریف و در عین حال بصری است. هنگامی که ما یک مدل را بر روی یک کار خاص تنظیم می کنیم ، اساساً آن را به الگوهای و رفتارهای جدید آموزش می دهیم. تفاوت بین پارامترهای مدل تنظیم شده و پارامترهای مدل اصلی دقیقاً همان چیزی است که مدل از آن کار آموخته است.
بردار کار = پارامترهای مدل تنظیم شده خوب – پارامترهای مدل پایه
این را به عنوان جدا کردن “حافظه” یک مهارت خاص فکر کنید. درست همانطور که شرکت Lacuna می تواند خاطرات جوئل از کلمنتین را ترسیم کند ، می توانیم رفتارهای آموخته شده یک مدل را در بردارهای گسسته و دستکاری شده ترسیم کنیم.
فرضیه فوق العاده خطی
حساب حساب با این فرض که قابلیت های مختلف در شبکه های عصبی در نوعی از ترکیب خطی وجود دارد – می توان آنها را بدون دخالت مخرب اضافه کرد. این شبیه به چگونگی وجود فرکانس های مختلف رادیویی می تواند در همان فضا بدون لغو یکدیگر در الکترومغناطیسی وجود داشته باشد.
یک مثال شبه کد
به عنوان مثال اگر قصد داشتیم یک مدل دو کار ایجاد کنیم که هم احساسات را طبقه بندی کند و هم اسپم را با استفاده از حسابی وظیفه تشخیص دهد ، ما می خواهیم:
- یک مدل پایه را انتخاب کنید
- مدل تخصصی جداگانه را آموزش دهید. در این حالت که یک مدل احساساتی و یک مدل اسپم به طور جداگانه خواهد بود
- با انجام تفریق عناصر از پارامترهای مدل پایه از هر پارامترهای مدل تخصصی ، بردارهای کارها را استخراج کنید
- از طریق افزودن هر دو بردار به مدل پایه ، یک مدل چند حالته ایجاد کنید
def multimodal_task_arithmetic():
"""
Example: A model that can both classify sentiment AND detect spam
"""
base_model = load_pretrained_model("bert-base")# Train separate specialists
sentiment_model = fine_tune(base_model, sentiment_data)
spam_model = fine_tune(base_model, spam_data)
# Extract task vectors
sentiment_vector = sentiment_model.parameters - base_model.parameters
spam_vector = spam_model.parameters - base_model.parameters
# Create multi-task model through addition
multi_task_model = base_model.parameters + sentiment_vector + spam_vector
return multi_task_model
تحقیقات اخیر (Tam et آل ، 2024) نشان می دهد که شبکه های عصبی وظایف مختلفی را در زیر مجموعه های مختلف از فضای پارامتر می آموزند. هنگامی که این زیر مجموعه ها به طور قابل توجهی با هم همپوشانی ندارند ، می توانیم رفتارهای آموخته شده را بدون تداخل اضافه و تفریق کنیم. در زیر یک نمایش بصری آورده شده است.
import numpy as np
import matplotlib.pyplot as pltdef visualize_task_spaces():
"""
A conceptual visualization of how different tasks occupy different
regions of parameter space
"""
# Define the color palette
colors = ['#4E79A7', '#F28E2B', '#E15759', '#76B7B2', '#59A14F']
# Simulate parameter space (reduced to 2D for visualization)
base_point = np.array([0, 0])
# Different tasks learn in different directions
task_a_vector = np.array([3, 1]) # Sentiment analysis
task_b_vector = np.array([1, 3]) # Spam detection
# Combined model is sum of vectors
combined = base_point + task_a_vector + task_b_vector
plt.figure(figsize=(10, 8))
plt.arrow(0, 0, task_a_vector[0], task_a_vector[1],
head_width=0.2, head_length=0.2, fc=colors[0], ec=colors[0],
label='Sentiment Task')
plt.arrow(0, 0, task_b_vector[0], task_b_vector[1],
head_width=0.2, head_length=0.2, fc=colors[1], ec=colors[1],
label='Spam Detection Task')
plt.arrow(0, 0, combined[0], combined[1],
head_width=0.2, head_length=0.2, fc=colors[3], ec=colors[3],
label='Combined Model')
plt.scatter([0], [0], c='black', s=100, label='Base Model')
plt.grid(True, alpha=0.3)
plt.legend()
plt.title('Task Vectors in Parameter Space')
plt.xlabel('Parameter Dimension 1')
plt.ylabel('Parameter Dimension 2')
plt.show()
visualize_task_spaces()


مطالعه موردی – انتقال دانش در حوزه ها برای طبقه بندی احساسات
بیایید بگوییم که شما یک طبقه بندی کننده احساسات خوب بررسی آمازون دارید و می خواهید بررسی های Yelp را طبقه بندی کنید. برای پیش بینی احساسات در YELP (حتی اگر برچسب احساسات YELP ندارید) ، بردار احساسات آمازون را بگیرید و بر اساس تفاوت در مدل سازی زبان بین Yelp و Amazon تنظیم کنید. این یک بردار جدید احساسات خاص Yelp ایجاد می کند:


این معادله به شما امکان می دهد دانش احساسات را از آمازون تا یلپ بدون داده های Yelp برچسب گذاری کنید – فقط داده های LM. اینگونه است قیاسهای کار کار – یک تکنیک برای تولید وظایف جدید با ارتباط با موارد شناخته شده با استفاده از حسابی وکتور ، به ویژه هنگامی که هیچ برچسب در دسترس نیست.
اجرای مرحله به مرحله
1. بردارهای مدل سازی زبان (LM) را دریافت کنید: شما ابتدا یک مدل (مانند T5 یا BERT) را در مورد اهداف مدل سازی زبان برای هر دو آموزش می دهید یا تنظیم می کنید مجموعه داده ها:
- وکتور LM آمازون: τ_amazon ، LM – در متن آمازون با یک هدف بدون نظارت (به عنوان مثال ، مدل سازی زبان نقاب دار) آموزش دهید.
- بردار Yelp LM: τ_yelp ، lm – همین کار را برای متن Yelp انجام دهید.
اینها به شما بردارهای وظیفه ای می دهند که نشان می دهد چگونه مدل با سبک زبان و الگوهای هر مجموعه داده سازگار است.
2. بردارها را تفریق کنید:


این تغییر دامنه را ضبط می کند – چگونه Yelp با الگوهای زبان از آمازون تفاوت دارد.
3. تغییر را در یک بردار کار شناخته شده اعمال کنید – تفاوت را به وکتور احساسات آمازون اضافه کنید ، که با برچسب های احساسات آموزش دیده است:


این یک بردار کار جدیدی به شما می دهد که می توانید برای آن استفاده کنید تجزیه و تحلیل احساسات در Yelp ، حتی بدون برچسب احساسات Yelp.
بازخوانی سریع در مورد نحوه اجرای حساب کاربری:
- مدل پایه خود را انتخاب کنید: به عنوان مثال T5-Small یا Llama.
- تنظیم دقیق در کار A: (به عنوان مثال ، تجزیه و تحلیل احساسات در آمازون)
- تنظیم دقیق در کار B: (به عنوان مثال ، LM روی Yelp یا احساسات در Yelp)
- محاسبه بردارهای وظیفه: وزن لایه به لایه
- وکتور را برای مدل پایه یا مدل دیگری اعمال کنید:
پایان
دانش واقعی نیز می تواند به عنوان یک کار رفتار شود: تنظیم دقیق در اصلاح واقعی واقعی ، استخراج بردار و استفاده از آن. در بعضی موارد ، این می تواند روش های ویرایش مدل مانند رم یا MEMIT را جایگزین کند. با این حال ، روش حسابی کار ویرایش مدل چالش های خود را دارد زیرا همه کارها به صورت خطی قابل ترکیب نیستند زیرا فرضیه supposition همیشه در عمل نیست. علاوه بر این ، ناپایداری های مدل می توانند هنگام استفاده از Deltas پارامتر بزرگ در معماری های مختلف ظهور کنند. کلید اجرای موفقیت آمیز در درک این محدودیت ها نهفته است.
منابع
- Ilharco ، G. ، Ribeiro ، MT ، Wortsman ، M. ، Gururangan ، S. ، Schmidt ، L. ، Hajishirzi ، H. ، & Farhadi ، A. (2022). ویرایش مدل ها با حساب حساب. arxiv preprint arxiv: 2212.04089بشر https://arxiv.org/abs/2212.04089
- Meng ، K. ، Bau ، D. ، Andonian ، A. ، & Belinkov ، Y. (2022). مکان یابی و ویرایش انجمن های واقعی در GPT. arxiv preprint arxiv: 2202.05262بشر https://arxiv.org/abs/2202.05262
- Meng ، K. ، Sharma ، AS ، Andonian ، A. ، Belinkov ، Y. ، & Bau ، D. (2022). حافظه ویرایش انبوه در یک ترانسفورماتور. arxiv preprint arxiv: 2210.07229بشر https://arxiv.org/abs/2210.07229
- Tam ، D. ، Bansal ، M. ، & Raffel ، C. (2023). ادغام با تطبیق مدل ها در زیر مجموعه های پارامتر کار. arxiv preprint arxiv: 2312.04339بشر https://arxiv.org/abs/2312.04339
منتشر شده از طریق به سمت هوش مصنوعی
منبع: https://towardsai.net/p/artificial-intelligence/task-arithmetic-for-model-editing