Skip to main content

ทำลายกำแพงภาษาด้วยโมเดลการแปลหลายภาษา

February 5, 2024

by Daniel Sturman, Chief Technology Officer


ผลิตภัณฑ์และเทคโนโลยี

ลองจินตนาการว่าคุณค้นพบว่าเพื่อนใหม่ของคุณบน Roblox คนที่คุณพูดคุยและล้อเล่นด้วยในประสบการณ์ใหม่แท้จริงแล้วอยู่ที่ประเทศเกาหลี — และได้พิมพ์หาคุณเป็นภาษาเกาหลีมาโดยตลอด ในขณะที่คุณพิมพ์โต้ตอบด้วยภาษาอังกฤษโดยที่ต่างคนต่างไม่รู้ ขอบคุณการแปลแชทแบบเรียลไทม์ด้วย AI ใหม่ของเราซึ่งทำให้สิ่งที่ไม่สามารถเป็นไปได้ด้วยซ้ำบนโลกแห่งความจริงสามารถเป็นไปได้บน Roblox — เครื่องมือนี้ช่วยให้ผู้ใช้ที่ใช้ภาษาแตกต่างกันสามารถสื่อสารกันในประสบการณ์ 3 มิติแบบอิมเมอร์ซีฟของเราได้อย่างราบรื่น เหตุการณ์นี้เป็นไปได้เนื่องจากโมเดลหลายภาษาที่เราพัฒนาขึ้นเองซึ่งในขณะนี้สามารถทำการแปลภาษาระหว่างภาษาต่างๆ ที่เรารองรับอยู่ในขณะนี้จำนวน 16 ภาษาได้โดยตรง (15 ภาษาเหล่านี้และภาษาอังกฤษ)

ประสบการณ์ใดๆ ก็ตามที่ได้เปิดใช้บริการ การแชทด้วยข้อความในประสบการณ์ของเรา ผู้ใช้จากประเทศที่แตกต่างกันสามารถเข้าใจผู้ใช้ที่ไม่ได้พูดภาษาเดียวกับตนได้แล้วตอนนี้ หน้าต่างแชทจะแสดงภาษาเกาหลีที่ได้รับการแปลเป็นภาษาอังกฤษ หรือภาษาตุรกีที่ได้รับการแปลเป็นภาษาเยอรมันและในทางกลับกันโดยอัตโนมัติเพื่อให้ผู้ใช้แต่ละคนเห็นการสนทนาในภาษาของตนเอง คำแปลเหล่านี้จะถูกแสดงแบบเรียลไทม์ด้วยเวลาตอบสนองประมาณ 100 มิลลิวินาทีซึ่งทำให้แทบจะมองไม่เห็นการแปลที่เกิดขึ้นเบื้องหลัง การใช้ AI เพื่อแปลการแชทด้วยข้อความแบบเรียลไทม์โดยอัตโนมัติช่วยทำลายกำแพงภาษาและช่วยให้ผู้คนสื่อสารกันได้มากยิ่งขึ้นไม่ว่าจะมาจากที่ใดในโลกก็ตาม

การสร้างโมเดลการแปลภาษาแบบระบบรวม

การแปลภาษาด้วย AI ไม่ใช่สิ่งใหม่ เนื้อหาในประสบการณ์ของเราส่วนใหญ่ได้รับการแปลภาษาโดยอัตโนมัติอยู่แล้ว แต่เราต้องการก้าวไปให้ไกลว่าการแปลเนื้อหาแบบคงที่ในประสบการณ์ เราต้องการแปลการโต้ตอบสื่อสารระหว่างกันแบบอัตโนมัติ — โดยเราต้องการดำเนินการดังกล่าวกับทั้ง 16 ภาษาที่เรารองรับบนแพลตฟอร์ม นี่เป็นเป้าหมายที่ยิ่งใหญ่เนื่องจากสองเหตุผล: เหตุผลแรก เราไม่เพียงแต่ทำการแปลจากภาษาหลัก (เช่น ภาษาอังกฤษ) ไปเป็นภาษาอื่นเท่านั้น แต่เราต้องการระบบที่สามารถทำการแปลภาษาระหว่างภาษาต่างๆ ที่เรารองรับอยู่ทั้งหมด 16 ภาษาให้ได้ เหตุผลที่สอง การแปลต้องเกิดขึ้นอย่างรวดเร็ว โดยต้องเร็วพอที่จะรองรับการสนทนาจริงในแชทซึ่งสำหรับเราหมายถึงการลดเวลาตอบสนองลงเหลือประมาณ 100 มิลลิวินาทีเท่านั้น

Roblox มีผู้ใช้งานต่อวันมากกว่า 70 ล้านคนทั่วโลกและกำลังเติบโตเพิ่มมากขึ้นเรื่อยๆ ผู้ใช้ติดต่อสื่อสารและสร้างสรรค์บนแพลตฟอร์มของเราในภาษาท้องถิ่นของตน 24 ชั่วโมงต่อวัน ซึ่งเห็นได้ชัดว่าหากต้องทำการแปลทุกบทสนทนาที่เกิดขึ้นในประสบการณ์ที่สามารถใช้งานได้ซึ่งมีอยู่มากกว่า 15 ล้านรายการแบบเรียลไทม์ด้วยตนเองนั้นแทบจะเป็นไปไม่ได้เลย หากต้องการเพิ่มขนาดการแปลแบบสดๆ เหล่านี้สำหรับผู้ใช้หลายล้านคนซึ่งมีการสนทนาที่แตกต่างกันในประสบการณ์ที่แตกต่างกันในเวลาพร้อมๆ กันต้องใช้ LLM ที่มีความรวดเร็วและแม่นยำสูงมาก เราจำเป็นต้องมีโมเดลที่สามารถรับรู้บริบทซึ่งสามารถจดจำภาษาเฉพาะของ Roblox ได้ รวมถึงคำสแลงและตัวย่อต่างๆ (เช่น obby, afk หรือ lol) ยิ่งไปกว่านั้นโมเดลของเราจำเป็นต้องรองรับการผสมผสานระหว่างภาษาใดๆ ก็ตามใน 16 ภาษาที่ Roblox รองรับอยู่ในขณะนี้ให้ได้ด้วย

เพื่อบรรลุเป้าหมายนี้ เราสามารถสร้างโมเดลที่ไม่ซ้ำกันสำหรับคู่ภาษาแต่ละคู่ได้ (เช่น ญี่ปุ่นและสเปน) แต่หากทำเช่นนั้นเราจะต้องมีโมเดลที่แตกต่างกัน 16×16 หรือ 256 โมเดลซึ่งแทนที่จะใช้วิธีดังกล่าว เราได้สร้าง LLM การแปลภาษาที่ใช้การแปลงข้อมูลและเป็นระบบรวมเพื่อจัดการกับคู่ภาษาทั้งหมดในโมเดลเดียว ซึ่งเหมือนกับการมีแอปการแปลภาษาหลายแอปแต่ละแอปเชี่ยวชาญในกลุ่มภาษาที่คล้ายกันและทั้งหมดสามารถใช้งานผ่านอินเตอร์เฟซเดียวกันได้ โดยเราสามารถเรียกใช้ “ผู้เชี่ยวชาญ” ที่เกี่ยวข้องเพื่อสร้างคำแปลตามประโยคต้นฉบับและภาษาเป้าหมายที่กำหนดไว้ได้

สถาปัตยกรรมนี้ช่วยให้เราสามารถใช้ทรัพยากรได้ดียิ่งขึ้น เนื่องจากผู้เชี่ยวชาญแต่ละคนมีความเชี่ยวชาญที่แตกต่างกันซึ่งนำไปสู่การฝึกฝนและการอนุมานที่มีประสิทธิภาพมากขึ้นโดยไม่ต้องลดคุณภาพการแปล

ภาพประกอบของกระบวนการอนุมาน ข้อความต้นฉบับพร้อมกับภาษาต้นฉบับและภาษาเป้าหมายถูกส่งผ่าน RCC ก่อนที่จะเข้าสู่แบ็คเอนด์ เราจะตรวจสอบแคชเพื่อดูว่าเรามีคำแปลสำหรับคำขอนี้อยู่แล้วหรือไม่ หากยังไม่มี คำขอจะถูกส่งไปยังแบ็คเอนด์และไปยังเซิร์ฟเวอร์ของโมเดลพร้อมกับการจัดกลุ่มแบบไดนามิก เราเพิ่มชั้นของแคชแบบฝังตัวระหว่างตัวเข้ารหัสและตัวถอดรหัสเพื่อเพิ่มประสิทธิภาพเมื่อต้องทำการแปลเป็นภาษาเป้าหมายหลายภาษา

สถาปัตยกรรมนี้ช่วยให้การฝึกฝนและบำรุงรักษาโมเดลของเรามีประสิทธิภาพมากขึ้นเนื่องจากเหตุผลหลายประการ ประการแรก โมเดลของเราสามารถใช้ประโยชน์จากความคล้ายคลึงทางภาษาระหว่างภาษาต่างๆ ได้ เมื่อทุกภาษาถูกฝึกฝนพร้อมกันภาษาที่มีความคล้ายคลึงกัน อย่างเช่น สเปนและโปรตุเกส จะได้รับประโยชน์จากข้อมูลของกันและกันในระหว่างการฝึกซึ่งช่วยเพิ่มคุณภาพการแปลสำหรับทั้งสองภาษา นอกจากนี้เรายังสามารถทดสอบและผสมผสานการวิจัยและความก้าวหน้าใหม่ๆ ใน LLM เข้ากับระบบของเราเมื่อมีการเผยแพร่ได้อย่างง่ายดายทำให้เราได้รับประโยชน์จากเทคนิคล่าสุดและทันสมัยที่สุดที่มีอยู่ได้ เรายังได้เห็นประโยชน์อีกข้อหนึ่งของโมเดลแบบระบบรวมในกรณีที่ภาษาต้นฉบับไม่ได้รับการตั้งค่าหรือตั้งค่าไม่ถูกต้อง โดยโมเดลมีความแม่นยำมากพอที่จะตรวจจับภาษาต้นฉบับที่ถูกต้องและแปลเป็นภาษาเป้าหมายได้ ความจริงแล้วแม้ว่าข้อมูลนำเข้าจะมีการผสมภาษาต่างๆ อยู่แต่ระบบยังสามารถตรวจจับและแปลเป็นภาษาเป้าหมายได้ ซี่งในกรณีเหล่านี้ความแม่นยำอาจจะไม่สูงมากนักแต่ข้อความสุดท้ายที่ได้รับยังคงสามารถเข้าใจได้พอสมควร

ในการฝึกฝนโมเดลแบบระบบรวมนี้ เราเริ่มต้นด้วยการฝึกฝนข้อมูลโอเพนซอร์สที่มีอยู่ล่วงหน้า รวมถึงข้อมูลคำแปลจากในประสบการณ์ของเราเอง ผลลัพธ์การแปลแชทที่กำกับโดยมนุษย์ และประโยคและวลีจากแชททั่วไปด้วย นอกจากนี้เรายังสร้างตัวชี้วัดและโมเดลการประเมินการแปลของเราเองเพื่อวัดคุณภาพของการแปล ส่วนใหญ่แล้วตัวชี้วัดคุณภาพการแปลโดยทั่วไปจะเปรียบเทียบผลการแปลของ AI กับคำแปลที่ถูกต้องหรือคำแปลแบบอ้างอิงและเน้นไปที่ความเข้าใจคำแปลเป็นส่วนใหญ่ แต่เราต้องการประเมินคุณภาพของคำแปลโดยไม่ต้องมีคำแปลที่ถูกต้อง

เราพิจารณาสิ่งนี้จากหลากหลายมุมมองซึ่งรวมถึงความถูกต้อง (ไม่ว่าจะเป็นการเพิ่มเติม ขาดหาย หรือการแปลผิด), ความเป็นธรรมชาติ (เครื่องหมายวรรคตอน การสะกด และไวยากรณ์) และการอ้างอิงที่ไม่ถูกต้อง (ความไม่สอดคล้องกันกับข้อความที่เหลือ) เราจัดประเภทข้อผิดพลาดเหล่านี้ตามระดับความรุนแรง: ข้อผิดพลาดนี้เป็นข้อผิดพลาดที่สำคัญ หลัก หรือเล็กน้อย ในการประเมินคุณภาพเราได้สร้างโมเดล ML และฝึกฝนโมเดลดังกล่าวกับประเภทข้อผิดพลาดและคะแนนที่มนุษย์ระบุ จากนั้นเราได้ปรับแต่งโมเดลภาษาหลายภาษาเพื่อคาดการณ์ข้อผิดพลาดและประเภทในระดับคำและคำนวณคะแนนโดยใช้เกณฑ์แบบหลายมิติของเรา การดำเนินการนี้ทำให้เรามีความเข้าใจเกี่ยวกับคุณภาพและประเภทของข้อผิดพลาดที่เกิดขึ้นได้อย่างสมบูรณ์ ด้วยวิธีนี้เราสามารถประเมินคุณภาพการแปลและตรวจจับข้อผิดพลาดได้โดยใช้ข้อความต้นฉบับและการแปลด้วยเครื่องโดยไม่ต้องมีคำแปลที่ถูกต้อง การใช้ผลลัพธ์ของการวัดคุณภาพนี้ทำให้เราสามารถปรับปรุงคุณภาพของโมเดลการแปลของเราต่อไปได้

ด้วยข้อความต้นฉบับและผลลัพธ์จากการแปลของเครื่อง เราสามารถประเมินคุณภาพการแปลของเครื่องได้โดยใช้โมเดลประเมินคุณภาพการแปลที่เราพัฒนาขึ้นเองโดยไม่ต้องมีการแปลอ้างอิง โมเดลนี้ประเมินคุณภาพจากมุมมองต่างๆ และจัดประเภทข้อผิดพลาดเป็นข้อผิดพลาดที่สำคัญ ข้อผิดพลาดหลัก หรือข้อผิดพลาดเล็กน้อย

คู่การแปลที่พบได้ไม่บ่อย (เช่น การแปลภาษาฝรั่งเศสเป็นภาษาไทย) ถือเป็นเรื่องท้าทายเนื่องจากขาดข้อมูลที่มีคุณภาพสูง เพื่อแก้ไขช่องว่างนี้เราได้ใช้การแปลกลับเป็นภาษาต้นฉบับ โดยเนื้อหาจะถูกแปลกลับเป็นภาษาต้นฉบับจากนั้นนำไปเปรียบเทียบกับข้อความต้นฉบับเพื่อความถูกต้อง ในระหว่างกระบวนการฝึกฝนเราใช้การแปลกลับเป็นภาษาต้นฉบับแบบซ้ำๆ โดยเราได้ใช้การผสมผสานเชิงกลยุทธ์ของข้อมูลที่แปลกลับเป็นภาษาต้นฉบับและข้อมูลที่ได้รับการควบคุม (ติดป้ายกำกับ) เพื่อขยายจำนวนข้อมูลคำแปลให้กับโมเดลเพื่อทำการเรียนรู้

ภาพประกอบของกระบวนการฝึกฝนโมเดล ทั้งข้อมูลแบบขนานและข้อมูลการแปลกลับเป็นภาษาต้นฉบับถูกใช้ในระหว่างการฝึกฝนโมเดล หลังจากที่โมเดลผู้สอนได้รับการฝึกฝนแล้ว เราจะใช้การกลั่นและเทคนิคการเพิ่มประสิทธิภาพการให้บริการอื่นๆ เพื่อลดขนาดโมเดลและปรับปรุงประสิทธิภาพการให้บริการ

เพื่อช่วยให้โมเดลเข้าใจคำสแลงสมัยใหม่ เราได้ขอให้ผู้ประเมินที่เป็นมนุษย์แปลคำศัพท์ที่กำลังเป็นที่นิยมและกำลังมาแรงสำหรับแต่ละภาษา แล้วรวบรวมคำแปลเหล่านั้นไว้ในข้อมูลฝึกฝนของเรา โดยเราจะดำเนินการในขั้นตอนนี้ซ้ำๆ เป็นประจำเพื่อให้ระบบมีข้อมูลคำสแลงใหม่ล่าสุดอยู่เสมอ

โมเดลการแปลแชทที่ได้จะมีพารามิเตอร์อยู่ประมาณ 1 พันล้านพารามิเตอร์ การเรียกใช้การแปลผ่านโมเดลขนาดใหญ่เช่นนี้ต้องใช้ทรัพยากรเป็นอย่างมากเพื่อให้บริการครอบคลุมทั้งหมด และจะต้องใช้เวลานานมากสำหรับการสนทนาแบบเรียลไทม์ซึ่งเวลาในการตอบสนองเป็นสิ่งสำคัญเพื่อรองรับการแชทที่มีมากกว่า 5,000 รายการต่อวินาที ดังนั้นเราจึงใช้โมเดลการแปลขนาดใหญ่นี้โดยใช้แนวทางแบบผู้เรียน-ผู้สอนเพื่อสร้างโมเดลที่มีขนาดเล็กกว่า เราได้ใช้การกลั่นกรอง การหาปริมาณ การรวบรวมโมเดล และการเพิ่มประสิทธิภาพการให้บริการอื่นๆ เพื่อลดขนาดของโมเดลลงให้เหลือน้อยกว่า 650 ล้านพารามิเตอร์และทำการปรับปรุงประสิทธิภาพการให้บริการ นอกจากนี้ เราได้แก้ไข API ที่อยู่เบื้องหลังการแชทด้วยข้อความในประสบการณ์เพื่อให้ส่งทั้งข้อความต้นฉบับและข้อความที่แปลแล้วไปยังอุปกรณ์ของบุคคลนั้นๆ ซึ่งช่วยให้ผู้รับสามารถดูข้อความในภาษาของตนเองหรือทำการสลับเพื่อดูข้อความต้นฉบับที่ยังไม่ได้แปลของผู้ส่งได้อย่างรวดเร็วอีกด้วย

เมื่อ LLM สุดท้ายพร้อมแล้ว เราก็ได้ใช้แบ็คเอนด์เพื่อเชื่อมต่อกับเซิร์ฟเวอร์โมเดล แบ็คเอนด์เป็นที่ที่เราปรับใช้ตรรกะการแปลแชทเพิ่มเติมและรวมระบบเข้ากับระบบความน่าเชื่อถือและความปลอดภัยตามปกติของเรา ซึ่งจะทำให้แน่ใจได้ว่าข้อความที่แปลแล้วได้รับการตรวจสอบในระดับเดียวกับข้อความอื่นๆ เพื่อตรวจจับและบล็อคคำหรือวลีที่ละเมิดนโยบายของเรา ความปลอดภัยและความเป็นมิตรเป็นสิ่งที่สำคัญที่สุดสำหรับ Roblox ดังนั้นขั้นตอนนี้จึงเป็นชิ้นส่วนที่มีความสำคัญเป็นอย่างมาก

การปรับปรุงความแม่นยำอย่างต่อเนื่อง

ในการทดสอบ เราพบว่าระบบการแปลใหม่นี้ขับเคลื่อนการมีส่วนร่วมและคุณภาพเซสชันของผู้ใช้บนแพลตฟอร์มของเราให้แข็งแกร่งมากยิ่งขึ้น อ้างอิงจากตัวชี้วัดของเราเอง โมเดลของเรามีประสิทธิภาพที่เหนือกว่า API การแปลเชิงพาณิชย์เมื่อทำการแปลเนื้อหาบน Roblox ซึ่งแสดงให้เห็นว่าเราได้ปรับปรุงวิธีการสื่อสารของผู้คนบน Roblox สำเร็จแล้ว เรารู้สึกตื่นเต้นที่ได้เห็นว่าเครื่องมือนี้ช่วยปรับปรุงประสบการณ์การใช้งานของผู้ใช้บนแพลตฟอร์ม และช่วยให้ผู้ใช้สามารถเล่นเกม ชอปปิ้ง ทำงานร่วมกัน หรือพบปะพูดคุยกับเพื่อนๆ ที่พูดภาษาแตกต่างกันได้

การที่ผู้ใช้สามารถสนทนาอย่างราบรื่นและเป็นธรรมชาติในภาษาของตนได้นั้นเป็นการนำเราให้เข้าใกล้เป้าหมายในการเชื่อมโยงผู้คนนับพันล้านคนด้วยการมองโลกในแง่ดีและความสุภาพมากยิ่งขึ้น

เพื่อปรับปรุงความแม่นยำของการแปลของเราต่อไปและเพื่อให้โมเดลของเราได้รับข้อมูลการฝึกฝนที่ดีขึ้น เราวางแผนที่จะเปิดตัวเครื่องมือเพื่อให้ผู้ใช้บนแพลตฟอร์มสามารถแสดงข้อเสนอแนะเกี่ยวกับคำแปลของตนและช่วยให้ระบบปรับปรุงได้รวดเร็วมากยิ่งขึ้น เครื่องมือนี้จะช่วยให้ผู้ใช้สามารถแจ้งให้เราทราบเมื่อเห็นคำแปลที่ไม่ถูกต้อง และแนะนำคำแปลที่ดีกว่าซึ่งเราสามารถเพิ่มคำแปลเหล่านั้นไปยังข้อมูลการฝึกฝนเพื่อปรับปรุงโมเดลของเราต่อไปได้

การแปลเหล่านี้พร้อมให้บริการแล้วในวันนี้สำหรับ 16 ภาษาที่เรารองรับ แต่เรายังไม่สิ้นสุดเพียงเท่านี้ เราวางแผนที่จะอัปเดตโมเดลของเราต่อไปด้วยตัวอย่างการแปลล่าสุดจากภายในประสบการณ์ของเรา รวมถึงวลีแชทยอดนิยมและวลีสแลงล่าสุดในทุกภาษาที่เรารองรับด้วย นอกจากนี้ สถาปัตยกรรมนี้ยังทำให้การฝึกฝนโมเดลในภาษาใหม่เป็นไปได้โดยไม่ต้องใช้ความพยายามมากหากมีข้อมูลการฝึกฝนที่เพียงพอสำหรับภาษาเหล่านั้น และเรายังกำลังสำรวจหาวิธีแปลทุกสิ่งในหลายมิติโดยอัตโนมัติ เช่น ข้อความบนรูปภาพ พื้นผิว โมเดล 3 มิติ ฯลฯ อีกด้วย

และตอนนี้เราก็กำลังสำรวจขอบเขตใหม่ๆ ที่น่าตื่นเต้นอยู่ ซึ่งรวมถึงการแปลแชทด้วยเสียง โดยอัตโนมัติ ลองนึกภาพผู้ใช้ที่พูดภาษาฝรั่งเศสบน Roblox สามารถสนทนาด้วยเสียงกับผู้ใช้ที่สามารถพูดภาษารัสเซียได้เท่านั้น โดยทั้งสองสามารถพูดคุยและเข้าใจซึ่งกันและกัน ไปจนถึงน้ำเสียง จังหวะ และอารมณ์ของเสียงของกันและกันในภาษาของตนเองและใช้เวลาตอบสนองที่น้อยมากได้ แม้ว่าสิ่งนี้อาจฟังดูเหมือนนิยายวิทยาศาสตร์ในตอนนี้และอาจต้องใช้เวลาอีกสักระยะหนึ่งกว่าจะสำเร็จได้ แต่เราก็จะยังคงผลักดันการแปลนี้ต่อไป ในอนาคตอันใกล้นี้ Roblox จะเป็นสถานที่ซึ่งผู้คนจากทั่วทุกมุมโลกสามารถสื่อสารกันได้อย่างราบรื่นและง่ายดายไม่เพียงแค่ผ่านทางการแชทด้วยข้อความเท่านั้นแต่ในทุกรูปแบบที่เป็นไปได้!