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:
- Difusión estable XL en Mac con cuantificación avanzada de Core ML
- Los desarrolladores buscan OpenUSD en la era de la IA y la digitalización industrial
- 3 prácticas emergentes para una IA generativa responsable
- 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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- INDIAai y Meta se unen Abren camino para la innovación y colaboración en IA
- Investigadores demuestran pagos digitales cuánticos ‘incondicionalmente seguros
- En el Festival de Wagner, la nueva tecnología revela una brecha de liderazgo
- Eso es gracioso, pero los modelos de IA no entienden la broma.
- Esta herramienta podría proteger tus imágenes de la manipulación de IA
- La SEC le está dando a las empresas cuatro días para informar ciberataques
- La Evolución del Desarrollo de Software Desde Waterfall hasta Agile, DevOps y más allá