Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/ko/lite/android/acceleration_service.md
25118 views

Android용 가속 μ„œλΉ„μŠ€(베타)

베타: Android용 가속 μ„œλΉ„μŠ€λŠ” ν˜„μž¬ 베타 λ²„μ „μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ 이 νŽ˜μ΄μ§€μ˜ κ²½κ³  사항 및 μ‚¬μš© μ•½κ΄€ 및 개인 정보 μ·¨κΈ‰ λ°©μΉ¨ μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ„Έμš”.

ν•˜λ“œμ›¨μ–΄ 가속을 μœ„ν•΄ GPUλ‚˜ NPU λ˜λŠ” DSP와 같은 특수 ν”„λ‘œμ„Έμ„œλ₯Ό μ‚¬μš©ν•˜λ©΄ μΆ”λ‘  μ„±λŠ₯(κ²½μš°μ— 따라 μ΅œλŒ€ 10λ°° λΉ λ₯Έ μΆ”λ‘ )κ³Ό ML 지원 Android μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‚¬μš©μž κ²½ν—˜μ„ 크게 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ§Œ μ‚¬μš©μžκ°€ λ³΄μœ ν•œ ν•˜λ“œμ›¨μ–΄μ™€ λ“œλΌμ΄λ²„μ˜ μ’…λ₯˜κ°€ λ‹€μ–‘ν•˜κΈ° λ•Œλ¬Έμ— 각 μ‚¬μš©μžμ˜ 기기에 λ§žλŠ” 졜적의 ν•˜λ“œμ›¨μ–΄ 가속 ꡬ성을 μ„ νƒν•˜λŠ” 것은 쉽지 μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ κΈ°κΈ°μ—μ„œ 잘λͺ»λœ ꡬ성을 ν™œμ„±ν™”ν•˜λ©΄ μ§€μ—° μ‹œκ°„μ΄ κΈΈμ–΄μ§ˆ 수 있으며, λ“œλ¬Όμ§€λ§Œ ν•˜λ“œμ›¨μ–΄ λΉ„ν˜Έν™˜μ„±μœΌλ‘œ 인해 λŸ°νƒ€μž„ 였λ₯˜κ°€ λ°œμƒν•˜κ±°λ‚˜ μ •ν™•μ„± 문제둜 인해 μ‚¬μš©μž κ²½ν—˜μ΄ 악화될 수 μžˆμŠ΅λ‹ˆλ‹€.

Android용 가속 μ„œλΉ„μŠ€λŠ” λŸ°νƒ€μž„ 였λ₯˜ λ˜λŠ” μ •ν™•μ„± 문제의 μœ„ν—˜μ„ μ΅œμ†Œν™”ν•˜λŠ” ν•œνŽΈ ν•΄λ‹Ή μƒν™©μ—μ„œ μ‚¬μš©μž κΈ°κΈ° 및 .tflite λͺ¨λΈμ— λ§žλŠ” 졜적의 ν•˜λ“œμ›¨μ–΄ 가속 ꡬ성을 선택할 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” APIμž…λ‹ˆλ‹€.

가속 μ„œλΉ„μŠ€λŠ” TensorFlow Lite λͺ¨λΈλ‘œ λ‚΄λΆ€ μΆ”λ‘  벀치마크λ₯Ό μ‹€ν–‰ν•˜μ—¬ μ‚¬μš©μž 기기의 λ‹€μ–‘ν•œ 가속 ꡬ성을 ν‰κ°€ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν…ŒμŠ€νŠΈλŠ” 일반적으둜 λͺ¨λΈμ— 따라 λͺ‡ 초 내에 μ™„λ£Œλ©λ‹ˆλ‹€. μΆ”λ‘  μ‹œκ°„ 전에 λͺ¨λ“  μ‚¬μš©μž κΈ°κΈ°μ—μ„œ 벀치마크λ₯Ό ν•œ 번 μ‹€ν–‰ν•˜κ³  κ²°κ³Όλ₯Ό μΊμ‹œν•œ λ’€ μΆ”λ‘  쀑에 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 벀치마크 μž‘μ—…μ€ ν”„λ‘œμ„ΈμŠ€μ™€λŠ” λ³„κ°œλ‘œ μ‹€ν–‰λ˜λ―€λ‘œ 앱이 μΆ©λŒν•  μœ„ν—˜μ΄ μ€„μ–΄λ“­λ‹ˆλ‹€.

λͺ¨λΈ, 데이터 μƒ˜ν”Œ, μ˜ˆμƒ 좜λ ₯("golden" μž…λ ₯ 및 좜λ ₯)을 μ œκ³΅ν•˜λ©΄ 가속 μ„œλΉ„μŠ€κ°€ λ‚΄λΆ€ TFLite μΆ”λ‘  벀치마크λ₯Ό μ‹€ν–‰ν•˜μ—¬ ν•˜λ“œμ›¨μ–΄ ꢌμž₯ 사항을 μ•Œλ €μ€λ‹ˆλ‹€.

image

가속 μ„œλΉ„μŠ€λŠ” Android의 μ‚¬μš©μž μ •μ˜ ML μŠ€νƒμ˜ 일뢀이며 Google Play μ„œλΉ„μŠ€μ˜ TensorFlow Lite둜 μž‘λ™ν•©λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈμ— 쒅속성 μΆ”κ°€ν•˜κΈ°

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ build.gradle νŒŒμΌμ— λ‹€μŒ 쒅속성을 μΆ”κ°€ν•©λ‹ˆλ‹€.

implementation "com.google.android.gms:play-services-tflite- acceleration-service:16.0.0-beta01"

가속 μ„œλΉ„μŠ€ APIλŠ” Google Play μ„œλΉ„μŠ€μ— μžˆλŠ” TensorFlow Lite와 ν•¨κ»˜ μž‘λ™ν•©λ‹ˆλ‹€. 아직 Play μ„œλΉ„μŠ€λ₯Ό 톡해 μ œκ³΅λ˜λŠ” TensorFlow Lite λŸ°νƒ€μž„μ„ μ‚¬μš©ν•˜κ³  μžˆμ§€ μ•Šλ‹€λ©΄ 쒅속성을 μ—…λ°μ΄νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€.

가속 μ„œλΉ„μŠ€ API μ‚¬μš© 방법

가속 μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ λ¨Όμ € λͺ¨λΈ 평가에 μ‚¬μš©ν•  가속 ꡬ성을 μƒμ„±ν•©λ‹ˆλ‹€(예: OpenGL을 μ‚¬μš©ν•˜λŠ” GPU). 그런 λ‹€μŒ λͺ¨λΈ, 일뢀 μƒ˜ν”Œ 데이터 및 μ˜ˆμƒ λͺ¨λΈ 좜λ ₯으둜 검증 ꡬ성을 μƒμ„±ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ validateConfig()λ₯Ό ν˜ΈμΆœν•˜μ—¬ 가속 ꡬ성과 검증 ꡬ성을 λͺ¨λ‘ μ „λ‹¬ν•©λ‹ˆλ‹€.

image

가속 ꡬ성 μƒμ„±ν•˜κΈ°

가속 ꡬ성은 μ‹€ν–‰ μ‹œκ°„ λ™μ•ˆ λŒ€λ¦¬μžλ‘œ λ³€ν™˜λ˜λŠ” ν•˜λ“œμ›¨μ–΄ κ΅¬μ„±μ˜ ν‘œν˜„μž…λ‹ˆλ‹€. 가속 μ„œλΉ„μŠ€λŠ” λ‚΄λΆ€μ μœΌλ‘œ μ΄λŸ¬ν•œ ꡬ성을 μ‚¬μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈ 좔둠을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

ν˜„μž¬ 가속 μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄ GpuAccelerationConfigλ₯Ό μ‚¬μš©ν•˜μ—¬ GPU ꡬ성(μ‹€ν–‰ μ‹œκ°„ λ™μ•ˆ GPU λŒ€λ¦¬μžλ‘œ λ³€ν™˜λ¨)κ³Ό CPU μΆ”λ‘ (CpuAccelerationConfig μ‚¬μš©)을 평가할 수 μžˆμŠ΅λ‹ˆλ‹€. μ €ν¬λŠ” ν˜„μž¬ λ‹€λ₯Έ ν•˜λ“œμ›¨μ–΄μ— μ•‘μ„ΈμŠ€ν•  수 μžˆλŠ” 더 λ§Žμ€ λŒ€λ¦¬μžλ₯Ό μ§€μ›ν•˜κ³ μž λ…Έλ ₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

GPU 가속 ꡬ성

λ‹€μŒκ³Ό 같이 GPU 가속 ꡬ성을 μƒμ„±ν•©λ‹ˆλ‹€.

AccelerationConfig accelerationConfig = new GpuAccelerationConfig.Builder() .setEnableQuantizedInference(false) .build();

λͺ¨λΈμ΄ μ–‘μžν™”λ₯Ό μ‚¬μš©ν•˜λŠ”μ§€ μ—¬λΆ€λŠ” setEnableQuantizedInference()둜 μ§€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

CPU 가속 ꡬ성

λ‹€μŒκ³Ό 같이 CPU 가속을 μƒμ„±ν•©λ‹ˆλ‹€.

AccelerationConfig accelerationConfig = new CpuAccelerationConfig.Builder() .setNumThreads(2) .build();

setNumThreads() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ CPU 좔둠을 ν‰κ°€ν•˜λŠ” 데 μ‚¬μš©ν•  μŠ€λ ˆλ“œ 수λ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

검증 ꡬ성 μƒμ„±ν•˜κΈ°

검증 ꡬ성을 μ‚¬μš©ν•˜μ—¬ 가속 μ„œλΉ„μŠ€μ—μ„œ 좔둠을 ν‰κ°€ν•˜λŠ” 방법을 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ •μ˜ν•œ μΆ”λ‘  평가 방법은 합격 μ—¬λΆ€ 결정에 μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.

  • μž…λ ₯ μƒ˜ν”Œ

  • μ˜ˆμƒ 좜λ ₯

  • μ •ν™•μ„± 검증 둜직

λͺ¨λΈμ˜ μ„±λŠ₯이 쒋을 κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λŠ” μž…λ ₯ μƒ˜ν”Œ("golden" μƒ˜ν”Œμ΄λΌκ³ λ„ 함)을 μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같이 CustomValidationConfig.Builderλ₯Ό μ‚¬μš©ν•΄ ValidationConfigλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

ValidationConfig validationConfig = new CustomValidationConfig.Builder() .setBatchSize(5) .setGoldenInputs(inputs) .setGoldenOutputs(outputBuffer) .setAccuracyValidator(new MyCustomAccuracyValidator()) .build();

setBatchSize()λ₯Ό μ‚¬μš©ν•˜μ—¬ golden μƒ˜ν”Œμ˜ 개수λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. setGoldenInputs()λ₯Ό μ‚¬μš©ν•˜μ—¬ golden μƒ˜ν”Œμ˜ μž…λ ₯을 μ „λ‹¬ν•©λ‹ˆλ‹€. setGoldenOutputs()λ₯Ό μ‚¬μš©ν•˜μ—¬ μ „λ‹¬λœ μž…λ ₯에 λŒ€ν•œ μ˜ˆμƒ 좜λ ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

μ΅œλŒ€ μΆ”λ‘  μ‹œκ°„μ„ setInferenceTimeoutMillis()(κΈ°λ³Έκ°’ 5000ms)둜 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ •μ˜ν•œ μ‹œκ°„λ³΄λ‹€ μΆ”λ‘  μ‹œκ°„μ΄ κΈΈμ–΄μ§€λ©΄ ꡬ성이 κ±°λΆ€λ©λ‹ˆλ‹€.

μ„ νƒμ μœΌλ‘œ λ‹€μŒκ³Ό 같이 μ‚¬μš©μž μ •μ˜ AccuracyValidatorλ₯Ό 생성할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

class MyCustomAccuracyValidator implements AccuracyValidator { boolean validate( BenchmarkResult benchmarkResult, ByteBuffer[] goldenOutput) { for (int i = 0; i < benchmarkResult.actualOutput().size(); i++) { if (!goldenOutputs[i] .equals(benchmarkResult.actualOutput().get(i).getValue())) { return false; } } return true; } }

μžμ‹ μ˜ μ‚¬μš© 사둀에 μ ν•©ν•œ μœ νš¨μ„± 검사 λ‘œμ§μ„ μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

검증 데이터가 이미 λͺ¨λΈμ— μž„λ² λ“œλ˜μ–΄ μžˆλŠ” 경우 EmbeddedValidationConfigλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

검증 좜λ ₯ μƒμ„±ν•˜κΈ°

Golden 좜λ ₯은 선택 사항이며, golden μž…λ ₯을 μ œκ³΅ν•˜κΈ°λ§Œ ν•˜λ©΄ 가속 μ„œλΉ„μŠ€μ—μ„œ λ‚΄λΆ€μ μœΌλ‘œ golden 좜λ ₯을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ setGoldenConfig()λ₯Ό ν˜ΈμΆœν•˜μ—¬ μ΄λŸ¬ν•œ golden 좜λ ₯을 μƒμ„±ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” 가속 ꡬ성을 μ •μ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

ValidationConfig validationConfig = new CustomValidationConfig.Builder() .setBatchSize(5) .setGoldenInputs(inputs) .setGoldenConfig(customCpuAccelerationConfig) [...] .build();

가속 ꡬ성 κ²€μ¦ν•˜κΈ°

가속 ꡬ성과 검증 ꡬ성을 μƒμ„±ν•œ λ’€ λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 이λ₯Ό 평가할 수 μžˆμŠ΅λ‹ˆλ‹€.

Play μ„œλΉ„μŠ€ λŸ°νƒ€μž„μ΄ μ˜¬λ°”λ₯΄κ²Œ μ΄ˆκΈ°ν™”λ˜μ—ˆλŠ”μ§€, 그리고 κΈ°κΈ°μ—μ„œ GPU λŒ€λ¦¬μžλ₯Ό μ‹€ν–‰ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€.

TfLiteGpu.isGpuDelegateAvailable(context) .onSuccessTask(gpuAvailable -> TfLite.initialize(context, TfLiteInitializationOptions.builder() .setEnableGpuDelegateSupport(gpuAvailable) .build() ) );

AccelerationService.create()λ₯Ό ν˜ΈμΆœν•˜μ—¬ AccelerationServiceλ₯Ό μΈμŠ€ν„΄μŠ€ν™”ν•©λ‹ˆλ‹€.

그런 λ‹€μŒ validateConfig()λ₯Ό ν˜ΈμΆœν•˜μ—¬ λͺ¨λΈμ— λŒ€ν•œ 가속 ꡬ성을 검증할 수 μžˆμŠ΅λ‹ˆλ‹€.

InterpreterApi interpreter; InterpreterOptions interpreterOptions = InterpreterApi.Options(); AccelerationService.create(context) .validateConfig(model, accelerationConfig, validationConfig) .addOnSuccessListener(validatedConfig -> { if (validatedConfig.isValid() && validatedConfig.benchmarkResult().hasPassedAccuracyTest()) { interpreterOptions.setAccelerationConfig(validatedConfig); interpreter = InterpreterApi.create(model, interpreterOptions); });

λ˜ν•œ, validateConfigs()λ₯Ό ν˜ΈμΆœν•˜κ³  Iterable<AccelerationConfig> 객체λ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬ν•˜μ—¬ μ—¬λŸ¬ ꡬ성을 검증할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

validateConfig()λŠ” 비동기식 μž‘μ—…μ„ ν™œμ„±ν™”ν•˜λŠ” Google Play μ„œλΉ„μŠ€μ—μ„œ Task<ValidatedAccelerationConfigResult>λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
검증 ν˜ΈμΆœμ—μ„œ κ²°κ³Όλ₯Ό μ–»μœΌλ €λ©΄ addOnSuccessListener() μ½œλ°±μ„ μΆ”κ°€ν•˜μ„Έμš”.

μΈν„°ν”„λ¦¬ν„°μ—μ„œ κ²€μ¦λœ ꡬ성 μ‚¬μš©ν•˜κΈ°

μ½œλ°±μ—μ„œ λ°˜ν™˜λœ ValidatedAccelerationConfigResultκ°€ μœ νš¨ν•œμ§€ ν™•μΈν•œ ν›„ interpreterOptions.setAccelerationConfig()λ₯Ό ν˜ΈμΆœν•˜μ—¬ κ²€μ¦λœ ꡬ성을 인터프리터에 λŒ€ν•œ 가속 κ΅¬μ„±μœΌλ‘œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ꡬ성 캐싱

λͺ¨λΈμ— λŒ€ν•œ 졜적의 가속 ꡬ성은 κΈ°κΈ°μ—μ„œ 변경될 κ°€λŠ₯성이 거의 μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 만쑱슀러운 가속 ꡬ성을 λ°›μœΌλ©΄ λ‹€λ₯Έ 검증을 μ‹€ν–‰ν•˜λŠ” λŒ€μ‹  받은 가속 ꡬ성을 기기에 μ €μž₯ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 이λ₯Ό κ²€μƒ‰ν•˜μ—¬ λ‹€μŒ μ„Έμ…˜ λ™μ•ˆ InterpreterOptionsλ₯Ό μƒμ„±ν•˜λŠ” 데 μ‚¬μš©ν•˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€. ValidatedAccelerationConfigResult의 serialize() 및 deserialize() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ €μž₯ 및 검색 ν”„λ‘œμ„ΈμŠ€κ°€ 더 μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

μƒ˜ν”Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜

가속 μ„œλΉ„μŠ€κ°€ μ œλŒ€λ‘œ ν†΅ν•©λ˜μ—ˆλŠ”μ§€ κ²€ν† ν•˜λ €λ©΄ μƒ˜ν”Œ 앱을 μ‚΄νŽ΄λ³΄μ„Έμš”.

μ œν•œ 사항

가속 μ„œλΉ„μŠ€μ—λŠ” ν˜„μž¬ λ‹€μŒκ³Ό 같은 μ œν•œ 사항이 μžˆμŠ΅λ‹ˆλ‹€.

  • ν˜„μž¬λŠ” CPU 및 GPU 가속 κ΅¬μ„±λ§Œ μ§€μ›λ©λ‹ˆλ‹€.

  • Google Play μ„œλΉ„μŠ€μ—μ„œ TensorFlow Lite만 μ§€μ›ν•˜λ©° λ²ˆλ“€ λ²„μ „μ˜ TensorFlow Liteλ₯Ό μ‚¬μš© 쀑인 경우 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

  • ValidatedAccelerationConfigResult 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ BaseOptionsλ₯Ό 직접 μ΄ˆκΈ°ν™”ν•  수 μ—†μœΌλ―€λ‘œ TensorFlow Lite μž‘μ—… 라이브러리λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • 가속 μ„œλΉ„μŠ€ SDKλŠ” API 레벨 22 μ΄μƒλ§Œ μ§€μ›ν•©λ‹ˆλ‹€.

κ²½κ³  사항{:#caveats}

특히 μš΄μ˜μ—μ„œ 이 SDKλ₯Ό μ‚¬μš©ν•  κ³„νšμ΄ μžˆλŠ” 경우 λ‹€μŒ κ²½κ³  사항을 주의 깊게 κ²€ν† ν•΄ μ£Όμ„Έμš”.

  • 베타 버전을 μ’…λ£Œν•˜κ³  가속 μ„œλΉ„μŠ€ API의 μ•ˆμ • 버전을 μΆœμ‹œν•˜κΈ° 전에 ν˜„μž¬ 베타 버전과 μ•½κ°„μ˜ 차이가 μžˆμ„ 수 μžˆλŠ” μƒˆ SDKλ₯Ό 퍼블리싱할 μ˜ˆμ •μž…λ‹ˆλ‹€. 가속 μ„œλΉ„μŠ€λ₯Ό 계속 μ‚¬μš©ν•˜λ €λ©΄ 이 μƒˆ SDK둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜κ³  제 λ•Œμ— μ•±μœΌλ‘œ μ—…λ°μ΄νŠΈλ₯Ό ν‘Έμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·Έλ ‡κ²Œ ν•˜μ§€ μ•Šμ„ 경우 일정 μ‹œκ°„μ΄ μ§€λ‚˜λ©΄ 베타 SDKκ°€ 더 이상 Google Play μ„œλΉ„μŠ€μ™€ ν˜Έν™˜λ˜μ§€ μ•Šμ„ 수 있으며 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 가속 μ„œλΉ„μŠ€ API λ‚΄μ˜ νŠΉμ • κΈ°λŠ₯μ΄λ‚˜ API 전체가 정식 λ²„μ „μœΌλ‘œ μ œκ³΅λœλ‹€λŠ” 보μž₯은 μ—†μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή κΈ°λŠ₯μ΄λ‚˜ APIλŠ” λ¬΄κΈ°ν•œ 베타 λ²„μ „μœΌλ‘œ μœ μ§€λ˜κ±°λ‚˜, μ’…λ£Œλ˜κ±°λ‚˜, λ‹€λ₯Έ κΈ°λŠ₯κ³Ό κ²°ν•©λ˜μ–΄ νŠΉμ • 개발자 λŒ€μƒμ˜ νŒ¨ν‚€μ§€λ‘œ 제곡될 수 μžˆμŠ΅λ‹ˆλ‹€. 가속 μ„œλΉ„μŠ€ API의 일뢀 κΈ°λŠ₯ λ˜λŠ” 전체 API μžμ²΄λŠ” μ–Έμ  κ°€ 정식 λ²„μ „μœΌλ‘œ 제곡될 수 μžˆμ§€λ§Œ, 이에 λŒ€ν•œ 일정은 μ •ν•΄μ Έ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ•½κ΄€ 및 개인 정보 μ·¨κΈ‰ λ°©μΉ¨{:#terms_privacy}

μ„œλΉ„μŠ€ μ•½κ΄€

가속 μ„œλΉ„μŠ€ API의 μ‚¬μš© μ‹œ Google API μ„œλΉ„μŠ€ μ•½κ΄€μ˜ μ μš©μ„ λ°›μŠ΅λ‹ˆλ‹€.
λ˜ν•œ 가속 μ„œλΉ„μŠ€ APIλŠ” ν˜„μž¬ 베타 λ²„μ „μ΄λ―€λ‘œ 이λ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ μœ„μ˜ κ²½κ³  사항 μ„Ήμ…˜μ— μ„€λͺ…λœ 잠재적 문제λ₯Ό μΈμ •ν•˜κ³  가속 μ„œλΉ„μŠ€κ°€ 항상 μ§€μ •λœ λŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆμŒμ„ μΈμ •ν•˜κ²Œ λ©λ‹ˆλ‹€.

개인 정보 μ·¨κΈ‰ λ°©μΉ¨

가속 μ„œλΉ„μŠ€ APIλ₯Ό μ‚¬μš©ν•˜λ©΄ μž…λ ₯ 데이터(예: 이미지, λ™μ˜μƒ, ν…μŠ€νŠΈ)의 μ²˜λ¦¬λŠ” μ „λΆ€ μ˜¨λ””λ°”μ΄μŠ€λ‘œ 이루어지며, 가속 μ„œλΉ„μŠ€λŠ” ν•΄λ‹Ή 데이터λ₯Ό Google μ„œλ²„λ‘œ μ „μ†‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 결과적으둜 κΈ°κΈ°λ₯Ό λ– λ‚˜μ„œλŠ” μ•ˆ λ˜λŠ” μž…λ ₯ 데이터λ₯Ό μ²˜λ¦¬ν•  λ•Œ 이 APIλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
가속 μ„œλΉ„μŠ€ APIλŠ” 버그 μˆ˜μ •, μ—…λ°μ΄νŠΈλœ λͺ¨λΈ 및 ν•˜λ“œμ›¨μ–΄ 가속기 ν˜Έν™˜μ„± 정보 등을 μˆ˜μ‹ ν•˜κΈ° μœ„ν•΄ λ•Œλ•Œλ‘œ Google μ„œλ²„μ— μ—°κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 가속 μ„œλΉ„μŠ€ APIλŠ” μ•±μ˜ API μ„±λŠ₯ 및 ν™œμš©μ— λŒ€ν•œ λ©”νŠΈλ¦­μ„ Google에 μ „μ†‘ν•©λ‹ˆλ‹€. Google은 개인 정보 μ·¨κΈ‰ 방침에 μžμ„Ένžˆ μ„€λͺ…λœ λŒ€λ‘œ 이 λ©”νŠΈλ¦­ 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„±λŠ₯을 μΈ‘μ •ν•˜κ³ , APIλ₯Ό 디버그, μœ μ§€ 및 κ°œμ„ ν•˜λ©°, 였용 λ˜λŠ” λ‚¨μš©μ„ κ°μ§€ν•©λ‹ˆλ‹€.
μ—¬λŸ¬λΆ„μ€ κ΄€λ ¨ 법λ₯ μ—μ„œ μš”κ΅¬ν•˜λŠ” 바에 따라 Google의 가속 μ„œλΉ„μŠ€ λ©”νŠΈλ¦­ 데이터 μ²˜λ¦¬μ— λŒ€ν•΄ μ•± μ‚¬μš©μžμ—κ²Œ μ•Œλ¦΄ μ±…μž„μ΄ μžˆμŠ΅λ‹ˆλ‹€.
당사가 μˆ˜μ§‘ν•˜λŠ” λ°μ΄ν„°μ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€.

  • κΈ°κΈ° 정보(예: μ œμ‘°μ—…μ²΄, λͺ¨λΈ, OS 버전 및 λΉŒλ“œ) 및 μ‚¬μš© κ°€λŠ₯ν•œ ML ν•˜λ“œμ›¨μ–΄ 가속기(GPU 및 DSP). 진단 및 μ‚¬μš© 뢄석에 μ‚¬μš©λ©λ‹ˆλ‹€.

  • μ•± 정보(νŒ¨ν‚€μ§€ 이름/λ²ˆλ“€ ID, μ•± 버전). 진단 및 μ‚¬μš© 뢄석에 μ‚¬μš©λ©λ‹ˆλ‹€.

  • API ꡬ성(예: 이미지 ν˜•μ‹, 해상도 λ“±). 진단 및 μ‚¬μš© 뢄석에 μ‚¬μš©λ©λ‹ˆλ‹€.

  • 이벀트 μœ ν˜•(예: μ΄ˆκΈ°ν™”, λͺ¨λΈ λ‹€μš΄λ‘œλ“œ, μ—…λ°μ΄νŠΈ, μ‹€ν–‰, 탐지 λ“±). 진단 및 μ‚¬μš© 뢄석에 μ‚¬μš©λ©λ‹ˆλ‹€.

  • 였λ₯˜ μ½”λ“œ. 진단에 μ‚¬μš©λ©λ‹ˆλ‹€.

  • μ„±λŠ₯ λ©”νŠΈλ¦­. 진단에 μ‚¬μš©λ©λ‹ˆλ‹€.

  • μ‚¬μš©μž λ˜λŠ” 물리적 κΈ°κΈ°λ₯Ό κ³ μœ ν•˜κ²Œ μ‹λ³„ν•˜μ§€ μ•ŠλŠ” μ„€μΉ˜λ³„ μ‹λ³„μž. 원격 ꡬ성 및 μ‚¬μš© λΆ„μ„μ˜ μš΄μ˜μ— μ‚¬μš©λ©λ‹ˆλ‹€.

  • λ„€νŠΈμ›Œν¬ μš”μ²­ λ°œμ‹ μž IP μ£Όμ†Œ. 원격 ꡬ성 진단에 μ‚¬μš©λ©λ‹ˆλ‹€. μˆ˜μ§‘λœ IP μ£Όμ†ŒλŠ” μž„μ‹œ λ³΄κ΄€λ©λ‹ˆλ‹€.

지원 및 ν”Όλ“œλ°±

TensorFlow Issue Trackerλ₯Ό 톡해 ν”Όλ“œλ°±μ„ μ œκ³΅ν•˜κ³  지원받을 수 μžˆμŠ΅λ‹ˆλ‹€. Google Play μ„œλΉ„μŠ€μ—μ„œ 이슈 ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜μ—¬ 문제 및 지원 μš”μ²­μ„ λ³΄κ³ ν•΄μ£Όμ„Έμš”.