내장된 AI를 사용한 번역

게시일: 2024년 11월 13일

Chrome에서 Translator API를 사용하여 로컬 AI 모델을 통해 브라우저에서 텍스트를 번역합니다.

전 세계 사용자가 웹사이트 콘텐츠에 액세스할 수 있도록 웹사이트에서 이미 여러 언어로 콘텐츠를 제공하고 있을 수 있습니다. 사용자는 Translator API를 사용하여 모국어로 참여할 수 있습니다. 예를 들어 사용자는 모국어로 지원 채팅에 참여할 수 있으며, 사이트는 사용자가 기기에서 나가기 전에 지원 담당자가 사용하는 언어로 번역할 수 있습니다. 이를 통해 모든 사용자에게 원활하고 빠르며 포용적인 환경을 제공할 수 있습니다.

웹에서 콘텐츠를 번역하려면 일반적으로 클라우드 서비스를 사용해야 했습니다. 먼저 소스 콘텐츠가 서버에 업로드되고 서버에서 대상 언어로 번역을 실행한 후 결과 텍스트를 다운로드하여 사용자에게 반환합니다. 클라이언트에서 번역을 실행하면 서버 왕복에 필요한 시간과 번역 서비스 호스팅 비용을 절약할 수 있습니다.

가용성

선택한 도착어는 항상 알려져 있지만, 사용자 제작 콘텐츠와 같이 출발어는 알 수 없는 경우도 있습니다. 이 경우 Translator API 제안서에는 Translator API와 출처 체험판에서도 사용할 수 있는 Language Detector API가 모두 포함됩니다. 두 API를 함께 사용하려면 두 오리진 트라이얼에 모두 등록하세요.

오리진 트라이얼 가입

Translator API를 사용하려면 다음 단계를 따르세요.

  1. Google의 생성형 AI 금지된 사용 정책을 확인합니다.
  2. Translator API 오리진 트라이얼로 이동합니다.
  3. 등록을 클릭하고 양식을 작성합니다.
    • 웹 출처 필드에 출처 또는 확장 프로그램 ID chrome-extension://YOUR_EXTENSION_ID를 입력합니다.
  4. 제출하려면 등록을 클릭합니다.
  5. 제공된 토큰을 복사하여 무료 체험을 사용 설정하려는 출처 또는 확장 프로그램의 파일에 있는 모든 웹페이지에 추가합니다.
  6. Translator API 사용을 시작합니다.

출처 체험을 시작하는 방법을 자세히 알아보세요.

localhost에 지원 추가

오리진 체험판 기간 동안 localhost에서 Translator API에 액세스하려면 Chrome을 최신 버전으로 업데이트해야 합니다. 그런 다음 아래 단계를 따르세요.

  1. chrome://flags/#optimization-guide-on-device-model 페이지로 이동합니다.
  2. Enabled BypassPerfRequirement를 선택합니다. 이렇게 하면 성능 검사와 VRAM 요구사항이 건너뛰어지므로 Gemini Nano가 기기에 다운로드되지 않을 수 있습니다.
  3. chrome://flags/#translation-api 페이지로 이동합니다.
  4. 사용 설정됨을 선택합니다.
    • 더 많은 언어 조합을 사용해 보려면 언어 팩 제한 없이 사용 설정됨을 선택합니다.
  5. 다시 실행을 클릭하거나 Chrome을 다시 시작합니다.

Translator API 사용

Translator API가 지원되는지 확인하려면 다음 기능 감지 스니펫을 실행합니다.

if ('translation' in self && 'createTranslator' in self.translation) {
  // The Translator API is supported.
}

언어 쌍 지원 확인

번역은 주문형으로 다운로드되는 언어 팩으로 관리됩니다. 언어 패키지는 특정 언어의 사전과 같습니다. 이러한 팩은 언어 쌍이 지원되는지 확인할 수 있는 비동기 canTranslate() 함수와 페어링됩니다.

canTranslate() 함수에는 두 필드가 있는 options 매개변수가 필요합니다.

  • sourceLanguage: 텍스트의 현재 언어입니다.
  • targetLanguage: 텍스트를 번역해야 하는 최종 언어입니다.

BCP 47 언어 쇼트코드를 문자열로 사용합니다. 예를 들어 스페인어의 경우 'es', 프랑스어의 경우 'fr'입니다.

await translation.canTranslate({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});
// 'readily'

canTranslate() 함수는 다음 결과 중 하나를 반환할 수 있습니다.

  • no: 이 브라우저에서는 요청한 대로 번역할 수 없습니다.
  • readily: 브라우저가 요청에 따라 번역할 수 있습니다.
  • after-download: 브라우저는 관련 모델 또는 언어 팩을 다운로드한 후에만 번역을 실행할 수 있습니다.

downloadprogress 이벤트를 사용하여 다운로드 진행률을 수신 대기할 수 있습니다.

translator.ondownloadprogress = progressEvent => {
  updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};

다운로드에 실패하면 downloadprogress 이벤트가 더 이상 내보내지 않으며 ready 약속이 거부됩니다.

번역기 만들기 및 실행

번역기를 만들려면 비동기 translation.createTranslator() 함수를 호출합니다. canTranslate()와 마찬가지로 sourceLanguage용 필드 1개와 targetLanguage용 필드 1개를 포함하는 옵션 매개변수가 필요합니다.

// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

번역기가 있으면 비동기 translate() 함수를 호출하여 텍스트를 번역합니다.

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

출처 무료 체험의 제한사항

출처 무료 체험 기간에는 다음과 같은 제한사항이 적용됩니다.

지원되는 언어 쌍

현재 번역을 위해 최대 3개의 언어 팩을 다운로드할 수 있습니다. Google은 향후 출시에서 사용자 개인 정보 보호에 대한 높은 수준의 표준을 유지하면서 지원되는 언어의 범위를 확대하기 위해 노력하고 있습니다. 필요한 언어 쌍이 canTranslate() 함수로 지원되는지 확인할 수 있습니다.

덜 자주 사용되는 특정 언어 조합이 디지털 지문에 사용될 수 있습니다. 예를 들어 덜 흔한 언어(예: 게일어, 카탈루냐어) 간의 번역보다 영어와 스페인어 간의 번역이 더 흔합니다. 덜 일반적인 언어 쌍은 사용자 식별을 위한 데이터 포인트로 간주될 수 있습니다.

원본 체험 기간에는 사용자 개인 정보를 보호하기 위해 번역할 수 있는 언어 쌍을 제한하고 있습니다. 언어 쌍은 다음 기준을 충족해야 합니다.

  • 소스 언어와 대상 언어 모두 Chrome에서 기본 언어로 설정됩니다.
  • 또는 언어 중 하나가 Chrome에서 기본 언어로 설정되어 있고 다른 언어가 다음 대중적인 언어 중 하나인 경우에도 이 문제가 발생할 수 있습니다.
    • 영어(en)
    • 중국어 (zh, 간체) 또는 타이완어(zh-Hant, 번체)
    • 일본어(ja)
    • 포르투갈어(pt)
    • 러시아어(ru)
    • 스페인어(es)
    • 터키어(tr)
    • 힌디어(hi)
    • 베트남어(vi)
    • 벵골어(bn)

로컬 테스트를 위해 언어 제한 우회

로컬 프로토타이핑의 경우 명령줄 옵션 --disable-features=TranslationAPIAcceptLanguagesCheck를 사용하여 Chrome을 실행하여 이러한 검사를 우회할 수 있습니다. 또는 chrome://flags/#translation-api언어 패키지 제한 없이 사용 설정으로 설정합니다.

chrome://on-device-translation-internals/로 이동하여 언어 팩을 수동으로 설치 및 제거합니다.

순차 번역

번역은 순차적으로 처리됩니다. 번역할 텍스트를 대량으로 전송하면 이전 번역이 완료될 때까지 후속 번역이 차단됩니다.

번역 요청의 응답성을 높이려면 요청을 함께 처리하고 스피너와 같은 로드 인터페이스를 표시하여 번역이 진행 중임을 알리세요.

웹 작업자 사용 가능 여부

출처 체험판 기간에는 Translator API가 기본 스레드에서만 지원됩니다. API가 널리 사용되면 웹 워커에서 지원할 예정입니다.

데모

Language Detector API와 함께 사용되는 Translator API는 Translator 및 Language Detector API 플레이그라운드에서 확인할 수 있습니다.

표준화 작업

Google에서는 크로스브라우저 호환성을 보장하기 위해 Translator API를 표준화하기 위해 노력하고 있습니다.

Google의 API 제안서는 커뮤니티의 지원을 받아 추가 논의를 위해 W3C 웹 인큐베이터 커뮤니티 그룹으로 이동했습니다. Chrome팀은 W3C 기술 아키텍처 그룹에 의견을 요청하고 MozillaWebKit에 표준 관련 입장을 요청했습니다.

참여 및 의견 공유

오리진 트라이얼에 참여하여 지금 바로 Translator API 테스트를 시작하고 의견을 공유해 주세요. 보내 주시는 의견은 향후 이 API 버전과 모든 내장 AI API를 빌드하고 구현하는 방식에 직접적인 영향을 미칠 수 있습니다.