생성형 번역: 바람직하지 않은 동작 수정
2024년 8월 27일
8분 분량
이 게시물의 본론으로 들어가기 전에 제 아이들은 (평소에는) 예의 바르게 행동한다는 점을 분명히 언급하고 싶습니다. 이제 열여섯, 스물, 스물한 살이니 당연히 그래야 하죠. 하지만 항상 그랬던 것은 아닙니다. 아이들이 말하는 방식과 쓰는 단어를 수년 동안 '점잖게 교정'해 주고(아이들은 아니라고 하겠지만요!) 더 나은 사람이 되는 방법에 관한 모범을 보여줘야 했습니다. 끊임없이 올바른 방향으로 인도해 다음에는 더 잘 알도록 해야 했고요. 이게 번역과 무슨 관련이 있냐고요? 좋은 질문입니다! 잠깐 추억 여행을 떠나보죠.
요약
2023년 9월, 저는 AI가 어떻게 트라도스의 번역 엔진을 강화할지에 관한 글을 썼습니다. 당시 저는 치킨 런을 인용해 순진한 닭들의 천적인 파이 만드는 기계에 트라도스 번역 엔진을 비유했습니다. 닭 대신 소스 텍스트를 엔진에 공급한다는 점과 파이 대신 번역문을 얻게 된다는 점은 다르지만요.
원게시물을 올린 지 얼마 지나지 않아, AI를 사용하여 기존 번역을 개선하거나 새 텍스트를 번역하는 생성형 번역 기능이 출시되었습니다. 목표는 이랬습니다.
- 포스트에디팅을 위한 번역 품질 향상.
- 포스트에디팅 작업을 줄여 생산성 향상.
- 출시 기간 단축.
이 모든 것이 더 나은 최종 결과물과 고객 만족으로 이어지길 바랐습니다. 우리 업계의 모든 사람은 적절한 프롬프트를 제공했을 때 AI가 기존 신경망 기계 번역 기능을 향상하거나, 더 나아가 대체할 수 있을지를 궁금해합니다. 이 질문에 대한 정답을 아직은 찾지 못한 것 같습니다. 하지만 다음과 같은 다양한 접근 방식을 통해 결과를 평가하고 번역 품질을 개선할 수 있었습니다.
- 번역 생성을 위해 LLM에 제공하는 프롬프트 조정. (참고: 5년 전만 해도 '프롬프트 엔지니어'라는 직책이 생길 줄은 아무도 몰랐습니다.)
- 번역에 쓸 용어를 LLM에 제공.
- 이전에 번역한 콘텐츠를 사용하여 번역의 스타일과 어조 결정.
- 사용자가 LLM에 맞춤형 지침을 제공하도록 허용.
‘나쁜’ 번역 수정
이제 아이들 이야기로 돌아오죠. 다음 스페인어 문구에서 영어로 번역하고 싶다고 가정해 봅시다.
Mis hijos son muy traviesos.
LLM에 이 문장 번역을 요청해 보죠. 제가 엔지니어링한 샘플 프롬프트는 이렇습니다(이상하더라도 넘어가 주세요).
스페인어 텍스트를 영어로 번역하고 싶어. 번역해야 할 텍스트는 <<< 그리고 >>> 안에 있어. 영어로 번역된 텍스트로만 응답해 줘.
텍스트는 이렇습니다.
<<<Mis hijos son muy traviesos.>>>
결과는 이렇습니다.
My children are very mischievous.(제 아이들은 매우 장난스럽습니다.)
저는 유쾌한 사람이라 제 아이들을 ‘my offspring(내 자손들)’이라고 부르곤 합니다. 그리고 ‘mischievous(장난스럽다)’는 핼러윈이라는 맥락이 아닐 때는 제가 잘 안 쓰는 단어이기 때문에 ‘badly behaved(행동이 짓궂다)'를 사용하는 게 낫겠습니다. 제가 선호하는 용어이므로, 이 용어를 LLM에 제공하겠습니다. 프롬프트는 이렇게 바뀝니다.
스페인어 텍스트를 영어로 번역하고 싶어. 번역해야 할 텍스트는 <<< 그리고 >>> 안에 있어. 영어로 번역된 텍스트로만 응답해 줘.
‘hijos’는 'offspring(자손들)’으로 번역해 줘.
‘traviesos’는 ‘badly behaved(행동이 짓궂다)’로 번역해 줘.
텍스트는 이렇습니다.
<<<Mis hijos son muy traviesos.>>>
새 결과물은 이렇습니다.
My offspring are very badly behaved.(제 자손들은 행동이 매우 짓궂습니다.)
완벽합니다! 아이들의 행동이 짓궂지 않다면 더 좋겠지만요. 이전에 마음에 쏙 드는 번역을 받은 적이 있다는 점에서 제가 원하는 독특한 번역 스타일이 있다고 가정해 봅시다. 새 프롬프트는 이렇습니다.
스페인어 텍스트를 영어로 번역하고 싶어. 번역해야 할 텍스트는 <<< 그리고 >>> 안에 있어. 영어로 번역된 텍스트로만 응답해 줘.
가져오고 싶은 이전 번역 스타일이 있는데, 바로 스페인어 ‘Mis hijos están muy felices.’가 영어로 ‘I have very happy children.(저에게는 아주 행복한 아이들이 있어요.)’이라고 번역된 경우야. 번역을 이 패턴에 맞춰줘.
텍스트는 이렇습니다.
<<<Mis hijos son muy traviesos.>>>
새 결과물은 이렇습니다.
I have very mischievous children.(저에게는 매우 장난스러운 아이들이 있어요.)
자랑할 만한 일은 아닐 수도 있지만, 옥상에서 날뛰는 귀여운 악마들을 주제로 하고 싶으니 LLM에 다른 요청을 해 보겠습니다.
스페인어 텍스트를 영어로 번역하고 싶어. 번역해야 할 텍스트는 <<< 그리고 >>> 안에 있어. 영어로 번역된 텍스트로만 응답해 줘.
모두 대문자로 번역해 줘.
텍스트는 이렇습니다.
<<<Mis hijos son muy traviesos.>>>
번역은 이렇습니다.
MY CHILDREN ARE VERY MISCHIEVOUS.(제 아이들은 매우 장난스럽습니다.)
지금까지 용어, 이전 번역, 맞춤형 지침을 활용하여 LLM에서 다른 결과물을 얻는 방법을 살펴보았습니다. 이제까지 살펴본 모든 내용은 단일 프롬프트로 결합할 수 있습니다.
스페인어 텍스트를 영어로 번역하고 싶어. 번역해야 할 텍스트는 <<< 그리고 >>> 안에 있어. 영어로 번역된 텍스트로만 응답해 줘.
‘hijos’는 'offspring(자손들)’으로 번역해 줘.
‘traviesos’는 ‘badly behaved(행동이 짓궂다)’로 번역해 줘.
가져오고 싶은 이전 번역 스타일이 있는데, 바로 스페인어 ‘Mis hijos están muy felices.’가 영어로 ‘I have very happy children.(저에게는 아주 행복한 아이들이 있어요.)’이라고 번역된 경우야. 번역을 이 패턴에 맞춰줘.
모두 대문자로 번역해 줘.
텍스트는 이렇습니다.
<<<Mis hijos son muy traviesos.>>>
결과물은 이렇습니다.
I HAVE VERY BADLY BEHAVED OFFSPRING.(저에게는 행동이 매우 짓궂은 자손들이 있어요.)
자랑할 만한 얘기는 정말 아닌 것 같은데, 어쨌든 아까 말한 대로 이제 사실도 아니니까요. ‘hijos’를 ‘angels(천사)’로 번역하는 것으로 다시 시도해 볼까요?
이게 저에게 어떤 의미가 있죠?
생성형 번역 기능은 위에서 설명한 기술을 모두 사용합니다. 생성형 번역을 프로젝트 워크플로우에 포함하면 번역 엔진과 사용자 지정 필드를 포함한 프로젝트 설정을 사용하여 다음의 작업을 수행합니다.
- 용어집: 용어 데이터베이스에서 소스 텍스트의 용어를 찾아 LLM에 전송합니다.
- 번역 메모리: 번역 메모리에서 매치 항목을 찾아 LLM에 예시 번역으로 제공합니다.
- 맞춤형 지침: 타깃 소비자, 어조 또는 길이 제한과 같이 번역 프로젝트에 정의된 특정 지침을 검색하여 LLM에 대한 프롬프트에 포함합니다.
이러한 기술을 활용하면 LLM이 더 나은 번역을 제공하도록 안내하기 때문에 포스트에디팅 작업이 줄어들어 번역 비용이 줄고 시장 출시 기간이 단축됩니다.