paint-brush
Cómo gané $ 1 millón y lo gasté en la creación de un traductor de IApor@alexeir
487 lecturas
487 lecturas

Cómo gané $ 1 millón y lo gasté en la creación de un traductor de IA

por Aliaksei Rudak2022/06/22
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Mi historia personal sobre ganar $1000000 solo en aplicaciones móviles y gastarlo para crear un nuevo sistema de traducción automática basado en IA. Manera larga y difícil de crear productos complejos de tecnología profunda con pocos recursos.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo gané $ 1 millón y lo gasté en la creación de un traductor de IA
Aliaksei Rudak HackerNoon profile picture

Cómo empezó todo

Hace 10 años trabajé como ingeniero de software y luego dejé el trabajo para comenzar mis propios proyectos. Para ahorrar algo de dinero extra, fui a una pequeña ciudad natal, donde solía trabajar en un sitio web para estudiantes, software de contabilidad y juegos móviles al mismo tiempo. No tener experiencia comercial causó algunos problemas con la generación de ingresos, por lo que todos los proyectos tuvieron que cerrarse. Regresé a la capital para conseguir un trabajo, otra vez. La historia se repitió unas cuantas veces.


Cuando volví a quebrarme, me enfrenté a una crisis económica total. No podía encontrar trabajo y me sentía horrible. Era una buena razón para ver el mundo con ojos sobrios. Tuve que admitir honestamente que no sabía qué nicho elegir para mi negocio. Hacer proyectos que te gustan parecía un camino a ninguna parte.


De lo único que era capaz era de crear aplicaciones móviles. Varios años de trabajo en empresas de tecnología me permitieron adquirir una experiencia útil, así que decidí hacer aplicaciones fundamentalmente diferentes (juegos, música, arte, salud, estilo de vida, idiomas) y probar las necesidades del mercado. Los conjuntos preparados de activos y bibliotecas de códigos permitieron crear aplicaciones sobre diversos temas: juegos 2D, rastreadores GPS, utilidades simples, etc. La mayoría de ellos tenían varias imágenes, 2 botones y solo una función. Pero fue suficiente para probar la idea y el modelo de monetización. Por ejemplo, una aplicación para correr registró la velocidad, la distancia y las calorías quemadas de la persona. Nada mas. La compra de gráficos en existencias y la reutilización del código fuente me ayudaron a crear cientos de aplicaciones simples durante 2 años.


Al principio, las aplicaciones eran gratuitas. Luego agregué anuncios y compras dentro de la aplicación, y seleccioné palabras clave e íconos brillantes. Los usuarios comenzaron a descargar mis aplicaciones. Algunas aplicaciones diferían en beneficio: traductores, navegación para camiones, simuladores de música (piano, batería, acordes de guitarra, jugadores), así como juegos casuales simples.


Luego me di cuenta de que en solo un mes, los traductores se habían descargado más de 1 millón de veces, ocupando el puesto 100 en la categoría de clasificación. Hay cientos de idiomas en el mundo y las personas ingresan una consulta para cada idioma. El nicho resultó ser prometedor.

Posteriormente se crearon alrededor de 40 traductores simples utilizando la API de Google. Me costó $ 20 por 1 millón de caracteres. Luego aparecieron versiones mejoradas de las aplicaciones, donde incluí anuncios, compras dentro de la aplicación y traducción de voz.


Gané suficiente dinero para mudarme a una gran ciudad y comprar una casa. En ese momento, tenía entre 50 y 70 aplicaciones de traducción y 5 millones de descargas en total. El crecimiento de usuarios aumentó el costo de la API paga de Google Translate. Así que la rentabilidad del negocio ha disminuido seriamente. Los usuarios que pagaban traducían bloques de 1K caracteres a la vez, lo que nos obligó a limitar sus solicitudes. Cuando se enfrentaron a este límite de traducción, dejaron malas críticas y obtuvieron sus reembolsos. El 70% de los ingresos cubrieron nuestros gastos. Con grandes volúmenes de traducción, este negocio no era prometedor. Para recuperar gastos, fue necesario agregar publicidad a las aplicaciones; que siempre asusta a los usuarios. Por eso necesitábamos nuestra API para la traducción.


Además de Google, varias empresas proporcionaron API en la nube para la traducción. Estaba listo para pagar $30K por sus licencias de tecnología en 40 idiomas para implementar en las instalaciones. Esto me permitiría traducir un número ilimitado de veces por un precio fijo y servir a cualquier número de usuarios en mis servidores. Pero en respuesta, obtuve la cantidad varias veces más alta de lo esperado. Era demasiado caro. Decidí recrear su tecnología para la traducción.


Me dirigí a un amigo que es dueño de una empresa de subcontratación. A finales de 2016 me asignó un equipo. Esperaba resolver el problema en seis meses de forma subcontratada, sin depender de la API de Google.


De camino a mi traductor

El trabajo ha comenzado. En 2016, encontramos varios proyectos de código abierto: Apertium, Joshua y Moses. Era una traducción automática estadística adecuada para textos simples. De 3 a 40 personas apoyaron estos proyectos. Más tarde quedó claro que necesitamos servidores potentes y conjuntos de datos de alta calidad que son caros. Incluso después de gastar dinero en hardware y un conjunto de datos de calidad para uno de los pares de traducción, la calidad dejaba mucho que desear.



Técnicamente, no se reducía al esquema de "descargar conjunto de datos y entrenar" para crear un traductor. Resultó que hay un millón de matices de los que ni siquiera éramos conscientes. Probamos algunos recursos más pero no conseguimos buenos resultados. Sin embargo, el trabajo continuó y los autónomos se incorporaron a la empresa.


En marzo de 2017, encontramos un proyecto de código abierto llamado OpenNMT. El proyecto se acaba de lanzar y ofreció traducción basada en nueva tecnología: redes neuronales.


Por lo tanto, OpenNMT hizo un movimiento audaz: compartieron sus desarrollos en código abierto para que entusiastas como yo pudiéramos involucrarnos en este trabajo. Crearon un foro donde sus expertos comenzaron a ayudar a los recién llegados de forma gratuita. Y trajo un buen retorno: comenzaron a aparecer startups y trabajos científicos sobre traducción, ya que todos podían tomar la base y realizar sus experimentos en base a ella.


Incluso si todos tienen el poder de cómputo para manejar grandes conjuntos de datos, la cuestión de encontrar especialistas en NLP (procesamiento del lenguaje natural) es aguda en el mercado. En 2017, este tema estaba mucho menos desarrollado que el procesamiento de imágenes y videos. Menos conjuntos de datos, artículos científicos, especialistas, marcos y más. Hay incluso menos personas que pueden construir un negocio y cerrar cualquiera de sus nichos locales a partir de trabajos de investigación de PNL. Tanto las empresas de primer nivel como Google como los jugadores más pequeños necesitan obtener una ventaja competitiva sobre los jugadores de su categoría.


Puede parecer extraño, pero para poder competir deciden sumar nuevos jugadores al mercado. Para que aparezcan allí, debe hacer que el mercado sea atractivo. El umbral de entrada aún es alto y la demanda de tecnologías de procesamiento del lenguaje está creciendo rápidamente (asistentes de voz, chatbots, traducciones, reconocimiento de voz, análisis, etc.). Las grandes empresas están interesadas en que nuevas empresas como la nuestra se desarrollen, capturen nuevos nichos y muestren máximo crecimiento. Están felices de comprar nuevas empresas de PNL para fortalecer sus posiciones.


Después de todo, incluso si tiene todos los conjuntos de datos y algoritmos en sus manos, esto no significa que hará un traductor de alta calidad u otra empresa nueva en el vector de la PNL. E incluso si lo hace, está lejos del hecho de que obtenga una gran parte del pastel del mercado. Por lo tanto, necesita ayuda, y si alguien tiene éxito, compre o fusione.


Para abordar rápidamente los experimentos de traducción y dejar de ejecutar pruebas desde la consola, se creó un panel que nos permitió realizar todas las tareas, desde preparar y filtrar datos hasta implementar pruebas de traducción. En la imagen a continuación: a la derecha hay una lista de tareas y servidores GPU en los que se están entrenando modelos. En el centro están los parámetros de la red neuronal y debajo están los conjuntos de datos que se utilizarán para el entrenamiento.


continuar el trabajo

En 2018 dediqué mi tiempo a resolver el problema de la traducción de alta calidad en los principales idiomas europeos. Pensé que necesitaba otros seis meses para que todo saliera bien. Tenía recursos limitados, solo unas pocas personas estaban involucradas en tareas de ciencia de datos. Era necesario moverse rápido. Parecía que la solución al problema era algo simple. No estaba satisfecho con la calidad de la traducción.


Noté que nuestra comunidad comenzó a hablar sobre una nueva arquitectura para redes neuronales: Transformer. Todos se apresuraron a entrenar redes neuronales basadas en este modelo de Transformer y comenzaron a cambiar a Python (Tensorflow) en lugar del antiguo Lua (Torch). Decidí probarlo también.


También tomamos un tokenizador nuevo, preprocesamos el texto y comenzamos a filtrar y marcar los datos de una manera diferente, procesando el texto después de la traducción para corregir errores. La regla de las 10.000 horas funcionó: hubo muchos pasos hasta la meta y, en algún momento, me di cuenta de que la calidad de la traducción ya era suficiente para usar en la API de mis aplicaciones. Cada cambio agregó entre un 2 % y un 4 % de calidad, lo que no fue suficiente para la masa crítica en la que las personas continúan usando el producto en lugar de usar las soluciones de la competencia.


Luego comenzamos a conectar varias herramientas que nos permitieron mejorar aún más la calidad de la traducción: reconocimiento de entidades nombradas, transliteración, diccionarios específicos, un sistema para corregir errores en las palabras. Después de 5 meses de arduo trabajo, la calidad en algunos idiomas mejoró mucho y la gente comenzó a quejarse menos. Fue un punto de inflexión. Ya puede vender el software, y como tiene su API para la traducción, puede reducir mucho los costos. Puede aumentar las ventas o el número de usuarios, porque su único gasto es el poder de cómputo.


Para entrenar una red neuronal necesitaba una buena computadora. Pero ahorramos dinero. Alquilamos 20 computadoras regulares (cada una equipada con una tarjeta de video GTX1080) y simultáneamente lanzamos 20 pruebas simples en ellas a través del Panel de Control Lingvanex. Demoró una semana para cada prueba, fue mucho tiempo. Para lograr una mejor calidad, tenía que ejecutar otros parámetros que requerían más recursos. Necesitábamos computación en la nube y más tarjetas de video en una sola máquina. Decidimos alquilar un servicio en la nube Amazon 8 GPU V100 x 4. Era rápido pero muy caro. Comenzamos la prueba por la noche y por la mañana recibimos una factura de $1200. En ese momento, había muy pocas opciones de alquiler de potentes servidores GPU además de este. Tuve que abandonar esta idea y buscar opciones más económicas. ¿Tal vez intentar crear el mío propio?


Comenzamos a consultar con el equipo y decidimos que es posible hacer una computadora usando varias GPU potentes y a un precio de hasta 10 mil dólares, lo que resolverá nuestros problemas y dará sus frutos en un mes. Dos semanas después, todo estaba listo.


A principios de 2019, finalmente armé esta computadora en casa y comencé a realizar muchas pruebas, sin preocuparme de lo que necesitaba para pagar los servicios en la nube. Empecé a notar que la traducción inglés-español se acerca a la traducción de Google según la métrica BLEU. La computadora zumbaba toda la noche, era imposible dormir. Era necesario asegurarse de que no hubiera errores en la consola. Por la mañana, realicé una prueba para traducir 100 oraciones con longitudes de 1 a 100 palabras y vi que resultó ser una buena traducción, incluidas las oraciones largas. Esta noche lo ha cambiado todo. Vi la luz al final del túnel y me di cuenta de que puedo lograr una buena calidad de traducción.


Papel cientifico

Al ganar dinero con las aplicaciones de traductores móviles, decidí mejorar su calidad y crear una versión para Android, Mac OS y Windows Desktop. Tenía la esperanza de que cuando tenga mi API de traducción, terminaré el desarrollo de la aplicación para ingresar a otros mercados. Pero los competidores fueron mucho más allá. Se necesitaban algunas funciones y características básicas.


Lo primero que decidí hacer fue la traducción de voz sin conexión para aplicaciones móviles sin acceso a Internet. Este fue un problema personal. Por ejemplo, vas a Alemania, descargas solo el paquete de alemán en tu teléfono (100 MB) y obtienes una traducción del inglés al alemán y viceversa. El acceso a Internet en el extranjero podría ser un problema. Wifi a menudo no está disponible, es lento o no se puede utilizar. En ese momento, en 2017, había miles de aplicaciones de traducción de alta calidad que requerían una conexión a Internet para usar la API de Google. Tuvimos el desafío de hacer que los modelos neuronales fueran compactos para poder ejecutarse rápidamente en teléfonos móviles y traducir con buena calidad.


Encontré chicos en España con buena experiencia en proyectos de traducción automática. Durante aproximadamente 3 meses, realizamos una investigación conjunta en el campo de la reducción del tamaño del modelo de red neuronal para la traducción, para lograr 100 MB por idioma y luego ejecutarlo en teléfonos móviles.

El tamaño tuvo que ser reducido para que en un tamaño determinado del diccionario (por ejemplo, 30 mil palabras) incrustar tantas opciones como sea posible para traducir palabras de diferentes longitudes y temas.


Posteriormente, el resultado de nuestra investigación se puso a disposición del público y se presentó en la Asociación Europea de Traducción Automática en Alicante (España) en mayo de 2018, y uno de los miembros del equipo obtuvo el Ph.D. en eso.


En la conferencia, muchas personas querían comprar un producto, pero solo un par de idiomas estaba listo (inglés — español). La traducción sin conexión sobre neuronas para teléfonos móviles estuvo lista en marzo de 2018, y fue posible hacerlo en todos los demás idiomas hasta el verano. Pero no tenía suficiente tiempo y dinero. Tuve que pausar esta función. Un año después, volví a él y lo completé.


Posteriormente Además de traducir texto, voz e imágenes, decidimos agregar la traducción de llamadas telefónicas con transcripciones, algo que la competencia no tenía. Sabíamos que las personas en diferentes países a menudo usan teléfonos móviles o fijos para llamar al soporte. Y para una persona a la que está llamando no hubo necesidad de instalar la aplicación. Esta función requería mucho tiempo y gastos, por lo que la pusimos en una aplicación separada. Así es como lanzamos el Traductor de llamadas telefónicas .


También se agregaron chats de voz con traducción. Esto será útil para grupos de turistas cuando el guía pueda hablar su idioma, y ​​cada uno de los visitantes escuchará en traducción. Y finalmente, la traducción de archivos grandes en el teléfono o la computadora.


Incorporación de la compañía

El proyecto ha crecido. Han aparecido aplicaciones no solo para plataformas móviles, sino también para computadoras, dispositivos portátiles, mensajería instantánea, navegadores y asistentes de voz. Además de traducir texto, se creó una traducción de voz, imágenes, archivos, sitios web y llamadas telefónicas. Inicialmente, planeé hacer que mi API de traducción se usara solo para mis aplicaciones. Pero luego decidí ofrecérselo a todos.


Hasta ese momento, manejaba todo solo como individuo, contratando personas para subcontratar. Pero la complejidad del producto y la cantidad de tareas comenzaron a crecer rápidamente, y se hizo evidente que necesita delegar funciones y contratar rápidamente personas para su propio equipo en su oficina. Llamé a un amigo, renunció a su trabajo y decidió establecer la empresa Lingvanex en marzo de 2017.


Hasta 2020, nuestro enfoque estaba en las aplicaciones de traducción móvil. Recientemente, la Appstore Search Optimization (ASO) para aplicaciones móviles cambió su algoritmo. Las palabras clave en la tienda de aplicaciones de Apple sin comprar instalaciones pagas se han vuelto ineficaces. La captación de usuarios con tráfico pago se ha vuelto muy costosa. Sin embargo, me ayudó a obtener 40 millones de descargas y ganar el primer millón de $.


A finales de 2020, decidimos pasar al mercado B2B. Creemos que cualquier negocio internacional necesita una función de traducción. Cuantos más idiomas admita, más ingresos obtendrá.


En cinco años recibí miles de preguntas "¿Por qué Lingvanex es mejor que Google?". Traté de dar diferentes respuestas, pero ahora trato de responder brevemente: privacidad de datos, funcionalidad, precio, servicio de soporte. Utilice Lingvanex Traductor si necesita traducir grandes volúmenes de datos o cuando necesita privacidad.


Hoy tenemos tres opciones para la traducción: Cloud API, SDK y nuestro producto estrella: Translation Server.


Cloud API - Traducción de texto y sitios a través de nuestra API x4 veces más económica que Google ($5 por millón de caracteres). El precio puede ser crítico para grandes volúmenes de datos. Admitimos el mismo formato de API REST que Google, por lo que será fácil de migrar.


SDK de traducción: si necesita agregar una función de traducción sin conexión a su aplicación, esta es la mejor opción. Admitimos plataformas iOS, Android, Mac OS y Windows y 110 idiomas. Cada idioma tiene solo 70 MB y usa 200 MB de RAM.


Servidor de traducción local: traducción segura y ultrarrápida ilimitada de texto, archivos, audio y HTML. Funciona sin conexión y puede traducir miles de millones de caracteres por día. Además, el servidor puede realizar transcripciones de audio en 19 idiomas. Viene como una imagen acoplable para Ubuntu. El precio comienza desde $ 200 / mes y depende de varios idiomas.


Resumen

A lo largo de los años, gané alrededor de $ 1 millón en ingresos de las aplicaciones móviles y gasté la mayor parte de las ganancias para crear mi propio sistema de traducción. Puedes visitar nuestro sitio web para probar la calidad de la traducción y saber más sobre nuestros productos.


Para obtener una demostración gratuita de los productos o hacer preguntas, no dude en ponerse en contacto conmigo por correo electrónico [email protected]


También publicado aquí