다국어 번역 모델로 언어 장벽 허물기
새로운 체험에서 농담을 주고받으며 대화를 나누던 새 Roblox 친구가 알고 보니 한국에 있었고, 내가 계속 영어로 타자를 치는 동안 그 친구는 한국어로 타자를 치고 있었다는 걸 상상해 보세요. 두 사람 다 이 사실을 몰랐던 채로 말입니다. Roblox의 새로운 실시간 AI 채팅 번역 기능 덕분에 실제 세계에서는 불가능한 일이 Roblox에서 가능해졌습니다. 서로 다른 언어를 사용하는 사람들이 몰입형 3D 체험에서 원활하게 소통할 수 있게 된 겁니다. 이는 현재 지원하는 16개 언어(15개 언어 및 영어)의 모든 조합 간 직접 번역이 가능한 맞춤형 다국어 모델 덕분에 가능한 일입니다.
이제 Roblox의 체험 내 텍스트 채팅 서비스를 활성화한 모든 체험에서 다른 국가의 사람들이 자신들의 언어를 사용하지 않는 사람의 말을 알아들을 수 있습니다. 한국어가 영어로, 튀르키예어가 독일어로, 또는 그 반대로 번역된 텍스트가 채팅 창에 자동으로 표시되어 각자의 언어로 대화를 볼 수 있습니다. 이러한 번역은 약 100밀리초의 지연 시간을 통해 실시간으로 표시되므로 번역이 이루어지는 과정은 거의 눈에 보이지 않습니다. AI를 사용하여 텍스트 채팅의 실시간 번역을 자동화하면 전 세계 사람들 사이의 언어 장벽이 사라지고 더 많은 사람들이 함께할 수 있습니다.
통합 번역 모델 구축
AI 번역은 새로운 기술이 아니며, 이미 대다수의 체험 내 콘텐츠가 자동으로 번역되고 있습니다. Roblox는 체험 내 정적 콘텐츠를 번역하는 것에서 한발 더 나아가고자 했습니다. 저희는 상호 소통을 자동으로 번역하고 싶었고, 플랫폼에서 지원하는 16개 언어 모두에 대해 이를 구현하고 싶었습니다. 이는 두 가지 이유에서 아주 담대한 목표였습니다. 첫 번째는 저희가 하나의 기본 언어(예: 영어)에서 다른 언어로만 번역하는 것이 아니라 Roblox에서 지원하는 16개 언어의 모든 조합을 번역할 수 있는 시스템을 원했기 때문입니다. 두 번째는 속도가 빨라야 했습니다. 실시간 채팅 대화를 지원할 수 있을 정도로 빨라야 했고, 이는 지연 시간을 약 100밀리초로 줄여야 한다는 뜻입니다.
Roblox는 전 세계적으로 7천만 명 이상의 일일 활성 사용자를 보유하고 있으며, 그 수는 계속 증가하고 있습니다. 사람들은 하루 24시간 내내 각자의 모국어로 플랫폼에서 소통하고 창작 활동을 하고 있습니다. 1,500만 개 이상의 활성 체험에서 일어나는 모든 대화를 수동으로, 그것도 실시간으로 번역하는 것은 분명 불가능한 일입니다. 각기 다른 체험에서 서로 다른 대화를 동시에 나누는 라이브 번역을 수백만 명의 규모로 확장하려면 엄청난 속도와 정확성을 갖춘 LLM이 필요합니다. 속어와 약어(obby, afk, lol 등)를 포함한 Roblox 고유의 언어를 인식하는 문맥 인식 모델도 필요합니다. 그 외에도 현재 Roblox가 지원하는 16개 언어의 모든 조합을 지원할 수 있어야 합니다.
이를 위해 각 언어 쌍(예: 일본어와 스페인어)에 대해 고유한 모델을 구축할 수도 있었겠지만 그렇게 하려면 16x16, 즉 256개의 다른 모델이 필요했을 겁니다. Roblox는 그렇게 하는 대신 단일 모델에서 모든 언어 쌍을 처리할 수 있는 통합된 트랜스포머 기반 번역 LLM을 구축했습니다. 이는 유사한 언어 그룹에 특화된 여러 번역 앱을 하나의 인터페이스로 모두 사용할 수 있는 것과 비슷합니다. 원문 문장과 대상 언어가 주어지면 관련 '전문가'를 활성화하여 번역을 생성하도록 하는 겁니다.
이러한 아키텍처에서는 전문가마다 전문 분야가 다르기 때문에 리소스를 더 효율적으로 활용할 수 있으며, 이는 번역 품질을 포기할 필요 없이 더 효율적인 훈련과 추론으로 이어지게 됩니다.
이 아키텍처를 활용하면 모델을 훨씬 더 효율적으로 훈련하고 관리할 수 있는데, 그 몇 가지 이유는 다음과 같습니다. 첫째, 저희 모델은 언어 간의 언어적 유사성을 활용할 수 있습니다. 모든 언어를 함께 학습하면 스페인어와 포르투갈어처럼 유사한 언어는 학습 중에 서로의 입력을 활용하여 두 언어의 번역 품질을 개선하는 데 도움이 됩니다. 또한 LLM의 새로운 연구와 발전된 기술이 출시될 때마다 훨씬 더 쉽게 테스트하고 시스템에 통합할 수 있어 가장 좋은 최신 기술을 활용할 수 있습니다. 이 통합 모델의 또 다른 장점은 소스 언어가 설정되어 있지 않거나 잘못 설정되었을 때 드러나는데, 모델은 올바른 소스 언어로 감지하여 대상 언어로 번역할 수 있을 정도로 정확합니다. 실제로, 입력된 텍스트에 여러 언어가 혼합되어 있더라도 시스템은 이를 감지하여 대상 언어로 번역할 수 있습니다. 이런 경우 정확도는 그다지 높지 않을 수 있지만 최종 메시지는 합리적으로 이해할 수 있는 수준을 유지합니다.
이 통합 모델을 훈련하기 위해 저희는 사용 가능한 오픈 소스 데이터와 자체 체험 내 번역 데이터, 사람이 레이블링한 채팅 번역 결과, 일반적인 채팅 문장 및 문구에 대한 사전 학습부터 시작했습니다. 또한 번역 품질을 측정하기 위해 자체 번역 평가 지표 및 모델을 구축했습니다. 대부분의 기성 번역 품질 지표는 AI 번역 결과를 기준 번역 또는 참조 번역과 비교하며 주로 번역의 이해도에 초점을 맞춥니다. 저희는 기준 번역 없이 번역의 품질을 평가하고자 했습니다.
평가에는 정확성(추가, 누락, 오역 여부), 유창성(구두점, 철자, 문법), 잘못된 참조(나머지 텍스트와의 불일치) 등 다양한 측면이 고려됩니다. 이러한 오류는 심각도 수준에 따라 치명적인, 중대한 또는 사소한 오류로 분류됩니다. 저희는 품질 평가를 위해 머신러닝 모델을 구축하여 사람이 레이블링한 오류 유형과 점수를 학습시켰습니다. 그런 다음 다국어 언어 모델을 미세 조정하여 단어 수준의 오류와 유형을 예측하고 다차원 기준을 사용하여 점수를 계산합니다. 이렇게 하면 품질과 발생하는 오류의 유형을 종합적으로 파악할 수 있게 됩니다. 이러한 방식으로 기준 번역 없이 소스 텍스트와 기계 번역만으로 품질을 측정하고 오류를 감지할 수 있습니다. 이렇게 해서 나온 품질 측정 결과를 사용하면 번역 모델의 품질을 더욱 개선할 수 있습니다.
상대적으로 덜 일반적인 번역 쌍(예: 프랑스어에서 태국어로의 번역)은 좋은 품질의 데이터가 부족하기 때문에 평가에 어려움이 있습니다. 이러한 격차를 해결하기 위해 내용을 원어로 다시 번역한 다음 소스 텍스트와 비교하여 정확성을 확인하는 역번역을 적용했습니다. 훈련 과정에서는 역변역 데이터와 지도(레이블링된) 데이터를 전략적으로 혼합하여 모델이 학습할 번역 데이터의 양을 늘리는 반복적 역번역을 사용했습니다.
모델이 최신 속어를 이해할 수 있도록 사람 평가자들에게 언어별로 자주 쓰이고 유행하는 용어를 번역해 달라고 요청하고 해당 번역을 훈련 데이터에 포함했습니다. 앞으로도 이 과정을 정기적으로 반복하여 시스템에 최신 속어가 반영되도록 할 것입니다.
이렇게 구축된 채팅 번역 모델은 약 10억 개의 매개변수를 가지게 됩니다. 이 정도 크기의 모델을 통해 번역을 실행하는 것은 대규모로 서비스하기에는 리소스를 너무 많이 소모하며, 초당 5,000건 이상의 채팅을 지원하기 위해 짧은 지연 시간이 중요한 실시간 대화에 적용하기에는 너무 오래 걸립니다. 그래서 저희는 이 거대한 모델을 학생-교사 방식으로 활용하여 더 작고 가벼운 모델을 구축했습니다. 증류, 양자화, 모델 컴파일 및 기타 서빙 최적화를 적용해 모델 크기를 6억 5천만 개 미만의 매개변수로 줄이고 서빙 효율을 개선했습니다. 또한 체험 내 텍스트 채팅의 API를 수정하여 원본 메시지와 번역된 메시지를 모두 기기로 전송하도록 했습니다. 이렇게 하면 수신자는 자신의 모국어로 메시지를 볼 수도 있고, 발신자의 번역되지 않은 원본 메시지로 빠르게 전환하여 볼 수도 있습니다.
최종 LLM이 준비된 후에는 모델 서버와 연결하기 위한 백엔드를 구현했습니다. 이 백엔드에서 추가 채팅 번역 로직을 적용하고 시스템을 통상의 신뢰 및 안전 시스템과 통합합니다. 이를 통해 번역된 텍스트가 다른 텍스트와 동일한 수준의 검토를 거쳐 정책을 위반하는 단어나 문구를 감지하고 차단할 수 있습니다. 안전 및 매너는 Roblox에서 이루어지는 모든 일의 최전선에 있기 때문에 이 과정은 퍼즐의 중요한 조각이었습니다.
지속적인 정확도 개선
저희는 테스트 과정에서 새로운 번역 시스템이 플랫폼 사용자들의 참여도와 세션 품질을 향상하는 것을 확인했습니다. 자체 지표에 따르면 저희의 모델이 Roblox 콘텐츠에서 상업용 번역 API들보다 우수한 성능을 보였으며, 이는 저희가 Roblox에서 사람들이 소통하는 방식에 최적화된 모델을 구축하는 데 성공했음을 나타냅니다. 이를 통해 플랫폼에서 게임을 플레이하거나, 쇼핑하거나, 협업하거나, 다른 언어를 사용하는 친구들과 이야기를 나누는 등의 활동에서 사용자들의 경험이 개선될 수 있을 것으로 기대됩니다.
사람들이 각자의 모국어로 원활하고 자연스러운 대화를 나눌 수 있게 됨으로써 10억 명의 사람들을 매너 있고 긍정적인 방식으로 연결한다는 Roblox의 목표에 한 걸음 더 가까워지게 되었습니다.
번역의 정확성을 더욱 향상하고 모델에 더 나은 학습 데이터를 제공하기 위해 플랫폼 사용자가 번역에 대한 피드백을 제공하고 시스템이 더욱 빠르게 개선될 수 있도록 도움을 주는 도구를 출시할 계획입니다. 이를 통해 누군가가 오역된 부분을 발견했을 때 이를 알리고 나아가 더 나은 번역을 제안해 모델이 더욱 개선될 수 있도록 학습 데이터에 추가할 수도 있을 것입니다.
번역 기능은 현재 지원 중인 16개 언어 전체에 대해 제공되지만 여기서 끝이 아닙니다. 지원되는 모든 언어의 인기 채팅 문구 및 최신 속어뿐만 아니라 체험 내에서 얻은 최신 번역 예시로 모델을 계속 업데이트할 계획입니다. 또한 이 아키텍처를 활용하면 새로운 언어에 대한 학습 데이터가 충분히 확보되었을 때 비교적 적은 노력으로 새로운 언어의 모델 훈련이 가능해질 것입니다. 더 나아가 이미지, 텍스처, 3D 모델 등 다차원의 모든 텍스트를 자동 번역하는 방법도 모색하고 있습니다.
Roblox는 이미 자동 음성 채팅 번역을 비롯한 새로운 영역을 개척하고 있습니다. Roblox에서 프랑스어 사용자가 러시아어만 구사할 수 있는 사람과 음성 채팅을 한다고 상상해 보세요. 두 사람 모두 자신의 언어로, 그것도 짧은 지연 시간으로 목소리의 톤, 리듬, 감정까지 전달하며 대화할 수 있을 겁니다. 지금은 공상 과학 소설처럼 들리고 실현하는 데에도 시간이 다소 걸리겠지만, 저희는 번역에 대한 도전을 멈추지 않을 것입니다. 머지않은 미래에 Roblox는 전 세계 사람들이 텍스트 채팅뿐만 아니라 가능한 모든 방식으로 원활하고 손쉽게 소통할 수 있는 공간이 될 겁니다!