Diferència entre revisions de la pàgina «Traducció castellà-català»

De wikijoan
Salta a la navegació Salta a la cerca
 
Línia 84: Línia 84:
 
warnings.filterwarnings("ignore", message=".*MatMul8bitLt.*")
 
warnings.filterwarnings("ignore", message=".*MatMul8bitLt.*")
 
</pre>
 
</pre>
 +
 +
Resultat:
 +
<pre>
 +
$ cat ~/projectes/josep_pla_a_fondo_joaquin_soler_serrano_cat.txt
 +
 +
...
 +
Però vostè és com don Pío, com Baroja.
 +
Sí.
 +
Partidari de la boina.
 +
La boina serveix molt... és excel·lent per viatjar.
 +
En tota mena de vehicles.
 +
És molt bo, sí.
 +
Tinc un barret.
 +
Ah, sí.
 +
Vostè va portar molt de temps un bombí.
 +
Sí, quan era jove.
 +
Ara en tinc un que em va comprar Berges a Londres, un Oxfordion Colossal.
 +
Però ja està passat de moda, una mica de moda.
 +
Hem de comprar un Borsalino ara.
 +
No li sembla a vostè?
 +
Molt bé, don José.
 +
Moltes gràcies.
 +
De tot.
 +
I felicitats anticipades pels 80.
 +
Moltes gràcies.
 +
I espero que pels 90.
 +
Ja no, no, no.
 +
No em desitjo tant de mal.
 +
Mercés.
 +
</pre>
 +
 
{{Autor}}, octubre 2026
 
{{Autor}}, octubre 2026

Revisió de 10:00, 10 oct 2026

Introducció

Tinc una rtx 5060 ti 16gb. Quin model local puc fer servir per traduir del castellà al català?

Cercant models locals de traducció per a una RTX 5060 Ti.

Ho comprovo ràpidament, perquè aquests models canvien sovint.

Amb 16 GB de VRAM tens marge de sobres. Jo provaria, per aquest ordre:

- salamandraTA-7b-instruct (BSC / Projecte AINA): és el que triaria primer. Està fet a Barcelona específicament per a traducció, amb el català com a llengua central, i té llicència Apache 2.0. Amb 7B de paràmetres hi cap bé quantitzat (Q8 o fins i tot més) a la teva targeta. Si vols alguna cosa molt lleugera i ràpida, hi ha també la versió salamandraTA-2B.

- TranslateGemma 12B (Google): l’alternativa generalista. El català és una de les llengües que admet, i la versió 12B ocupa uns 8 GB a Ollama, així que et queda memòria per al context. S’instal·la amb ollama pull translategemma:12b. En els benchmarks, la 12B supera el Gemma 3 de 27B genèric. La versió 27B (uns 17 GB) no et cap sencera a la GPU; no val la pena. 
local translator +3

- Traductor de Softcatalà o Apertium: no són LLM, però per al parell castellà–català, que són llengües molt properes, donen resultats molt bons, són rapidíssims i ni tan sols necessiten GPU. Bona opció per a grans volums de text.

Instal·lació

mkdir traduccio_cast_cat
cd traduccio_cast_cat
python3 -m venv venv
source venv/bin/activate
pip install torch --index-url https://download.pytorch.org/whl/cu128
pip install transformers accelerate bitsandbytes sentencepiece protobuf

La línia de cu128 és important: les RTX 50 necessiten un PyTorch compilat amb CUDA 12.8 o superior; amb el pip install torch per defecte et pot donar error o no fer servir la GPU.

script tradueix.py

I ara ja puc fer la traducció:

python tradueix.py entrada.txt sortida.txt --target Catalan

Tenim el script tradueix.py:

$ cat tradueix.py 
#!/usr/bin/env python3
"""Tradueix un fitxer de text del castellà al català amb salamandraTA-7b-instruct.

Ús:
    python tradueix.py entrada.txt sortida.txt
    python tradueix.py entrada.txt sortida.txt --bits 4      # menys VRAM, més ràpid
    python tradueix.py entrada.txt sortida.txt --target Valencian
"""

import argparse
import re
import sys
from datetime import datetime

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

MODEL_ID = "BSC-LT/salamandraTA-7b-instruct"
MAX_CHARS = 1200  # els paràgrafs més llargs es parteixen per frases
...

Concretament:

python tradueix.py ~/projectes/josep_pla_a_fondo_joaquin_soler_serrano.txt ~/projectes/josep_pla_a_fondo_joaquin_soler_serrano_cat.txt --target Catalan

Carregant BSC-LT/salamandraTA-7b-instruct (8 bits)...
...
MatMul8bitLt: inputs will be cast from torch.bfloat16 to float16 during quantization
1537/1537 paràgrafs
Fet: /home/joan/projectes/josep_pla_a_fondo_joaquin_soler_serrano_cat.txt

La primera vegada que s'executa descarrega el model.

Missatge per pantalla:

estic executant el script, i durant la sortida estic llegint el següent missatge que es repeteix contínuament: "MatMul8bitLt: inputs will be cast from torch.bloat16 during quantization". Significa alguna cosa? És dolent?

No és dolent, és un avís inofensiu de la llibreria bitsandbytes. Diu que el model treballa internament en bfloat16 i que, a cada capa quantitzada a 8 bits, ha de convertir les dades a un altre format (float16) per fer la multiplicació. La traducció surt igual de bé; l’únic efecte és una petita pèrdua de velocitat i el soroll a la pantalla.

Si el vols silenciar, afegeix això al principi de tradueix.py, just després de import sys:

python
import warnings
warnings.filterwarnings("ignore", message=".*MatMul8bitLt.*")

Resultat:

$ cat ~/projectes/josep_pla_a_fondo_joaquin_soler_serrano_cat.txt

...
Però vostè és com don Pío, com Baroja.
Sí.
Partidari de la boina.
La boina serveix molt... és excel·lent per viatjar.
En tota mena de vehicles.
És molt bo, sí.
Tinc un barret.
Ah, sí.
Vostè va portar molt de temps un bombí.
Sí, quan era jove.
Ara en tinc un que em va comprar Berges a Londres, un Oxfordion Colossal.
Però ja està passat de moda, una mica de moda.
Hem de comprar un Borsalino ara.
No li sembla a vostè?
Molt bé, don José.
Moltes gràcies.
De tot.
I felicitats anticipades pels 80.
Moltes gràcies.
I espero que pels 90.
Ja no, no, no.
No em desitjo tant de mal.
Mercés.

creat per Joan Quintana Compte, octubre 2026