Cómo traducir documentos largos con un LLM local: fragmentos y comprobaciones
Tradujimos 3.179 palabras con un LLM local en LM Studio de tres maneras, y cada una ocultaba un error silencioso. El tamaño de los fragmentos, la configuración y las comprobaciones que los detectan.

La gente traduce documentos con un LLM local por una razón: el archivo no puede salir de su máquina. Un modelo local puede hacer el trabajo, pero te da texto plano, no un archivo traducido, y sus peores errores son silenciosos. En nuestra prueba, una sola solicitud para un extracto de 3.179 palabras devolvió el número correcto de párrafos y una señal de finalización limpia, pero un párrafo había perdido más de un tercio de su contenido y había ganado frases que no están en el original.
Respuesta breve: divide el texto en los límites de párrafo en fragmentos de unas 600 palabras, incluye un glosario de nombres y términos recurrentes en la instrucción del sistema, desactiva el modo de pensamiento del modelo y compara cada fragmento con su párrafo original párrafo a párrafo antes de confiar en él. Cada una de las tres formas en que ejecutamos la prueba falló en algún punto, y ningún fallo produjo un mensaje de error. Espera que un modelo de tamaño medio en un portátil tarde horas para un libro completo, y planea reconstruir el formato tú mismo.
Todo lo que sigue proviene de una ejecución el 23 de octubre de 2026: Qwen 3.6 27B (Q4_K_M GGUF) en LM Studio 0.4.8 en un Apple M4 Max con 64 GB de memoria, traduciendo el comienzo de Die Verwandlung de Kafka del alemán al inglés. El script de prueba, los resultados y ejemplos sin procesar de los fallos se pueden descargar gratis para que puedas repetirlo con tu propio modelo.
Cuándo un LLM local es la herramienta adecuada
Ejecuta la traducción localmente cuando las normas del documento, no la comodidad, tomen la decisión:
- un contrato de cliente, un acuerdo de investigación o una política de la empresa prohíben subir el archivo a un servicio externo;
- el texto es personal o confidencial y no puedes eliminar antes las partes sensibles; o
- necesitas procesar muchos archivos sin coste por documento y ya tienes el hardware adecuado.
Si no se aplica ninguna de estas condiciones, un modelo local suele ser el camino más lento hacia un resultado peor. Renuncias a tres cosas que ofrece un servicio de traducción de documentos: un archivo traducido en el formato original, un modelo más grande de lo que tu máquina puede alojar y un flujo de trabajo diseñado para la coherencia en todo un libro. Antes de elegir cualquiera de las dos rutas, revisa la lista de verificación de privacidad para la traducción de documentos. Cubre la autoridad para procesar el archivo, las copias de trabajo mínimas y qué hace un servicio con las cargas.
"Local" también necesita un significado preciso. El modelo se ejecuta en tu ordenador y, en nuestra prueba, las solicitudes solo fueron a localhost. Eso no te dice qué registra, actualiza o informa la aplicación que rodea al modelo. Si tus normas exigen pruebas de que nada sale del dispositivo, revisa la configuración y la política del propio entorno de ejecución, o ejecútalo en una máquina sin acceso a la red.
Qué probamos
Tradujimos los primeros 19 párrafos de Die Verwandlung (3.179 palabras en alemán) de la edición de Project Gutenberg, de dominio público. El alemán literario es una buena prueba de estrés: los párrafos son largos, las frases se anidan y los mismos personajes y cargos se repiten.
Las tres ejecuciones usaron el mismo modelo y la misma configuración: temperatura 0,2, un máximo de 12.000 tokens de salida y una ventana de contexto de 16.384 tokens. La instrucción pedía un párrafo en inglés por cada párrafo en alemán y nada más.
| Ejecución | Qué enviamos | Párrafos de salida (fuente: 19) | Palabras de salida | Tiempo |
|---|---|---|---|---|
| A. Por fragmentos | 6 fragmentos de unas 600 palabras, solo instrucción | 19 | 3,319 | 10,4 min |
| B. Por fragmentos + glosario + contexto | Los mismos fragmentos, un glosario de 7 términos y el párrafo de origen anterior marcado como "NO traducir" | 20 | 3,446 | 10,5 min |
| C. Una sola solicitud | Los 19 párrafos de una vez | 19 | 3,309 | 9,5 min |
Todas las ejecuciones terminaron con una señal de parada normal, y todas contenían un error silencioso distinto. La ejecución C omitió e inventó texto. La ejecución B tradujo texto que se le había indicado que omitiera. La ejecución A, la más limpia, asignó a un personaje la función equivocada en su último fragmento.
Fallo 1: Una gran solicitud omitió parte de un párrafo
La ejecución C terminó con normalidad y devolvió exactamente 19 párrafos. Una comprobación del recuento de párrafos la habría dado por válida. Sin embargo, el párrafo 6 volvió con 214 palabras frente a las 260 del original.
En el original, Gregor mira el reloj, se da cuenta de que ha perdido el tren y luego considera la posibilidad de llamar para decir que está enfermo: su jefe llegaría con el médico de la aseguradora de salud, que considera que todo el mundo está sano pero es reacio al trabajo, y Gregor admite que en realidad se encuentra bien, aparte de la somnolencia y un apetito inusual. La ejecución C tradujo la primera parte y luego omitió todo el pasaje sobre el día de baja, 98 de las 260 palabras alemanas del párrafo. En su lugar escribió que a Gregor "lo habrían despedido en el acto", que el auxiliar de oficina tiende "a ver todo lo que se le informa como una oportunidad para lucirse" y que ese pensamiento "le arrancó una sonrisa". Nada de eso está en el alemán.
La ejecución por fragmentos tradujo el mismo párrafo completo, con 267 palabras.
Una sola muestra no demuestra que las solicitudes largas siempre fallen. Sí muestra qué hay que comprobar: una solicitud larga única puede comprimir o inventar texto de forma silenciosa y aun así parecer estructuralmente completa. Un lector que no sepa alemán no tendría motivo para darse cuenta.
Fallo 2: El modelo tradujo el "contexto" que se le indicó que omitiera
Un consejo habitual es enviar el párrafo anterior con cada fragmento para que el modelo mantenga el hilo. En la ejecución B, lo añadimos al mensaje bajo la etiqueta "Contexto (ya traducido, NO traducir)".
En el fragmento 4, el modelo lo tradujo de todos modos. El fragmento devolvió cuatro párrafos para tres párrafos de origen, y el primero era una segunda traducción del último párrafo del fragmento 3. Unidos, el libro habría contenido ese párrafo dos veces, con una redacción diferente cada vez.
La regla práctica: si envías contexto, mantenlo fuera del texto que se pide traducir al modelo, mantenlo breve y comprueba el recuento de párrafos de cada fragmento. Si no puedes comprobarlo, omítelo.
Fallo 3: Un fragmento enviado solo asignó a un personaje la función equivocada
La ejecución A envió cada fragmento sin glosario y sin contexto. En los primeros cinco fragmentos funcionó bien: Prokurist se convirtió en "jefe de personal" en los 16 lugares en que aparecía. El sexto fragmento era un solo párrafo en el que el jefe de personal le grita a Gregor a través de la puerta. Visto de forma aislada, el modelo tradujo der Prokurist como "el viajante", que es el propio trabajo de Gregor. El recuento de párrafos coincidía y la proporción de longitud era 1,00, así que ninguna de las comprobaciones estructurales lo detectó.
En la ejecución B, que tenía el glosario en la instrucción del sistema y el párrafo anterior como contexto, el mismo párrafo usó correctamente "jefe de personal". Esta prueba no puede decir cuál de los dos lo corrigió. Como el contexto también causó el fallo 2, el glosario es el lugar más seguro para trasladar nombres y funciones de un fragmento a otro: es breve, está en la instrucción y se puede comprobar mecánicamente.
El flujo de trabajo que resistió
1. Extrae primero el texto plano del archivo
Un LLM local traduce texto, no archivos. Convierte el documento antes de empezar:
- DOCX o EPUB: exporta a texto plano o Markdown con un párrafo por bloque, manteniendo los encabezados como líneas separadas.
- PDF con capa de texto: extrae el texto y luego repara las líneas cortadas y la partición de palabras. Nuestra guía para corregir saltos de línea y partición de palabras del OCR cubre la misma limpieza. Un conversor como Docling puede producir Markdown a partir de PDF y archivos de Office.
- PDF escaneado: ejecuta primero el OCR. Si no estás seguro de si un PDF tiene texto utilizable, consulta Extracción de texto de PDF frente a OCR.
Mantén intacta la estructura de párrafos. Todas las comprobaciones posteriores dependen de que haya una correspondencia uno a uno entre los párrafos de origen y los traducidos.
2. Desactiva el modo de razonamiento y confírmalo
Muchos modelos abiertos actuales razonan antes de responder. En traducción, eso desperdicia tiempo y tokens de salida. En nuestra configuración, una solicitud de prueba de 200 tokens gastó 199 tokens en razonamiento y devolvió una respuesta vacía.
Probamos tres interruptores habituales. Añadir /no_think al prompt no hizo nada, y chat_template_kwargs con enable_thinking: false tampoco. Enviar "reasoning_effort": "none" en la solicitud desactivó el razonamiento: la respuesta informó de 0 tokens de razonamiento y devolvió la traducción directamente. Este parámetro no aparece en la página de finalizaciones de chat de LM Studio, así que trátalo como un comportamiento que observamos en la versión 0.4.8 con este modelo. Comprueba el recuento de reasoning_tokens en tus propias respuestas en lugar de fiarte de cualquier interruptor.
3. Dimensiona la ventana de contexto antes de los fragmentos
La ventana de contexto debe contener la instrucción, el fragmento y la traducción completa. En nuestras ejecuciones por fragmentos, un fragmento alemán de 500 a 670 palabras usó entre 800 y 1.500 tokens de entrada, según el glosario y el contexto, y entre 640 y 870 tokens de salida, así que unos pocos miles de tokens son suficientes. La única solicitud de 3.179 palabras necesitó 4.953 tokens de entrada y 3.930 tokens de salida.
Ollama establece su longitud de contexto predeterminada según la memoria disponible: 4k tokens por debajo de 24 GiB de VRAM, 32k de 24 a 48 GiB, y 256k con 48 GiB o más, según su documentación sobre la longitud de contexto consultada el 23 de octubre de 2026. Puedes aumentarla con OLLAMA_CONTEXT_LENGTH. En LM Studio, establece la longitud de contexto al cargar el modelo. Si un fragmento más su traducción no caben, la salida puede quedar truncada.
4. Divide en fragmentos en los límites de párrafo, unas 600 palabras
Nunca dividas dentro de un párrafo o una frase. Nuestros fragmentos apuntaban a 700 palabras y terminaban en el límite de párrafo más cercano, lo que produjo seis fragmentos de 243 a 667 palabras. Los fragmentos más pequeños cuestan poco: la ejecución A tardó 10,4 minutos frente a los 9,5 minutos de la solicitud única, y volver a ejecutar un fragmento fallido es barato.
Mantén la instrucción breve e idéntica para cada fragmento. La nuestra era: traduce al inglés, mantén exactamente un párrafo de salida por cada párrafo de entrada separados por una línea en blanco, y genera solo la traducción. Añade un glosario a la misma instrucción: una línea por nombre, título o término recurrente, con la forma Prokurist = chief clerk. Nuestra guía para crear un glosario de traducción cubre qué incluir. Los fragmentos cortos pierden la historia que los rodea, y el glosario es lo que la mantiene.
5. Comprueba cada fragmento antes de unirlos
Realiza tres comprobaciones en cada fragmento:
- Recuento de párrafos. La salida debe tener el mismo número de párrafos que la entrada. Esto detectó el fallo 2.
- Proporción de longitud por párrafo. Compara el recuento de palabras de cada párrafo traducido con el de su origen. Esto detectó el fallo 1, que el recuento de párrafos pasó por alto.
- Términos del glosario por párrafo. Donde aparece un término de origen, su traducción requerida debe aparecer el mismo número de veces. Esto detectó el fallo 3, que las otras dos comprobaciones pasaron por alto. Las lenguas con flexión requerirán cierto criterio aquí, porque un término alemán o ruso cambia de forma.
Para prosa del alemán al inglés, los párrafos de la ejecución A se mantuvieron entre 0,98 y 1,17 palabras de salida por palabra de entrada. El párrafo dañado de la ejecución C fue de 0,82. Establece tu propio rango comprobando algunos párrafos en los que confíes en tu par de idiomas; los valores predeterminados de nuestro script son un punto de partida, no un estándar.
Un párrafo marcado es donde hay que leer primero, no una prueba de error. Después lee la traducción en sí, especialmente nombres, números, negaciones y cualquier cosa sobre la que un lector actuaría. La lista de verificación de control de calidad de traducción de libros cubre esa revisión.
6. Reconstruye el documento
El modelo devuelve texto. Los encabezados, las notas al pie, las tablas, las imágenes, el diseño de página y los estilos deben volver a colocarse a mano o con una herramienta de conversión. Para un informe corto esto es menor. Para un libro con notas al pie y tablas puede llevar más tiempo que la traducción.
Cuánto tarda un libro entero
Nuestra ejecución por fragmentos tradujo 3.179 palabras en 10,4 minutos, unas 300 palabras por minuto en esta máquina. A ese ritmo, una novela de 90.000 palabras tardaría aproximadamente cinco horas de generación, antes de las comprobaciones y las repeticiones. Eso es aritmética simple a partir de una ejecución, no un benchmark. La velocidad cambia con el tamaño del modelo, la cuantización, el hardware, el par de idiomas y cuánto más esté haciendo la máquina.
El archivo del modelo ocupaba 17,5 GB en disco, y la caché de contexto y los búferes de tiempo de ejecución necesitan memoria adicional, así que una máquina necesita bastante más memoria libre que el tamaño del archivo. Un modelo más pequeño se ejecutará más rápido y con menos memoria, normalmente a costa de algo de calidad. Pruébalo con una muestra representativa antes de comprometerte con un libro entero. Nuestra guía sobre el mejor LLM para traducción explica cómo crear esa muestra y comparar modelos de forma justa.
LLM local o servicio de traducción de documentos
| Pregunta | LLM local | Servicio de traducción de documentos |
|---|---|---|
| ¿Puede el archivo salir de tu máquina? | No es necesario | Obligatorio |
| Qué se obtiene | Texto plano que tú vuelves a ensamblar | Un archivo traducido |
| Tamaño del modelo | Limitado por tu memoria | Limitado por el proveedor |
| Consistencia en todo un libro | Tu trabajo: glosario, fragmentación, comprobaciones | Integrado en algunos servicios |
| Coste por documento | Tu hardware y tu tiempo | Precio por documento o por palabra |
Si tus normas permiten subir el archivo, un servicio de documentos elimina la mayor parte del trabajo anterior. BookTranslator traduce archivos PDF, EPUB y DOCX completos y devuelve un archivo traducido, y sus preguntas frecuentes indican que los archivos subidos y el resultado de la traducción no se utilizan para entrenar modelos de IA. Es un servicio en la nube, así que no es una opción cuando el archivo debe permanecer en tu máquina. Si estás decidiendo entre ejecutar modelos tú mismo y pagar por un servicio, cuánto cuesta realmente la traducción con LLM muestra cómo presupuestar el lado de los tokens.
Obtén los archivos de prueba
Todos los archivos están en la carpeta /files/blog/translate-with-local-llm/:
local_llm_translation_test.py: la prueba completa contra la API local de LM Studio, con las tres ejecuciones. Apúntalo a otro modelo o texto de origen para repetir la prueba.check_translation.py: compara un texto de origen y una traducción párrafo a párrafo e imprime discrepancias en el número de párrafos, proporciones de longitud fuera de rango y términos del glosario faltantes (con--term "Prokurist=chief clerk"). Funciona con la salida de cualquier herramienta.results.csv: cada solicitud con sus recuentos de párrafos, recuentos de palabras, recuentos de tokens y tiempo.failure-examples.txt: el origen en alemán y la salida sin procesar del modelo para los tres fallos.
Ejecuta check_translation.py con los términos de tu glosario en cualquier traducción larga antes de confiar en ella. Tarda unos segundos y detectó los tres fallos de esta prueba. No puede decirte si una frase fluida es incorrecta, así que los párrafos señalados son el punto de partida de tu lectura, no el final.
Publicaciones relacionadas





