{"id":367216,"date":"2024-05-21T03:16:27","date_gmt":"2024-05-21T03:16:27","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=367216"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T03:16:27","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=367216","title":{"rendered":"<span>\u042f\u0437\u044b\u043a \u0442\u0432\u043e\u0439 \u2014 \u0434\u0440\u0443\u0433 \u0442\u0432\u043e\u0439. \u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0435\u043c \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0430, \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043d\u0438\u0433\u0438 \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/221\/408\/fe3\/221408fe3b3c54f3ece97703e0c32927.png\" alt=\"\u041c\u0430\u0442\u0435\u0440\u044b\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\" title=\"\u041c\u0430\u0442\u0435\u0440\u044b\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\" width=\"2677\" height=\"1519\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/221\/408\/fe3\/221408fe3b3c54f3ece97703e0c32927.png\"\/><\/p>\n<div><figcaption>\u041c\u0430\u0442\u0435\u0440\u044b\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0430\u043b\u044b\u0445. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0442\u0430\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043d\u0435\u0442 \u043d\u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430, \u043d\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043e\u0432, \u043d\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0443\u0442 \u0432 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0443 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0432 \u0438\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0440\u043e\u0433 \u0438\u0445 \u044f\u0437\u044b\u043a, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u0443\u0441\u0438\u043b\u0438\u044f \u043f\u043e \u0435\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u044d\u0442\u043e \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u0435\u0449\u0438, \u0442\u0438\u043f\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043d\u0438\u0433 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430.<\/p>\n<p>\u041c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f: <\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0449\u0438\u0435 \u0442\u0435\u043a\u0441\u0442 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 (\u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438).<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 lingtrain-aligner, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044f \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430. <\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 HuggingFace, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432\u0441\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 <strong>\u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f<\/strong> \u043d\u0430 \u0447\u0443\u0432\u0430\u0448\u0441\u043a\u043e\u043c, \u044f\u043a\u0443\u0442\u0441\u043a\u043e\u043c, \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u0432 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u043e\u0432 <a href=\"https:\/\/t.me\/kod_odin\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u043c<\/a>, \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<h2>\u0413\u043b\u0430\u0432\u0430 1. \u041e\u0431\u0443\u0447\u0430\u0435\u043c LaBSE \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c\u0443 \u044f\u0437\u044b\u043a\u0443<\/h2>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c LaBSE \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u0442 \u0444\u0440\u0430\u0437\u044b \u0442\u0438\u043f\u0430 \u00ab\u043a\u0430\u043a \u0434\u0435\u043b\u0430?\u00bb \u0438 \u00abhow are you?\u00bb \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u044b \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 (0.43.., 2.71&#8230;, 1.56.., &#8230;) \u2014 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438, \u043f\u0440\u0438\u0447\u0435\u043c \u0447\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u0444\u0440\u0430\u0437\u044b \u0431\u0443\u0434\u0443\u0442 <strong>\u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443<\/strong>, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u042f\u0437\u044b\u043a\u043e\u0432 \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0412\u043e\u0442 \u0438\u0445 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f60\/138\/683\/f60138683d871cd0b98e2eb70e532578.png\" alt=\"https:\/\/arxiv.org\/pdf\/2007.01852.pdf\" title=\"https:\/\/arxiv.org\/pdf\/2007.01852.pdf\" width=\"676\" height=\"717\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f60\/138\/683\/f60138683d871cd0b98e2eb70e532578.png\"\/><\/p>\n<div><figcaption><a href=\"https:\/\/arxiv.org\/pdf\/2007.01852.pdf\" rel=\"noopener noreferrer nofollow\">https:\/\/arxiv.org\/pdf\/2007.01852.pdf<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0415\u0441\u0442\u044c \u0440\u044f\u0434 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043d\u043e LaBSE \u0432 \u0446\u0435\u043b\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439. \u0414\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 encoder-\u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442 MTEB \u0438 \u0435\u0433\u043e <a href=\"https:\/\/huggingface.co\/spaces\/mteb\/leaderboard\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0439\u0442\u0438\u043d\u0433<\/a>, \u043e\u0446\u0435\u043d\u043a\u0443 \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Bitext Mining.<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u0442\u0430\u043a\u0438\u0435 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438 \u0438 \u0432\u044b\u0443\u0434\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0436\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043a\u043d\u0438\u0433\u0438 \u0438 \u0435\u0451 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443.<\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u044f\u0437\u044b\u043a\u043e\u0432 LaBSE \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0448\u0438\u0440\u043e\u043a, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0440\u0430\u0434\u0443\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u0441\u0435\u043c\u0435\u0439, \u044d\u0442\u043e \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0434\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u0433\u043e, \u043c\u043e\u043a\u0448\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0438\u043b\u0438 \u0438\u043d\u0433\u0443\u0448\u0441\u043a\u043e\u0433\u043e, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u042d\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0438 \u043e\u0431\u044a\u0435\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438. \u0411\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0442\u0430\u0442\u0430\u0440\u0441\u043a\u043e\u0433\u043e, \u043d\u043e \u0438\u0445 \u043e\u0431\u043e\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u0438 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438. <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441. \u041e\u0442\u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u0432\u0437\u044f\u0442\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043d\u043e\u0432\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c? \u0422\u0443\u0442 \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043f\u043e\u043c\u043e\u0449\u0438 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u043e\u0432. \u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0438\u043b\u0438\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u042d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0441\u0442\u0440\u0430\u0448\u043d\u043e \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u044e\u0434\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u043c\u043e\u043d\u043e-\u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0447\u0443\u0432\u0430\u0448\u0441\u043a\u043e\u0433\u043e, \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0445, \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u0433\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u0415\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u044b\u0441\u044f\u0447 \u043f\u0430\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0438\u043d\u0433\u0443\u0448\u0441\u043a\u043e\u043c. \u041f\u0440\u0438\u0437\u044b\u0432\u0430\u044e \u0432\u0430\u0441 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u0443\u0441\u0438\u043b\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u043c, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 HuggingFace. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430, \u0432 \u043e\u0434\u043d\u043e\u043c N \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u044f\u043a\u0443\u0442\u0441\u043a\u043e\u043c, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c, \u0442\u043e \u0432\u043e\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430:<\/p>\n<pre><code class=\"python\">from collections import defaultdict from datasets import Dataset, DatasetDict from glob import glob from tqdm import tqdm   def make_pairs(lang1, lang2, path1, path2):     data_1 = open(path1).read().splitlines()     data_2 = open(path2).read().splitlines()     print(f'Lengths: len(data_1):{len(data_1)}, len(data_2):{len(data_2)}')      train_items = defaultdict(list)     for item_1, item_2 in zip(data_1, data_2):         train_items[lang1].append(clean(item_1))         train_items[lang2].append(clean(item_2))     return train_items  #\u0447\u0438\u0441\u0442\u0438\u043c \u0442\u0435\u043a\u0441\u0442\u044b, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e   def clean(text):     text = text.replace(u'\\xa0', ' ')     return text  def make_dataset(items):     ds = DatasetDict({         'train': Dataset.from_dict(items)     })     return ds  #\u0442\u043e\u043a\u0435\u043d \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043d\u0430 HF def upload_dataset(ds, name):     ds.push_to_hub(name, token='you_hf_token') <\/code><\/pre>\n<pre><code class=\"python\">#\u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430 \u0432 \u043d\u043e\u0432\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 lang1 = 'sah' lang2 = 'ru'  #\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b path1 = '.\/parall_ykt.txt' path2 = '.\/parall_ru.txt'  pairs = make_pairs(lang1, lang2, path1, path2) dataset = make_dataset(pairs)  #\u0432\u0430\u0448 \u043b\u043e\u0433\u0438\u043d \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 #\u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 lingtrain, \u043d\u043e \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043c\u043d\u0435 \u0432 tg:@averkij upload_dataset(dataset, name='lingtrain\/yakut-russian')<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0440\u0443\u0441\u0441\u043a\u043e-\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441. \u041e\u0442\u043c\u0435\u0447\u0443 \u0437\u0434\u0435\u0441\u044c \u0410\u043d\u0434\u0440\u0435\u044f \u0427\u0435\u043c\u044b\u0448\u0435\u0432\u0430, \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u0442\u043e\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u043f\u0440\u0438\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u043c\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438, \u0442\u0430\u043a\u0436\u0435 \u0410\u043d\u0434\u0440\u0435\u0439 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0433 \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 \u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0430\u00bb \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0420\u043e\u0441\u0441\u0438\u0438, \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435.<\/p>\n<p>\u041a\u043e\u0440\u043f\u0443\u0441 \u0443\u0436\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0431\u043e\u043b\u044c\u0448\u0435 380 \u0442\u044b\u0441\u044f\u0447 \u043f\u0430\u0440. \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435, \u044d\u0442\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u0442\u044c \u0441\u0431\u043e\u0440 \u043a\u043e\u0440\u043f\u0443\u0441\u0430.<\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442:<\/p>\n<pre><code class=\"python\">LANG_1 = 'mhr' LANG_2 = 'ru'  DATASET_LANG_1 = 'mhr' DATASET_LANG_2 = 'rus'  ds = load_dataset('AigizK\/mari-russian-parallel-corpora', split='train')  def prepare_dataset(ds, feature_1, feature_2):     res = []     for item in ds:         res.append({LANG_1:item[feature_1], LANG_2:item[feature_2]})     return res          train_dataset_orig = prepare_dataset(ds,                                     feature_1=DATASET_LANG_1,                                     feature_2=DATASET_LANG_2)<\/code><\/pre>\n<p>\u0412 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<pre><code class=\"json\">{'mhr': '\u041c\u0430\u0440\u0434\u0435\u0436 \u0442\u043e\u043b\u0430\u0448\u044b\u043c\u0435 \u0433\u043e\u0434\u044b\u043c \u043c\u044b\u0439\u044b\u043d \u0432\u0443\u0439\u044b\u0448\u043a\u0435\u043c \u0438\u043a\u0442\u0435 \u043f\u043e\u0447\u0435\u0448 \u0432\u0435\u0441\u0435, \u043d\u0435\u043b\u0435 \u0448\u043e\u043d\u044b\u043c\u0430\u0448-\u0448\u0430\u043c\u044b\u0447 \u0442\u043e\u043b\u044b\u043d \u043f\u0443\u0440\u0430\u0442.',  'ru': '\u0412 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u043e\u0434 \u0448\u0443\u043c \u0431\u0443\u0440\u0438, \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c \u0438 \u043b\u0435\u0442\u0435\u043b\u0438 \u043e\u0434\u043d\u0430 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u043c\u044b\u0441\u043b\u0438.'}<\/code><\/pre>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LaBSE, \u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430 \u043f\u0430\u0440\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432, <strong>\u043a\u043e\u0442\u043e\u0440\u044b\u0445<\/strong> <strong>\u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435<\/strong> <strong>\u043d\u0435\u0442<\/strong>. \u0418\u043d\u0430\u0447\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0443\u0442\u0435\u0447\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0442\u0435\u0441\u0442\u0430\u0445, \u043d\u043e \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0442\u0430\u043a\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u044b (artamonov_mhr.txt \u0438 artamonov_ru.txt) \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 ChainScoreEvaluator:<\/p>\n<pre><code class=\"python\">db_path = f\"alignment_{LANG_1}.db\" evaluation_steps = 100  text1_input = \"mari\/artamonov_mhr.txt\" text2_input = \"mari\/artamonov_ru.txt\"  with open(text1_input, \"r\", encoding=\"utf8\") as input1:     text1 = input1.readlines() with open(text2_input, \"r\", encoding=\"utf8\") as input2:     text2 = input2.readlines()      evaluator = ChainScoreEvaluator(db_path,                                   LANG_1,                                   LANG_2,                                   text1,                                   text2,                                   model=model,                                   evaluation_steps=evaluation_steps                                 )<\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0438\u0436\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 lingtrain_aligner, \u043e \u043d\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439.<\/p>\n<p>\u041d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438 \u0438 \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438 \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0442\u0435\u043a\u0441\u0442\u044b \u0440\u0430\u0437\u0431\u0438\u0442\u044b \u043f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0413\u0434\u0435-\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0441\u043a\u043b\u0435\u0438\u043b \u0438\u0445, \u0433\u0434\u0435-\u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b, \u043a\u0430\u043a \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b \u043d\u0443\u0436\u043d\u044b\u043c (\u0442\u0430\u043a \u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445). ChainScoreEvaluator \u043e\u0446\u0435\u043d\u0438\u0442 \u043d\u0430\u043c \u0442\u0430\u043a\u0443\u044e \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>\u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0435\u0440\u0442\u043a\u0443 \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 sentence-transformers. \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0412\u044b\u0437\u043e\u0432 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">num_epochs = 1 train_batch_size = 8 warmup_steps = 1000  ... train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size) train_loss = losses.MultipleNegativesRankingLoss(model=model)  model.fit(train_objectives=[(train_dataloader, train_loss)],           evaluator=evaluator,           epochs=num_epochs,           evaluation_steps=evaluation_steps,           output_path=model_save_path,           save_best_model=False,           use_amp=True,           warmup_steps=warmup_steps,           scheduler = 'warmupcosine',           optimizer_params = {'lr': 1e-5}, # default 2e-5  )<\/code><\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430\u0434\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u0435\u043c. \u0410 \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u2014 \u043f\u043e\u0434\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0430\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0451 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0442\u044c \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440 \u0438 \u043e\u0442\u0434\u0430\u043b\u044f\u0442\u044c \u043e\u0442 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0430\u0442\u0447 \u0442\u0443\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0435 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0430\u0442\u0447 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u0412\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0442 6 \u0434\u043e 10.<\/p>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (evaluation_steps) \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0448 ChainScoreEvaluator, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u043e\u0431\u044c\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u044b \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0445 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0440\u0435\u0445 \u044d\u0442\u0430\u043f\u043e\u0432). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/557664\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041f\u043e\u0434 \u043a\u043e\u043d\u0435\u0446 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 chain_score \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c20\/50a\/8c3\/c2050a8c369b4f2559b16af9707aa49c.png\" alt=\"\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\" title=\"\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\" width=\"430\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c20\/50a\/8c3\/c2050a8c369b4f2559b16af9707aa49c.png\"\/><\/p>\n<div><figcaption>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2f0\/bdc\/5a8\/2f0bdc5a88e236ae7f20ad19b3dc89e1.png\" alt=\"\u041c\u0435\u0442\u0440\u0438\u043a\u0430 chain_score\" title=\"\u041c\u0435\u0442\u0440\u0438\u043a\u0430 chain_score\" width=\"694\" height=\"416\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f0\/bdc\/5a8\/2f0bdc5a88e236ae7f20ad19b3dc89e1.png\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u0440\u0438\u043a\u0430 chain_score<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043b\u0443\u0447\u0448\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u043d\u0430 \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c \u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9d4\/cb4\/a80\/9d4cb4a8029a83b857c56cd041294aa4.png\" alt=\"\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\" title=\"\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\" width=\"634\" height=\"475\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9d4\/cb4\/a80\/9d4cb4a8029a83b857c56cd041294aa4.png\"\/><\/p>\n<div><figcaption>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u041b\u0443\u0447\u0448\u0430\u044f \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/output\/best_model_{lang1}_{lang2}. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0451 \u043d\u0430 HuggingFace:<\/p>\n<pre><code class=\"python\">from huggingface_hub import HfApi   api = HfApi(token=\"your_hf_token\")  api.create_repo(     repo_id=\"lingtrain\/labse-mari\", #\u0432\u0430\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043d\u0430 HF \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430     repo_type='model',     exist_ok=True )  api.upload_folder(     repo_id=\"lingtrain\/labse-mari\",     folder_path=\".\/output\/best_model_mhr_ru\",     repo_type=\"model\", )<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0442\u0430\u043d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0433\u0430\u0445.<\/p>\n<h3>\u041a\u043e\u0434<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\/blob\/main\/tools\/labse_finetune_and_extract\/1_prepare_datasets.ipynb\" rel=\"noopener noreferrer nofollow\">1_prepare_dataset.ipynb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\/blob\/main\/tools\/labse_finetune_and_extract\/2_finetune_labse.ipynb\" rel=\"noopener noreferrer nofollow\">2_finetune_labse.ipynb<\/a><\/p>\n<\/li>\n<\/ul>\n<h2>\u0413\u043b\u0430\u0432\u0430 2. \u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e<\/h2>\n<p>\u041f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u043b\u0430\u0432\u044b \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441, \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 HF, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u043c\u043e\u0433\u043b\u0438 \u044d\u0442\u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>\u041d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0437 \u0441\u0435\u0431\u044f \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u043e\u043c\u0430\u043d \u0438\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043f\u0440\u0438\u043e\u0440\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u00ab\u043f\u043e\u0442\u043e\u043a \u0441\u043c\u044b\u0441\u043b\u0430\u00bb \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u0445\u043e\u0442\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u043c\u043e\u0436\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f. \u0413\u0434\u0435-\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u043e\u043f\u0443\u0441\u0442\u0438\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0433\u0434\u0435-\u0442\u043e \u0441\u043a\u043b\u0435\u0438\u0442 \u0442\u0440\u0438 \u0432 \u043e\u0434\u043d\u043e, \u0430 \u0433\u0434\u0435-\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u043e\u0442 \u0441\u0435\u0431\u044f.<\/p>\n<p>\u041f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c \u043c\u043e\u0439 \u043f\u0435\u0442-\u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u0432\u0438\u0434\u0435 python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 lingtrain-aligner. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/557664\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442 <\/a>\u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/ods\/articles\/669990\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u0430\u043c \u043a\u0430\u043a \u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u043c\u0435\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0430\u0432\u0442\u043e\u0440\u0435 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0433\u043b\u0430\u0432\u0430\u0445, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u0430\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c, \u0434\u0430\u0432\u0430\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443.<\/p>\n<p>\u0412\u043e\u0442 \u043d\u0430\u0448 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<p>\u042f\u0422\u041c\u0410\u041d \u0412\u0410\u0422\u0415-\u0412\u041b\u0410\u041a<\/p>\n<p>\u0418\u043a\u044b\u043c\u0448\u0435 \u0443\u0436\u0430\u0448<\/p>\n<p>1<br \/>\u0422\u0430\u0447\u0435 \u043e\u044f\u0440 \u0438\u0433\u0435\u0447\u0435 \u043b\u0438\u0439\u0448\u0430\u0448. \u0419\u044b\u0440\u0432\u0430\u0448 \u0448\u044b\u043f. \u0428\u043e\u043f\u043a\u0435 \u043b\u044b\u0448\u0442\u0430\u0448\u0430\u0442 \u043e\u043a \u0442\u0430\u0440\u0432\u0430\u043d\u0435. \u041a\u0435\u0447\u0430\u0442 \u0447\u04f1\u0447\u043a\u0435\u043d, \u043c\u043e\u0434\u044b\u043d-\u0432\u043e\u0448\u0442\u044b\u043b \u043b\u0435\u043a\u0442\u0435\u0448, \u0447\u0435\u0432\u0435\u0440 \u043a\u0430\u043f\u0448\u044b\u043c \u043e\u043d\u0447\u044b\u043a\u0442\u0435\u043d, \u042f\u0442\u043c\u0430\u043d \u044f\u043b\u044b\u043c \u043d\u0430\u0440\u0430\u0448\u0442\u0430 \u04f1\u0434\u044b\u0440\u043b\u0430 \u0441\u04f1\u0441\u0430\u043d\u0435\u043d \u043e\u043d\u0447\u0430\u043b\u0435\u0448. \u00ab\u041a\u044b\u043d\u0435\u043b, \u0430\u0439\u0434\u0435\u043c\u0435, \u043a\u043e\u04a5\u0433\u0430\u0448 \u043e\u043b\u0442\u043e, \u043c\u0430\u0440\u0438\u0439 \u0447\u0435\u0441\u044b\u043c \u044f\u043c\u0434\u044b\u043b\u0435\u00bb, \u2014 \u043e\u0439\u043b\u044b\u043d\u0435\u0436\u0435 \u043f\u0443\u0439\u0442\u043e. \u041a\u0435\u0447\u044b\u0436\u0430\u0442 \u0442\u0430\u0447\u0435 \u0430\u043b\u0430-\u043c\u043e\u043b\u0430\u043d \u043f\u0443\u0442\u044b\u0440\u0430\u043a \u0447\u043e\u0442 \u043c\u043e\u0434\u0435\u0448, \u0447\u043e\u0434\u044b\u0440\u0430 \u0432\u0443\u0439\u044b\u043c \u043b\u04f1\u04a5\u0433\u044b\u043a\u0442\u0430, \u043a\u0430\u0432\u0430\u043c \u0432\u04f1\u0440 \u0441\u0435\u043c\u044b\u043d \u0439\u043e\u0448\u043a\u0430\u0440\u0442\u0430, \u0448\u043a\u0435\u0436\u0430\u0442 \u0443\u0442\u044b\u0440 \u0439\u04f1\u043b\u0430, \u043a\u0435\u0447\u044b\u0432\u0430\u043b\u044b\u043c\u0441\u0435 \u0433\u0430\u0439 \u043a\u043e\u0433\u0430\u0440\u0442\u0430. \u0428\u0443\u0434\u0430\u0442 \u043d\u043e\u0447\u043a\u043e, \u043b\u0443\u043f\u0441 \u0434\u0435\u043d\u0435 \u0439\u044b\u043b\u0433\u044b\u0436\u0435\u0448, \u0439\u04f1\u0440 \u0442\u043e\u043b\u0448\u0430\u0448 \u043e\u0433\u044b\u043b. <\/p>\n<p>&#8230;<\/p>\n<p>2<\/p>\n<p>&#8230;<\/p>\n<p>3<\/p>\n<p>&#8230;<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0433\u043b\u0430\u0432 \u0438 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u043c, \u0447\u0442\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0435\u0442 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0441\u043d\u043e\u0441\u043e\u043a \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<p>1%%%%%h2.<br \/>\u0422\u0430\u0447\u0435 \u043e\u044f\u0440 \u0438\u0433\u0435\u0447\u0435 \u043b\u0438\u0439\u0448\u0430\u0448. \u0419\u044b\u0440\u0432\u0430\u0448 \u0448\u044b\u043f. \u0428\u043e\u043f\u043a\u0435 \u043b\u044b\u0448\u0442\u0430\u0448\u0430\u0442 \u043e\u043a \u0442\u0430\u0440\u0432\u0430\u043d\u0435. \u041a\u0435\u0447\u0430\u0442 \u0447\u04f1\u0447\u043a\u0435\u043d, \u043c\u043e\u0434\u044b\u043d-\u0432\u043e\u0448\u0442\u044b\u043b \u043b\u0435\u043a\u0442\u0435\u0448, \u0447\u0435\u0432\u0435\u0440 \u043a\u0430\u043f\u0448\u044b\u043c \u043e\u043d\u0447\u044b\u043a\u0442\u0435\u043d, \u042f\u0442\u043c\u0430\u043d \u044f\u043b\u044b\u043c \u043d\u0430\u0440\u0430\u0448\u0442\u0430 \u04f1\u0434\u044b\u0440\u043b\u0430 \u0441\u04f1\u0441\u0430\u043d\u0435\u043d \u043e\u043d\u0447\u0430\u043b\u0435\u0448. \u00ab\u041a\u044b\u043d\u0435\u043b, \u0430\u0439\u0434\u0435\u043c\u0435, \u043a\u043e\u04a5\u0433\u0430\u0448 \u043e\u043b\u0442\u043e, \u043c\u0430\u0440\u0438\u0439 \u0447\u0435\u0441\u044b\u043c \u044f\u043c\u0434\u044b\u043b\u0435\u00bb, \u2014 \u043e\u0439\u043b\u044b\u043d\u0435\u0436\u0435 \u043f\u0443\u0439\u0442\u043e. \u041a\u0435\u0447\u044b\u0436\u0430\u0442 \u0442\u0430\u0447\u0435 \u0430\u043b\u0430-\u043c\u043e\u043b\u0430\u043d \u043f\u0443\u0442\u044b\u0440\u0430\u043a \u0447\u043e\u0442 \u043c\u043e\u0434\u0435\u0448, \u0447\u043e\u0434\u044b\u0440\u0430 \u0432\u0443\u0439\u044b\u043c \u043b\u04f1\u04a5\u0433\u044b\u043a\u0442\u0430, \u043a\u0430\u0432\u0430\u043c \u0432\u04f1\u0440 \u0441\u0435\u043c\u044b\u043d \u0439\u043e\u0448\u043a\u0430\u0440\u0442\u0430, \u0448\u043a\u0435\u0436\u0430\u0442 \u0443\u0442\u044b\u0440 \u0439\u04f1\u043b\u0430, \u043a\u0435\u0447\u044b\u0432\u0430\u043b\u044b\u043c\u0441\u0435 \u0433\u0430\u0439 \u043a\u043e\u0433\u0430\u0440\u0442\u0430. \u0428\u0443\u0434\u0430\u0442 \u043d\u043e\u0447\u043a\u043e, \u043b\u0443\u043f\u0441 \u0434\u0435\u043d\u0435 \u0439\u044b\u043b\u0433\u044b\u0436\u0435\u0448, \u0439\u04f1\u0440 \u0442\u043e\u043b\u0448\u0430\u0448 \u043e\u0433\u044b\u043b. <\/p>\n<p>&#8230;<\/p>\n<p>2%%%%%h2.<\/p>\n<p>&#8230;<\/p>\n<p>3%%%%%h2.<\/p>\n<p>&#8230;<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u0440\u043e\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u043e\u043a \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c. \u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0438 \u043c\u0435\u0442\u043a\u0438 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0433\u0434\u0435 \u0441\u043c\u044b\u0441\u043b \u0442\u0435\u043a\u0441\u0442\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442. \u0422\u043e\u0433\u0434\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0430\u043d\u0435\u0442 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0435\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u043d\u0430\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435.<\/p>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u044b, \u0440\u0430\u0437\u043e\u0431\u044c\u0435\u043c \u0438\u0445 \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (SQLite \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445):<\/p>\n<pre><code class=\"python\">from lingtrain_aligner import preprocessor, splitter, aligner   lang_from = \"mhr\" lang_to = \"ru\" db_path = \"mari_artamonov.db\" text1_input = \"mari\/artamonov_mhr_full.txt\" text2_input = \"mari\/artamonov_ru_full.txt\"  with open(text1_input, \"r\", encoding=\"utf8\") as input1:     text1 = input1.readlines()  with open(text2_input, \"r\", encoding=\"utf8\") as input2:     text2 = input2.readlines()  lines1_prepared = preprocessor.mark_paragraphs(lines1_prepared) lines2_prepared = preprocessor.mark_paragraphs(lines2_prepared)  splitted_from = splitter.split_by_sentences_wrapper(lines1_prepared, lang_from) splitted_to = splitter.split_by_sentences_wrapper(lines2_prepared, lang_to)  aligner.fill_db(db_path, lang_from, lang_to, splitted_from, splitted_to)<\/code><\/pre>\n<p>\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0434\u0435\u0442 \u043f\u043e \u0431\u0430\u0442\u0447\u0430\u043c \u2014 \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u043c \u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u043e N \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043d\u0430\u0445\u043b\u0435\u0441\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043a\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438 \u0430 \u043d\u0435 \u0432 \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u0443\u0441\u043a\u0430\u0445 \u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<p><strong>\u0418\u0437 \u043d\u043e\u0432\u043e\u0433\u043e. <\/strong>\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u044e\u0449\u0430\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438:<\/p>\n<pre><code class=\"python\">left_segments, right_segments = aligner.calculate_segments(     db_path, segmentation_marks=[preprocessor.H2] )  segments_structure = aligner.get_batch_intersected_for_segments_list(     db_path, left_segments=left_segments, right_segments=right_segments, batch_size=200 )  segments_structure  #[[0, 1], [2, 3], [4, 5], [6, 7, 8], [9], [10, 11, 12], [13, 14, 15]]<\/code><\/pre>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u0435 7 \u0433\u043b\u0430\u0432, \u043a\u0430\u0436\u0434\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439, \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u043e\u0442 1 \u0434\u043e 3 \u0431\u0430\u0442\u0447\u0435\u0439 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0434\u043b\u0438\u043d\u044b \u0433\u043b\u0430\u0432\u044b.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435:<\/p>\n<pre><code class=\"python\">use_segments = True  batch_ids = range(0, 100)  aligner.align_db(     db_path,     model_name=\"_\",         batch_size=200,     window=40,         batch_ids=batch_ids,         save_pic=False,     embed_batch_size=100,     normalize_embeddings=True,     show_progress_bar=False,     shift=0,     model=model,     use_segments=use_segments,     segmentation_marks=[preprocessor.H2], )<\/code><\/pre>\n<p>\u0412\u0430\u0436\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0442\u0443\u0442 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f shift \u0438 window. \u041f\u0440\u043e \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0418\u0445 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043e \u043d\u0435\u043c \u043d\u0438\u0436\u0435.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u043f\u043e\u0445\u043e\u0436\u0443\u044e \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435. \u0412\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043a\u0443\u0441\u043e\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c32\/7a0\/1b7\/c327a01b71ebc214112e1223a8603675.png\" alt=\"\u0411\u0430\u0442\u0447 \u0441 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f\" title=\"\u0411\u0430\u0442\u0447 \u0441 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f\" width=\"522\" height=\"486\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c32\/7a0\/1b7\/c327a01b71ebc214112e1223a8603675.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u0442\u0447 \u0441 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u044b\u0432\u044b, \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0443\u0441\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c (mhr), \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u0430\u043c\u0438 \u043b\u0438\u043d\u0438\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u00ab\u043f\u0443\u0448\u0438\u0441\u0442\u044b\u0435\u00bb, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043c.<\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u2014 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c\u0438,  \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0438.<\/p>\n<pre><code class=\"python\">steps = 3 batch_id = -1 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=batch_id)     resolver.get_statistics(conflicts)     resolver.get_statistics(rest)      resolver.resolve_all_conflicts(db_path, conflicts, model_name=\"_\", show_logs=False, model=model)      print(\"Resolved. Step\", i+1)     print(\"Score 1:\", metrics.chain_score(db_path))     print(\"Score 2:\", metrics.chain_score(db_path, mode=\"both\"))      if len(rest) == 0:         break  conflicts, rest = resolver.get_all_conflicts(db_path, min_chain_length=2, max_conflicts_len=26, batch_id=batch_id) resolver.get_statistics(conflicts) resolver.get_statistics(rest)  resolver.resolve_all_conflicts(db_path, conflicts, model_name=\"_\", show_logs=False, model=model)<\/code><\/pre>\n<p><strong>\u0418\u0437 \u043d\u043e\u0432\u043e\u0433\u043e. <\/strong>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u044b \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6c2\/bb4\/24c\/6c2bb424c51b8913bf199a6346eaf32f.png\" alt=\"\u0411\u0430\u0442\u0447 \u0441 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\" title=\"\u0411\u0430\u0442\u0447 \u0441 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\" width=\"495\" height=\"485\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6c2\/bb4\/24c\/6c2bb424c51b8913bf199a6346eaf32f.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u0442\u0447 \u0441 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0435\u0421 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c\u0438 \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c, \u0442\u0443\u0442 \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u0430\u0432\u0448\u0438\u0435 \u043a\u0443\u0441\u043a\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442. \u041e\u0442\u0440\u0435\u0437\u043a\u0438 \u0431\u0435\u0437 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/37d\/349\/9bb\/37d3499bbe8fd554c2bbc14f36744914.png\" alt=\"\u0411\u0430\u0442\u0447 \u0431\u0435\u0437 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\" title=\"\u0411\u0430\u0442\u0447 \u0431\u0435\u0437 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\" width=\"492\" height=\"483\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37d\/349\/9bb\/37d3499bbe8fd554c2bbc14f36744914.png\"\/><\/p>\n<div><figcaption>\u0411\u0430\u0442\u0447 \u0431\u0435\u0437 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0430\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"python\">pairs = reader.get_aligned_pair_chains(db_path, min_len=3)<\/code><\/pre>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0438\u043d\u0435\u043c \u043f\u0430\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0434\u043b\u0438\u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441.<\/p>\n<pre><code>[   ...   ['\u04f0\u0434\u044b\u0440-\u0432\u043b\u0430\u043a \u0432\u043e\u0448\u0442\u044b\u043b \u043a\u043e\u043b\u0442\u044b\u0448\u0442, \u0442\u0438\u0434\u044b\u043d \u0433\u043e\u0434\u044b\u043c \u0447\u044b\u043b\u0430\u043d\u0430\u0442 \u041e\u043b\u044c\u0433\u0430\u043d \u043c\u043e\u0433\u044b\u0440\u044b\u0448\u0442 \u043e\u043d\u0447\u0430\u043b\u044c\u044b\u0447.',      '\u0414\u0435\u0432\u0447\u0430\u0442\u0430 \u0441\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u043e \u0437\u0430\u0441\u043c\u0435\u044f\u043b\u0438\u0441\u044c, \u043d\u0435\u043e\u0434\u043e\u0431\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u043d\u0430 \u041e\u043b\u044c\u0433\u0443.'],   ['\u2014 \u0428\u043e\u043d\u0435\u043d \u043c\u0443\u044b\u043d\u0430\u0442? \u2014 \u0422\u0430\u0447\u0430\u043d\u0430 \u041c\u0430\u0440\u0438\u043d\u0430 \u0432\u0435\u043a\u0435 \u0441\u0430\u0432\u044b\u0440\u043d\u044b\u0448.',    '\u2014 \u041d\u0443, \u0442\u0430\u043a \u043a\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0432\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0435\u043c? \u2014 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u0422\u0430\u0447\u0430\u043d\u0430 \u043a \u041c\u0430\u0440\u0438\u043d\u0435.'],   ['\u2014 \u041c\u0443\u044b\u043d\u0430\u043c.', '\u2014 \u0410 \u0432\u043e\u0442 \u043a\u0430\u043a\u0438\u0435.'],   ['\u041a\u0435\u043b\u0448\u0430 \u0434\u043e\u043a\u0430\u043d... \u0422\u044b\u0439 \u0448\u043e\u043a\u0442\u043e, \u043c\u044b\u0439 \u043c\u0443\u0440\u0435\u043c.',    '\u042f \u0438\u0445 \u0434\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0430, \u0434\u0430 \u0432\u0441\u0435 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0430.'],   ['\u041a\u043e\u043b\u044b\u0448\u0442\u0441\u0430, \u043a\u0443\u0437\u0435\u0440\u0430\u043a \u043b\u0435\u043a\u0442\u0435\u0448.', '\u0418\u0433\u0440\u0430\u0439 \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u043c\u043e\u0442\u0438\u0432.'],   ['\u0422\u0430\u0447\u0430\u043d\u0430 \u0433\u0430\u0440\u043c\u043e\u043d\u044c\u044b\u043c \u0448\u0443\u043f\u0448\u044b\u043b\u044c\u043e, \u041c\u0430\u0440\u0438\u043d\u0430 \u043c\u0443\u0440\u0430\u043b\u0442\u044b\u0448:',    '\u0422\u0430\u0447\u0430\u043d\u0430 \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u0438\u0433\u0440\u0430\u043b\u0430, \u0438 \u041c\u0430\u0440\u0438\u043d\u0430 \u0437\u0430\u043f\u0435\u043b\u0430:'],   ... ]<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u044c \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u044f\u0437\u044b\u043a\u0430 \u0438 \u043e\u0442\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u044b. <a href=\"https:\/\/habr.com\/ru\/users\/AigizK\/\" rel=\"noopener noreferrer nofollow\">\u0410\u0439\u0433\u0438\u0437 \u041a\u0443\u043d\u0430\u0444\u0438\u043d<\/a> \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b telegram-\u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0441\u043e\u0432\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<h4>\u041a\u043e\u0434<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\/blob\/main\/tools\/labse_finetune_and_extract\/3_extract_pairs.ipynb\" rel=\"noopener noreferrer nofollow\">3_extract_pairs.ipynb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/AigizK\/bashkort_translate_bot\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>\u0413\u043b\u0430\u0432\u0430 3. \u0423\u043b\u0443\u0447\u0448\u0430\u0435\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0438\u0437 \u043d\u0435\u0433\u043e \u043a\u043d\u0438\u0433\u0443<\/h3>\n<p>\u041a\u0430\u043a \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0435 \u0432\u0441\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0427\u0442\u043e\u0431\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u043e \u0438\u0434\u0435\u0430\u043b\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443, \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0439 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u2014 Lingtrain Alignment Studio. \u042d\u0442\u043e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, \u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u041f\u043b\u044e\u0441 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 .lt \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u0418 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443 \u0441 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/70f\/7f3\/8cd\/70f7f38cdc6cb9035e9a7e51048ce99c.png\" alt=\"\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430\" title=\"\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430\" width=\"1006\" height=\"250\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/70f\/7f3\/8cd\/70f7f38cdc6cb9035e9a7e51048ce99c.png\"\/><\/p>\n<div><figcaption>\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/704958\/\" rel=\"noopener noreferrer nofollow\">Lingtrain. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u043a\u043d\u0438\u0433 \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432<\/a>. <\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0438\u0434\u0435\u0438 \u043f\u043e \u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e. \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<h4>\u0417\u0430\u043f\u0443\u0441\u043a \u0441 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e<\/h4>\n<p><strong>\u0418\u0437 \u043d\u043e\u0432\u043e\u0433\u043e.<\/strong> \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u043c\u043e\u0434\u0435\u043b\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u0443\u044e \u043d\u0430 HuggingFace. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441, \u0430 \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0438 \u043a\u043d\u0438\u0436\u043a\u0443.<\/p>\n<p>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043a. \u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/averkij\/a-studio.git<\/code><\/pre>\n<p>\u041c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 MODEL_NAME \u0432 \u0444\u0430\u0439\u043b\u0435 .env \u043d\u0430 \u0432\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c SentenceTransformers \u043c\u043e\u0434\u0435\u043b\u044c, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u0430\u044f \u043d\u0430 HF (\u043c\u044b \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b\u0438 \u044d\u0442\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438).<\/p>\n<pre><code class=\"bash\">APP_PORT=80 APP_DATA_PATH=.\/dev\/data APP_IMG_PATH=.\/dev\/img APP_CACHE_PATH=.\/dev\/models_cache  MODEL_NAME=lingtrain\/labse-mari<\/code><\/pre>\n<p>\u0412\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/dev\/data, \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f. \u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043a\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/dev\/models_cache.<\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437:<\/p>\n<pre><code class=\"bash\">docker-compose build<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0435\u0433\u043e:<\/p>\n<pre><code>docker-compose up<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 http:\/\/localhost:80. \u041f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/habr.com\/ru\/articles\/704958\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/343\/9fb\/cc6\/3439fbcc69409592702a3dd2d119c774.png\" alt=\"Lingtrain Alignment Studio\" title=\"Lingtrain Alignment Studio\" width=\"3586\" height=\"1647\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/343\/9fb\/cc6\/3439fbcc69409592702a3dd2d119c774.png\"\/><\/p>\n<div><figcaption>Lingtrain Alignment Studio<\/figcaption><\/div>\n<\/figure>\n<h4>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h4>\n<p>\u041f\u043e \u0445\u043e\u0434\u0443 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u0434\u0435\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043d\u0438\u0433\u0438 \u0432 PDF \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0441 \u043e\u0431\u043b\u043e\u0436\u043a\u043e\u0439 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c. \u0411\u044b\u043b\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u0443\u0442\u043e\u0440\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u0435\u0449\u0438 \u0432\u043e\u0442 \u0432 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8f0\/15b\/61d\/8f015b61d51ab308e6d7be14e92a9352.png\" alt=\"\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f PDF\" title=\"\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f PDF\" width=\"1789\" height=\"990\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8f0\/15b\/61d\/8f015b61d51ab308e6d7be14e92a9352.png\"\/><\/p>\n<div><figcaption>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f PDF<\/figcaption><\/div>\n<\/figure>\n<p>\u0415\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443 \u0438 \u0434\u0430\u0436\u0435 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0435\u0440\u043e\u0433\u043b\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/001\/5da\/83d\/0015da83d97ab3da72e14643f60c9ae6.png\" alt=\"PDF \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0438 \u0444\u043e\u043d\u0435\u0442\u0438\u043a\u0438\" title=\"PDF \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0438 \u0444\u043e\u043d\u0435\u0442\u0438\u043a\u0438\" width=\"1775\" height=\"736\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/001\/5da\/83d\/0015da83d97ab3da72e14643f60c9ae6.png\"\/><\/p>\n<div><figcaption>PDF \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0438 \u0444\u043e\u043d\u0435\u0442\u0438\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/ods\/articles\/669990\/\" rel=\"noopener noreferrer nofollow\">DIY. \u041a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u0434\u0430\u0440\u043e\u043c<\/a>.<\/p>\n<h3>\u0413\u043b\u0430\u0432\u0430 4. \u00ab\u041c\u0430\u043b\u044b\u0439 \u043f\u0440\u0438\u043d\u0446\u00bb \u0438 \u043a\u043d\u0438\u0436\u043a\u0430-\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440<\/h3>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0447\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043e\u0434\u043d\u043e \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041a\u0430\u043a-\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u0430 \u0438\u0434\u0435\u044f, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443, \u0430 \u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u0443\u044e. \u041d\u0430\u043f\u0438\u0441\u0430\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043f\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0439 \u0432 \u043e\u0434\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0438\u0437 \u043a\u0443\u0447\u0438 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043d\u0438\u0436\u043a\u0438 \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u0438 \u0438 \u0431\u043e\u043b\u0435\u0435 \u044f\u0437\u044b\u043a\u0430\u0445. \u0410 \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430.<\/p>\n<p>\u041a \u043a\u043d\u0438\u0433\u0435 \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u043d\u044f\u0442\u044c \u0448\u0440\u0438\u0444\u0442\u044b, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443. \u0412\u0441\u0435 \u044d\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 GitHub&#8217;\u0435 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439.<\/p>\n<p>\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u0438\u043d\u0446\u00bb \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0420\u043e\u0441\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/855\/184\/3ce\/8551843cee61a105773d9b99acba2d72.png\" alt=\"\u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u0438\u043d\u0446\u00bb \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445\" title=\"\u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u0438\u043d\u0446\u00bb \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445\" width=\"1152\" height=\"941\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/855\/184\/3ce\/8551843cee61a105773d9b99acba2d72.png\"\/><\/p>\n<div><figcaption>\u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u0438\u043d\u0446\u00bb \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041a\u043d\u0438\u0436\u043a\u0443<\/strong> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u2014 <a href=\"https:\/\/averkij.github.io\/prince\" rel=\"noopener noreferrer nofollow\">https:\/\/averkij.github.io\/prince<\/a>.<\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0438 \u043d\u0430 \u0447\u0443\u0432\u0430\u0448\u0441\u043a\u043e\u043c, \u0442\u0430\u0442\u0430\u0440\u0441\u043a\u043e\u043c \u0438 \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u043c, \u0434\u0438\u0433\u043e\u0440\u0441\u043a\u043e\u043c, \u044d\u0440\u0437\u044f\u043d\u0441\u043a\u043e\u043c \u0438 \u043c\u043e\u043a\u0448\u0430\u043d\u0441\u043a\u043e\u043c, \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c \u0438 \u0433\u043e\u0440\u043d\u043e\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c, \u043a\u043e\u043c\u0438, \u0431\u0430\u043b\u043a\u0430\u0440\u0441\u043a\u043e\u043c,<sub> <\/sub> \u044f\u043a\u0443\u0442\u0441\u043a\u043e\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u044f \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u043b \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043a\u043d\u0438\u0433\u0443. \u0410 <strong>\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441<\/strong> \u043d\u0430 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 HuggingFace \u2014 <a href=\"https:\/\/huggingface.co\/datasets\/lingtrain\/minor-prince\" rel=\"noopener noreferrer nofollow\">https:\/\/huggingface.co\/datasets\/lingtrain\/minor-prince<\/a>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2fb\/f0e\/948\/2fbf0e9480588d886d2c3bfe18ab7e98.png\" alt=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 minor prince (\u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0430 11-\u0442\u0438 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445)\" title=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 minor prince (\u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0430 11-\u0442\u0438 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445)\" width=\"1026\" height=\"741\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fb\/f0e\/948\/2fbf0e9480588d886d2c3bfe18ab7e98.png\"\/><\/p>\n<div><figcaption>\u0414\u0430\u0442\u0430\u0441\u0435\u0442 minor prince (\u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0430 11-\u0442\u0438 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0445\u043e\u0436\u0443\u044e \u0432\u0435\u0449\u044c \u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b \u0441 \u00ab\u041c\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u043e\u0439\u00bb \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cfe\/b5f\/10b\/cfeb5f10b2a87e6ac88a115e15adcade.png\" width=\"1129\" height=\"990\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cfe\/b5f\/10b\/cfeb5f10b2a87e6ac88a115e15adcade.png\"\/><\/figure>\n<p>\u0412 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445 \u0440\u043e\u043c\u0430\u043d\u0430 \u043d\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u043d\u0435\u0442, \u0445\u043e\u0442\u044f \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437 \u043d\u0438\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435, \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u0443\u0441\u043a\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0435\u0449\u0435 \u0441\u044b\u0433\u0440\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u043e\u043b\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u0440\u0435\u0434\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<h2>\u0413\u043b\u0430\u0432\u0430 5. \u041f\u0440\u043e\u0435\u043a\u0442 SuperMinor<\/h2>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u0445\u043e\u0447\u0443 \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0441\u0431\u043e\u0440 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u044b, \u0431\u0443\u0434\u044c \u0442\u043e ChatGPT \u0438\u043b\u0438 GigaChat, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438, \u0434\u0430 \u0438 \u0442\u043e \u043d\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438. \u041f\u0440\u043e \u043c\u0430\u043b\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u0442\u0438\u043f\u0430 \u044f\u043a\u0443\u0442\u0441\u043a\u043e\u0433\u043e \u0438\u043b\u0438 \u0447\u0443\u0432\u0430\u0448\u0441\u043a\u043e\u0433\u043e \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<p>\u041d\u0430 \u043a\u0430\u043d\u0438\u043a\u0443\u043b\u0430\u0445 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0440\u0442\u0430\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0441\u043c\u043e\u0433\u0443\u0442 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043a \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0430\u0431\u043e\u0440\u044b \u0444\u0440\u0430\u0437, \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043e\u043c. \u041e\u0431\u0443\u0447\u0430\u044f\u0441\u044c \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0442\u0435\u043a\u0441\u0442\u0430\u0445, \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u044f\u0437\u044b\u043a\u0435, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0438\u0434\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u043c, \u0442\u0430\u0442\u0430\u0440\u0441\u043a\u043e\u043c, \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0445, \u043e\u0441\u0435\u0442\u0438\u043d\u0441\u043a\u0438\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0b8\/427\/548\/0b84275484999a470d0a735aff2b902c.png\" alt=\"\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 SuperMinor\" title=\"\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 SuperMinor\" width=\"1252\" height=\"797\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0b8\/427\/548\/0b84275484999a470d0a735aff2b902c.png\"\/><\/p>\n<div><figcaption>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 SuperMinor<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0440\u0442\u0430\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u043c\u0438 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445. \u041f\u0440\u043e \u044d\u0442\u043e \u044f \u043d\u0430\u043f\u0438\u0448\u0443 \u0432 \u043d\u0430\u0448\u0438 \u043a\u0430\u043d\u0430\u043b\u044b \u2014 <a href=\"https:\/\/t.me\/lingtrain\" rel=\"noopener noreferrer nofollow\">Lingtrain<\/a> \u0438 <a href=\"https:\/\/t.me\/doomgrad\" rel=\"noopener noreferrer nofollow\">\u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043e\u0431\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0439<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043f\u0440\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438, \u0438 \u043f\u0440\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 \u0446\u0435\u043b\u043e\u043c.<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<ul>\n<li>\n<p><a href=\"https:\/\/t.me\/kod_odin\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0442 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u043e\u0432.<\/a> \u0412\u0430\u043c \u0441\u044e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\/blob\/main\/tools\/labse_finetune_and_extract\/1_prepare_datasets.ipynb\" rel=\"noopener noreferrer nofollow\">Jupyter Notebook. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u043d\u0430 HuggingFace.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\/blob\/main\/tools\/labse_finetune_and_extract\/2_finetune_labse.ipynb\" rel=\"noopener noreferrer nofollow\">Jupyter Notebook. \u0414\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LaBSE \u043c\u043e\u0434\u0435\u043b\u0438.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\/blob\/main\/tools\/labse_finetune_and_extract\/3_extract_pairs.ipynb\" rel=\"noopener noreferrer nofollow\">Jupyter Notebook. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/colab.research.google.com\/drive\/1q4hqSaht8xsl_CXlZdKBi4cDFPYNZA-p\" rel=\"noopener noreferrer nofollow\">Colab. \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 (\u043f\u043e\u0434\u043b\u043e\u0436\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0444\u0430\u0439\u043b\u044b).<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/AigizK\/bashkort_translate_bot\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0438\u043c\u0435\u0440 tg-\u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u043e\u0442 \u0410\u0439\u0433\u0438\u0437\u0430.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/huggingface.co\/lingtrain\" rel=\"noopener noreferrer nofollow\">HuggingFace. Lingtrain. \u041c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\" rel=\"noopener noreferrer nofollow\">GitHub. Lingtrain Alignment Studio.<\/a> \u0412\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/lingtrain-aligner\" rel=\"noopener noreferrer nofollow\">GitHub. lingtrain-aligner.<\/a> Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/704958\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/ods\/articles\/669990\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 PDF \u043a\u043d\u0438\u0433\u0438.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/692168\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f \u0414\u0430\u0432\u0438\u0434\u0430 \u0414\u0430\u043b\u0435 \u043f\u0440\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 mBART \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0434\u043b\u044f \u044d\u0440\u0437\u044f\u043d\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/cointegrated.medium.com\/how-to-fine-tune-a-nllb-200-model-for-translating-a-new-language-a37fc706b865\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f \u0414\u0430\u0432\u0438\u0434\u0430 \u043f\u0440\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 NLLB \u0434\u043b\u044f \u0442\u0443\u0432\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/t.me\/lingtrain_books\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Lingtrain.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/t.me\/lingtrain\" rel=\"noopener noreferrer nofollow\">\u041a\u0430\u043d\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Lingtrain.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/t.me\/doomgrad\" rel=\"noopener noreferrer nofollow\">\u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043e\u0431\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0439. \u041c\u043e\u0439 tg-\u043a\u0430\u043d\u0430\u043b.<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/791188\/\"> https:\/\/habr.com\/ru\/articles\/791188\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\">\n<div><figcaption>\u041c\u0430\u0442\u0435\u0440\u044b\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0430\u043b\u044b\u0445. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0442\u0430\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043d\u0435\u0442 \u043d\u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430, \u043d\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043e\u0432, \u043d\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0443\u0442 \u0432 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0443 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0432 \u0438\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0440\u043e\u0433 \u0438\u0445 \u044f\u0437\u044b\u043a, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u0443\u0441\u0438\u043b\u0438\u044f \u043f\u043e \u0435\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u044d\u0442\u043e \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u0435\u0449\u0438, \u0442\u0438\u043f\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043d\u0438\u0433 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430.<\/p>\n<p>\u041c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f: <\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0449\u0438\u0435 \u0442\u0435\u043a\u0441\u0442 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 (\u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438).<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 lingtrain-aligner, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044f \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430. <\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 HuggingFace, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432\u0441\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 <strong>\u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f<\/strong> \u043d\u0430 \u0447\u0443\u0432\u0430\u0448\u0441\u043a\u043e\u043c, \u044f\u043a\u0443\u0442\u0441\u043a\u043e\u043c, \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u0432 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u043e\u0432 <a href=\"https:\/\/t.me\/kod_odin\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u043c<\/a>, \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<h2>\u0413\u043b\u0430\u0432\u0430 1. \u041e\u0431\u0443\u0447\u0430\u0435\u043c LaBSE \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c\u0443 \u044f\u0437\u044b\u043a\u0443<\/h2>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c LaBSE \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u0442 \u0444\u0440\u0430\u0437\u044b \u0442\u0438\u043f\u0430 \u00ab\u043a\u0430\u043a \u0434\u0435\u043b\u0430?\u00bb \u0438 \u00abhow are you?\u00bb \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u044b \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 (0.43.., 2.71&#8230;, 1.56.., &#8230;) \u2014 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438, \u043f\u0440\u0438\u0447\u0435\u043c \u0447\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u0444\u0440\u0430\u0437\u044b \u0431\u0443\u0434\u0443\u0442 <strong>\u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443<\/strong>, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u042f\u0437\u044b\u043a\u043e\u0432 \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0412\u043e\u0442 \u0438\u0445 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<figure class=\"full-width\">\n<div><figcaption><a href=\"https:\/\/arxiv.org\/pdf\/2007.01852.pdf\" rel=\"noopener noreferrer nofollow\">https:\/\/arxiv.org\/pdf\/2007.01852.pdf<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0415\u0441\u0442\u044c \u0440\u044f\u0434 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043d\u043e LaBSE \u0432 \u0446\u0435\u043b\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439. \u0414\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 encoder-\u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442 MTEB \u0438 \u0435\u0433\u043e <a href=\"https:\/\/huggingface.co\/spaces\/mteb\/leaderboard\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0439\u0442\u0438\u043d\u0433<\/a>, \u043e\u0446\u0435\u043d\u043a\u0443 \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Bitext Mining.<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u0442\u0430\u043a\u0438\u0435 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438 \u0438 \u0432\u044b\u0443\u0434\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0436\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043a\u043d\u0438\u0433\u0438 \u0438 \u0435\u0451 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443.<\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u044f\u0437\u044b\u043a\u043e\u0432 LaBSE \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0448\u0438\u0440\u043e\u043a, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0440\u0430\u0434\u0443\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u0441\u0435\u043c\u0435\u0439, \u044d\u0442\u043e \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0434\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u0433\u043e, \u043c\u043e\u043a\u0448\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0438\u043b\u0438 \u0438\u043d\u0433\u0443\u0448\u0441\u043a\u043e\u0433\u043e, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u042d\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0438 \u043e\u0431\u044a\u0435\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438. \u0411\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0442\u0430\u0442\u0430\u0440\u0441\u043a\u043e\u0433\u043e, \u043d\u043e \u0438\u0445 \u043e\u0431\u043e\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u0438 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438. <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441. \u041e\u0442\u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u0432\u0437\u044f\u0442\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043d\u043e\u0432\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c? \u0422\u0443\u0442 \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043f\u043e\u043c\u043e\u0449\u0438 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u043e\u0432. \u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0438\u043b\u0438\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u042d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0441\u0442\u0440\u0430\u0448\u043d\u043e \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u044e\u0434\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u043c\u043e\u043d\u043e-\u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0447\u0443\u0432\u0430\u0448\u0441\u043a\u043e\u0433\u043e, \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0445, \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u0433\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u0415\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u044b\u0441\u044f\u0447 \u043f\u0430\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0438\u043d\u0433\u0443\u0448\u0441\u043a\u043e\u043c. \u041f\u0440\u0438\u0437\u044b\u0432\u0430\u044e \u0432\u0430\u0441 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u0443\u0441\u0438\u043b\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u043c, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 HuggingFace. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430, \u0432 \u043e\u0434\u043d\u043e\u043c N \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u044f\u043a\u0443\u0442\u0441\u043a\u043e\u043c, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c, \u0442\u043e \u0432\u043e\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430:<\/p>\n<pre><code class=\"python\">from collections import defaultdict from datasets import Dataset, DatasetDict from glob import glob from tqdm import tqdm   def make_pairs(lang1, lang2, path1, path2):     data_1 = open(path1).read().splitlines()     data_2 = open(path2).read().splitlines()     print(f'Lengths: len(data_1):{len(data_1)}, len(data_2):{len(data_2)}')      train_items = defaultdict(list)     for item_1, item_2 in zip(data_1, data_2):         train_items[lang1].append(clean(item_1))         train_items[lang2].append(clean(item_2))     return train_items  #\u0447\u0438\u0441\u0442\u0438\u043c \u0442\u0435\u043a\u0441\u0442\u044b, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e   def clean(text):     text = text.replace(u'\\xa0', ' ')     return text  def make_dataset(items):     ds = DatasetDict({         'train': Dataset.from_dict(items)     })     return ds  #\u0442\u043e\u043a\u0435\u043d \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043d\u0430 HF def upload_dataset(ds, name):     ds.push_to_hub(name, token='you_hf_token') <\/code><\/pre>\n<pre><code class=\"python\">#\u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430 \u0432 \u043d\u043e\u0432\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 lang1 = 'sah' lang2 = 'ru'  #\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b path1 = '.\/parall_ykt.txt' path2 = '.\/parall_ru.txt'  pairs = make_pairs(lang1, lang2, path1, path2) dataset = make_dataset(pairs)  #\u0432\u0430\u0448 \u043b\u043e\u0433\u0438\u043d \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 #\u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 lingtrain, \u043d\u043e \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043c\u043d\u0435 \u0432 tg:@averkij upload_dataset(dataset, name='lingtrain\/yakut-russian')<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0440\u0443\u0441\u0441\u043a\u043e-\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441. \u041e\u0442\u043c\u0435\u0447\u0443 \u0437\u0434\u0435\u0441\u044c \u0410\u043d\u0434\u0440\u0435\u044f \u0427\u0435\u043c\u044b\u0448\u0435\u0432\u0430, \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u0442\u043e\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u043f\u0440\u0438\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u043c\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438, \u0442\u0430\u043a\u0436\u0435 \u0410\u043d\u0434\u0440\u0435\u0439 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0433 \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 \u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0430\u00bb \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0420\u043e\u0441\u0441\u0438\u0438, \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435.<\/p>\n<p>\u041a\u043e\u0440\u043f\u0443\u0441 \u0443\u0436\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0431\u043e\u043b\u044c\u0448\u0435 380 \u0442\u044b\u0441\u044f\u0447 \u043f\u0430\u0440. \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435, \u044d\u0442\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u0442\u044c \u0441\u0431\u043e\u0440 \u043a\u043e\u0440\u043f\u0443\u0441\u0430.<\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442:<\/p>\n<pre><code class=\"python\">LANG_1 = 'mhr' LANG_2 = 'ru'  DATASET_LANG_1 = 'mhr' DATASET_LANG_2 = 'rus'  ds = load_dataset('AigizK\/mari-russian-parallel-corpora', split='train')  def prepare_dataset(ds, feature_1, feature_2):     res = []     for item in ds:         res.append({LANG_1:item[feature_1], LANG_2:item[feature_2]})     return res          train_dataset_orig = prepare_dataset(ds,                                     feature_1=DATASET_LANG_1,                                     feature_2=DATASET_LANG_2)<\/code><\/pre>\n<p>\u0412 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<pre><code class=\"json\">{'mhr': '\u041c\u0430\u0440\u0434\u0435\u0436 \u0442\u043e\u043b\u0430\u0448\u044b\u043c\u0435 \u0433\u043e\u0434\u044b\u043c \u043c\u044b\u0439\u044b\u043d \u0432\u0443\u0439\u044b\u0448\u043a\u0435\u043c \u0438\u043a\u0442\u0435 \u043f\u043e\u0447\u0435\u0448 \u0432\u0435\u0441\u0435, \u043d\u0435\u043b\u0435 \u0448\u043e\u043d\u044b\u043c\u0430\u0448-\u0448\u0430\u043c\u044b\u0447 \u0442\u043e\u043b\u044b\u043d \u043f\u0443\u0440\u0430\u0442.',  'ru': '\u0412 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u043e\u0434 \u0448\u0443\u043c \u0431\u0443\u0440\u0438, \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c \u0438 \u043b\u0435\u0442\u0435\u043b\u0438 \u043e\u0434\u043d\u0430 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u043c\u044b\u0441\u043b\u0438.'}<\/code><\/pre>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LaBSE, \u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430 \u043f\u0430\u0440\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432, <strong>\u043a\u043e\u0442\u043e\u0440\u044b\u0445<\/strong> <strong>\u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435<\/strong> <strong>\u043d\u0435\u0442<\/strong>. \u0418\u043d\u0430\u0447\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0443\u0442\u0435\u0447\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0442\u0435\u0441\u0442\u0430\u0445, \u043d\u043e \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0442\u0430\u043a\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u044b (artamonov_mhr.txt \u0438 artamonov_ru.txt) \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 ChainScoreEvaluator:<\/p>\n<pre><code class=\"python\">db_path = f\"alignment_{LANG_1}.db\" evaluation_steps = 100  text1_input = \"mari\/artamonov_mhr.txt\" text2_input = \"mari\/artamonov_ru.txt\"  with open(text1_input, \"r\", encoding=\"utf8\") as input1:     text1 = input1.readlines() with open(text2_input, \"r\", encoding=\"utf8\") as input2:     text2 = input2.readlines()      evaluator = ChainScoreEvaluator(db_path,                                   LANG_1,                                   LANG_2,                                   text1,                                   text2,                                   model=model,                                   evaluation_steps=evaluation_steps                                 )<\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0438\u0436\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 lingtrain_aligner, \u043e \u043d\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439.<\/p>\n<p>\u041d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438 \u0438 \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438 \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0442\u0435\u043a\u0441\u0442\u044b \u0440\u0430\u0437\u0431\u0438\u0442\u044b \u043f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0413\u0434\u0435-\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0441\u043a\u043b\u0435\u0438\u043b \u0438\u0445, \u0433\u0434\u0435-\u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b, \u043a\u0430\u043a \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b \u043d\u0443\u0436\u043d\u044b\u043c (\u0442\u0430\u043a \u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445). ChainScoreEvaluator \u043e\u0446\u0435\u043d\u0438\u0442 \u043d\u0430\u043c \u0442\u0430\u043a\u0443\u044e \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>\u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0435\u0440\u0442\u043a\u0443 \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 sentence-transformers. \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0412\u044b\u0437\u043e\u0432 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">num_epochs = 1 train_batch_size = 8 warmup_steps = 1000  ... train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size) train_loss = losses.MultipleNegativesRankingLoss(model=model)  model.fit(train_objectives=[(train_dataloader, train_loss)],           evaluator=evaluator,           epochs=num_epochs,           evaluation_steps=evaluation_steps,           output_path=model_save_path,           save_best_model=False,           use_amp=True,           warmup_steps=warmup_steps,           scheduler = 'warmupcosine',           optimizer_params = {'lr': 1e-5}, # default 2e-5  )<\/code><\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430\u0434\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u0435\u043c. \u0410 \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u2014 \u043f\u043e\u0434\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0430\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0451 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0442\u044c \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440 \u0438 \u043e\u0442\u0434\u0430\u043b\u044f\u0442\u044c \u043e\u0442 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0430\u0442\u0447 \u0442\u0443\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0435 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0430\u0442\u0447 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u0412\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0442 6 \u0434\u043e 10.<\/p>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (evaluation_steps) \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0448 ChainScoreEvaluator, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u043e\u0431\u044c\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u044b \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0438, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0445 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0440\u0435\u0445 \u044d\u0442\u0430\u043f\u043e\u0432). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/557664\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041f\u043e\u0434 \u043a\u043e\u043d\u0435\u0446 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 chain_score \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"\">\n<div><figcaption>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>\u041c\u0435\u0442\u0440\u0438\u043a\u0430 chain_score<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043b\u0443\u0447\u0448\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u043d\u0430 \u043c\u0430\u0440\u0438\u0439\u0441\u043a\u043e\u043c \u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-367216","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/367216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=367216"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/367216\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=367216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=367216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=367216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}