AI가 내장된 Chrome의 언어 감지

게시일: 2024년 9월 24일

텍스트를 한 언어에서 다른 언어로 번역하기 전에 먼저 지정된 텍스트에 사용된 언어를 확인해야 합니다. 이전에는 텍스트를 클라우드 서비스에 업로드해야 했습니다. 온디바이스 추론을 사용하면 개인 정보 보호 스토리를 개선할 수 있습니다. 이를 실행하는 특정 라이브러리를 제공할 수도 있지만 다운로드하려면 추가 리소스가 필요합니다.

언어 감지기 및 번역기 API 제안의 목표는 브라우저에 내장된 API를 사용하여 모델을 이 작업에 맞게 미세 조정하여 이러한 문제를 해결하는 것입니다.

사용 사례 예시

Language Detector API는 주로 다음과 같은 시나리오에서 유용합니다.

  • 입력 텍스트의 언어를 결정하여 번역할 수 있도록 합니다.
  • 유해성 감지와 같은 언어별 작업을 위해 올바른 모델을 로드할 수 있도록 입력 텍스트의 언어를 결정합니다.
  • 온라인 소셜 네트워킹 사이트 등에서 올바르게 라벨이 지정될 수 있도록 입력 텍스트의 언어를 결정합니다.
  • 입력 텍스트의 언어를 확인하여 앱의 인터페이스를 적절하게 조정할 수 있습니다. 예를 들어 벨기에 사이트에서 프랑스어를 사용하는 사용자와 관련된 인터페이스만 표시할 수 있습니다.

Language Detector API 사용

Language Detector API는 Translator API의 더 큰 제품군에 속합니다. 먼저 기능 감지를 실행하여 브라우저가 Language Detector API를 지원하는지 확인합니다.

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

모델 다운로드

언어 감지는 언어 감지의 특정 작업에 맞게 미세 조정된 모델에 종속됩니다. API가 브라우저에 내장되어 있는 동안에는 사이트에서 API를 처음 사용하려고 할 때 주문형으로 모델이 다운로드됩니다. Chrome에서 이 모델은 다른 모델에 비해 매우 작습니다. 실제로 이 모델이 Chrome 브라우저 기능에도 사용된다는 점을 고려할 때 이미 존재할 수도 있습니다.

모델을 사용할 준비가 되었는지 확인하려면 비동기 translation.canDetect() 함수를 호출합니다. 다음과 같은 세 가지 응답이 있습니다.

  • 'no': 현재 브라우저에서 Language Detector API를 지원하지만 현재는 사용할 수 없습니다. 예를 들어 모델을 다운로드하는 데 사용할 수 있는 디스크 여유 공간이 충분하지 않기 때문입니다.
  • 'readily': 현재 브라우저는 Language Detector API를 지원하며 즉시 사용할 수 있습니다.
  • 'after-download': 현재 브라우저는 Language Detector API를 지원하지만 먼저 모델을 다운로드해야 합니다.

다운로드를 트리거하고 언어 감지기를 인스턴스화하려면 비동기 translation.createDetector() 함수를 호출합니다. canDetect()에 대한 응답이 'after-download'인 경우 다운로드에 시간이 걸리는 경우 사용자에게 알릴 수 있도록 다운로드 진행률을 리슨하는 것이 좋습니다.

다음 예에서는 언어 감지기를 초기화하는 방법을 보여줍니다.

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

언어 감지기 실행

Language Detector API는 순위 모델을 사용하여 지정된 텍스트에서 가장 많이 사용될 가능성이 높은 언어를 결정합니다. 순위는 항목 목록을 정렬하는 것을 목표로 하는 머신러닝의 한 유형입니다. 이 경우 Language Detector API는 언어를 확률이 높은 순서대로 정렬합니다.

detect() 함수는 첫 번째 결과, 가장 가능성 있는 답변을 반환하거나 신뢰도 수준을 사용하여 순위가 지정된 후보를 반복할 수 있습니다. 이는 {detectedLanguage, confidence} 객체 목록으로 반환됩니다. confidence 수준은 0.0(가장 낮은 신뢰도)과 1.0(가장 높은 신뢰도) 사이의 값으로 표현됩니다.

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

데모

데모에서 Language Detector API를 미리 살펴보세요. 텍스트 영역에 다른 언어로 작성된 텍스트를 입력합니다.

오리진 트라이얼 가입

Language Detector API 체험판 에 등록하여 사용자를 대상으로 이 API 테스트를 시작합니다. 이 오리진 트라이얼은 Chrome 130~135에서 실행됩니다.

출처 무료 체험 작동 방식에 대해 자세히 알아보세요.

표준화 노력

해당하는 제안에서 충분한 지원을 받은 후 Language Detector API를 W3C 웹 인큐베이터 커뮤니티 그룹으로 이전했습니다. 이 API는 더 큰 Translation API 제안서의 일부입니다. Chrome팀은 W3C 기술 아키텍처 그룹에 의견을 요청하고 MozillaWebKit에 특정 브라우저 공급업체의 표준 입장을 문의했습니다.

의견 공유하기

Chrome 구현에 관한 의견이 있으면 Chromium 버그를 신고하세요. Translation API GitHub 저장소에서 기존 문제에 댓글을 달거나 새 문제를 열어 Language Detector API의 API 형식에 관한 의견을 공유하세요.

리소스