Какая задача театра кукол является главной? Чем детский театр отличается от взрослого? Зачем кукольный спектакль взрослым? Какие премьеры нас ожидают? Ответы на эти и другие вопросы узнаем 22 декабря у гостя редакции «БИЗНЕС Online» — художественного руководителя «Экият» Ильгиза Зайниева.
Ильгиз Зайниев, художественный руководитель театра кукол «Экият»
В ноябре 2021 года были объявлены номинанты на национальную театральную премию «Золотая маска». Пять номинаций в разделе «Кукольный театр» получила работа театра кукол «Экият» «Адәмнәр» («Люди») худрука Ильгиза Зайниева, которая рассказывает о голоде в Поволжье в начале 1920-х. В основу спектакля положена повесть Галимджана Ибрагимова «Люди». «Адәмнәр» может выиграть «Золотую маску» как лучший кукольный спектакль, за работу режиссера в кукольном театре (Зайниев), работу художника в кукольном театре (Сергей Рябинин), работу актера в кукольном театре (Дилюс Хузяхметов и Альбина Шагалиева).
Театр кукол «Экият» был создан в 1934 году как Первый государственный интернациональный театр кукол. С 1959-го театр кукол размещался в здании церкви Сошествия Святого Духа, с 2012 года начал показывать спектакли в новом здании на улице Петербургской. Это здание стало возводиться по инициативе первого президента РТ Минтимера Шаймиева, строилось 3,5 года и обошлось бюджету в 1,3 млрд рублей. Новое здание театра является одним из крупнейших среди кукольных театров России.
Репертуар театра включает в себя более 40 спектаклей различного жанра и стиля на русском и татарском языках, среди которых «Гуси-лебеди», «Красная шапочка», «Волшебные сны Апуша», «Буратино», «Муха-цокотуха», «Цветик-семицветик», «Приключения Чебурашки», «Су анасы» («Водяная»), «И, кызык Шурале!» («О, забавный Шурале»), «Камыр батыр», «Мактанчык Этэч» («Хвастливый Петух»). В театре ставились произведения Нины Гернет, Самуила Маршака, Льва Кожевникова, Шарля Перро, Елизаветы Тараховской, Нурихана Фаттаха, Нэби Даули, Туфана Миннуллина, Равиля Бухараева, Бориса Вайнера, Рената Хариса, Гульшат Зайнашевой и др.
Театр ведет активную деятельность в России и за рубежом. С 1974 года является коллективным членом международного союза кукольных театров — УНИМА, принимал участие в международных фестивалях в Германии, Франции, Турции, Болгарии, Румынии, Финляндии, на Украине, в Беларуси, Азербайджане, Казахстане, Таджикистане. На международном фестивале театров кукол «Ортеке» в Алма-Ате (2011) спектакль «Камыр батыр» получил диплом за лучшее музыкальное оформление. Спектакль «Су анасы» («Водяная») был удостоен сразу трех дипломов: за лучший актерский ансамбль, лучшую работу художника и лучшее музыкальное оформление на международном фестивале театров кукол «Рабочая лошадка» (Набережные Челны, 2012).
Каждые три года на сцене театра проводятся спектакли кукольных театров – участников международного театрального фестиваля тюркских народов «Науруз». В сентябре 2013-го в Казани прошел первый международный фестиваль театров кукол «Шомбай-fest», и театр «Экият» был удостоен диплома в специальной номинации министерства культуры РТ «За высокий уровень организации и проведения фестиваля», а также двух дипломов в номинациях «За лучшее пластическое решение» и «За лучшее музыкальное оформление спектакля» за постановку «Три дочери».
В апреле 2014 года был открыт музей театра. В 2016-м состоялся II международный фестиваль театров кукол «Шомбай-fest», в котором приняло участие 14 театров России и ближнего зарубежья. Татарский государственный театр кукол «Экият» был удостоен дипломов «За лучшую режиссерскую работу» (И. Зиннуров, спектакль «Ханума» А. Цагарели), «За лучшую актерскую работу» (Н. Егорова, роль Ханумы).
А вы бывали в кукольном театре? Чему научили вас куклы?
Задавайте свои вопросы Ильгизу Зайниеву здесь и сейчас!
Зайниев Ильгиз Газинурович родился 23 мая 1987 года в деревне Карасу Аксубаевского района РТ. Окончил Казанский государственный университет культуры и искусств (курс Ф. Бикчантаева) (2008), режиссерский курс Казанского государственного университета культуры и искусств (курс Ф. Бикчантаева) (2013).
Еще в студенческие годы начал активно писать для театра. Один из наиболее востребованных татарских драматургов.
Несколько раз становился лауреатом и призером конкурса «Новая татарская пьеса». Дебютировал как драматург в театре им. Камала с пьесой «Поговорим о любви» (2006). Всего по его пьесам в республиканских, российских и зарубежных театрах идет около 30 спектаклей на казахском, уйгурском, марийском и башкирском языках.
Режиссер Камаловского и Кариевского театров. Поставил несколько спектаклей в Набережночелнинском театре кукол. Один из них, спектакль «Сак-Сок», стал номинантом национальной театральной премии «Золотая маска».
2019–2020 — главный режиссер татарского государственного театра кукол «Экият».
С января 2020 года по настоящее время — художественный руководитель татарского государственного театра кукол «Экият».
Метрические книги и тетради о родившихся и бракосочетавшихся евреях по городу Москве и уездным городам Московской губернии за вторую половину XIX — начало XX века. Главархив Москвы
С октября 2021 года сервис пополняют не только православными метрическими книгами, но и записями других конфессий. Так, на сайте уже есть исламские, иудейские, католические и евангелическо-лютеранские записи. Все они доступны на русском языке.
В декабре прошлого года Главархив Москвы запустил онлайн-сервис «Моя семья», благодаря которому все желающие могут узнать больше о своих предках. Сервис включил в себя сведения из всех метрических книг, которые хранятся в московском архиве, — на данный момент опубликованы более семи миллионов страниц. Количество интернет-пользователей ресурса растет с каждым днем, и сегодня его аудитория составляет более трех миллионов человек.
«Одна из самых частых причин, почему горожане обращаются в архив, — это поиск сведений о своих предках. Если горожанам интересно выяснить семейную историю до 1917 года, то здесь нельзя обойтись без помощи метрических книг. Раньше для работы с ними нужно было приезжать в архив. С открытием сервиса найти всю необходимую информацию стало возможно не выходя из дома. Сейчас в “Моей семье” доступно уже более семи миллионов страниц метрических записей, и каждый месяц мы пополняем их количество. Здесь уже собраны православные, иудейские, исламские, католические и лютеранские метрические книги, а в следующем году мы добавим записи армяно-григорианской церкви и данные старообрядцев», — рассказал начальник Главного архивного управления города Москвы Ярослав Онопенко.
В первую очередь в сервисе начали выкладывать метрические книги православных церквей, так как эти записи чаще всего запрашивают горожане. Жители получили доступ к метрическим книгам более 1400 храмов. Записи в них вели с 1772 по 1917 год. Сведения рассказывают о рождении, браке и смерти жителей Москвы и Московской губернии с конца XVII века до 1917 года. Именно церкви до 1917 года выполняли функции современных отделов ЗАГС — вели записи актов гражданского состояния. Так как православных книг в архиве очень большое количество, новые записи из них добавляются в сервис каждый месяц. Чтобы найти данные о своих предках, нужно знать их полное имя, год рождения, название церкви, где их крестили, или адрес, по которому они родились. Также для поиска желательно знать имена родителей разыскиваемых предков.
Почти 10 процентов пользователей сервиса — жители других государств. Материалы онлайн-сервиса просматривают пользователи из Швеции, Китая, Великобритании, Австралии, Ирландии, Бельгии, Японии, Аргентины, Канады, Таиланда и других стран — всего жители 50 государств. Активнее всего онлайн-сервисом «Моя семья» пользуются жители из Германии, за ними следуют граждане Беларуси, Швеции, Франции и Великобритании.
В связи с международным интересом с октября этого года «Мою семью» пополняют не только православными метрическими книгами, но и записями других конфессий. Так, в сервисе опубликовали все исламские метрические книги, которые хранятся в Главархиве. Их можно прочитать на русском языке. Эти книги вели в двух соборных мечетях. Первую построили в Москве в первой четверти XIX века, вторую — в 1904 году в Выползове переулке в Мещанской части Москвы.
Онлайн-сервис «Моя семья» начинает пополняться метрическими книгами мировых религий
28 ноября Главархив опубликовал иудейские метрические книги по Москве и уездным городам Московской губернии за 1870–1918 годы. Они также доступны на русском языке. Сохранившиеся в фонде Московской хоральной синагоги книги и тетради отдельно предназначались для регистрации рождений, бракосочетаний, разводов и смертей. До 1890-х годов их вели только в Москве. Это связано с тем, что жители поселений, где не было казенных раввинов, должны были обращаться к раввинам ближайших городов. Однако к концу XIX века число иудеев в Московской губернии увеличилось, и с 1890-х годов там также стали регистрировать актовые записи.
Истории московских семей: Главархив опубликовал иудейские метрические книги
К католическому Рождеству 25 декабря пользователи получили доступ к почти 100 метрическим книгам католических и евангелическо-лютеранских церквей Москвы. Самые ранние из них датируются 1694 годом. Большинство книг можно прочитать на русском языке, но ранние записи сделаны на латинском и немецком. В начале прошлого века католические метрические книги вели в церкви Святого Людовика и римско-католической Петропавловской церкви. Записи о лютеранах заполняли в евангелическо-лютеранских церквях Святого Михаила и Святых Апостолов Петра и Павла.
Узнать о своих предках католиках и лютеранах теперь можно на сайте Главархива Москвы
Помимо метрических книг в онлайн-сервисе «Моя семья» доступны ревизские сказки, аналоги современных переписей населения, и исповедные ведомости — посемейные списки прихожан церкви. Помимо россиян, в ревизские сказки включали иностранцев, которые приняли российское подданство. Исповедные ведомости, которые сохранились в Главархиве, относятся только к православным церквям Москвы и Московской губернии со второй четверти XVIII века до 1860-х годов.
Узнать о предках: в онлайн-сервисе «Моя семья» разместили ревизские сказки
По ревизским сказкам можно узнать полный состав семьи и возраст ее членов. Сейчас в онлайн-сервисе размещено более 420 тысяч страниц таких переписей, в которых отражена информация о купцах, мещанах, крестьянах и ремесленниках. Такие документы очень ценны для генеалогического поиска. В среднем ревизии проводились раз в 10 лет и реже. С 1795 до 1858 года их проводили шесть раз. Особенность ревизских сказок в том, что туда заносились сведения только о представителях податных сословий — крестьянах, мещанах, купцах, цеховых, поскольку эти документы составляли для последующего обложения налогами. Особые ревизские сказки были для духовного сословия. А вот дворяне туда не включались совсем.
В исповедных ведомостях писали про всех членов семьи, кроме детей в возрасте до одного года. Благодаря этим документам можно узнать полный состав семьи, возраст ее членов и место, где они жили. Сейчас в онлайн-сервисе доступно почти 700 тысяч страниц исповедных ведомостей. Продолжается их оцифровка и размещение на сайте. Исповедные ведомости были ежегодным отчетным церковным документом. В них указывалось, кто пришел на исповедь, кто причащался. Помимо имен там записывали место проживания, родственные отношения внутри каждой семьи и возраст прихожан. Например, «крестьяне деревни Ивановской», среди которых могли быть «Иван Иванов, 35 лет; жена его Ольга Васильева, 29 лет; сын их Петр, 10 лет». В исповедные ведомости заносили всех прихожан церкви, даже тех, кто ни разу не был на исповеди.
Выявляя особенности грамматики башкирского языка, постараемся провести аналогию между ним и русским языком и тем самым разъяснить главные морфологические и синтаксические отличия двух языков, принадлежащих к разным группам. Начнем с морфологических особенностей частей речи.
Для начала нужно отметить, что в башкирском языке всего 11 частей речи:
1) исем — имя существительное,
2) сифат — имя прилагательное,
3) һан — имя числительное,
4) алмаш — местоимение,
5) рәуеш — наречие,
6) ҡылым — глагол,
7) бәйләуес — послелог,
теркәүес — союз,
9) киҫәксә — частица,
10) ымлыҡ — междометие,
11) мөнәсәбәт һүҙ — модальное слово
Как видим, в башкирском языке, в отличие от русского, присутствуют послелог и модальное слово, речь о которых, соответственно, пойдет ниже.
В данном языке имя существительное так же отвечает на вопросы кто? что?( кем? ни? нимә? кемдәр? ниҙәр? нимәләр?) Но существенным отличием является то, что одушевлёнными в башкирском языке считаются только люди. Все остальные объекты живой, например, животные, а также неживой природы, являются неодушевленными, и, соответственно, отвечают на вопрос что? Кроме этого, в языке отсутствует категория рода, род можно определить только по лексическому значению слова. Например, род таких слов, как бабай — старик, әбей — старуха, можно определить только зная их лексическое значение.
Таким образом, категория одушевленности-неодушевленности и категория рода резко отличаются от русского варианта.
Как и в русском языке, башкирские существительные бывают собственными и нарицательными. Имена собственные так же пишутся с большой буквы.
Для образования множественного числа имен существительных к ним присоединяются такие окончания, как -лар –ләр, дар –дәр, тар –тәр, -ҙар –ҙәр. Окончания, в которых присутствует гласная а считаются твердыми, и они присоединяются к словам, в основе которых преобладают твердые гласные, такие, как а, о, у, ы, е. Окончания со специфической башкирской гласной ә принято считать мягкими, поэтому они присоединяются к словам, в которых есть мягкие гласные, например, ү, и, ю, е, ә, ө, я. Конечная буква слова так же влияет на окончание. Так, например, множественное число слова малай (мальчик) образуется присоединением к слову окончания –ҙар. На выбор окончаний и всевозможных послелогов влияет такое специфическое башкирское правило, как закон сингармонизма, речь о котором пойдет в следующей главе.
В башкирском языке существует такая категория, как принадлежность имен существительных. Как и в русском, принадлежность можно выразить и с помощью слов мой, твой, наш. Но в башкирском языке для этого используются специальные притяжательные окончания. Они могут присоединяться к существительным, субстантивированным прилагательным, числительным, местоимениям, глаголам, причастиям, частично — модальным словам. В этом заключается первый способ обозначения принадлежности. Вторым способом является совместное употребление притяжательных местоимений и притяжательных окончаний, что делает язык более насыщенным и выразительным в стилистическом плане. Сущность третьего способа заключается в прибавлении окончаний —ныҡы, —неке с фономорфологическими вариантами -ноҡо, -нөкө, -дыҡы, -деке, -доҡо, -дөкө, -тыҡы, -теке, -тоҡо, -төкө, -ҙыҡы, -ҙеке, -ҙоҡо, -ҙөкө к слову, которое семантически обозначает то, чему принадлежит предмет.
Например,
әсәйҙеке — то, что принадлежит матери, материн,әсәй — мать;
атайҙыҡы — отцово, атай — отец;
минеке — мой, мин — я.
Как можно заметить, категорию принадлежности можно выразить тремя способами, в то время как русский язык располагает лишь двумя- использованием притяжательных местоимений и присоединение к существительным таких притяжательных суффиксов, как –ин, -ий, -ов.
Традиционно в башкирском языке выделяют шесть падежей. Хотя и количество падежей как в русском, так и в башкирском, одинаково, всё же отличия присутствуют. Так, присутствуют такие специфические падежи, как местно-временной и исходный. Местно- временной падеж похож на русский предложный и всегда идет с предлогом в или на. Исходный падеж обозначает объект или пункт, с которого началось действие. В каждом падеже слова имеют свои собственные окончания, которые также зависят от мягкости или твердости гласных в слове и от конечного звука.
Ещё одной специфической чертой башкирского языка является то, что в предложении даже существительное может выступать в роли сказуемого, при этом одновременно выражая и лицо. Пример: Мин эшсе. — Эшсемен. — Я рабочий (ед.ч.).
Глагол в башкирском языке выражает то же самое грамматическое значение, как и в русском. Он может характеризоваться такими же показателями, как модальность, наклонение, переходность-непереходность, лицо и число, залог, время. Он употребляется только в качестве сказуемого как основной или вспомогательный глагол. Наклонений у глагола может быть не три, как в русском языке, а целых пять. К трем наклонениям, таким, как повелительное, изъявительное и сослагательное, добавляются условное и желательное. В желательном наклонении глагол выражает желание говорящего путем присоединения частицы -ка к слову. Условное наклонение же следует переводить с помощью союза если, выражающего условие (если придет).
Глаголы могут стоять в основном, страдательном, возвратном, совместном и понудительном. Возвратный залог обозначает действие, которое направлено на самого исполнителя. Это выражается переводом на русский язык глаголами с постфиксами -сь, -ся. Совместный залог выражает действие, выполняемое несколькими людьми (разговаривает, помогает). Понудительный залог также выражает действие, которое производится многими людьми, но в этом случае один приказывает, а другой выполняет (скажи, чтобы сделали; заставь, чтобы написали).
Местоимения в башкирском языке так же могут заменять существительные, как и в русском языке. Существуют точно такие же разряды местоимений, схожие с местоимениями русского языка. Они склоняются по падежам и имеют свои собственные окончания.
Имя числительное обозначает количество предметов, их порядок при счете. Они делятся на сложные и простые. В башкирском языке различают такие виды числительных, как порядковые, собирательные, разделительные, приблизительные и дробные. Разделительные числительные отвечают на вопрос по- скольку? Приблизительные же числительные имеют ответы на вопросы приблизительно сколько?
Имя прилагательное обозначает признак предмета и используется непосредственно с именем существительным. Разряды и степени сравнения прилагательных совпадают с их аналогами в русском языке. Такой разряд прилагательных, как притяжательный, заменяется категорией принадлежности.
Наречие обозначает признак предмета и отвечает на вопрос как? Разряды наречий также совпадают с русскими вариантами, только существует такой разряд- наречия уподобления- который выражает схожесть предмета с чем-либо и переводится с помощью союза как.
В башкирском языке отсутствуют предлоги, их значение передается послелогами. Они присоединяются к словам в определенных падежных формах и всегда следуют за ними. Послелоги делятся на различные группы, которые используются в определенном падеже.
Союзы служат для соединения слов в словосочетаниях или предложениях и также делятся на сочинительные и подчинительные.
Частицы в языке играют довольно значимую роль и добавляют тот или иной семантический оттенок словам. Как в русском языке, существуют схожие виды частиц, такие, как противительные, отрицательные, усилительные.
Модальные слова выражают различное отношение говорящего к предмету или явлению. Так, модальное слово может использоваться в качестве утверждения или отрицания (да, нет, верно, ладно), долженствования или необходимости(надо, необходимо), возможности (можно), побуждения (пожалуйста, извольте, добро пожаловать), предположения или сомнения (кажется, наверное, очевидно).
Междометия исполняют ту же самую функцию, как и в русской грамматике, выражая чувства говорящего. Они бывают как простыми, так и сложными по составу в зависимости от количества входящих в него элементов.
Текст принадлежит: Юлии Филипповой
Сложный был год: налоги, катастрофы, бандитизм и стремительное исчезновение малых языков. С последним мириться было нельзя…
Upd. 04.12.2021 — Наш телеграм канал
На территории России проживает большое количество народов, говорящих более чем на 270 языках. Около 150 языков насчитывает менее 1 тысячи носителей, а за последние 20 лет 7 языков уже исчезло.
Этот проект — мои «пять копеек» по поддержке языкового разнообразия. Его цель — помощь исследователям в области машинного перевода, лингвистам, а также энтузиастам, радеющим за свой родной язык. Помогать будем добыванием параллельных корпусов, — своеобразного «топлива», при помощи которого современные модели все успешнее пытаются понять человеческий язык.
Сегодняшние языки — башкирский и чувашский, с популяризаторами которых я в последнее время тесно общался. Сначала я покажу как в принципе извлечь корпус из двух текстов на разных языках. Затем мы столкнемся с тем, что на рассматриваемых языках предобученная модель не тренировалась и попробуем ее дообучить.
Экспериментировать мы будем в среде Colab’а, чтобы любой исследователь при желании смог повторить этот подход для своего языка.
I. Извлекаем параллельный корпус
Для выравнивания двух текстов я написал на python’е библиотеку lingtrain_aligner. Код у нее открыт. Она использует ряд предобученных моделей, можно подключать и свои. Одной из самых удачных мультиязыковых моделей сейчас является LaBSE. Она обучалась на 109 языках. Так как соотношение текстов смещено в сторону популярных языков, то для них качество эмбеддингов (эмбеддингом называют вектор чисел применительно к данным, которые он описывает) будет лучше.
Colab
Попробовать извлечь корпус на нужном языке можно в этом Colab’e. Дальше пройдемся по шагам более подробно.
Установка
Установим библиотеку командой
pip install lingtrain_aligner
После этого импортируем необходимые модули:
from lingtrain_aligner import splitter, aligner, resolver, metrics
Наши тексты (возьмем для примера главу из Гарри Поттера) разобьем на предложения при помощи модуля splitter. Затем создадим файл с данными для выравнивания (sqlite база данных) и загрузим в нее полученные предложения. За это отвечает модуль aligner.
lang_from = "en"
lang_to = "ru"
db_path = "alignment.db"
splitted_from = splitter.split_by_sentences(text1.split('n'), lang_from)
splitted_to = splitter.split_by_sentences(text2.split('n'), lang_to)
aligner.fill_db(db_path, lang_from, lang_to, splitted_from, splitted_to)
Для учета особенностей грамматики языка (например, особые виды кавычек, отсутствие пробелов и другая лингвистическая экзотика) нужно передать в splitter соответствующие параметры. Выровняем тексты при помощи следующей команды:
aligner.align_db(db_path,
model_name="sentence_transformer_multilingual_labse",
batch_size=200,
window=50,
batch_ids=[],
save_pic=False,
embed_batch_size=5,
normalize_embeddings=True,
show_progress_bar=True,
shift=0)
После первичного выравнивания для каждого предложения на английском будет найдено лучшее соответствие на русском. Для поддержки длинных текстов выравнивание идет батчами (отрезками). Между батчами есть нахлест (параметр window). Поток второго текста можно двигать относительно первого (параметр shift). Более подробно о механизме выравнивания можно почитать здесь.
Визуализация
Посмотрим на результат помощи модуля vis_helper:
from lingtrain_aligner import vis_helper
vis_helper.visualize_alignment_by_db(db_path,
output_path="alignment_vis.png",
batch_size=500,
size=(900,900),
lang_name_from=lang_from,
lang_name_to=lang_to,
batch_ids=[],
plt_show=True,
show_info=False)
print("score:", metrics.chain_score(db_path))
Метрика
Для оценки выравнивания я придумал метрику, логика которой находится в модуле metrics. Она оценивает насколько связанной получилась цепочка выравнивнивания. Цепочка без разрывов должна иметь score = 1, случайный набор точек будет иметь score = 0.
Разрешение конфликтов
Количество предложений в текстах сильно различается. Это связано как со стилем конкретного переводчика, так и с особенностями конкретного языка (например, есть тенденция перевода сложных русских предложений несколькими на китайском). Чтобы это побороть, нам нужно в определенных местах склеить предложения либо первого текста, либо второго. Этим занимается модуль resolver. Он в несколько проходов разрешает найденные конфликты. Самые большие конфликты должны быть разрешены вручную, для этого есть UI, о нем ниже. В нашем же случае качество первичного выравнивания говорит о том, что все должно быть хорошо. Убедимся в этом, поставив все выпавшие строки на место.
steps = 3
for i in range(steps):
conflicts, rest = resolver.get_all_conflicts(db_path,
min_chain_length=2+i,
max_conflicts_len=6*(i+1),
batch_id=-1)
resolver.resolve_all_conflicts(db_path, conflicts, model_name, show_logs=False)
if len(rest) == 0:
break
Посмотрим на визуализацию:
Результат
Картинка красивая, но посмотрим на результат. Из базы можно выгрузить корпуса по отдельности или в формате TMX.
from lingtrain_aligner import saver
output_path="/content"
saver.save_plain_text(db_path, os.path.join(output_path, f"corpora_{lang_from}.txt"), direction="from", batch_ids=[])
saver.save_plain_text(db_path, os.path.join(output_path, f"corpora_{lang_to}.txt"), direction="to", batch_ids=[])
saver.save_tmx(db_path, os.path.join(output_path, f"corpora.tmx"), lang_from, lang_to)
Отрывок из corpora.tmx:
Разрешив конфликты, мы из 344 предложений на английском и 372 на русском получили параллельный корпус из 332 строк. Как было сказано ранее, таким же образом можно выравнивать книги полностью.
Так как художественный перевод подчас граничит с искусством, то некоторые пары все равно нуждаются в дополнительной валидации. Все зависит от конкретного перевода. Кроме того, модель может ошибаться на коротких предложениях и предложениях с большим количеством названий и имен.
Иногда переводчик склонен даже «улучшить» оригинал. Например, в одном из переводов «Властелина колец» можно встретить такое описание:
Тень улыбки промелькнула на бледном, без кровинки, лице Боромира.
И оригинал:
Boromir smiled.
II. Fine-tuning для нового языка
Вернемся к малым языкам. Модель хоть и хорошая и из коробки «понимает» более ста языков, но с новым будет работать неудовлетворительно. Давайте попробуем.
Colab
Проделанные мной эксперименты и код вы можете посмотреть в этом Colab’e.
Башкирский язык
Попробуем выровнять рассказ «Батя Ялалетдин» Мустая Карима на башкирском и русском языках. Проделаем все те же действия, что и в первой части, получим следующее:
Видим, что качество значительно хуже, хотя и довольно неплохое. С чем это связано? С тем, что LaBSE была обучена в том числе и на небольшом корпусе татарского языка. Эти языки являются родственными и иногда можно получить перевод с одного на другой заменой некоторых букв.
Если мы сейчас запустим механизм разрешения конфликтов, то он, конечно же, отработает. Однако будет значительное количество некорректных разрешений. Так как нас это не устраивает, давайте разбираться как можно модель дообучить и улучшить качество корпуса.
Fine-tuning
Сначала вспомним, как Google изначально тренировал свою модель. Задачей, которую модель оптимизировала, был translation ranking task. Из заданного набора переводов нужно было найти самый корректный (картинка из статьи):
В обертке над моделью, которую я использовал (а это очень популярная и удобная библиотека sentence_transformers) есть набор loss’ов, которые примерно это и делают.
Сначала установим зависимости:
pip install transformers sentencepiece sentence_transformers
Сделаем импорт и проинициализируем модель:
from sentence_transformers import SentenceTransformer, SentencesDataset, losses
from sentence_transformers.readers import InputExample
from sentence_transformers.evaluation import SentenceEvaluator
from torch.utils.data import DataLoader
model = SentenceTransformer('LaBSE')
Дообученную модель можно передать как параметр в методы выравнивания, так мы чуть позже и поступим.
Почитав документацию, я нашел несколько подходящих нам функций ошибок. Это MultipleNegativesRankingLoss, ContrastiveLoss и OnlineContrastiveLoss. В два последних необходимо передвать примеры с меткой 0 или 1. 1 — если пара строк является взаимным переводом и надо сблизить соответствующие вектора, 0 — если надо их растащить. MultipleNegativesRankingLoss работает похожим образом, по коду видно, что в этом лоссе для каждого примера из батча корректные переводы будут приближаться, а все остальные — отдаляться. Автор библиотеки порекомендовал использовать именно его, и в ходе экспериментов он действительно оказался эффективнее других.
Для дообучения нужно привести к необходимому виду свой датасет с парами переводов. Разумеется, перед обучением надо обратить внимание на качество датасета и почистить его. Для башкирского языка я пользовался данными, которые мне предоставили энтузиасты в лице Айгиза Кунафина и Искандера Шакирова. Это открытый русско-башкирский датасет.
train_examples = [InputExample(texts=[x['ba'], x['ru']], label=1) for x in train_dataset]
train_dataset = SentencesDataset(train_examples, model)
train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size)
train_loss = losses.MultipleNegativesRankingLoss(model=model)
После этого можно обучать модель, делается это просто:
num_epochs = 3
warmup_steps = math.ceil(len(train_dataloader) * 0.1 * num_epochs)
model.fit(train_objectives=[(train_dataloader, train_loss)],
evaluator=evaluator,
epochs=num_epochs,
evaluation_steps=1000,
output_path=model_save_path,
save_best_model=True,
use_amp=True,
warmup_steps=warmup_steps)
Так же можно в качестве evaluator’а передать свой класс. Он будет вызываться каждые evaluation_steps шагов, считать вашу метрику и рисовать графики. Я добавил класс ChainScoreEvaluator, который выравнивает и оценивает небольшие отрывки текста на рассматриваемых языках.
Так же надо заметить, что Colab хоть и бесплатный, но может выдавать недостаточно мощные для тренировки карточки. Это сказывается на размере батча и скорости обучения. В итоге я оформил подписку за $10 в месяц (примерно 750 рублей).
Улучшение
Дообучив в течение нескольких дней модель в Colab’e, получился следующий результат:
Такого качества уже хватает, чтобы более уверенно поставить на место выпавшие строки.
Чувашский язык
С чувашским языком все было гораздо сложнее, так как исходное качество было в разы хуже. Язык находится дальше от своих тюркских родственников, которые присутствуют в модели.
За датасет спасибо Александру Антонову, популяризатору чувашского языка. Русско-чувашский параллельный корпус можно найти здесь. В результате экспериментов удалось значительно улучшить качество:
Результат после автоматического разрешения конфликтов:
corpora.tmx
Чтобы вы смогли оценить качество этих моделей, я собрал Colab с их использованием. Преимущество Colab’а в том, что он предоставляет свои GPU, поэтому расчеты идут гораздо быстрее. В этом ноутбуке можно выбирать и другие языки, попробуйте.
Валидация
Отдельно скажу про проверку получившегося корпуса. Чтобы улучшить его качество, можно при помощи этой же модели посчитать расстояние между эмбеддингами (напомню, что это всего лишь вектор чисел соответствующий предложению) и отсечь самые далекие по смыслу пары.
Еще лучше привлечь носителей языка. Так поступили башкирские коллеги, написав бота, который дает на оценку пары предложений. Если владеете башкирским, то подключайтесь.
Обе модели можно попробовать здесь.
UI
Для ручного разрешения больших конфликтов и редактирования корпуса я написал UI. Подробнее о нем я рассказывал здесь, а выглядит он так:
В нем можно не только выравнивать и редактировать корпуса, но и делать из них параллельные книги.
Идеи
Проделанные эксперименты наверняка не являются самыми оптимальными. Качество можно улучшить, если добавить в датасет данные того же стиля, документы на котором необходимо будет выравнивать.
Так же можно использовать тот факт, что родственные языки обладают схожей грамматикой и лексикой с точностью до символов алфавита. Возможно, что при замене, например, кириллических букв на латинские, качество дополнительно возрастет (для того же чувашского). Это тоже предстоит попробовать.
Если у вас какие-то идеи по этому поводу, то буду рад, если поделитесь.
И да, чуть не забыл, — кто угадает, что за языки обозначены на обложке статьи?
Ссылки
- Русско-башкирский параллельный корпус
- Русско-чувашский параллельный корпус
- Код lingtrain_aligner
- Код UI
- Телеграм-группа сообщества
- Colab с экспериментами
- Colab для извлечения корпуса
- Фонд озеленения Марса