Unidad 4 / 11

IA en el dispositivo: Core ML, TensorFlow Lite y ML Kit

Ganancias:

  • Capacidad para decidir en el dispositivo o en la nube y elegir la herramienta adecuada (ML Kit, Core ML, TensorFlow Lite) según la privacidad, la necesidad fuera de línea, el tamaño del modelo y los criterios de batería.
  • Capacidad para evitar errores silenciosos verificando el preprocesamiento de entrada (tamaño y normalización) del documento del modelo en la integración del modelo.
  • Capacidad de evaluar la puntuación de confianza y medir el resultado con la aprobación del usuario y en el dispositivo real, sin presentar predicciones de baja confianza como verdad absoluta.

Hasta ahora, hemos utilizado la IA como ayuda para acelerar el proceso de desarrollo. Ahora pasamos al segundo papel de la IA: el talento integrado en la aplicación. Los teléfonos modernos tienen la capacidad de ejecutar modelos de IA como reconocimiento de imágenes, traducción de texto, transcripción de voz, etc. directamente en el dispositivo (en el dispositivo, en el propio procesador del teléfono sin tener que ir al servidor). IA en el dispositivo; Ofrece grandes ventajas sobre las soluciones en la nube en términos de velocidad, privacidad y funcionamiento fuera de línea. En esta unidad, aprenderemos cómo integrar IA en la aplicación con Core ML de iOS, TensorFlow Lite multiplataforma (ahora conocido como LiteRT) y la solución ML Kit lista para usar de Google, y cómo usar AI como asistente en esta integración.

¿En el dispositivo o en la nube?

Esta es la primera y más importante decisión arquitectónica. La IA en el dispositivo no elimina datos del teléfono, lo que supone una gran ventaja para la privacidad. También es instantáneo y funciona sin conexión ya que no hay latencia de red. Sin embargo, está limitado por la potencia de procesamiento y la memoria del dispositivo; Los modelos muy grandes (por ejemplo, los modelos con lengüeta gigante) no caben en el teléfono o agotan la batería. La IA en la nube, por otro lado, ofrece potencia ilimitada, pero envía datos al servidor, requiere red y crea latencia.

criterio

En el dispositivo

Nube (API de la nube)

Privacidad

Los datos permanecen en el dispositivo, fuertes

Los datos van al servidor, se necesita atención

velocidad

Instantáneo, sin red

Depende de la latencia de la red.

fuera de línea

Funciona

no funciona

Tamaño del modelo

Limitado (recurso telefónico)

ilimitado

batería/calor

Efectos con uso intensivo

Servidor bajo carga, dispositivo relajado

Costo

Gratis (fuente del dispositivo)

Tarifa por uso

Regla de decisión: elija en el dispositivo si se están procesando datos personales/sensibles, si es necesario trabajar sin conexión o si es esencial una respuesta instantánea. Si necesitas un modelo muy grande, recurre a la nube. Esta unidad está enfocada en el dispositivo; Cubriremos la IA en la nube en la siguiente unidad.

Consejo: siempre haga que el dispositivo sea su opción predeterminada para una función que maneje datos confidenciales (salud, datos biométricos, ubicación). La frase “los datos no salen del dispositivo” es invaluable tanto para el cumplimiento de la privacidad como para la confianza del usuario, y marca una gran diferencia en la etiqueta de privacidad de la tienda.

Tres formas: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) es la forma más sencilla de empezar: ofrece funciones listas para usar, como reconocimiento de texto (OCR: lectura de texto en una imagen), detección de rostros, lectura de códigos de barras y traducción en unas pocas líneas. No es necesario entrenar su propio modelo. Core ML (Apple) es la forma más eficaz de ejecutar su propio modelo o un modelo ya preparado en iOS; Utiliza el hardware Neural Engine (procesador de red neuronal artificial) de Apple. TensorFlow Lite/LiteRT es una solución multiplataforma que le permite ejecutar su propio modelo entrenado tanto en Android como en iOS.

El flujo general de integración con la IA es el siguiente:

  1. Definición de talento. Un objetivo claro, como por ejemplo "Quiero leer el texto de la foto".
  2. Selección de ruta. Si hay talento listo, ML Kit; Core ML/TF Lite si hay un modelo especial disponible.
  3. Formato del modelo. .mlmodel (Core ML), .tflite (TF Lite). Explica los pasos de transformación de la IA.
  4. Código de integración. Cargando el modelo, preprocesando la entrada, interpretando la salida.
  5. Prueba de rendimiento. Medición de velocidad, memoria y batería en un dispositivo real.
Precaución: El error de IA más común en la integración de modelos en el dispositivo es el preprocesamiento de entrada: convertir la imagen al formato de tamaño y color que espera el modelo. Si el modelo espera 224x224 píxeles y le das 300x300, el resultado no tendrá sentido, pero no recibirás un mensaje de error. Verifique los valores de preprocesamiento del documento del modelo.

Conociendo los límites del modelo

Un modelo en el dispositivo toma decisiones basadas en los datos con los que fue entrenado. Un modelo de reconocimiento de objetos entrenado únicamente con fotografías tomadas durante el día resultará incorrecto en imágenes nocturnas. El modelo tiene una puntuación de confianza (confianza: qué tan seguro está el modelo acerca de su respuesta, generalmente entre 0 y 1); Es peligroso presentar al usuario resultados de baja confianza como precisos. Por ejemplo, una aplicación de escaneo de manchas en la piel no debería decir "definitivamente benigno", sino "la predicción del modelo es esta, consulte a un médico". El resultado del modelo es una recomendación, no un diagnóstico.

tres mini casos

Caso 1: Aceleración con OCR. Una aplicación de seguimiento de gastos ha eliminado la carga de ingresar recibos manualmente con el reconocimiento de texto del kit ML. El usuario toma una fotografía del recibo y el monto y la fecha se completan automáticamente. El tiempo de entrada manual disminuyó de 40 segundos a 8 segundos por recibo. El equipo siempre hacía que el usuario confirmara la cantidad que leía la IA; porque los recibos arrugados tenían un margen de error del 6%. La automatización + la aprobación humana era el equilibrio adecuado.

Caso 2: error de preprocesamiento. Un equipo integró un modelo de reconocimiento de plantas con TensorFlow Lite; En el probador, los resultados fueron aleatorios. El problema fue que el código que generó la IA no normalizó la imagen al rango [0,1] que esperaba el modelo (los valores de píxeles se dejaron en 0-255). Cuando se agregó la normalización, la precisión aumentó del 30% al 89%. Lección: el preprocesamiento es silencioso pero mortal.

Caso 3: Ganancia de privacidad. Una aplicación de salud detectó una anomalía en los datos de frecuencia cardíaca con el modelo Core ML en el dispositivo. Los datos nunca llegaron al servidor. Esta elección permitió que la aplicación recibiera la frase "no recopila datos" en la etiqueta de privacidad de la App Store y aumentó su tasa de descarga en comparación con la competencia. La elección del dispositivo fue a la vez ética y comercialmente rentable.

Aviso débil / Aviso fuerte

Mensaje débil: "Agregar reconocimiento de imágenes a mi aplicación".

Potente mensaje: "Agregue la función de lectura de cantidad y fecha a mi aplicación Android/Kotlin. - Utilice el reconocimiento de texto de Google ML Kit (en el dispositivo, fuera de línea) - Tome una imagen de la cámara o galería - Extraiga la cantidad y la fecha del texto reconocido con expresiones regulares - Presente el resultado al usuario para su aprobación en el campo EDITABLE, guarde automáticamente - Maneje el flujo de permisos y el rechazo de la cámara. Anote situaciones de error y preprocesamiento, explique los pasos".

Plantillas copiables

Plantilla de selección de ruta: "Quiero crear la siguiente función: [función]. ¿Debería estar en el dispositivo o en la nube? Compare según: privacidad, necesidad fuera de línea, tamaño del modelo, batería, costo. Recomiende la herramienta adecuada (ML Kit/Core ML/TF Lite) y justifique".

Plantilla de integración: "Escribir integración de [modelo/capacidad] para [plataforma]:1) Carga del modelo2) Preprocesamiento de entrada (tamaño esperado y normalización)3) Llamada de inferencia4) Interpretación de salida y verificación de puntuación de confianza5) Advertencia al usuario sobre resultados de baja confianzaRecuérdeme verificar los valores de preprocesamiento de la documentación del modelo".

Plantilla de puntuación de confianza: "Considere la puntuación de confianza en este código de inferencia: - Presente el resultado 'exacto' por debajo del umbral (por ejemplo, 0,6) - Muestre la nota 'esto es una estimación' al usuario - Consulte al experto si es un área crítica (salud, seguridad) [código]"

Plantilla de verificación de rendimiento: "Enumere las métricas que necesito medir en el dispositivo real para la integración de este modelo en el dispositivo: tiempo de inferencia, aumento de memoria, impacto de la batería, calentamiento. Indique el método de medición para cada uno".

Errores comunes

  • Saltarse el preprocesamiento o hacerlo incorrectamente. El tamaño/normalización incorrecto produce silenciosamente un resultado incorrecto.
  • Ignorando la puntuación de confianza. Presentar una estimación de baja confianza como precisa inducirá a error al usuario.
  • Probando el modelo en el emulador. La velocidad y la batería reales del dispositivo son muy diferentes; Mida siempre con hardware real.
  • Envío de datos confidenciales a la nube innecesariamente. Elegir la nube cuando es posible hacerlo en el dispositivo supone un riesgo para la privacidad.
  • Ignorando el tamaño del modelo. Las aplicaciones de modelos grandes aumentan el tamaño de descarga y fallan con poco hardware.
  • Olvidando el límite de entrenamiento del modelo. El modelo se equivoca en la condición en la que no ve (noche, idioma diferente); Deje esto claro al usuario.

En resumen

La IA en el dispositivo brinda privacidad, velocidad y operación fuera de línea al mantener los datos en el teléfono; El límite es la potencia del dispositivo y el tamaño del modelo. ML Kit se usa para capacidades listas para usar, Core ML (iOS) y TensorFlow Lite (multiplataforma) se usan para modelos personalizados. El asesino silencioso de la integración es el preprocesamiento inadecuado; El tamaño de entrada y la normalización se verifican en la documentación del modelo. Cada resultado viene con una puntuación de confianza y las predicciones de baja confianza no se presentan como una verdad absoluta. Las decisiones se miden en el dispositivo real, no en el emulador.

Tarea de aplicación

Para una función de “lectura de texto a partir de una foto” o “lectura de código de barras”, pregunte a la IA si debe estar en el dispositivo o en la nube con la “plantilla de selección de ruta” y luego solicite un plano basado en el kit de aprendizaje automático con la “plantilla de integración”. Verifique que el paso de preprocesamiento y el flujo de aprobación/edición del usuario estén presentes en el código. Establezca un umbral de puntuación de confianza y escriba lo que hará si el resultado es un nivel bajo de confianza.

lista de verificación

  • [] Tomé la decisión sobre el dispositivo/la nube según criterios
  • [] Elegí la herramienta adecuada (ML Kit / Core ML / TF Lite)
  • [] Verifiqué la dimensión de preprocesamiento y la normalización de la documentación del modelo.
  • [] Verifiqué la puntuación de confianza y advertí sobre resultados de baja confianza.
  • [] Presenté el resultado al usuario con aprobación/edición, no lo guardé a ciegas
  • [] Medí el rendimiento en el dispositivo real, no en el emulador.