آشنایی با Contrastive Search

Contrastive Search یک روش نوین در تولید متن است که در سال‌های اخیر به عنوان جایگزینی قدرتمند برای روش‌های بازتابی (Beam Search) معرفی شد. این الگوریتم در ایام 2022 به‌صورت مستقل توسط گروهی از پژوهشگران در کنفرانس NeurIPS ارائه شد و توسط Hugging Face در کتابخانهٔ transformers پیاده‌سازی گردید.

مزایای این روش در تولید متن

  • ارائهٔ خروجی‌های طبیعی و روان در ۱۶ زبان مختلف
  • کاهش قابل‌توجهی از تکرارهای غیرضروری و پوشش متن
  • اضافه کردن تعادل میان جستجوی گرافی و مقایسه برآینده‌ها به وسیلهٔ تابع الگوگیری بسطی (logits)
  • امکان پیاده‌سازی در فریمورک‌های PyTorch و TensorFlow بدون نیاز به تغییر معماری مدل

با Contrastive Search، مدل زبانی می‌تواند به‌صورت پویا متغیرهای بازتابی را کاهش داده و به صورت مستقیم با توابع ریشه‌گذاری خاصی ایستادگی کند. این باعث می‌شود متن تولید شده هم‌ارز تجربهٔ انسان باشد و در عین حال سرعت پردازش را حفظ کند.

چگونه در Hugging Face به آن دسترسی پیدا کنیم

برای استفاده از این قابلیت، کافی است کتابخانهٔ transformers را نصب کنید و پس از بارگذاری مدل دلخواه، از متد generate با پارامتر decoding_method="contrastive" استفاده نمایید. نمونهٔ سادهٔ کد در زیر آمده است:

from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("gpt-2") tokenizer = AutoTokenizer.from_pretrained("gpt-2") text = "یک روز در ..." inputs = tokenizer(text, return_tensors="pt") outputs = model.generate(**inputs, decoding_method="contrastive", top_k=5) print(tokenizer.decode(outputs[0], skip_special_tokens=True))

برای جایگزینی ویژوال‌ها یا مدل‌های به‌روزتر، کافی است شناسه مدل را تغییر دهید؛ تمام کدهای پشتیبانی‌شده در مستندات Hugging Face به‌صورت کامل توضیح داده شده‌اند.

پرسش‌های پرتکرار

Contrastive Search چه تفاوتی با Beam Search دارد؟

Beam Search بر اساس توابع احتمال سیراریک زده شده در توالی‌های پیشین پیش‌بینی می‌کند، در حالی که Contrastive Search به‌صورت واقعی در فضای کلمات به مقایسهٔ دو فاکتور: گرافی و هوش واژگانی می‌پردازد، که باعث جملات طبیعی‌تر می‌شود.

آیا این روش برای مفاهیم تخصصی مثل پزشکی یا حقوقی کارساز است؟

بله؛ زیرا کنترل بیشتر بر خروجی مدل می‌گیرد و می‌تواند به‌وسیلهٔ انتخاب پارامترهای مناسب، دقت در حوزه‌های متخصص را بهبود بخشد، اما همچنان نیاز به ارزیابی انسان برای امتیازی‌گذاری نهایی دارد.