توسعهی سامانههای پردازش زبان طبیعی (NLP) برای زبانهایی که دادههای برچسبخوردهی اندکی دارند همواره یکی از بزرگترین چالشهای مهندسی بوده است. در حالی که برای زبانهایی مانند انگلیسی میلیاردها نمونهی آماده وجود دارد، بیشتر زبانهای دیگر با کمبود داده مواجه هستند. مدلهای چندزبانه با ایجاد یک فضای بازنمایی و دایرهی واژگان مشترک، امکان یادگیری انتقالی میانزبانی (Cross-lingual transfer) را فراهم میکنند تا بتوان دانش آموختهشده از یک زبان را به زبانهای دیگر منتقل کرد.
در این رویکرد، مدلی که تنها روی زبان مبدأ آموزش دیده میتواند بدون نیاز به دادههای برچسبخورده در زبان مقصد (روش صفر-نمونه یا Zero-shot) به پیشبینی بپردازد یا با چندصد نمونهی محدود (Few-shot)، به دقت بسیار بالایی برسد. برای پیادهسازی این مدلها، کار روی وزنهای از پیشآموزشدیدهی استانداردی مانند XLM-R یا NLLB اغلب روی سیستمهای شخصی و بدون وابستگی به زیرساختهای ابری سنگین قابل آزمایش و اجرا است.
اگر در مسیر دانلود وزن مدلها یا کتابخانهها از مخازنی مانند Hugging Face با کندی یا اختلال در شبکه مواجه شدید، تنظیم متغیرهای محیطی یا استفاده از میرورهای پایدار میتواند فرایند دانلود را تسهیل کند. این درس اصول معماری، مدلهای اصلی و خطاهای رایج مانند هزینهی پنهان توکنایزیشن را به دقت بررسی میکند.
یک مدل، بیش از 100 زبان، بدون حتی یک نمونه دادهی آموزشی برای بیشتر آنها. یادگیری انتقالی میانزبانی (Cross-lingual transfer) معجزهی کاربردی دههی 2020 است.
صورت مسئله
انگلیسی میلیاردها نمونهی برچسبخورده دارد. اردو چند هزار تا دارد. مایتیلی تقریباً هیچ ندارد. هر سیستم پردازش زبان طبیعی (NLP) کاربردی که قرار است به مخاطبان جهانی خدمت کند، باید روی دنبالهی طولانی زبانهایی کار کند که دادهی آموزشی اختصاصی برای وظیفهی مدنظر ندارند.
مدلهای چندزبانه این مشکل را با آموزش همزمان یک مدل روی چندین زبان حل میکنند. این بازنمایی مشترک به مدل امکان میدهد مهارتهای آموختهشده در زبانهای پرمنبع را به زبانهای کممنبع منتقل کند. کافی است مدل را برای تحلیل احساسات در انگلیسی فاینتیون کنید؛ مدل بدون هیچ کار اضافهای پیشبینیهای احساسات فوقالعاده دقیقی روی زبان اردو ارائه میدهد. به این سازوکار «یادگیری انتقالی میانزبانی صفر-نمونه» (Zero-shot cross-lingual transfer) میگویند؛ راهکاری که نحوهی ارائهی محصولات NLP در سراسر جهان را دگرگون کرده است.
در این درس به سبکسنگین کردن تصمیمها (tradeoffs)، مدلهای مرجع و اساسی، و همان تصمیمی میپردازیم که تیمهای تازهکار در پروژههای چندزبانه را به دردسر میاندازد: انتخاب زبان مبدأ برای یادگیری انتقالی.
مفاهیم پایه
واژگان مشترک. مدلهای چندزبانه از توکنایزر SentencePiece یا WordPiece استفاده میکنند که روی متن تمام زبانهای هدف آموزش دیده است. دایرهی واژگان مشترک است: همان واحد زیرکلمه (subword unit) نشاندهندهی همان تکواژ در زبانهای خویشاوند است. پیشوند anti- در انگلیسی و ایتالیایی توکن یکسانی دریافت میکند.
بازنمایی مشترک. ترنسفورمری که با هدف مدلسازی زبان پوشاندهشده (Masked Language Modeling) روی زبانهای متعددی پیشآموزش دیده باشد، یاد میگیرد که جملات با معنای یکسان در زبانهای مختلف، وضعیت پنهان (hidden state) مشابهی تولید میکنند. مدلهای mBERT، XLM-R و NLLB همگی این ویژگی را دارند. امبدینگهای واژهی «cat» در انگلیسی، «chat» در فرانسوی و «gato» در اسپانیایی در فضا نزدیک به هم قرار میگیرند؛ همین اتفاق برای امبدینگهای کل جمله نیز رخ میدهد.
یادگیری انتقالی صفر-نمونه. مدل را روی دادههای برچسبخورده در یک زبان (معمولاً انگلیسی) فاینتیون کنید. هنگام استنتاج (inference)، آن را روی هر زبان دیگری که مدل پشتیبانی میکند اجرا کنید؛ بدون نیاز به برچسبهای زبان هدف. نتایج برای زبانهایی با ردهشناسی (typology) نزدیک بسیار قوی و برای زبانهای دور ضعیفتر است.
فاینتیونینگ چند-نمونه (Few-shot fine-tuning). کافی است 100 تا 500 نمونهی برچسبخورده در زبان هدف اضافه کنید. دقت در وظایف دستهبندی ناگهان به 95 تا 98 درصد خط مبنای انگلیسی میرسد. این کار مقرونبهصرفهترین اهرم در پردازش زبان طبیعی چندزبانه است.
مدلها
| مدل | سال | پوشش | یادداشتها |
|---|---|---|---|
| mBERT | 2018 | 104 زبان | آموزشدیده روی ویکیپدیا. نخستین مدل زبانی چندزبانهی کاربردی. ضعیف در زبانهای کممنبع. |
| XLM-R | 2019 | 100 زبان | آموزشدیده روی CommonCrawl (بسیار بزرگتر از ویکیپدیا). خط مبنای میانزبانی را تعیین کرد. نسخهی پایهای 270M و نسخهی بزرگ 550M پارامتر دارد. |
| XLM-V | 2023 | 100 زبان | نسخهای از XLM-R با واژگانی متشکل از 1M توکن (در مقایسه با 250k). عملکرد بهتر در زبانهای کممنبع. |
| mT5 | 2020 | 101 زبان | معماری T5 برای تولید متن چندزبانه. |
| NLLB-200 | 2022 | 200 زبان | مدل ترجمهی متا؛ شامل 55 زبان کممنبع. |
| BLOOM | 2022 | 46 زبان + 13 زبان برنامهنویسی | مدل زبانی بزرگ متنباز با 176B پارامتر که بهصورت چندزبانه آموزش دیده است. |
| Aya-23 | 2024 | 23 زبان | مدل زبانی بزرگ و چندزبانهی Cohere. قدرتمند در زبانهای عربی، هندی و سواحیلی. |
مدل را بر اساس سناریوی کاربردی خود انتخاب کنید. برای دستهبندی، XLM-R-base یک پیشفرض امن و منطقی است. وظایف تولید متن، بسته به اینکه هدف ترجمه باشد یا تولید باز متن، به mT5 یا NLLB نیاز دارند. پروژههای مبتنی بر مدلهای زبانی بزرگ نیز با Aya-23 یا Claude با پرامپتنویسی صریح چندزبانه همخوانی بهتری دارند.
تصمیمگیری دربارهی زبان مبدأ (پژوهشهای 2026)
بیشتر تیمها بهصورت پیشفرض انگلیسی را بهعنوان مبدأ فاینتیونینگ انتخاب میکنند. پژوهشهای اخیر (2026) نشان میدهد این تصمیم اغلب اشتباه است.
میزان شباهت زبانی، کیفیت انتقال را بسیار دقیقتر از حجم خام پیکرهی متنی پیشبینی میکند. برای زبانهای هدف اسلاوی، آلمانی یا روسی اغلب انگلیسی را شکست میدهند. برای زبانهای هندوآریایی، هندی عملکرد بهتری نسبت به انگلیسی دارد. معیار شباهت qWALS (سال 2026، مبتنی بر ویژگیهای اطلس جهانی ساختارهای زبانی) این موضوع را بهصورت عددی میسنجد. روش LANGRANK (لین و همکاران، ACL 2019) نیز متدولوژی قبلی و مجزایی است که زبانهای مبدأ کاندید را بر اساس ترکیبی از شباهت زبانشناختی، اندازهی پیکره و قرابت ژنتیکی رتبه میکند.
یک قاعدهی کاربردی: اگر زبان هدف شما همخانوادهای پرمنبع با ردهشناسی نزدیک دارد، ابتدا مدل را روی آن زبان فاینتیون کنید و سپس نتیجه را با فاینتیونینگ انگلیسی مقایسه کنید.
پیادهسازی از صفر
گام 1: دستهبندی میانزبانی صفر-نمونه
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tok = AutoTokenizer.from_pretrained("joeddav/xlm-roberta-large-xnli")
model = AutoModelForSequenceClassification.from_pretrained("joeddav/xlm-roberta-large-xnli")
def classify(text, candidate_labels, hypothesis_template="This text is about {}."):
scores = {}
for label in candidate_labels:
hypothesis = hypothesis_template.format(label)
inputs = tok(text, hypothesis, return_tensors="pt", truncation=True)
with torch.no_grad():
logits = model(**inputs).logits[0]
entail_score = torch.softmax(logits, dim=-1)[2].item()
scores[label] = entail_score
return dict(sorted(scores.items(), key=lambda x: -x[1]))
print(classify("I love this product!", ["positive", "negative", "neutral"]))
print(classify("मुझे यह उत्पाद पसंद है!", ["positive", "negative", "neutral"]))
print(classify("J'adore ce produit !", ["positive", "negative", "neutral"]))
یک مدل، سه زبان، با همان API یکسان. مدلی مثل XLM-R که روی دادههای استنتاج زبان طبیعی (NLI) آموزش دیده است، از طریق ترفند استلزام معنایی (entailment trick) مهارت خود را بهخوبی به وظیفهی دستهبندی منتقل میکند.
گام 2: فضای امبدینگ چندزبانه
from sentence_transformers import SentenceTransformer
import numpy as np
model = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
pairs = [
("The cat is sleeping.", "Le chat dort."),
("The cat is sleeping.", "El gato está durmiendo."),
("The cat is sleeping.", "Die Katze schläft."),
("The cat is sleeping.", "The dog is barking."),
]
for eng, other in pairs:
emb_eng = model.encode([eng], normalize_embeddings=True)[0]
emb_other = model.encode([other], normalize_embeddings=True)[0]
sim = float(np.dot(emb_eng, emb_other))
print(f" {eng!r} <-> {other!r}: cos={sim:.3f}")
ترجمهها در فضای امبدینگ نزدیک به هم قرار میگیرند؛ درحالیکه یک جملهی انگلیسی متفاوت، دورتر مینشیند. این همان مکانیزمی است که بازیابی، خوشهبندی و سنجش شباهت میانزبانی را ممکن میسازد.
گام 3: استراتژی فاینتیونینگ چند-نمونه
from transformers import TrainingArguments, Trainer
from datasets import Dataset
def few_shot_finetune(base_model, base_tokenizer, examples):
ds = Dataset.from_list(examples)
def tokenize_fn(ex):
out = base_tokenizer(ex["text"], truncation=True, max_length=128)
out["labels"] = ex["label"]
return out
ds = ds.map(tokenize_fn)
args = TrainingArguments(
output_dir="out",
per_device_train_batch_size=8,
num_train_epochs=5,
learning_rate=2e-5,
save_strategy="no",
)
trainer = Trainer(model=base_model, args=args, train_dataset=ds)
trainer.train()
return base_model
برای 100 تا 500 نمونه از زبان هدف، مقادیر num_train_epochs=5 و learning_rate=2e-5 پیشفرضهای امنی هستند. نرخهای یادگیری بالاتر باعث به هم ریختن همترازی چندزبانه میشود و در نهایت مدلی به دست میآورید که فقط انگلیسی میفهمد.
ارزیابی که واقعاً جواب میدهد
- دقت تفکیکشده به ازای هر زبان روی مجموعههای اعتبارسنجی مجزا (held-out). دقت را تجمیع نکنید؛ میانگینگیری، عملکرد ضعیف در دنبالهی طولانی زبانها را مخفی میکند.
- سنجش در برابر خط مبنای تکزبانه. برای زبانهایی با دادهی کافی، یک مدل تکزبانه که از صفر آموزش دیده باشد گاهی از مدل چندزبانه بهتر عمل میکند. این موضوع را حتماً بسنجید.
- تستها در سطح موجودیتها (Entity-level). موجودیتهای نامدار در زبان هدف را بررسی کنید. مدلهای چندزبانه معمولاً در توکنایز کردن خطوطی که فاصلهی زیادی با الفبای لاتین دارند ضعیفترند.
- پایداری میانزبانی (Cross-lingual consistency). یک مفهوم یکسان در دو زبان مختلف باید پیشبینی یکسانی تولید کند. این فاصله و اختلاف را اندازه بگیرید.
استفاده از ابزارهای واقعی
ابزارهای استاندارد در سال 2026:
| وظیفه | گزینهی پیشنهادی |
|---|---|
| دستهبندی در 100 زبان | مدل فاینتیونشدهی XLM-R-base (حدود 270M پارامتر) |
| دستهبندی صفر-نمونهی متن | joeddav/xlm-roberta-large-xnli |
| امبدینگ چندزبانهی جملات | sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 |
| ترجمه بین 200 زبان | facebook/nllb-200-distilled-600M (درس 11 را ببینید) |
| تولید متن چندزبانه | Claude، GPT-4، Aya-23، mT5-XXL |
| پردازش زبان طبیعی زبانهای کممنبع | XLM-V یا فاینتیونینگ اختصاصی دامنهای روی یک زبان پرمنبع خویشاوند |
اگر عملکرد برایتان اهمیت دارد، همیشه برای فاینتیونینگ در زبان هدف بودجه و زمان کنار بگذارید. سناریوی صفر-نمونه نقطهی شروع است، نه خروجی نهایی.
هزینهی پنهان توکنایزیشن (چرا زبانهای کممنبع به مشکل میخورند؟)
مدلهای چندزبانه در تمام زبانهایشان از یک توکنایزر مشترک استفاده میکنند. واژگان این توکنایزر روی پیکرهای آموزش دیده که بخش اعظم آن انگلیسی، فرانسوی، اسپانیایی، چینی و آلمانی است. برای هر زبانی خارج از این دستهی غالب، سه هزینهی پنهان بهصورت زنجیرهای تحمیل میشود:
- هزینهی باروری (Fertility tax). متن یک زبان کممنبع به تعداد توکن بسیار بیشتری به ازای هر کلمه نسبت به انگلیسی خرد میشود. یک جملهی هندی ممکن است بین 3 تا 5 برابر یک جملهی معادل انگلیسی توکن مصرف کند. این افزایش 3 تا 5 برابری، پنجرهی زمینهی مدل (context window)، بازدهی آموزش و زمان پاسخدهی (latency) را از بین میبرد.
- هزینهی بازیابی گونهها (Variant recovery tax). هر غلط املایی، تغییر در اعرابگذاری، عدم تطابق نرمالسازی یونیکد، یا تفاوت در حروف کوچک و بزرگ، به توالیهای ناشناخته و نامرتبطی در فضای امبدینگ تبدیل میشود. مدل نمیتواند تناظرهای رسمالخطی را که برای یک متکلم بومی بدیهی است یاد بگیرد.
- هزینهی سرریز گنجایش (Capacity spillover tax). دو هزینهی قبلی بخش زیادی از جایگاههای زمینه، عمق لایهها و ابعاد امبدینگ را هدر میدهند. آنچه برای استدلال واقعی باقی میماند، بهطور ساختاری بسیار کمتر از سهمی است که یک زبان پرمنبع از همان مدل دریافت میکند.
نشانهی عملی این مشکل: مدل شما روی هندی طبق معمول آموزش میبیند، نمودار تابع زیان (loss) طبیعی به نظر میرسد، پرپلکسیتی در مرحلهی ارزیابی مناسب است، اما خروجیهای محیط پروداکشن خطاهای پنهان و ظریفی دارند. ساختار صرفی کلمات در میانهی جمله فرو میریزد و صرفهای نادر به هیچ وجه قابل بازیابی نیستند. با افزودن حجم داده نمیتوانید مشکلی را که ریشه در یک توکنایزر ناکارآمد دارد حل کنید.
راهکارهای کاهش مشکل: توکنایزری با پوشش مناسب برای زبان هدف انتخاب کنید (واژگان 1M توکنی XLM-V دقیقاً برای حل همین مشکل است)؛ ضریب باروری توکنایزر را روی متن اعتبارسنجی پیش از آموزش بررسی کنید؛ برای خطوط دورافتاده از سازوکار بازگشت به سطح بایت (مانند byte_fallback=True در SentencePiece یا BPE در سطح بایت مشابه GPT-2) استفاده کنید تا هیچ کاراکتری خارج از دایرهی واژگان (OOV) نماند.
خروجی این درس
این کد را در فایل outputs/skill-multilingual-picker.md ذخیره کنید:
---
name: multilingual-picker
description: Pick source language, target model, and evaluation plan for a multilingual NLP task.
version: 1.0.0
phase: 5
lesson: 18
tags: [nlp, multilingual, cross-lingual]
---
Given requirements (target languages, task type, available labeled data per language), output:
1. Source language for fine-tuning. Default English; check LANGRANK or qWALS if target language has a typologically close high-resource language.
2. Base model. XLM-R (classification), mT5 (generation), NLLB (translation), Aya-23 (generative LLM).
3. Few-shot budget. Start with 100-500 target-language examples if available. Zero-shot only if labeling is infeasible.
4. Evaluation plan. Per-language accuracy (not aggregate), cross-lingual consistency, entity-level F1 on non-Latin scripts.
Refuse to ship a multilingual model without per-language evaluation — aggregate metrics hide long-tail failures. Flag scripts with low tokenization coverage (Amharic, Tigrinya, many African languages) as needing a model with byte-fallback (SentencePiece with byte_fallback=True, or byte-level tokenizer like GPT-2).
تمرینها
- ساده. پایپلاین دستهبندی صفر-نمونه را روی 10 جمله برای هر کدام از زبانهای انگلیسی، فرانسوی، هندی و عربی اجرا کنید. دقت مدل را برای هر زبان گزارش دهید. خروجی باید عملکردی قوی در فرانسوی، مناسب در هندی و متغیر در عربی را نشان دهد.
- متوسط. با استفاده از مدل
paraphrase-multilingual-MiniLM-L12-v2یک سیستم بازیابی اطلاعات میانزبانی روی یک پیکرهی متنی کوچک با زبانهای ترکیبی بسازید. پرسش را به زبان انگلیسی وارد کرده و اسناد را در هر زبانی بازیابی کنید. معیار بازخوانی (recall@5) را اندازه بگیرید. - سخت. دو سناریوی فاینتیونینگ با مبدأ انگلیسی و مبدأ هندی را برای یک وظیفهی دستهبندی زبان هندی با هم مقایسه کنید. برای هر دو سناریو، 500 نمونه از زبان هدف را برای فاینتیونینگ چند-نمونه به کار ببرید. گزارش دهید که کدام زبان مبدأ دقت بهتری روی هندی ایجاد کرده و اختلاف چقدر بوده است. این تمرین در حقیقت آزمودن فرضیهی LANGRANK در مقیاس کوچک است.
اصطلاحات کلیدی
| اصطلاح | در گفتوگوها چه میگویند | معنای فنی دقیق |
|---|---|---|
| Multilingual model | یک مدل، چندین زبان | واژگان و پارامترهای مشترک میان زبانهای مختلف. |
| Cross-lingual transfer | آموزش روی یک زبان، اجرا روی زبانی دیگر | فاینتیونینگ روی مبدأ و ارزیابی روی هدف بدون داشتن برچسبهای زبان هدف. |
| Zero-shot | بدون برچسب در زبان هدف | یادگیری انتقالی بدون انجام فاینتیونینگ روی زبان هدف. |
| Few-shot | برچسبهای کم در زبان هدف | استفاده از 100 تا 500 نمونه در زبان هدف برای فاینتیونینگ. |
| mBERT | نخستین مدل زبانی چندزبانه | مدل BERT برای 104 زبان که روی ویکیپدیا پیشآموزش دیده است. |
| XLM-R | خط مبنای استاندارد میانزبانی | مدل RoBERTa برای 100 زبان که روی CommonCrawl پیشآموزش دیده است. |
| NLLB | مدل ترجمهی ماشینی 200 زبانهی متا | سرنام No Language Left Behind؛ شامل 55 زبان کممنبع. |
برای مطالعهی بیشتر
- کونو و همکاران (2019). Unsupervised Cross-lingual Representation Learning at Scale — مقالهی معرفی XLM-R.
- پیرس، اشلینگر و گارت (2019). How Multilingual is Multilingual BERT? — مقالهی تحلیلی مهمی که مسیر پژوهشهای یادگیری انتقالی میانزبانی را آغاز کرد.
- کاستا-ژوسا و همکاران (2022). No Language Left Behind — مقالهی معرفی NLLB-200.
- اوستون و همکاران (2024). Aya Model: An Instruction Finetuned Open-Access Multilingual Language Model — مقالهی معرفی Aya، مدل زبانی بزرگ چندزبانهی Cohere.
- Language Similarity Predicts Cross-Lingual Transfer Learning Performance (2026) — مقالهی پژوهشی انتخاب زبان مبدأ بر اساس معیارهای qWALS و LANGRANK.
