Discourse AI non riesce a tradurre un gran numero di post e argomenti

Ciao,

Ho abilitato Discourse AI sul nostro forum della community e ho iniziato il riempimento graduale in più lingue. Circa il 60% dei post e degli argomenti è stato tradotto, ma nel processo sto riscontrando MOLTI errori nella console (ai_translation_verbose_logs è abilitato) e ora il riempimento graduale si è quasi bloccato:

DiscourseAi::Translation: Failed to translate topic 563 to de: Validation failed: Title can't be blank, Fancy title can't be blank /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.3/

DiscourseAi::Translation: Failed to translate post 582 to pl_PL: Validation failed: Raw can't be blank, Cooked can't be blank /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.3/lib/a

La cosa strana è che:

  • I post e gli argomenti menzionati sembrano normali, hanno diversi tipi di titoli e corpi, sia semplici che complessi. Simili sono stati tradotti con successo.
  • Al secondo o terzo tentativo spesso vengono tradotti con successo.
  • Sto usando una persona personalizzata per i post, ma questo accade sia con la persona integrata di traduzione dei post sia con quella integrata di traduzione dei titoli degli argomenti.
  • Accade su tutti i modelli che ho testato: Gemini-2.5-flash (non thinking), Gemini-2.5-flash (thinking), GPT5 e GPT5-mini.
  • Accade su tutte le localizzazioni allo stesso modo (en, es, pt, de, pl_PL, fr, nl).

È possibile registrare i prompt completi e le risposte del modello per eseguire ulteriori debug?

Sto testando manualmente gli stessi prompt su tutti questi modelli e rispondono sempre con successo.

Ho trovato ai_api_audit_logs e penso di aver trovato il problema.

Quando viene inviata la traduzione, c’è una funzione get_max_tokens che assegna i token massimi in base alla lunghezza del testo.

Il problema è che viene consumata per lo più dal ragionamento. Vedi questo log di audit, il limite è stato impostato a 1000 e il ragionamento ha consumato l’intero 1000 prima ancora di iniziare a generare l’output.

Il limite per i modelli di ragionamento dovrebbe essere molto più alto.

data: {"id":"chatcmpl-CQ7XU4Ep16RClb7OZQAxOXN9JWgIG","object":"chat.completion.chunk","created":1760341544,"model":"gpt-5-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null}}],"usage":null,"obfuscation":"dPNNK7ojEf"}

data: {"id":"chatcmpl-CQ7XU4Ep16RClb7OZQAxOXN9JWgIG","object":"chat.completion.chunk","created":1760341544,"model":"gpt-5-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"length"}],"usage":null,"obfuscation":"dM2r"}

data: {"id":"chatcmpl-CQ7XU4Ep16RClb7OZQAxOXN9JWgIG","object":"chat.completion.chunk","created":1760341544,"model":"gpt-5-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":1075,"completion_tokens":1000,"total_tokens":2075,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":1000,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"j4"}

data: [DONE]

Sconsiglio semplicemente di utilizzare qualsiasi tipo di modello di pensiero per i compiti di traduzione.

https://www.reddit.com/r/LocalLLaMA/comments/1g7y74t/adding_a_thinking_turn_to_extend_llms_reasoning/

2 Mi Piace

La mia esperienza è esattamente l’opposto. Ho un set di istruzioni che voglio vengano seguite e che richiedono la comprensione del contesto, le quali vengono ignorate dai modelli non pensanti o applicate in situazioni errate. Ho appena tradotto un’intera applicazione in questo modo - >3000 stringhe, con modelli di ragionamento che danno risultati molto migliori.

Ho ridotto lo sforzo di pensiero a basso in base alle mie scoperte e ho ottenuto tutte le traduzioni. Ma credo che limitare i token di output in questo modo sia controproducente, poiché i modelli di pensiero non sono limitati dall’essere utilizzati nelle traduzioni e l’utente non ha idea del perché stia fallendo.

La soluzione potrebbe essere semplice come moltiplicare ulteriormente per 2 se l’LLM ha il pensiero abilitato. O esporre un moltiplicatore come opzione di configurazione.

2 Mi Piace

Abbiamo dovuto limitare max_tokens poiché il nostro utilizzo di output strutturati significava che molti modelli più piccoli potevano facilmente entrare in loop infiniti durante le traduzioni.

Credo che la versione più recente dell’API OpenAI Responses applichi max_tokens senza contare i token di pensiero, il che risolve questo problema.

Sto provando l’ultima versione di GPT-5. Ho riscontrato esattamente lo stesso problema con Gemini 2.5 Pro e 2.5 Flash. Perché non aumentare un po’ il limite?

Ho speso parecchio in tentativi falliti, di cui non sarei nemmeno venuto a conoscenza se non avessi abilitato il debug logging, e poi ho dovuto curiosare nel Data Explorer per trovare i log. Il tutto mentre ho utilizzato un creatore di modelli predefinito.

Ho disabilitato lo streaming e ha reso le cose molto migliori (e continua a funzionare anche ora)

1 Mi Piace

Abbiamo appena unito un aggiornamento che ti dà accesso a una nuova impostazione ai_translation_max_tokens_multiplier che per impostazione predefinita è 1.

Dovresti essere in grado di aumentarla a qualsiasi numero desideri per gestire il limite che stai riscontrando.

Questo argomento è stato chiuso automaticamente dopo 3 giorni. Non sono più consentite nuove risposte.