AI 번역 진행도 그래프

어제 셀프호스팅 Discourse 서버에서 AI 번역을 활성화했습니다. 모든 것이 잘 진행되고 있습니다… 거의.

번역 진행률 그래프가 새로고장되지 않거나 부정확합니다. 현재 제가 보고 있는 내용은 다음과 같습니다:

이 그래프는 2026년 2월 23일 이후의 모든 게시글이 99% 번역되었음을 시사합니다.

이것은 부정확합니다. 해당 기간 동안 게시글은 약 3,000개입니다. 번역 로그에 따르면 현재 약 6일 전의 게시글을 처리하고 있습니다.

그래서 다음 사항에 대해 아시는 분이 계신가요?

  • 이 그래프의 새로고장 주기는 무엇인가요?
  • 번역 대기 중인 게시글을 위한 데이터 탐색기 쿼리는 무엇인가요?
  • 번역된 게시글을 위한 데이터 탐색기 쿼리는 무엇인가요?
  • 오류/사유로 인해 번역 시도가 되었지만 실패한 게시글을 위한 데이터 탐색기 쿼리는 무엇인가요?

미리 감사합니다.

대형 사이트에서 페이지가 타임아웃되는 문제가 발생하여 이 페이지를 캐시해야 했습니다.

번역은 기본적으로 두 단계로 이루어집니다:

  1. 게시물의 원본 언어 감지
  2. 모든 다른 언어로 번역

초기에는 사이트가 대부분 1단계에 머물러 있게 됩니다. 이 번역 진행률 페이지에서 처음에는 이 단계를 표시했지만, 피드백에서 "정보량이 너무 많다"고 하여 이후 제거했습니다.

그럼에도 불구하고, 이는 좋은 피드백입니다. 진행률 페이지의 캐시와 로케일 감지 정보의 부재로 인해 프로세스 초기에 사용자 경험이 매우 나빠지고 있습니다.

마지막으로, 백필(backfill) 속도를 매우 보수적으로 설정했습니다. 예산에 따라 이를 높이는 것이 좋습니다.

더 단순한 보고 방식을 고려해 보시는 것을 제안합니다.

제 이해에 따르면, 번역 프로세스는 두 단계로 작동합니다:

  1. 대상이 되는 주제 데이터 번역.
  2. 대상이 되는 게시물 데이터 번역.

관리 및 보고의 관점에서 저는 현재 진행 중인 작업보다는 대상 작업량 대비 전체적인 진행 상황에 더 관심이 있습니다. 구성된 번역 대상성 규칙에 기반한 보고서를 보고 싶습니다.

예를 들어:

상태

백필(Backfill) 설정은 2026년 2월 23일 이후 생성된 모든 콘텐츠를 번역하도록 구성되었습니다.

영역 총계 대상 번역 완료 완료율
주제 25,000 540 450 83%
게시물 400,000 3,700 800 22%

실패한 번역

게시물 ID 이유
34543 xxxx 줄에 잘못된 문자 형식

현재 그래프는 운영 활동 사항을 표시하고 있는 것으로 보이며, 이는 분명히 유용합니다. 그러나 제가 정말로 이해하고 싶은 것은 대상 작업 중 얼마나 많은 부분이 완료되었는지에 대한 것입니다.

개인적으로는 언어별 완료율에 큰 관심이 없습니다. 주제나 게시물은 번역되었거나, 아니면 그렇지 않은 것뿐입니다. 저에게 핵심 질문은 구성된 백로그(미처리 작업) 중 얼마나 많은 부분이 성공적으로 처리되었는지에 있습니다.

이 방식은 모든 언어 조합에 걸친 진행 상황을 추적하는 대신 집계된 개수에 초점을 맞추므로 데이터베이스 측면에서도 더 유리해 보입니다.

언어별 보고가 여전히 유용하다면, 이를 필터를 통해 노출할 수 있을 것입니다. 관리자가 특정 언어를 선택하면 해당 언어에 대해서만 동일한 진행 상황 테이블을 볼 수 있게 하는 방식입니다.

단순히 몇 가지 생각입니다.

p.s.

현재 캐시 유효 기간은 얼마입니까?

위에서 나열된 보고서를 만들기 위해 데이터 탐색기 SQL 작업을 진행해 왔습니다. 저는 SQL 전문가가 아니지만, 아래 쿼리는 정상적으로 작동합니다. 아래 쿼리를 사용하면 이 수준의 정보를 제공할 수 있습니다.

번역 상태 보고서

영역 대상 번역 완료 번역 예정
토픽 540 450 90
게시물 3,700 800 2900

토픽:

-- 설정:
-- 번역 설정에 맞게 SQL 업데이트
-- 백필할 일수 - Interval 'xxx'
-- 무시할 카테고리 - Category_id NOT IN ()
-- 토픽 유형 - 일반 또는 private_message
--
-- 번역 상태:
--  번역할 토픽 총 개수: 'and topics.locale' where 문 두 개 모두 주석 처리
--  번역되지 않은 토픽: topics.locale is null 문만 주석 해제
--  번역된 토픽: topics.local = 'en' 문만 주석 해제

SELECT count(distinct topics.id)
     FROM topics
     JOIN posts  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--   AND  topics.locale = 'en'
--   AND  topics.locale is null

게시물:

-- 설정:
-- 번역 설정에 맞게 SQL 업데이트
-- 백필할 일수 - Interval 'xxx'
-- 무시할 카테고리 - Category_id NOT IN ()
-- 토픽 유형 - 일반 또는 private_message
--
-- 번역 상태:
--  번역할 게시물 총 개수: 'and posts.locale' where 문 두 개 모두 주석 처리
--  번역되지 않은 게시물: posts.locale is null 문만 주석 해제
--  번역된 게시물: posts.locale = 'en' 문만 주석 해제

SELECT count(*)
     FROM posts
     JOIN topics  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--     AND  posts.locale = 'en'
--     AND  posts.locale is null

@LotusJeff 피드백 정말 감사합니다!

여기서 몇 가지 지적하신 내용을 정리해 두었고, 곧 개선할 예정입니다™ (아마도 7월쯤).

DE 쿼리에 대해서는 더 정확한 답변을 드리기 위해 내일 다시 말씀드리겠습니다.

내일이라는 말이 좀 오래 걸렸네요…

데이터 탐색기 쿼리로만 답을 드리는 것도 생각해 봤지만, 번역 진행률 그래프를 개선할 필요가 있다고 동의하며, 지금이 적절한 시기라고 생각합니다.

지금까지 진행한 사항에 대한 간단한 업데이트를 공유합니다:

로딩 :skull:

화려한 외관상 문제이지만, 항상 좋은 변화입니다.

콘텐츠 유형별 캐싱된 시간 및 진행률

게시물(post) 때문에 이 페이지의 로딩 시간이 매우 길어질 것입니다. 이미 캐시(2시간)가 있으며, 이를 표시할 예정입니다. 이제 게시물과 주제(topic) 외에도 더 많은 작업을 수행하므로, 그것들에 대한 진행률도 함께 표시합니다.

불완전할 때의 모습 예시

각 콘텐츠 유형별 로케일(locale)별 세부 분석

이 수준의 세부 정보를 쿼리하는 데는 실제로 시간이 많이 소요되며, 항상 볼 필요가 없는 정보이므로 관리자가 보고 싶어 할 때만 표시합니다.


이제 사용 가능하므로, 사이트를 업데이트하시면 모든 준비가 끝난 것입니다.

최근 며칠간 출장 중이어서 오늘 밤에야 업데이트를 할 수 있었습니다.

이전보다 훨씬 유용하고 스스로 설명이 되는 것 같습니다. 번역되는 내용을 한눈에 파악할 수 있는 개요가 좋습니다. 주제와 게시물별로 세부 사항으로 드릴다운할 수 있는 기능도 유용합니다.

주제/게시물 내 ‘대상(Eligible)’ 항목의 도움말 아이콘 내용이 약간 어색해 보입니다. 현재 "이 언어로 이미 존재하는 콘텐츠 제외"라고 표시되어 있는데, 이는 번역 대기 중인 전체 인구(대상 콘텐츠 수)를 나타내야 합니다. 사소한 조정 사항입니다.

번역 상태 페이지를 개선해 주셔서 감사합니다. 정말 잘하셨습니다.

이제 과거 일수 대신 특정 날짜를 기준으로 번역을 설정할 수 있다면, 주제와 게시물의 번역 불일치 문제를 해결할 수 있을 것입니다. 그렇게 되면 주제와 게시물의 날짜를 일치시키기 위해 번역 설정을 수동으로 조정할 필요가 없게 됩니다.

동의합니다. 해당 주제에 대해 의견을 남기겠습니다.