오프라인 번역이 iPhone에서 어떻게 작동하는지
앱의 번역 경로는 완전히 온디바이스에서 실행됩니다. 사진도 OCR 결과도 번역 요청도 iPhone을 떠나지 않습니다. 이 게시물은 "온디바이스"가 실제로 무엇을 의미하는지, 모델이 어디에 있는지, 로컬에서 번역을 실행하는 것의 트레이드오프를 설명합니다.
기기에서 실행되는 부분
카메라 번역에는 전화에서 발생하는 세 가지 독립적인 작업이 있습니다:
- OCR. 포크된
vision_text_recognition패키지가 로컬에서 텍스트 인식을 실행합니다. 라틴 문자, 중국어(간체 및 번체), 일본어, 한국어 스크립트를 지원합니다. 인식된 각 텍스트 블록에는 자체 경계 상자와 감지된 텍스트가 포함됩니다. - 번역. Google ML Kit의 온디바이스 번역 엔진이 입력을 가져와 번역 텍스트를 생성합니다. 엔진은 언어 쌍당 다운로드 가능한 언어 모델로 번들됩니다. 앱은 온디맨드로 모델을 다운로드하여 디스크에 캐시합니다.
- 렌더링. 결과 페이지는 OCR 엔진이 반환한 경계 상자를 사용하여 각 번역된 블록을 원본 사진 위에 그립니다. 오버레이를 렌더링하기 위해 서버 왕복이 필요하지 않습니다. 이미지, 소스 블록, 번역은 모두 기기의 메모리에 있습니다.
이것이 중요한 이유
- 프라이버시. 거리 표지판, 계약서, 의료 양식 및 개인 서신의 사진은 기기에 남아 있습니다. 파이프라인 어디에도 업로드 단계가 없으므로 유출하거나 소환하거나 판매할 것이 없습니다.
- 지연 시간. 네트워크 왕복이 없습니다. 최근 기기에서 일반적인 스마트폰 촬영 페이지의 OCR은 1초도 채 걸리지 않고 완료되며 블록별 결과의 번역은 각 블록이 완료됨에 따라 스트리밍됩니다.
- 오프라인. 파이프라인은 비행기, 지하실, 터널, 기차, 통신이 불가능한 국가에서 실행됩니다. OCR 엔진과 번역 엔진은 한 번 다운로드되어 무한정 재사용됩니다. 캡처당 가져오는 것은 없습니다.
- 비용. 앱은 번역 API에 문자당 비용을 지불하지 않으므로 이 기능은 지속 가능성을 유지하기 위해 사용량 기반 유료벽이나 월간 문자 제한이 필요하지 않습니다. 무료 등급은 동일한 파이프라인입니다.
모델이 있는 위치
ML Kit은 19개 언어에 대한 온디바이스 번역 모델을 게시합니다. 각 모델은 대략 10~50MB입니다. 소스 또는 대상 언어를 선택하면 앱은 처음 사용할 때 해당 모델을 앱의 로컬 샌드박스로 다운로드합니다. 모델은 앱 재시작을 거쳐 지속되며 삭제하면 즉시 저장 공간이 회수됩니다.
지원되는 언어의 전체 목록: 아랍어, 중국어(간체), 체코어, 네덜란드어, 영어, 프랑스어, 독일어, 크로아티아어, 헝가리어, 이탈리아어, 일본어, 한국어, 폴란드어, 포르투갈어, 루마니아어, 러시아어, 슬로바키아어, 슬로베니아어, 스페인어.
업로드되는 것과 업로드되지 않는 것
- 업로드되지 않음. 사진, OCR 텍스트, 번역 텍스트, 기록 항목, 언어 모델 상태. 이 중 어느 것도 기기를 떠나지 않습니다.
- 업로드됨. 익명 충돌 보고서 및 집계 카운터(예: "일일 번역 요청 수"). 충돌 보고서에는 사용자 콘텐츠가 포함되지 않습니다. 향후 보고서에 콘텐츠가 포함된다면 버그이며 보고해야 합니다.
로컬 실행의 트레이드오프
- 제한된 언어 목록. ML Kit이 온디바이스 모델로 게시하는 언어만 지원됩니다. 목록은 큐레이션되었으며 현재 19개의 항목이 있습니다.
- 모델 다운로드 필요. 언어 쌍의 첫 번째 번역은 일회성 다운로드를 트리거합니다. 모델 관리자 페이지는 상태를 표시하고 오프라인 여행을 위해 미리 다운로드할 수 있습니다.
- 품질. 짧고 잘 구성된 텍스트의 경우 온디바이스 번역 품질은 클라우드 번역에 필적합니다. 긴 단락이나 도메인 특정 전문 용어는 해당 도메인에 맞게 조정된 클라우드 엔진과 다를 수 있습니다.
- 컴퓨팅. OCR과 번역은 전화기의 CPU 및 신경 엔진 사용합니다. 단일 캡처의 배터리 영향은 작지만 배치 워크플로에서는 측정 가능합니다.
이것이 귀하에게 의미하는 것
민감한 문서를 사진으로 찍으면 그것이 다른 사람의 서버에 나타날까 봐 주저한 적이 있다면 그 주저함이 이 앱이 존재하는 이유입니다. 파이프라인의 모든 부분은 로컬에서 실행되며 앱의 데이터 모델은 사용자가 명시적으로 결과 공유를 선택하지 않는 한 기기에서 어떤 것도 나가지 않는다는 전제 하에 설계되었습니다.