`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Sergey Petrenko

Цікаві завдання: переклад складного документа

0 
 

Мабуть, головна зміна, яка відбулася у мене у зв'язку з широким використанням LLM, – зникли неможливі завдання. Будь-яка складність або завдання, пов'язані з великою кількістю інформації або автоматизацією чогось рутинного, тепер сприймаються як своєрідний виклик – а ну, як з цим впоратися?

З іншого боку, звичайно, іноді в розпал боїв з Claude Code відчуваєш себе героєм мультика про крила і ноги – «краще день втратити, потім за дві години долетіти». Набагато частіше виходить навпаки.

Ось досить скромний приклад. Потрапив тут великий файл з технічним керівництвом, який треба було перекласти. Потрапив він не мені. Але, дивлячись на виснажливий процес перекладу docx-файлу з картинками, виносками й таблицями, складно було не захотіти допомогти.

Зрозуміло, кілька сотень сторінок на десятки мегабайт в жоден перекладач не запхаєш. Переклад по частинах передбачає виснажливий процес копіювання і вставки, причому щоразу збивається форматування, а картинки вимагають особливої обробки – адже виносні написи на схемах повинні бути точно позиціоновані.

У загальних рисах завдання було зрозумілим відразу – запустити Claude Code і перекладати через нього. На відміну від звичайного чату, йому можна показати файл і вказати, що перекладати його треба розділами, щоб не втрачати контекст. Але я вже звик починати вирішення завдань з «установчої» чат-сесії з LLM – як правило, витрачені десятки хвилин на такий мозковий штурм з формулюванням рішень обертаються солідною економією або навіть несподіваним розв'язанням проблеми зовсім з іншого боку.

Так вийшло і тут – Claude відразу сказав, що docx-файл це по суті архів з XML всередині (це я знав, тому і розраховував на успіх всієї справи) і додав, що всі текстові поля (ті самі виноски) там теж прописані. Тому процес нескладний – розпакувати файл, витягнути з xml всі елементи, перекласти їх текстовий вміст, замінити ним оригінальний вміст і запакувати назад.

Звичайно, не все так просто. Точно було зрозуміло, що великий файл навіть поетапно сам Claude без переповнення контексту не перекладе. Але тут вже я можу генерувати ідеї – в такій ситуації штатним рішенням є винести об'ємну за контекстом операцію для виконання субагентом, а головний процес буде тільки координувати процес. Оскільки у кожного екземпляра субагента свій незалежний контекст, практично можна не турбуватися про його переповнення – будь-який розділ на кілька сторінок завідомо поміститься, навіть з урахуванням місця на глосарій. Так, оскільки текст технічний і містить багато термінів, важливо правильно та однаково перекладати всі терміни.

Знову ж таки – все не так просто, диявол знайде, в яких деталях сховатися, особливо при недосконалості технічних та інших рішень. Наприклад, Claude не знає, як створювати своїх власних агентів і робить просто великі промпти. Або вміє вказати агенту, щоб той, зустрівши новий термін, позначив його, але передбачити обробку таких позначок забув – довелося нагадати. Люди теж недосконалі – вже кілька поколінь користувачів в очі не бачили друкарської машинки, але звичку відбивати відстані пробілами якось набули. А для машини це значущий символ, через який рядок у документі не збігається з перекладом.

У підсумку комплекс виглядав наступним чином:

  • python-скрипт, що парсує docx-файл. Після його роботи в робочій директорії вийшов xml вихідного документа, вихідний текст кожного розділу в md-форматі, і json-файл, що містить дані про всі текстові написи.
  • субагент translator, який отримував на вхід глосарій, md-файл для перекладу (або фрагмент json з текстовими блоками), перекладав і записував результат перекладу в такий же md-файл для кожного розділу.
  • python-скрипт asseble_docx, який, як зрозуміло з назви, збирав перекладений контент в єдиний docx-файл.
  • власне, сам Claude Code, який цим всім керував – запускав перший скрипт, передавав завдання субагенту, перевіряв виконання і запускав збирач. Це так зараз гладко описано, а насправді частина рядків залишилася неперекладеною, крім написів на картинках збірка ламалася на списках і таблицях – в цілому, результівний файл створювався приблизно 18 разів. Не рахуючи тестових запусків на парі розділів, перш ніж результат став близьким до правильного. Все одно залишилася деяка кількість проблем. Наприклад, українська мова в середньому довша за англійську, тому частину текстових боксів доведеться збільшувати вручну. Десь загубилося форматування жирним шрифтом тощо. Але це в цілому дрібниці, які набагато простіше виправити вручну.

Зате в сухому залишку маємо – технічний документ на 250 сторінок зі схемами й таблицями задовільно перекладений за 4 години, включаючи неквапливий мозковий штурм. Скільки днів/ тижнів пішло б на такий переклад живим перекладачем – навіть не хочу собі уявляти.

Цікаві завдання: переклад складного документа

Стратегія охолодження ЦОД для епохи AI

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT