شکستن موانع زبان با یک مدل ترجمه چند زبانه - وبلاگ Roblox

شکستن موانع زبان با یک مدل ترجمه چند زبانه - وبلاگ Roblox

تصور کنید کشف کرده اید که دوست جدید Roblox شما، شخصی که در یک تجربه جدید با او چت و شوخی کرده اید، در واقع در کره است - و در تمام مدت به زبان کره ای تایپ کرده است، در حالی که شما به زبان انگلیسی تایپ می کنید، بدون هیچ یک از آنها. متوجه می شوید به لطف ترجمه‌های جدید چت هوش مصنوعی در زمان واقعی، ما چیزی را در Roblox امکان‌پذیر کرده‌ایم که حتی در دنیای فیزیکی هم امکان‌پذیر نیست - به افرادی که به زبان‌های مختلف صحبت می‌کنند قادر می‌سازیم تا در تجربیات سه بعدی ما به طور یکپارچه با یکدیگر ارتباط برقرار کنند. این به دلیل مدل چند زبانه سفارشی ما امکان پذیر است، که اکنون ترجمه مستقیم را بین هر ترکیبی از 3 زبانی که در حال حاضر پشتیبانی می کنیم، امکان پذیر می کند (این 15 زبانو همچنین انگلیسی). 

در هر تجربه ای که ما را قادر ساخته است چت متنی در تجربه خدمات، مردم کشورهای مختلف اکنون توسط افرادی که به زبان آنها صحبت نمی کنند قابل درک هستند. پنجره چت به طور خودکار زبان کره ای ترجمه شده به انگلیسی یا ترکی ترجمه شده به آلمانی و بالعکس را نشان می دهد تا هر فرد مکالمه را به زبان خود ببیند. این ترجمه‌ها در زمان واقعی، با تأخیر 100 میلی‌ثانیه یا کمتر نمایش داده می‌شوند، بنابراین ترجمه در پشت صحنه تقریباً نامرئی است. استفاده از هوش مصنوعی برای خودکارسازی ترجمه های بلادرنگ در چت متنی، موانع زبانی را از بین می برد و افراد بیشتری را بدون توجه به اینکه در کجای دنیا زندگی می کنند، گرد هم می آورد. 

ساخت یک مدل ترجمه یکپارچه

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

Roblox خانه بیش از 70 میلیون کاربر فعال روزانه در سراسر جهان است و در حال رشد است. مردم در حال برقراری ارتباط و ایجاد بر روی پلت فرم ما - هر کدام به زبان مادری خود - 24 ساعت در روز هستند. ترجمه دستی هر مکالمه ای که در بیش از 15 میلیون تجربه فعال اتفاق می افتد، همه در زمان واقعی، بدیهی است که امکان پذیر نیست. مقیاس‌بندی این ترجمه‌های زنده برای میلیون‌ها نفر، که همگی مکالمات مختلف در تجربیات مختلف به طور همزمان دارند، به یک LLM با سرعت و دقت فوق‌العاده نیاز دارد. ما به یک مدل آگاه از زمینه نیاز داریم که زبان مخصوص Roblox را بشناسد، از جمله عامیانه و اختصارات (think obby، afk، یا lol). فراتر از همه اینها، مدل ما باید از هر ترکیبی از 16 زبانی که Roblox در حال حاضر پشتیبانی می کند پشتیبانی کند. 

برای رسیدن به این هدف، می‌توانستیم یک مدل منحصر به فرد برای هر جفت زبان (یعنی ژاپنی و اسپانیایی) بسازیم، اما برای این کار نیاز به ۱۶×۱۶ یا ۲۵۶ مدل مختلف بود. در عوض، ما یک ترجمه یکپارچه و مبتنی بر ترانسفورماتور LLM ساختیم تا همه جفت‌های زبان را در یک مدل واحد مدیریت کند. این مانند داشتن چندین برنامه ترجمه است که هر کدام در گروهی از زبان های مشابه تخصص دارند و همه با یک رابط در دسترس هستند. با توجه به یک جمله مبدأ و زبان مقصد، می‌توانیم «متخصص» مربوطه را برای تولید ترجمه‌ها فعال کنیم. 

این معماری امکان استفاده بهتر از منابع را فراهم می کند، زیرا هر متخصص تخصص متفاوتی دارد، که منجر به آموزش و استنتاج کارآمدتر می شود - بدون اینکه کیفیت ترجمه را به خطر بیندازد.

تصویری از فرآیند استنتاج. پیام‌های منبع، همراه با زبان مبدأ و زبان‌های مقصد از طریق RCC ارسال می‌شوند. قبل از ضربه زدن به انتهای صفحه، ابتدا حافظه پنهان را بررسی می کنیم تا ببینیم آیا از قبل ترجمه هایی برای این درخواست داریم یا خیر. در غیر این صورت، درخواست به انتهای پشتی و به سرور مدل با دسته‌بندی پویا ارسال می‌شود. ما یک لایه کش جاسازی شده بین رمزگذارها و رمزگشاها اضافه کردیم تا کارایی را در هنگام ترجمه به چندین زبان مقصد بهبود ببخشیم.

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

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

ما به این موضوع از جنبه‌های مختلف نگاه می‌کنیم، از جمله دقت (اعم از اینکه اضافات، حذفیات یا ترجمه‌های نادرست وجود داشته باشد)، روان بودن (نقطه‌گذاری، املا، و دستور زبان)، و ارجاعات نادرست (اختلاف با بقیه متن). ما این خطاها را به سطوح شدت طبقه‌بندی می‌کنیم: آیا این یک خطای مهم، بزرگ یا جزئی است؟ به منظور ارزیابی کیفیت، ما یک مدل ML ساختیم و آن را بر روی انواع و امتیازات خطای برچسب‌گذاری شده انسانی آموزش دادیم. سپس یک مدل زبان چند زبانه را برای پیش‌بینی خطاها و انواع سطح کلمه و محاسبه امتیاز با استفاده از معیارهای چند بعدی خود تنظیم کردیم. این به ما درک جامعی از کیفیت و انواع خطاهای رخ می دهد. به این ترتیب می‌توانیم کیفیت ترجمه را تخمین بزنیم و با استفاده از متن مبدأ و ترجمه‌های ماشینی، خطاها را تشخیص دهیم، بدون نیاز به ترجمه حقیقت پایه. با استفاده از نتایج این معیار کیفیت، می توانیم کیفیت مدل ترجمه خود را بیشتر بهبود بخشیم. 

با متن منبع و نتیجه ترجمه ماشینی، می توانیم کیفیت ترجمه ماشینی را بدون ترجمه مرجع، با استفاده از مدل تخمین کیفیت ترجمه داخلی خود تخمین بزنیم. این مدل کیفیت را از جنبه های مختلف تخمین زده و خطاها را به خطاهای بحرانی، عمده و جزئی دسته بندی می کند.

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

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

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

مدل ترجمه چت حاصل تقریباً 1 میلیارد پارامتر دارد. اجرای یک ترجمه از طریق مدلی به این بزرگی برای ارائه در مقیاس به شدت نیازمند منابع است و برای یک مکالمه بلادرنگ بسیار طولانی خواهد بود، جایی که تاخیر کم برای پشتیبانی از بیش از 5,000 چت در ثانیه بسیار مهم است. بنابراین ما از این مدل ترجمه بزرگ در رویکرد دانش آموز-معلم برای ساختن یک مدل کوچکتر و سبک تر استفاده کردیم. ما تقطیر، کوانتیزاسیون، تلفیقی مدل و سایر بهینه‌سازی‌های سرویس را اعمال کردیم تا اندازه مدل را به کمتر از 650 میلیون پارامتر کاهش دهیم و کارایی سرویس را بهبود بخشیم. علاوه بر این، ما API پشت چت متنی در تجربه را تغییر دادیم تا هم پیام‌های اصلی و هم پیام‌های ترجمه‌شده را به دستگاه شخص ارسال کنیم. این به گیرنده امکان می‌دهد پیام را به زبان مادری خود ببیند یا سریعاً پیام اصلی و ترجمه نشده فرستنده را ببیند.

هنگامی که LLM نهایی آماده شد، یک بک اند برای اتصال با سرورهای مدل پیاده سازی کردیم. این قسمت پشتی جایی است که ما منطق ترجمه چت اضافی را اعمال می کنیم و سیستم را با سیستم های اعتماد و ایمنی معمول خود ادغام می کنیم. این تضمین می‌کند که متن ترجمه‌شده همان سطح بررسی دقیق متن‌های دیگر را دریافت می‌کند تا کلمات یا عباراتی را که خط‌مشی‌های ما را نقض می‌کنند شناسایی و مسدود کند. ایمنی و مدنیت در خط مقدم همه کارهایی است که ما در Roblox انجام می دهیم، بنابراین این یک قطعه بسیار مهم از پازل بود. 

بهبود مستمر دقت

در آزمایش، مشاهده کرده‌ایم که این سیستم ترجمه جدید تعامل و کیفیت جلسه قوی‌تری را برای افراد در پلتفرم ما ایجاد می‌کند. بر اساس معیارهای خودمان، مدل ما از APIهای ترجمه تجاری در محتوای Roblox بهتر عمل می کند، که نشان می دهد ما با موفقیت برای نحوه ارتباط مردم در Roblox بهینه شده ایم. ما هیجان زده هستیم که ببینیم چگونه این تجربه افراد روی پلتفرم را بهبود می بخشد، و این امکان را برای آنها فراهم می کند که بازی کنند، خرید کنند، همکاری کنند، یا فقط با دوستانی که به زبان دیگری صحبت می کنند ارتباط برقرار کنند.

توانایی افراد برای برقراری مکالمات یکپارچه و طبیعی به زبان مادری خود، ما را به هدف ما برای ارتباط یک میلیارد نفر با خوش بینی و متمدن نزدیکتر می کند.

برای بهبود بیشتر دقت ترجمه‌هایمان و ارائه داده‌های آموزشی بهتر به مدل خود، قصد داریم ابزاری را ارائه کنیم که به افراد حاضر در پلتفرم اجازه می‌دهد درباره ترجمه‌های خود بازخورد ارائه کنند و به بهبود سریع‌تر سیستم کمک کنند. این به کسی امکان می‌دهد وقتی چیزی را می‌بیند که اشتباه ترجمه شده است به ما بگوید و حتی ترجمه بهتری را پیشنهاد می‌کند که می‌توانیم برای بهبود بیشتر مدل به داده‌های آموزشی اضافه کنیم. 

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

و ما در حال بررسی مرزهای جدید هیجان انگیز، از جمله خودکار هستیم صدا ترجمه چت تصور کنید یک سخنران فرانسوی در Roblox بتواند با فردی که فقط روسی صحبت می کند چت صوتی داشته باشد. هر دو می‌توانستند با همدیگر صحبت کنند و آن را درک کنند، دقیقاً تا لحن، ریتم و احساسات صدایشان، به زبان خودشان و با تأخیر کم. در حالی که ممکن است این امر امروز مانند یک داستان علمی تخیلی به نظر برسد، و رسیدن به آن مدتی طول می کشد، ما همچنان به پیشبرد ترجمه ادامه خواهیم داد. در آینده ای نه چندان دور، Roblox مکانی خواهد بود که مردم از سراسر جهان می توانند بدون دردسر و بدون دردسر نه تنها از طریق چت متنی، بلکه در هر حالت ممکن با هم ارتباط برقرار کنند!

تمبر زمان:

بیشتر از Roblox