각 언어 쌍은 번역을 실행하기 전에 소스와 대상 모델이 기기에 있어야 합니다. 모델은 한 번 다운로드되며 앱 재시작을 거쳐 지속되고 해당 쌍의 모든 번역에 재사용됩니다. 모델 다운로드 페이지는 지원되는 19개 언어 모두와 해당 다운로드 상태를 나열하고 각 항목을 다운로드하거나 삭제할 수 있도록 합니다.
왜 전용 페이지가 필요한가
ML Kit은 자동으로 모델을 다운로드하지 않습니다. 각 언어 쌍은 소스와 대상의 명시적인 다운로드가 필요합니다. 모델 다운로드 페이지는 이 상태를 표면화하여 플랫폼 저장 공간의 깊은 곳을 파고들지 않고도 사용자가 관리할 수 있도록 합니다.
대부분의 사용자에게 워크플로는 보이지 않습니다. 소스와 대상 언어를 선택하면 앱은 번역할 때 처음으로 두 모델을 온디맨드로 다운로드하고 모델은 후속 실행을 위해 기기에 남아 있습니다. 전용 페이지는 오프라인 여행을 위해 미리 다운로드하거나 더 이상 사용하지 않는 언어를 삭제하거나 저장 공간을 소비하는 항목을 확인하려는 사용자를 위한 것입니다.
언어별 모델 상태
- 다운로드되지 않음. 다운로드 버튼이 표시됩니다. 탭하여 다운로드를 시작합니다.
- 다운로드 중. 불확정 스피너가 표시됩니다. ML Kit은 진행 콜백을 노출하지 않고 완료만 노출합니다. 스피너는 다운로드됨 또는 실패로 해결됩니다.
- 다운로드됨. 삭제 버튼이 있는 배지가 표시됩니다. 탭하여 모델을 제거하고 저장 공간을 회수합니다.
- 실패. 재시도 버튼이 다운로드를 대체합니다. 일반적인 원인: 네트워크 없음, 셀룰러 차단, 디스크 공간 부족. 근본 원인을 해결한 후 재시도하세요.
순차 다운로드 큐
빠르게 연속되는 여러 다운로드 요청은 병렬화되지 않고 대기열에 들어갑니다. 네이티브 iOS 플러그인은 동시 manageModel 호출을 깔끔하게 처리하지 않습니다. 두 번째 요청은 첫 번째 요청을 취소합니다. 앱은 단일 연결된 Future를 통해 다운로드를 직렬화하므로 동시 요청이 하나씩 해결됩니다. UI는 불확정 상태에서 활성 다운로드만 표시합니다. 대기 중인 요청은 차례를 기다립니다.
다운로드 시간 초과 및 폴링
다운로드 콜백을 놓친 경우(iOS의 저 네트워크 조건에서 관찰됨) 다운로드 Future가 중단될 수 있습니다. 앱은 30초 시간 초과로 이를 방지합니다. 시간 초과가 발생하면 앱은 isModelDownloaded를 통해 디스크를 직접 폴링하여 모델이 실제로 안착했는지 확인한 후 성공 또는 실패를 보고합니다.
저장 공간 비용
각 ML Kit 모델은 디스크에서 대략 1050MB입니다. 19개 언어를 모두 다운로드하면 대략 300600MB를 소비합니다. 같은 번역의 소스와 대상 모델은 분리되어 있습니다. 하나의 모델은 사용자가 선택한 역할에 따라 소스 또는 대상으로 작동할 수 있습니다.
모델을 삭제하면 저장 공간을 회수할 수 있습니다. 자동 정리는 없습니다. 앱을 제거하면 플랫폼 제거의 일부로 다운로드된 모든 모델이 제거됩니다.