Construye tu propio traductor con LLMs y Hugging Face

Crea tu traductor con LLMs y Hugging Face

Introducción

Las barreras lingüísticas pueden obstaculizar la comunicación global, pero la IA y el procesamiento del lenguaje natural ofrecen soluciones. Los Modelos de Lenguaje (LLMs) entrenados con una gran cantidad de datos textuales tienen un profundo entendimiento del lenguaje, lo que permite una traducción fluida entre personas que hablan diferentes idiomas. Los LLMs superan a los métodos tradicionales basados en reglas, mejorando la precisión y calidad. Este artículo explica cómo construir un traductor utilizando LLMs y Hugging Face, una destacada plataforma de procesamiento del lenguaje natural.

Desde la instalación de la biblioteca hasta una aplicación web fácil de usar, aprenderás a crear un sistema de traducción. Aprovechar los LLMs desbloquea infinitas oportunidades para una comunicación efectiva entre diferentes idiomas, llenando las brechas en nuestro mundo interconectado.

Objetivos de Aprendizaje

Al finalizar este artículo, podrás:

  • Comprender cómo importar y utilizar los transformers de Hugging Face y los modelos de OpenAI para realizar las tareas.
  • Crear tu propio traductor en cualquier idioma y ajustarlo según las necesidades de los usuarios.

Este artículo fue publicado como parte del Data Science Blogathon.

Comprender los Traductores y su Importancia

Los traductores son herramientas o sistemas que convierten texto de un idioma a otro, preservando el significado y contexto. Nos ayudan a cerrar la brecha entre personas que hablan diferentes idiomas y posibilitan una comunicación efectiva a escala global.

La importancia de los traductores es evidente en diversos ámbitos, como los negocios, los viajes, la educación y la diplomacia. Ya sea traduciendo documentos, sitios web o conversaciones, los traductores facilitan el intercambio cultural y fomentan la comprensión mutua.

Recientemente me enfrenté al mismo problema cuando fui de viaje a un lugar donde no entendía el idioma y ellos no entendían el mío, pero finalmente lo logré con Google Translation. (haha)

Resumen de OpenAI y Hugging Face

No hace falta presentar a OpenAI, es un conocido grupo de investigación con enfoque en inteligencia artificial. Han creado modelos de lenguaje como la serie GPT y la API de Modelos de Lenguaje. Estos modelos han cambiado la forma en que se realizan las traducciones y otros trabajos de procesamiento del lenguaje natural.

Existe otra plataforma llamada Hugging Face que ofrece una variedad de modelos y herramientas de procesamiento del lenguaje natural. Para trabajos de traducción, proporcionan modelos pre-entrenados, opciones de ajuste fino y tuberías simples. Hugging Face se ha convertido en una fuente fundamental para desarrolladores e investigadores de PLN.

Ventajas de Usar LLMs para la Traducción

Los Modelos de Lenguaje, como el GPT de OpenAI y el T5 de Hugging Face, han revolucionado el campo de la traducción. Aquí tienes algunas ventajas de usar LLMs para la traducción:

  • Comprensión Contextual: Los LLMs han sido entrenados con una gran cantidad de datos textuales, lo que les permite capturar significados y contextos sutiles.
  • Mayor Precisión: Los LLMs han mejorado significativamente la calidad de la traducción en comparación con los métodos tradicionales basados en reglas.
  • Soporte Multilingüe: Los LLMs pueden manejar la traducción entre múltiples idiomas, lo que los hace versátiles y adaptables.
  • Aprendizaje Continuo: Los LLMs pueden ajustarse y actualizarse con nuevos datos, mejorando continuamente la calidad de la traducción.

Ahora, sumerjámonos en el proceso paso a paso de construir un traductor utilizando LLMs y Hugging Face.

Construyendo un Traductor

Instalando las Bibliotecas Requeridas

Para comenzar, primero necesitamos instalar las bibliotecas necesarias para realizar las tareas.

Abre tu entorno de Python preferido (yo lo he hecho en el entorno base). Puedes crear un nuevo entorno ejecutando el comando python -m venv “nombre del entorno”. Estamos instalando transformers y datasets para cargar desde Hugging Face. Puedes ejecutar estos comandos en tu cuaderno de Jupyter o en la terminal.

%pip install sacremoses==0.0.53
%pip install datasets
%pip install transformers
%pip install torch torchvision torchaudio
%pip install "transformers[sentencepiece]"

Configuración del modelo T5-Small con Hugging Face

Como se mencionó anteriormente, utilizaremos los modelos de Hugging Face en nuestro proyecto. Específicamente, utilizaremos el modelo T5-Small para la traducción de texto. Aunque existen otros modelos disponibles en los modelos de traducción de Hugging Face, nos enfocaremos en el modelo T5-Small. Para configurarlo, utiliza el siguiente código:

Antes de configurar el T5-Small, importamos algunas de nuestras bibliotecas instaladas.

# importar las bibliotecas

from datasets import load_dataset
from transformers import pipeline

Estamos guardando el modelo en cache_dir, por lo que no es necesario descargarlo repetidamente.

# Crear un pipeline para el modelo T5-Small y guardarlo en cache_dir

t5_small_pipeline = pipeline(
    task="text2text-generation",
    model="t5-small",
    max_length=50,
    model_kwargs={"cache_dir": '/Users/tarakram/Documents/Translate/t5_small' },
)

Traducción de texto con T5-Small

Ahora, vamos a traducir algún texto utilizando el modelo T5-Small:

Nota: Una desventaja del modelo T5-Small es que no admite todos los idiomas. Sin embargo, en esta guía, demostraré el proceso de uso de modelos de traducción en nuestros proyectos.

# De inglés a rumano
t5_small_pipeline(
    "traducir del inglés al rumano: ¡Hola, ¿cómo estás?"
)

# De inglés a español

t5_small_pipeline(
    "traducir del inglés al español: ¡Hola, ¿cómo estás?"
)

# como sabemos que el modelo no es compatible con muchos idiomas, está limitado a 
# pocos idiomas solamente

El t5_small_pipeline generará traducciones para el texto dado en el idioma objetivo especificado.

Mejorando la traducción con OpenAI’s LLMs

Aunque el modelo T5-Small cubre múltiples idiomas, podemos mejorar la calidad de la traducción aprovechando los LLMs de OpenAI. Para hacer esto, necesitamos una clave de API de OpenAI. Una vez que tengas la clave, puedes proceder con el siguiente código:

# importar las bibliotecas
import openai
from secret_key import openapi_key
import os
# Ingresa tu clave de OpenAI aquí
os.environ['OPENAI_API_KEY'] = openapi_key

# crear una función que tome el texto y pregunte el 
# idioma de origen y el idioma objetivo

def traducir_texto(texto, idioma_origen, idioma_objetivo):
    
    respuesta = openai.Completion.create(
        engine='text-davinci-002',
        prompt=f"Traduce el siguiente texto de {idioma_origen} a {idioma_objetivo}:\n{texto}",
        max_tokens=100,
        n=1,
        stop=None,
        temperature=0.2,
        top_p=1.0,
        frequency_penalty=0.0,
        presence_penalty=0.0,
    )

    traduccion = respuesta.choices[0].text.strip().split("\n")[0]
    return traduccion

# Obtener la entrada del usuario
texto = input("Ingresa el texto para traducir: ")
idioma_origen = input("Ingresa el idioma de origen: ")
idioma_objetivo = input("Ingresa el idioma objetivo: ")

traduccion = traducir_texto(texto, idioma_origen, idioma_objetivo)

# Imprimir el texto traducido

print(f'Texto traducido: {traduccion}')

El código proporcionado configura una función de traducción utilizando los LLMs de OpenAI. Envía una solicitud a la API de OpenAI para la traducción y recupera el texto traducido.

Creando una aplicación web de traductor con Streamlit

Para hacer que nuestra traducción sea accesible mediante una interfaz fácil de usar, podemos crear una aplicación web de traductor utilizando Streamlit. Aquí tienes un ejemplo de código:

# importar las bibliotecas
import streamlit as st
import os
import openai
from secret_key import openapi_key
# Ingresa tu clave de OpenAI aquí
os.environ['OPENAI_API_KEY'] = openapi_key

# Definir la lista de idiomas disponibles
idiomas = [
    "Inglés",
    "Hindi",
    "Francés",
    "Telugu",
    "Albanés",
    "Bengalí",
    "Bhojpuri",
    # Agrega más idiomas según sea necesario, si quieres
    ]
    
# crear una función

def traducir_texto(texto, idioma_origen, idioma_objetivo):
    respuesta = openai.Completion.create(
        engine='text-davinci-002',
        prompt=f"Traduce el siguiente texto de {idioma_origen} 
                a {idioma_objetivo}:\n{text}",
        max_tokens=100,
        n=1,
        stop=None,
        temperature=0,
        top_p=1.0,
        frequency_penalty=0.0,
        presence_penalty=0.0
    )

    traduccion = respuesta.choices[0].text.strip().split("\n")[0]
    return traduccion

# Aplicación web de Streamlit
def main():
    st.title("Traduce mi texto")

    # Texto de entrada
    texto = st.text_area("Ingresa el texto para traducir")

    # Menú desplegable de idioma de origen para seleccionar los idiomas
    idioma_origen = st.selectbox("Selecciona el idioma de origen", idiomas)

    # Menú desplegable de idioma objetivo para seleccionar los idiomas
    idioma_objetivo = st.selectbox("Selecciona el idioma objetivo", idiomas)

    # Botón de traducción
    if st.button("Traducir"):
        traduccion = traducir_texto(texto, idioma_origen, idioma_objetivo)
        st.markdown(f'<p style="color: blue; font-size: 25px;"> 
                    {traduccion}</p>', unsafe_allow_html=True)

if __name__ == '__main__':
    main()

Este código utiliza la biblioteca Streamlit para crear una aplicación web. Los usuarios pueden ingresar el texto a traducir, seleccionar los idiomas de origen y destino, y hacer clic en el botón “Traducir” para obtener la traducción. Aquí hay algunas salidas para familiarizarse.

Las traducciones se utilizan de muchas maneras; aquí hay algunas historias de éxito de la traducción en aplicaciones del mundo real:

  • Google Translate es un servicio de traducción ampliamente utilizado que utiliza LLMs para proporcionar traducciones precisas en múltiples idiomas.
  • DeepL Translator es conocido por sus traducciones de alta calidad y se basa en LLMs para lograr resultados precisos y naturales.
  • Los sistemas de traducción de Facebook emplean LLMs para facilitar la comunicación fluida entre diferentes idiomas en la plataforma.
  • Los sistemas de traducción automática de voz aprovechan LLMs para habilitar la traducción en tiempo real de lenguaje hablado, beneficiando a conferencias internacionales y teleconferencias.

 Conclusión

Este artículo resume los pasos para crear un traductor utilizando Hugging Face y los LLMs de OpenAI. Se enfatiza el valor de los traductores en el mundo moderno y los beneficios que aportan al romper las barreras del idioma y promover una comunicación global eficiente. Ahora te toca desarrollar tus propios sistemas de traducción utilizando LLMs y plataformas como Hugging Face.

Conclusiones clave

  • Los Modelos de Lenguaje, como GPT-3 o 4 de OpenAI y T5 de Hugging Face, han transformado el campo de la traducción; ofrecen comprensión contextual, precisión mejorada, soporte multilingüe y la capacidad de aprender y adaptarse continuamente según el contexto.
  • Con Hugging Face, puedes acceder fácilmente a modelos pre-entrenados, ajustarlos para tareas específicas y aprovechar tuberías listas para usar para diversas tareas de Procesamiento del Lenguaje Natural (NLP), incluida la traducción.
  • Al aprovechar los LLMs y construir traductores, podemos fomentar la comprensión global, facilitar la comunicación intercultural y promover la colaboración e intercambio en diversos ámbitos.

Aquí está el enlace del proyecto: GitHub

Puedes conectar conmigo en: Linkedin

Preguntas frecuentes

Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Nuevo estudio revela vulnerabilidades ocultas en la inteligencia artificial

En el panorama de rápido desarrollo de la IA, la promesa de cambios transformadores abarca un sinfín de campos, desde...

Noticias de Inteligencia Artificial

Multimodal AI Inteligencia Artificial que puede ver y escuchar

La inteligencia artificial (IA) ha recorrido un largo camino desde su inicio, pero hasta hace poco, sus capacidades s...

Inteligencia Artificial

Rendimiento máximo de IA las últimas actualizaciones de Adobe aceleradas por las GPU de NVIDIA mejoran los flujos de trabajo para millones de creativos.

La IA generativa está ayudando a los creativos de diversas industrias a dar vida a ideas a una velocidad sin preceden...

Inteligencia Artificial

Protegiendo el futuro de nuestros practicantes cultivando la próxima generación en medio del avance corporativo de la IA

Durante mi enseñanza en el Master en Gestión de la Asia Pacific ESSEC en el vibrante campus de Singapur, nos adentram...

Inteligencia Artificial

Las mejores herramientas de Data Warehousing en 2023

Un almacén de datos es un sistema de gestión de datos para informes, análisis y almacenamiento de datos. Es un almacé...

Inteligencia Artificial

40+ Herramientas de IA Geniales que Deberías Comprobar (noviembre de 2023)

DeepSwap DeepSwap es una herramienta basada en inteligencia artificial para cualquiera que quiera crear videos e imág...