मशीन ट्रांसलेशन की लो-रिसोर्स भाषा समस्या
1,600+ भाषाओं के बीच अनुवाद अंग्रेज़ी-केंद्रित MT से कहीं कठिन क्यों है, और नए तरीके यह खाई कैसे पाट रहे हैं।

दुनिया में लगभग 7,000 भाषाएँ बोली जाती हैं। Google Translate उनमें से लगभग 130 को सपोर्ट करता है। ज़्यादातर कमर्शियल MT सिस्टम 30 से कम भाषाओं को ठीक से हैंडल कर पाते हैं। अगर आप योरूबा, क्वेचुआ या ख़मेर बोलते हैं, तो मशीन ट्रांसलेशन का आपका अनुभव 'मुश्किल से काम लायक' से लेकर 'हास्यास्पद रूप से गलत' तक कुछ भी हो सकता है। कड़वा सच यह है कि पिछले एक दशक में NLP में हुई ज़्यादातर प्रगति इंग्लिश-फ़र्स्ट रही है — और हाई-रिसोर्स और लो-रिसोर्स भाषाओं के बीच की खाई कम होने के बजाय चौड़ी होती जा रही है।
Meta का हाल का omnilingual मशीन ट्रांसलेशन का प्रयास — जो 1,600+ भाषाओं को कवर करता है — इस स्थिति को बदलने की सबसे महत्वाकांक्षी कोशिशों में से एक है। लेकिन इसमें शामिल तकनीकी चुनौतियाँ उन बुनियादी मान्यताओं को उजागर करती हैं जो हम भाषा मॉडल बनाते समय अपनाते हैं, और यह भी कि सिर्फ़ स्केल बढ़ाने से समस्या क्यों हल नहीं होती।
किसी भाषा को 'लो-रिसोर्स' क्या बनाता है
MT रिसर्च में 'हाई-रिसोर्स' भाषा जोड़ी का मतलब है कि आपके पास लाखों पैरेलल वाक्य हैं — ऐसा टेक्स्ट जिसका दो भाषाओं के बीच पेशेवर अनुवाद किया गया हो। English–French, English–Chinese, English–Spanish जैसी जोड़ियों के लिए EU संसद, UN, समाचार संगठनों और दशकों के पेशेवर अनुवाद से बहुत बड़ा पैरेलल कॉर्पस मिल जाता है। इन जोड़ियों पर ट्रेन किए गए मॉडल कमाल का काम करते हैं।
एक 'लो-रिसोर्स' भाषा के पास शायद कुछ हज़ार पैरेलल वाक्य होते हैं, या कोई भी नहीं। Fon (बेनिन में लगभग 20 लाख लोग बोलते हैं) के पास अंग्रेज़ी के साथ लगभग कोई पैरेलल डेटा नहीं है। Bambara (माली में लगभग 1.4 करोड़ लोग बोलते हैं) के पास थोड़ा ज़्यादा है, लेकिन फिर भी उससे कई गुना कम, जितना पारंपरिक MT सिस्टम को चाहिए। कई भाषाओं के लिए उपलब्ध सबसे बड़ा टेक्स्ट कॉर्पस एक बाइबल अनुवाद और शायद कुछ Wikipedia लेख होता है।
रिसोर्स की खाई सिर्फ़ डेटा की मात्रा की बात नहीं है। बात डेटा की विविधता की भी है। जब किसी लो-रिसोर्स भाषा के लिए पैरेलल टेक्स्ट मौजूद भी होता है, तो वह अक्सर धार्मिक ग्रंथों या सरकारी दस्तावेज़ों में केंद्रित होता है। मॉडल औपचारिक, दोहराव वाली भाषा का अनुवाद करना सीख लेता है, लेकिन बातचीत की बोलचाल, तकनीकी शब्दावली या उस संकीर्ण दायरे से बाहर की किसी भी चीज़ पर लड़खड़ा जाता है जिस पर वह ट्रेन हुआ था।
सिर्फ़ स्केल बढ़ाकर इससे नहीं निकला जा सकता
आधुनिक ML की सहज प्रवृत्ति है: ज़्यादा डेटा, बड़ा मॉडल, बेहतर नतीजे। अंग्रेज़ी-केंद्रित कामों में यह तरीका शानदार ढंग से काम कर चुका है। ट्रिलियन इंग्लिश टोकन पर ट्रेन हुए GPT-जैसे मॉडल कमाल की धाराप्रवाह भाषा लिखते हैं। लेकिन लो-रिसोर्स MT के लिए इस तरीके में तीन गंभीर विफलता के बिंदु हैं।
- डेटा असल में मौजूद ही नहीं है। अगर किसी ने कभी काफ़ी मात्रा में Fon–English पैरेलल टेक्स्ट प्रकाशित ही नहीं किया, तो आप उसे इंटरनेट से स्क्रैप नहीं कर सकते। वेब स्क्रेपिंग, जो ज़्यादातर बड़े पैमाने के MT ट्रेनिंग सेट का आधार है, स्वाभाविक रूप से उन भाषाओं की ओर झुकी होती है जिनकी इंटरनेट पर बड़ी मौजूदगी है।
- टोकनाइज़ेशन टूट जाता है। ज़्यादातर भाषा मॉडल ऐसे टोकनाइज़र इस्तेमाल करते हैं जो मुख्यतः अंग्रेज़ी (या कुछ गिनी-चुनी हाई-रिसोर्स भाषाओं) पर ट्रेन हुए होते हैं। जब आप अंग्रेज़ी पर ट्रेन हुए BPE टोकनाइज़र में Amharic लिपि या Burmese टेक्स्ट डालते हैं, तो वह अक्षरों को बेतुकी रूप से लंबी टोकन श्रृंखलाओं में तोड़ देता है। Amharic का एक अकेला शब्द 8-12 टोकन खा सकता है। इसका मतलब है कि मॉडल अपने context window का ज़्यादातर हिस्सा सिर्फ़ इनपुट को encode करने में लगा देता है, और उसे समझने के लिए बहुत कम जगह बचती है।
- ट्रांसफर लर्निंग की सीमाएँ हैं। mBERT या XLM-R जैसे मल्टीलिंगुअल मॉडल दिखाते हैं कि कई भाषाओं पर ट्रेनिंग से लो-रिसोर्स भाषाओं को मदद मिल सकती है — मॉडल संरचनात्मक समानताएँ पकड़ लेता है। लेकिन यह ट्रांसफर संबंधित भाषाओं के बीच सबसे मज़बूत होता है। जो मॉडल फ्रेंच को अच्छी तरह जानता है, वह उस ज्ञान का कुछ हिस्सा Haitian Creole को दे सकता है। Mandarin या Navajo के लिए वह लगभग कुछ नहीं दे पाता।
पिवट-भाषा की समस्या
जो MT सिस्टम सैकड़ों भाषाएँ संभालने का दावा करते हैं, उनमें से ज़्यादातर असल में सब कुछ अंग्रेज़ी के रास्ते से भेजते हैं। Swahili से Thai में अनुवाद चाहिए? सिस्टम Swahili → English → Thai करता है। यह 'पिवट' तरीका व्यावहारिक है — आपको सिर्फ़ अंग्रेज़ी से और अंग्रेज़ी तक के मॉडल बनाने पड़ते हैं — लेकिन इसमें त्रुटियाँ जुड़ती जाती हैं और सांस्कृतिक सपाटपन (cultural flattening) की एक सूक्ष्म समस्या भी आती है।
जब आप अंग्रेज़ी से होकर गुज़रते हैं, तो वे अवधारणाएँ खो जाती हैं जो अंग्रेज़ी में साफ़ तौर पर मैप नहीं होतीं। जापानी में क्रिया रूपों में विनम्रता के कई स्तर एन्कोड होते हैं। योरूबा में स्वर-भेद होते हैं जो अर्थ बदल देते हैं। तमिल में समावेशी और अपवर्जी 'हम' होते हैं (यानी श्रोता शामिल है या नहीं)। जब ये चीज़ें अंग्रेज़ी की संकरी गली से गुज़रती हैं, तो जानकारी खो जाती है — अंग्रेज़ी इन भेदों को एन्कोड नहीं करती, इसलिए मॉडल के पास उन्हें बचाने का कोई तरीका नहीं होता।
गैर-अंग्रेज़ी भाषा जोड़ियों के बीच सीधा अनुवाद — जैसे Swahili से सीधे Thai, अंग्रेज़ी के चक्कर के बिना — ज़्यादा जानकारी बचाता है। लेकिन हर संभव जोड़ी के लिए अलग अनुवाद मॉडल बनाना कॉम्बिनेटोरियली असंभव है। 1,600 भाषाओं के साथ आपको 2.56 मिलियन डायरेक्टेड अनुवाद जोड़ियों की ज़रूरत होगी। अगर आप सिर्फ़ 100 सबसे ज़्यादा बोली जाने वाली भाषाओं को सीधे संभालें, तब भी 9,900 जोड़ियाँ बनती हैं।
आधुनिक तरीके कैसे अलग हैं
मल्टीलिंगुअल MT के मौजूदा मॉडल पिवट रणनीति से बुनियादी रूप से अलग तरीका अपनाते हैं। हर भाषा जोड़ी के लिए अलग मॉडल बनाने की बजाय, वे एक ही मॉडल ट्रेन करते हैं जो सभी भाषाओं के लिए एक साझा representation एक साथ सीखता है। मुख्य नवाचार कुछ श्रेणियों में आते हैं।
भाषा-निरपेक्ष टोकनाइज़ेशन
टोकनाइज़र की समस्या को संतुलित मल्टीलिंगुअल कॉर्पस पर टोकनाइज़र ट्रेन करके सुलझाया जा रहा है, न कि अंग्रेज़ी-भारी कॉर्पस पर। Meta का तरीका character-level fallback इस्तेमाल करता है, जो सुनिश्चित करता है कि कोई भी भाषा असामान्य रूप से लंबी टोकन श्रृंखला न पाए। Explicit language balancing के साथ ट्रेन किए गए SentencePiece मॉडल कहीं ज़्यादा न्यायसंगत टोकनाइज़ेशन देते हैं — समान अर्थ वाला एक योरूबा वाक्य और एक अंग्रेज़ी वाक्य लगभग समान संख्या में टोकन खाते हैं।
यह जितना सुनने में लगता है, उससे ज़्यादा मायने रखता है। अगर आपका टोकनाइज़र किसी भाषा X के लिए 4 गुना कम कुशल है, तो आपके मॉडल के पास उस भाषा को प्रोसेस करने की क्षमता असल में 4 गुना कम है। लो-रिसोर्स भाषाओं के प्रदर्शन में सुधार के लिए टोकनाइज़ेशन को ठीक करना अकेला सबसे प्रभावी कदम है।
जंगली वेब से पैरेलल डेटा माइनिंग
सबसे चतुर तकनीकी योगदानों में से एक है स्वचालित पैरेलल डेटा माइनिंग। विचार यह है: एक मल्टीलिंगुअल sentence encoder ट्रेन करो जो किसी भी भाषा के वाक्यों को एक साझा embedding space में मैप करे। फिर वेब क्रॉल करो और अलग-अलग भाषाओं के ऐसे वाक्य खोजो जो समान vectors में मैप होते हैं — ये संभवतः एक-दूसरे के अनुवाद हैं।
यह तकनीक LASER जैसे टूल्स में शुरू हुई और हाल के काम में आगे बढ़ी है। इसने CCNet और OSCAR जैसे वेब क्रॉल से सैकड़ों मिलियन पैरेलल वाक्य निकाले हैं। यह शोरयुक्त है — निकाले गए जोड़ों में शायद 20-30% ही वास्तव में पैरेलल होते हैं — लेकिन फ़िल्टरिंग heuristics सटीकता बढ़ाते हैं, और विशाल मात्रा शोर की भरपाई कर देती है। कुछ भाषाओं के लिए इस स्वचालित माइनिंग ने पिछले सभी मानव-क्यूरेटेड डेटासेट को मिलाकर उससे ज़्यादा पैरेलल डेटा दिया है।
Back-Translation और Self-Training
Back-translation एक ऐसी तकनीक है जिसमें आप अपने मौजूदा (अपूर्ण) MT मॉडल से मोनोलिंगुअल टेक्स्ट को लक्ष्य भाषा में अनुवादित करवाते हैं, और फिर उन synthetic पैरेलल जोड़ों से बेहतर मॉडल ट्रेन करते हैं। यह bootstrapping है — और यह हैरानी की हद तक अच्छा काम करता है।
चक्र कुछ इस तरह चलता है: जो भी पैरेलल डेटा उपलब्ध हो, उस पर प्रारंभिक मॉडल ट्रेन करो → उससे मोनोलिंगुअल डेटा का अनुवाद करवाओ → खराब अनुवाद छाँट दो → असली और synthetic डेटा को मिलाकर फिर से ट्रेन करो → दोहराओ। हर पुनरावृत्ति मॉडल को बेहतर बनाती है, जो बेहतर synthetic डेटा देता है, जो अगली पुनरावृत्ति को और बेहतर बनाता है। जिन भाषाओं में आप सिर्फ़ कुछ हज़ार पैरेलल वाक्यों से शुरू करते हैं, वहाँ back-translation आपके ट्रेनिंग डेटा को प्रभावी रूप से 10-50 गुना तक बढ़ा सकता है।
# Simplified back-translation loop
def back_translate_cycle(model, parallel_data, monolingual_target, rounds=3):
for round in range(rounds):
# Generate synthetic source from monolingual target text
synthetic_pairs = []
for target_sent in monolingual_target:
source_sent = model.translate(target_sent, direction='reverse')
score = model.score_pair(source_sent, target_sent)
if score > QUALITY_THRESHOLD:
synthetic_pairs.append((source_sent, target_sent))
# Combine real and synthetic data
combined = parallel_data + synthetic_pairs
# Retrain model on combined data
model = train_mt_model(combined)
print(f'Round {round+1}: {len(synthetic_pairs)} synthetic pairs added')
print(f'BLEU score: {evaluate(model, test_set)}')
return model
मूल्यांकन उतना आसान नहीं है जितना लगता है
BLEU स्कोर — MT गुणवत्ता का मानक मेट्रिक — लो-रिसोर्स भाषाओं के लिए गंभीर समस्याएँ रखता है। BLEU मॉडल के आउटपुट और reference अनुवाद के बीच n-gram overlap मापता है। अंग्रेज़ी के लिए यह काफ़ी ठीक काम करता है, क्योंकि अंग्रेज़ी में शब्द-क्रम अपेक्षाकृत स्थिर है और morphology सीमित है। लेकिन Turkish या Finnish जैसी agglutinative भाषाओं के लिए, जहाँ एक शब्द में वह सब कुछ समाहित हो सकता है जो अंग्रेज़ी पूरे वाक्यांश में कहती है, BLEU उन वैध अनुवादों को दंडित करता है जो अलग morphological रूप इस्तेमाल करते हैं।
फिर reference की समस्या भी है: जिन reference अनुवादों से आप मूल्यांकन करते हैं, उन्हें किसने लिखा? उच्च-संसाधन भाषाओं के लिए पेशेवर अनुवादक होते हैं। कई लो-रिसोर्स भाषाओं के लिए, 'गोल्ड स्टैंडर्ड' reference अनुवाद मिशनरियों, औपचारिक शैली में काम करने वाले सरकारी अनुवादकों या स्नातक छात्रों ने बनाए थे। ये reference तकनीकी रूप से सही हो सकते हैं, लेकिन शैलीगत रूप से अस्वाभाविक होते हैं, और जो मॉडल ज़्यादा स्वाभाविक अनुवाद बनाता है, वह वास्तव में कम स्कोर करता है।
COMET और BLEURT जैसे नए मेट्रिक्स अनुवाद गुणवत्ता का अनुमान लगाने के लिए neural मॉडल इस्तेमाल करते हैं और मानव निर्णयों से बेहतर मेल खाते हैं। लेकिन ये भी मुख्यतः हाई-रिसोर्स भाषा डेटा पर ट्रेन हुए हैं, इसलिए बहुत अलग संरचना वाली भाषाओं पर अच्छी तरह सामान्यीकृत नहीं हो सकते। कुछ टीमों ने अपनी सबसे महत्वपूर्ण भाषा जोड़ियों के लिए मूल भाषा-भाषियों से मानव मूल्यांकन शुरू किया है, लेकिन यह 1,600 भाषाओं तक नहीं पहुँच सकता।
सांस्कृतिक और नैतिक आयाम
1,600 भाषाओं के लिए MT बनाना सिर्फ़ इंजीनियरिंग की चुनौती नहीं है। यह सवाल उठाता है कि इससे कौन लाभान्वित होता है, भाषाओं का प्रतिनिधित्व कौन तय करता है, और तब क्या होता है जब मॉडल गलत या पक्षपाती अनुवाद एन्कोड कर लेते हैं।
कई लुप्तप्राय भाषाओं के प्राथमिक बोलने वाले ग्रामीण इलाकों के बुज़ुर्ग समुदाय के सदस्य हैं। वे machine translation APIs इस्तेमाल करने वाले लोग नहीं हैं। तात्कालिक लाभार्थी ज़्यादातर शोधकर्ता, NGO और सरकारें होने की संभावना है — जो संदर्भ के आधार पर अच्छा (बेहतर सूचना पहुँच) या समस्याग्रस्त (निगरानी, जबरन आत्मसात) हो सकता है। समुदाय की भागीदारी के बिना विकसित किए गए आदिवासी भाषाओं के MT का इतिहास अच्छा नहीं रहा है।
भाषा के मानकीकरण का सवाल भी है। कई लो-रिसोर्स भाषाओं में काफ़ी बोली-भिन्नता है और कोई एक 'मानक' रूप नहीं है। जब कोई MT मॉडल किसी एक बोली को canonical चुनता है (आमतौर पर वह जो ट्रेनिंग डेटा में सबसे ज़्यादा दिखी), तो वह अनजाने में दूसरी बोलियों के बोलने वालों को हाशिये पर डाल देता है। यह कोई काल्पनिक बात नहीं है — यह पहले से बेहतर संसाधन वाली भाषाओं के साथ हो रहा है। Arabic MT मॉडल आमतौर पर Modern Standard Arabic को अच्छी तरह संभालते हैं, लेकिन Egyptian, Levantine या Gulf बोलियों के साथ संघर्ष करते हैं, जिन्हें लाखों लोग असल में बोलते हैं।
डेवलपर्स के लिए इसका मतलब
अगर आप वैश्विक दर्शकों के लिए सॉफ़्टवेयर बना रहे हैं, तो MT की स्थिति का आपके architecture और product फ़ैसलों पर व्यावहारिक असर पड़ता है।
- MT की गुणवत्ता को एकसमान न मानें। आपका ऐप localization के लिए Google Translate या किसी मिलते-जुलते API का इस्तेमाल कर सकता है। फ्रेंच की गुणवत्ता उत्कृष्ट है। Amharic के लिए यह लगभग इस्तेमाल के लायक न हो। हर उस भाषा को मूल भाषा-भाषियों से टेस्ट करवाएँ जिसे आप सपोर्ट करने का दावा करते हैं, सिर्फ़ शीर्ष 10 को नहीं।
- MT की विफलता को सहजता से संभालने का डिज़ाइन करें। उपयोगकर्ताओं को अनुवाद के साथ मूल टेक्स्ट भी दिखाएँ। उन्हें खराब अनुवाद फ़्लैग करने दें। यह बात मत छिपाएँ कि कंटेंट मशीन से अनूदित है — उपयोगकर्ता वैसे भी पता लगा लेंगे, और अगर आपने उसे मानव-स्तरीय दिखाने का नाटक किया तो वे आप पर कम भरोसा करेंगे।
- टोकनाइज़ेशन के 'टैक्स' पर ध्यान दें। अगर आप बहुभाषी संदर्भ में सिर्फ़ MT नहीं, बल्कि भाषा मॉडल भी इस्तेमाल कर रहे हैं, तो ध्यान रखें कि गैर-अंग्रेज़ी भाषाएँ ज़्यादा टोकन खाती हैं। आपकी 4K context window में अंग्रेज़ी की तुलना में काफ़ी कम Thai या Arabic टेक्स्ट आता है। उसी हिसाब से योजना बनाएँ।
- मल्टीलिंगुअल टेस्ट डेटा में निवेश करें। लो-रिसोर्स भाषाओं को सपोर्ट करने का सबसे कठिन हिस्सा मॉडल नहीं है — बल्कि यह जानना है कि आपका आउटपुट सही है या नहीं। ऐसे मूल भाषा-भाषियों से संबंध बनाएँ जो गुणवत्ता जाँच सकें। स्वचालित मेट्रिक्स आपको गुमराह करेंगे।
आगे का रास्ता
Omnilingual MT की ओर बढ़ना, तमाम चेतावनियों के बावजूद, वाकई रोमांचक है। पाँच साल पहले, 10,000 पैरेलल वाक्यों वाली भाषा के लिए अनुवाद मॉडल बनाना शोध की एक जिज्ञासा मात्र होता। आज back-translation, मल्टीलिंगुअल ट्रांसफर और स्वचालित पैरेलल माइनिंग जैसी तकनीकें इसे संभव बनाती हैं — बेहतरीन नहीं, लेकिन इस्तेमाल के लायक।
बाकी चुनौतियाँ जितनी तकनीकी हैं, उतनी ही सामाजिक भी हैं। लुप्तप्राय भाषाओं के लिए ट्रेनिंग डेटा पाने के लिए सामुदायिक साझेदारी चाहिए, सिर्फ़ वेब स्क्रेपिंग नहीं। बड़े पैमाने पर गुणवत्ता आँकने के लिए नए मेट्रिक्स और मूल भाषा-भाषियों की भागीदारी चाहिए। और यह सुनिश्चित करने के लिए कि MT टूल्स सच में उन समुदायों की सेवा करें जो ये भाषाएँ बोलते हैं — न कि सिर्फ़ coverage की चेकबॉक्स भरने के लिए — निरंतर जुड़ाव चाहिए।
फिर भी दिशा सही है। भाषा सूचना तक पहुँचने में बाधा नहीं होनी चाहिए, और तथ्य कि हम 1,600 भाषाओं के लिए अनुवाद सिस्टम बनाने की कोशिश कर रहे हैं — बजाय उन्हीं 30 को बार-बार optimize करने के — प्राथमिकताओं में एक सार्थक बदलाव है। इंजीनियरिंग कठिन है। अकेली टोकनाइज़ेशन समस्या को ठीक से पहचानने और सुलझाने में ही सालों लग गए। लेकिन उन अरबों लोगों के लिए, जिनकी भाषाओं को टेक इंडस्ट्री ने नज़रअंदाज़ किया है, यह काम English–French BLEU स्कोर में एक और दशमलव सुधार से कहीं ज़्यादा मायने रखता है।


