{"id":482648,"date":"2026-06-06T15:31:32","date_gmt":"2026-06-06T15:31:32","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=482648"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=482648","title":{"rendered":"\u041a\u0430\u043a\u00a0\u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c LLM. \u0420\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0448\u0430\u0433 \u0437\u0430\u00a0\u0448\u0430\u0433\u043e\u043c"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432 \u041c\u0430\u043a\u0441\u0438\u043c. \u042f Team Lead \u0432 R&amp;D-\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 red_mad_robot \u0438 \u0430\u0432\u0442\u043e\u0440\u00a0<a href=\"https:\/\/t.me\/+xIZA62BYfgQ0YmYy\" rel=\"noopener noreferrer nofollow\">Telegram\u2011\u043a\u0430\u043d\u0430\u043b\u0430 \u041c\u0430\u043a\u0441\u0438\u043c \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432 \/\/ IT, AI<\/a>. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043c\u0441\u044f \u0432\u00a0\u0442\u0435\u043c\u0443 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 (LLM). \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u044f \u0434\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0432\u0432\u043e\u0434\u043d\u0443\u044e, \u0430\u00a0\u0434\u0430\u043b\u0435\u0435 \u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a\u00a0\u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c LLM \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u043f\u043e\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435. <\/p>\n<ul>\n<li>\n<p><a href=\"#1\" rel=\"noopener noreferrer nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\" rel=\"noopener noreferrer nofollow\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\" rel=\"noopener noreferrer nofollow\">\u0425\u043e\u0434 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0435\u0445\u0430\u043b\u0438!<\/p>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 LLM, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a\u00a0GPT, Grok, DeepSeek, Qwen, Claude, \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447. \u041f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441: \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435\u2011\u0442\u043e LLM, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435? \u041e\u0442\u0432\u0435\u0442 \u0442\u0430\u043a\u043e\u0439: \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 LLM \u043f\u043e\u00a0API (\u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u00a0\u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445), \u0447\u0442\u043e\u00a0\u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 152-\u0424\u0417 \u0438\u043b\u0438\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0437\u0430\u0449\u0438\u0442\u044b \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u0434\u0435\u0441\u044c \u0432\u00a0\u0441\u0432\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 open source \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 <a href=\"https:\/\/huggingface.co\/\" rel=\"noopener noreferrer nofollow\">Hugging Face<\/a> \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u00a0\u0441\u0432\u043e\u0451\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>\u041d\u043e\u00a0\u043d\u0435\u00a0\u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b LLM \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0449\u043d\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0440\u043e\u0433\u043e. \u0412\u00a0open source \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e: \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 LLM, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u0447 \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c. \u0411\u043e\u043b\u044c\u0448\u0438\u0435 LLM \u0442\u044f\u0436\u0435\u043b\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c\u00a0\u0436\u0435\u043b\u0435\u0437\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043c\u0435\u043d\u044c\u0448\u0435. \u041f\u0440\u0430\u0432\u0434\u0430, \u043d\u0435\u00a0\u0444\u0430\u043a\u0442, \u0447\u0442\u043e\u00a0\u043e\u043d\u0430 \u0440\u0435\u0448\u0438\u0442 \u0432\u0430\u0448\u0443 \u0443\u0437\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00a0\u2014 \u0442\u043e\u0433\u0434\u0430 \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM: <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a31\/9d0\/2fb\/a319d02fb09d314fc012a5eb77e2ff6f.png\" alt=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM\" title=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM\" width=\"1687\" height=\"685\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a31\/9d0\/2fb\/a319d02fb09d314fc012a5eb77e2ff6f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a31\/9d0\/2fb\/a319d02fb09d314fc012a5eb77e2ff6f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM<\/figcaption><\/div>\n<\/figure>\n<ul>\n<li>\n<p><strong>Pre\u2011training<\/strong>: \u044d\u0442\u043e \u044d\u0442\u0430\u043f, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c LLM \u043e\u0431\u0443\u0447\u0430\u044e\u0442 \u043d\u0430\u00a0\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u0441\u044b\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0442\u043e\u043a\u0435\u043d\u043e\u0432. \u0417\u0434\u0435\u0441\u044c LLM \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u0430\u043c\u0438 \u0438 \u0435\u0451 \u043e\u0431\u0443\u0447\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 LLM \u0443\u0436\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0438 \u0434\u0430\u0436\u0435 \u0440\u0435\u0448\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435\u2011\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0438. \u041d\u043e\u00a0\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043e\u043d\u0430 \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c, \u0430\u00a0\u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 Pretrain \u0437\u0430\u0434\u0430\u0442\u044c LLM \u043a\u0430\u043a\u043e\u0439\u2011\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u00a0\u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e, \u0430\u00a0\u043d\u0430\u0447\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0451 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438\u00a0\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u00a0\u0442\u0435\u043c\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u0430, \u043d\u043e\u00a0\u043d\u0435\u00a0\u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e. \u0414\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0443\u0447\u0438\u0442\u044c LLM \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u0442\u0430\u043f Fine\u2011tuning.<\/p>\n<\/li>\n<li>\n<p><strong>Fine\u2011tuning<\/strong>: \u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0443\u0447\u0438\u043c \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0438\u043b\u0438\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438\u00a0\u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON \u043f\u043e\u00a0\u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443 \u0438 \u0441\u0445\u0435\u043c\u0435). \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e\u00a0\u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u043b\u043e\u0432\u0438\u043b\u0430 \u0441\u0443\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0441\u0445\u043e\u0436\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e\u00a0\u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u00a0\u0432\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0430\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u043c\u043e\u0440\u043e\u0437\u043a\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u0435\u0441\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 LoRA.<\/p>\n<\/li>\n<li>\n<p><strong>Alignment<\/strong>, \u0438\u043b\u0438\u00a0\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435. \u042d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u044d\u0442\u0430\u043f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0430\u0442\u00a0\u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439\u00a0\u2014 \u043d\u0435\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0438\u043b\u0438\u00a0\u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b RL.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u043c\u0441\u044f \u043d\u0430\u00a0\u044d\u0442\u0430\u043f\u0435 Fine\u2011tuning. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e, \u0432\u043e\u0437\u044c\u043c\u0451\u043c open source LLM, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u0430 \u044d\u0442\u0430\u043f Pretrain, \u0438 \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u043c \u0435\u0451 \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u043e\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 JSON\u2011\u0441\u0445\u0435\u043c\u0435.<\/p>\n<p>\u041f\u0440\u0438\u00a0Fine\u2011tuning LLM \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u041e\u0434\u0438\u043d \u0438\u0437\u00a0\u043d\u0438\u0445\u00a0\u2014 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439, \u0438\u0437\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u00a0\u044d\u0442\u0430\u043f\u0435 Pretrain. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0431\u043e\u0440\u044c\u0431\u044b \u0441\u00a0\u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f\u00a0\u043b\u0438\u0431\u043e\u00a0\u0436\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f Fine\u2011tuning \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u00a0\u044d\u0442\u0430\u043f\u0435 Pretrain. \u0412\u00a0\u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u043c \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441\u00a0\u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435\u043c, \u043d\u043e\u00a0\u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a MMLU.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u00a0\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0443.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h2>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430<\/h2>\n<p>\u0412\u00a0\u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u00a0\u0445\u043e\u0434\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e, \u043a\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b, \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<ul>\n<li>\n<p><a href=\"#2.1\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u0434\u0430\u0447\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2.2\" rel=\"noopener noreferrer nofollow\">\u041c\u0435\u0442\u0440\u0438\u043a\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2.3\" rel=\"noopener noreferrer nofollow\">\u0414\u0430\u043d\u043d\u044b\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2.4\" rel=\"noopener noreferrer nofollow\">\u041c\u043e\u0434\u0435\u043b\u044c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2.5\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2.6\" rel=\"noopener noreferrer nofollow\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"2.1\" id=\"2.1\"><\/a><\/p>\n<h4>\u0417\u0430\u0434\u0430\u0447\u0430<\/h4>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c,\u00a0\u2014 \u044d\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f JSON \u043f\u043e\u00a0\u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443 \u0438 \u0441\u0445\u0435\u043c\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u00a0LLM \u044f \u0431\u0443\u0434\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0438 \u0441\u0445\u0435\u043c\u0443, \u0438 \u043d\u0430\u00a0\u0432\u044b\u0445\u043e\u0434\u0435 \u0445\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0438\u0437\u0432\u043b\u0435\u043a\u043b\u0430 \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u00a0JSON \u043f\u043e\u00a0\u0441\u0445\u0435\u043c\u0435.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/23c\/ee7\/5d8\/23cee75d814f03aad83189244ea5b1bb.png\" alt=\"\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LLM \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0443\" title=\"\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LLM \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0443\" width=\"1761\" height=\"662\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/23c\/ee7\/5d8\/23cee75d814f03aad83189244ea5b1bb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/23c\/ee7\/5d8\/23cee75d814f03aad83189244ea5b1bb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LLM \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0443<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"2.2\" id=\"2.2\"><\/a><\/p>\n<h4>\u041c\u0435\u0442\u0440\u0438\u043a\u0438<\/h4>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043c\u044b \u0440\u0435\u0448\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443.<\/p>\n<p>\u0412\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u044f \u0445\u043e\u0447\u0443 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c 2\u00a0\u0432\u0435\u0449\u0438:<\/p>\n<ol>\n<li>\n<p>\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f JSON \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c, \u0447\u0442\u043e\u00a0JSON \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u0442\u043e, \u0447\u0442\u043e\u00a0\u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432\u0430\u043b\u0438\u0434\u0435\u043d (\u0447\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435\u00a0\u0432\u044b\u0442\u0430\u0449\u0438\u043b\u0430\u00a0\u043b\u0438\u0448\u043d\u0435\u0435). \u0414\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430.<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"formula\" source=\"\\begin{aligned} &amp;\\text{SchemaValid} = \\frac{1}{N}\\sum_{i=1}^{N}\\mathbb{1}\\!\\left[\\,\\operatorname{valid}(\\hat{y}_i,\\, S_i)\\,\\right] \\\\[12pt] &amp;\\text{LevSim} = \\frac{1}{N}\\sum_{i=1}^{N}\\left(1 - \\frac{\\operatorname{lev}(\\hat{y}_i,\\, y_i)}{|\\hat{y}_i| + |y_i|}\\right) \\\\[14pt] \\end{aligned}\" alt=\"\\begin{aligned} &amp;\\text{SchemaValid} = \\frac{1}{N}\\sum_{i=1}^{N}\\mathbb{1}\\!\\left[\\,\\operatorname{valid}(\\hat{y}_i,\\, S_i)\\,\\right] \\\\[12pt] &amp;\\text{LevSim} = \\frac{1}{N}\\sum_{i=1}^{N}\\left(1 - \\frac{\\operatorname{lev}(\\hat{y}_i,\\, y_i)}{|\\hat{y}_i| + |y_i|}\\right) \\\\[14pt] \\end{aligned}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4f\/4fd\/4fdbb44c2c444395c63943b15a134de5.svg\" width=\"304\" height=\"128\" data-width=\"38.887\" data-height=\"16.873\" data-vertical-align=\"-7.871\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4f\/4fd\/4fdbb44c2c444395c63943b15a134de5.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4f\/4fd\/4fdbb44c2c444395c63943b15a134de5.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435 <\/p>\n<ul>\n<li>\n<p>N\u00a0\u2014 \u0447\u0438\u0441\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u00a0\u0442\u0435\u0441\u0442\u0435; <\/p>\n<\/li>\n<li>\n<p>y\u0302, y\u00a0\u2014 \u043e\u0442\u0432\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u044d\u0442\u0430\u043b\u043e\u043d; <\/p>\n<\/li>\n<li>\n<p>S\u00a0\u2014 \u0432\u0445\u043e\u0434\u043d\u0430\u044f JSON\u2011\u0441\u0445\u0435\u043c\u0430; <\/p>\n<\/li>\n<li>\n<p>lev\u00a0\u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430; <\/p>\n<\/li>\n<li>\n<p>1[\u00b7]\u00a0\u2014 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (\u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 0\u00a0\u0438\u043b\u0438 1). <\/p>\n<\/li>\n<\/ul>\n<p>2. \u0422\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u00a0\u043d\u043e\u0432\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a MMLU, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u00a0\u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0437\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445. <\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"\\begin{aligned} &amp;\\text{Acc} = \\frac{1}{M}\\sum_{j=1}^{M}\\mathbb{1}\\!\\left[\\,\\hat{a}_j = a_j\\,\\right] \\\\[14pt] \\end{aligned}\" alt=\"\\begin{aligned} &amp;\\text{Acc} = \\frac{1}{M}\\sum_{j=1}^{M}\\mathbb{1}\\!\\left[\\,\\hat{a}_j = a_j\\,\\right] \\\\[14pt] \\end{aligned}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e9\/e9d\/e9dd9f169568c42421618e14f2a35db9.svg\" width=\"200\" height=\"48\" data-width=\"25.221\" data-height=\"6.935\" data-vertical-align=\"-2.902\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e9\/e9d\/e9dd9f169568c42421618e14f2a35db9.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e9\/e9d\/e9dd9f169568c42421618e14f2a35db9.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435 <\/p>\n<ul>\n<li>\n<p>M\u00a0\u2014 \u0447\u0438\u0441\u043b\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0437\u00a0MMLU; <\/p>\n<\/li>\n<li>\n<p>\u00e2_j, a_j\u00a0\u2014 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0438 \u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0442\u0432\u0435\u0442\u0430; <\/p>\n<\/li>\n<li>\n<p>1[\u00b7]\u00a0\u2014 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (\u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 0\u00a0\u0438\u043b\u0438 1). <\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"2.3\" id=\"2.3\"><\/a><\/p>\n<h4>\u0414\u0430\u043d\u043d\u044b\u0435<\/h4>\n<p>\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c open\u2011source \u0434\u0430\u0442\u0430\u0441\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0448\u0451\u043b \u043d\u0430\u00a0Hugging Face. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e\u00a0\u2014 <a href=\"https:\/\/huggingface.co\/datasets\/scrapegraphai\/scrapegraphai-100k\" rel=\"noopener noreferrer nofollow\">scrapegraphai\/scrapegraphai-100k<\/a>. \u042d\u0442\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u0437 100\u00a0\u0442\u044b\u0441. \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u0435\u0431\u2011\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, JSON\u2011\u0441\u0445\u0435\u043c\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u0438. <\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u0434\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b Colab, \u0432\u043e\u0437\u044c\u043c\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438\u0437\u00a0\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0432\u00a0\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 1000\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2a3\/2dc\/a8d\/2a32dca8d4cdc747f911d22a4d7b06a0.png\" alt=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 scrapegraphai\/scrapegraphai-100k\" title=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 scrapegraphai\/scrapegraphai-100k\" width=\"1756\" height=\"615\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2a3\/2dc\/a8d\/2a32dca8d4cdc747f911d22a4d7b06a0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2a3\/2dc\/a8d\/2a32dca8d4cdc747f911d22a4d7b06a0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0430\u0442\u0430\u0441\u0435\u0442 <a href=\"https:\/\/huggingface.co\/datasets\/scrapegraphai\/scrapegraphai-100k\" rel=\"noopener noreferrer nofollow\">scrapegraphai\/scrapegraphai-100k<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u00a0\u2014 <a href=\"https:\/\/huggingface.co\/datasets\/paraloq\/json_data_extraction\" rel=\"noopener noreferrer nofollow\">paraloq\/json_data_extraction<\/a>. \u042d\u0442\u043e \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 Google Gemini Pro \u0438 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0439 8\u00a0\u0434\u043e\u043c\u0435\u043d\u043e\u0432\u00a0\u2014 \u043e\u0442\u00a0\u043c\u0435\u0434\u0438\u0446\u0438\u043d\u044b \u0438 e\u2011commerce \u0434\u043e\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u0412\u0437\u044f\u043b \u0435\u0433\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0\u043e\u043d \u043d\u0435\u00a0\u0441\u0432\u044f\u0437\u0430\u043d \u0441\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u043c \u0438 \u0441\u043e\u0431\u0440\u0430\u043d \u043f\u043e\u2011\u0434\u0440\u0443\u0433\u043e\u043c\u0443,\u00a0\u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c LLM. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/015\/51b\/7db\/01551b7db39ccf5de1a4bcc570de34ff.png\" alt=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 paraloq\/json_data_extraction\" title=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 paraloq\/json_data_extraction\" width=\"1827\" height=\"617\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/015\/51b\/7db\/01551b7db39ccf5de1a4bcc570de34ff.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/015\/51b\/7db\/01551b7db39ccf5de1a4bcc570de34ff.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0430\u0442\u0430\u0441\u0435\u0442 <a href=\"https:\/\/huggingface.co\/datasets\/paraloq\/json_data_extraction\" rel=\"noopener noreferrer nofollow\">paraloq\/json_data_extraction<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <a href=\"https:\/\/huggingface.co\/datasets\/cais\/mmlu\" rel=\"noopener noreferrer nofollow\">MMLU<\/a> (Massive Multitask Language Understanding)\u00a0\u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u043e\u0431\u0449\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u0438\u0437 14\u00a0\u0442\u044b\u0441. \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u00a0\u0432\u044b\u0431\u043e\u0440\u043e\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 4\u00a0\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 57\u00a0\u0434\u043e\u043c\u0435\u043d\u043e\u0432\u00a0\u2014 \u043e\u0442\u00a0\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0438 \u0444\u0438\u0437\u0438\u043a\u0438 \u0434\u043e\u00a0\u043f\u0440\u0430\u0432\u0430, \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u044b \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041e\u043d \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043c\u0435\u0440\u0438\u0442\u044c, \u043d\u0435\u00a0\u0442\u0435\u0440\u044f\u0435\u0442\u00a0\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0436\u043d\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0418\u0437\u2011\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 Colab \u044f \u0431\u0435\u0440\u0443 \u043d\u0435\u00a0\u0432\u0435\u0441\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a, \u0430\u00a0\u043f\u043e 5\u00a0\u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0437\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 57\u00a0\u0434\u043e\u043c\u0435\u043d\u043e\u0432 (\u0438\u0442\u043e\u0433\u043e 285\u00a0\u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432)\u00a0\u2014 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a05\/545\/9dd\/a055459dda3dc96acc420f5a6fa204a6.png\" alt=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 MMLU\" title=\"\u0414\u0430\u0442\u0430\u0441\u0435\u0442 MMLU\" width=\"1765\" height=\"606\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a05\/545\/9dd\/a055459dda3dc96acc420f5a6fa204a6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a05\/545\/9dd\/a055459dda3dc96acc420f5a6fa204a6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0430\u0442\u0430\u0441\u0435\u0442 <a href=\"https:\/\/huggingface.co\/datasets\/cais\/mmlu\" rel=\"noopener noreferrer nofollow\">MMLU<\/a><\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"2.4\" id=\"2.4\"><\/a><\/p>\n<h4>\u041c\u043e\u0434\u0435\u043b\u044c<\/h4>\n<p>\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u044f \u0432\u044b\u0431\u0440\u0430\u043b<a href=\"https:\/\/huggingface.co\/Qwen\/Qwen2.5-0.5B\" rel=\"noopener noreferrer nofollow\"> Qwen2.5-0.5B<\/a>. \u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u043c\u043b\u0430\u0434\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0435\u0440\u0438\u0438 Qwen2.5\u00a0(0.5\u00a0\u043c\u043b\u0440\u0434 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 32K). \u0415\u0451 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u00a0\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 Colab \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u00a0LoRA.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5f\/031\/2c6\/e5f0312c621b8a1a1968adee9841cc29.png\" alt=\"\u041c\u043e\u0434\u0435\u043b\u044c Qwen2.5-0.5B\" title=\"\u041c\u043e\u0434\u0435\u043b\u044c Qwen2.5-0.5B\" width=\"1887\" height=\"409\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e5f\/031\/2c6\/e5f0312c621b8a1a1968adee9841cc29.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5f\/031\/2c6\/e5f0312c621b8a1a1968adee9841cc29.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u043e\u0434\u0435\u043b\u044c<a href=\"https:\/\/huggingface.co\/Qwen\/Qwen2.5-0.5B\" rel=\"noopener noreferrer nofollow\"> Qwen2.5-0.5B<\/a><\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"2.5\" id=\"2.5\"><\/a><\/p>\n<h4>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0414\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434 LoRA \u0441\u00a0\u0437\u0430\u043c\u043e\u0440\u043e\u0437\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u0435\u0441\u043e\u0432. LoRA (Low\u2011Rank Adaptation)\u00a0\u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434, \u043f\u0440\u0438\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0441\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0437\u0430\u043c\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0430\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0440\u0430\u043d\u0433\u0430, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u00a0\u0441\u043b\u043e\u0438. \u0417\u0430\u00a0\u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u00a0\u043b\u0438\u0448\u044c \u043c\u0430\u043b\u0443\u044e \u0434\u043e\u043b\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0441\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u044c Colab. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ede\/1ae\/f2f\/ede1aef2f72a0c0c61f4360b40ef7f33.png\" alt=\"LoRA\" title=\"LoRA\" width=\"311\" height=\"282\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ede\/1ae\/f2f\/ede1aef2f72a0c0c61f4360b40ef7f33.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ede\/1ae\/f2f\/ede1aef2f72a0c0c61f4360b40ef7f33.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><a href=\"https:\/\/arxiv.org\/pdf\/2106.09685\" rel=\"noopener noreferrer nofollow\">LoRA<\/a><\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"2.6\" id=\"2.6\"><\/a><\/p>\n<h4>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443 \u0432\u00a0\u0442\u0440\u0438 \u044d\u0442\u0430\u043f\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0437\u043c\u0435\u0440\u044e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430\u00a0\u043d\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438\u00a0\u2014 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0447\u043a\u0430 \u043e\u0442\u0441\u0447\u0451\u0442\u0430. \u0417\u0430\u0442\u0435\u043c \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443. \u0412\u00a0\u043a\u043e\u043d\u0446\u0435 \u043e\u0446\u0435\u043d\u044e \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u00a0\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438 \u0441\u0440\u0430\u0432\u043d\u044e \u0435\u0451 \u0441\u00a0\u043d\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439. \u0422\u0430\u043a \u043c\u044b \u043f\u043e\u0439\u043c\u0451\u043c, \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0430\u043b\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0436\u043d\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f. <\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>\u0425\u043e\u0434 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430<\/h2>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u0438\u0436\u0435 \u044f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0433 \u0438 Python\u2011\u043a\u043e\u0434 \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u0435\u0434\u0438\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u00a0\u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0442\u0435\u0441\u0442\u043e\u0432. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0435\u0434\u0438\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u043f\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u0441\u0435\u043c\u043f\u043b\u043e\u0432. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442, \u043f\u0440\u043e\u043c\u043f\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437\u0432\u043b\u0435\u0447\u044c JSON, \u0441\u0445\u0435\u043c\u0443 JSON, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043a\u0441\u0442, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e) \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 JSON, \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u044f \u0432\u0432\u0451\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430\u00a0\u2014 \u0434\u043e 4096\u00a0\u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0432\u00a0\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 GPU \u0432\u00a0Colab (\u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u0441\u044f OOM). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044f \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043b \u0442\u0435\u043a\u0441\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import json, pandas as pdfrom jsonschema import Draft7Validatorfrom transformers import AutoTokenizerMODEL_NAME = \"Qwen\/Qwen2.5-0.5B\"MAX_TOKENS = 4096N_TRAIN, N_TEST = 1000, 200SEED = 42SYSTEM = (    \"You are an information extraction engine. Given a source text and a JSON Schema, \"    \"extract the relevant information and return a single JSON object that strictly conforms \"    \"to the schema. Output only the JSON, with no extra commentary, markdown, or code fences.\")INSTRUCTION = (    \"Extract the information from the text below into a JSON object that strictly conforms \"    \"to the given JSON Schema. Use only information present in the text. Return only the JSON object.\")tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)def as_obj(x):    return x if isinstance(x, (dict, list)) else json.loads(x)def to_chat(text, schema, target):    user = (f\"{INSTRUCTION}\\n\\n\"            f\"### JSON Schema\\n{json.dumps(schema, ensure_ascii=False)}\\n\\n\"            f\"### Text\\n{str(text).strip()}\")    return {\"messages\": [        {\"role\": \"system\",    \"content\": SYSTEM},        {\"role\": \"user\",      \"content\": user},        {\"role\": \"assistant\", \"content\": json.dumps(target, ensure_ascii=False)},    ]}def fits(rec):    return len(tokenizer.apply_chat_template(rec[\"messages\"], tokenize=True)) &lt;= MAX_TOKENS<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435\u00a0\u0431\u044b\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u043d\u043e 1000\u00a0\u0441\u0435\u043c\u043f\u043b\u043e\u0432 \u0441\u00a0\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c JSON \u0434\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437\u00a0scrapegraphai-100k. <\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">df = pd.read_parquet(\"hf:\/\/datasets\/scrapegraphai\/scrapegraphai-100k\/data\/train.parquet\")df = df[df[\"response_is_valid\"]].sample(frac=1, random_state=SEED)train = []for _, r in df.iterrows():    if len(train) &gt;= N_TRAIN:        break    try:        schema, target = as_obj(r[\"schema\"]), as_obj(r[\"response\"])        if not str(r[\"content\"]).strip():            continue        Draft7Validator(schema).validate(target)        rec = to_chat(r[\"content\"], schema, target)        if fits(rec):            train.append(rec)    except Exception:        continue<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u043d\u043e 200\u00a0\u0441\u0442\u0440\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f\u00a0\u0442\u0435\u0441\u0442\u0430 \u0438\u0437\u00a0\u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 paraloq\/json_data_extraction<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">dt = pd.read_parquet(\"hf:\/\/datasets\/paraloq\/json_data_extraction\/data.parquet\").sample(frac=1, random_state=SEED)test = []for _, r in dt.iterrows():    if len(test) &gt;= N_TEST:        break    try:        rec = to_chat(r[\"text\"], as_obj(r[\"schema\"]), as_obj(r[\"item\"]))        if fits(rec):            test.append(rec)    except Exception:        continue<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0434\u043b\u044f\u00a0\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 LLM \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0418\u0437\u00a0\u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 MMLU \u044f \u0432\u043e\u0437\u044c\u043c\u0443 \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043a\u0443. <\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u043d\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import json, randomfrom datasets import load_dataset, get_dataset_config_namesLETTERS = [\"A\", \"B\", \"C\", \"D\"]N_PER_SUBJECT = 5SEED = 42subjects = [c for c in get_dataset_config_names(\"cais\/mmlu\") if c not in {\"all\", \"auxiliary_train\"}]def to_prompt(question, choices):    opts = \"\\n\".join(f\"{L}. {c}\" for L, c in zip(LETTERS, choices))    return (\"Answer the following multiple choice question. \"            \"Respond with only the letter (A, B, C, or D) of the correct answer.\\n\\n\"            f\"Question: {question}\\n{opts}\\nAnswer:\")mmlu = []for subj in subjects:    ds = load_dataset(\"cais\/mmlu\", subj, split=\"test\")    idx = list(range(len(ds)))    random.Random(SEED).shuffle(idx)    for i in idx[:N_PER_SUBJECT]:        ex = ds[i]        mmlu.append({            \"subject\": subj,            \"answer_letter\": LETTERS[ex[\"answer\"]],            \"messages\": [{\"role\": \"user\", \"content\": to_prompt(ex[\"question\"], ex[\"choices\"])}],        })<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0JSONL \u0444\u043e\u0440\u043c\u0430\u0442. <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 JSONL<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def save_jsonl(path, rows):    with open(path, \"w\", encoding=\"utf-8\") as f:        for x in rows:            f.write(json.dumps(x, ensure_ascii=False) + \"\\n\")save_jsonl(\"train.jsonl\", train)save_jsonl(\"test.jsonl\",  test)save_jsonl(\"mmlu_probe.jsonl\", mmlu)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LLM \u0432\u00a0Colab.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 trl, peft, transformers. \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 Colab<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># !pip install -q -U transformers peft trl datasets accelerate# !pip install -q jsonschema python-Levenshtein matplotlibimport os, gc, json, random, refrom contextlib import contextmanagerfrom collections import defaultdictimport numpy as npimport torchimport Levenshteinimport matplotlib.pyplot as pltfrom tqdm.auto import tqdmfrom datasets import load_datasetfrom transformers import AutoModelForCausalLM, AutoTokenizer, Trainer, TrainingArgumentsfrom peft import LoraConfig, get_peft_modelfrom jsonschema import Draft7ValidatorSEED = 42random.seed(SEED); np.random.seed(SEED)torch.manual_seed(SEED); torch.cuda.manual_seed_all(SEED)DEVICE = \"cuda\" if torch.cuda.is_available() else \"cpu\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0442\u043e\u043a\u0435\u043d\u0430\u0439\u0437\u0435\u0440 \u0438 LLM.<\/p>\n<details class=\"spoiler\">\n<summary>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0442\u043e\u043a\u0435\u043d\u0430\u0439\u0437\u0435\u0440\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">MODEL_NAME = \"Qwen\/Qwen2.5-0.5B\"MAX_LEN = 4096tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)tokenizer.pad_token = tokenizer.eos_tokentokenizer.padding_side = \"right\"model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch.float16, device_map={\"\": 0})model.config.use_cache = Falsemodel.config.pad_token_id = tokenizer.pad_token_idprint(f\"{sum(p.numel() for p in model.parameters())\/1e6:.0f}M \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0430\u0448\u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b. \u0412\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435. \u0414\u043b\u044f\u00a0\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e 10% \u043e\u0442\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438. <\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 train, val, test<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">raw = load_dataset(\"json\", data_files={\"train\": \"train.jsonl\", \"test\": \"test.jsonl\"})split = raw[\"train\"].train_test_split(test_size=0.1, seed=SEED)train_ds, val_ds, test_ds = split[\"train\"], split[\"test\"], raw[\"test\"]mmlu = [json.loads(l) for l in open(\"mmlu_probe.jsonl\", encoding=\"utf-8\") if l.strip()]print(\"train:\", len(train_ds), \"| val:\", len(val_ds), \"| test:\", len(test_ds), \"| mmlu:\", len(mmlu))# train: 900 | val: 100 | test: 200 | mmlu: 285 <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0443\u00a0\u043d\u0430\u0441 900\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0432\u00a0\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 100, \u0432\u00a0\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 200. \u0414\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0437\u044f\u0442\u043e 285\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u043c\u0435\u0442\u0440\u0438\u043a \u0434\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f JSON (\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435). <\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f JSON<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def extract_schema(messages):    user = next(m[\"content\"] for m in messages if m[\"role\"] == \"user\")    return json.loads(user.split(\"### JSON Schema\", 1)[1].split(\"### Text\", 1)[0].strip())def gold(messages):    return next(m[\"content\"] for m in messages if m[\"role\"] == \"assistant\")def _first_span(t):    start = next((i for i, c in enumerate(t) if c in \"{[\"), None)    if start is None: return None    stack, pairs = [], {\"}\": \"{\", \"]\": \"[\"}    for j in range(start, len(t)):        c = t[j]        if c in \"{[\": stack.append(c)        elif c in \"}]\":            if not stack or stack.pop() != pairs[c]: return None            if not stack: return t[start:j+1]    return Nonedef parse_json(text):    t = re.sub(r\"^```(?:json)?|```$\", \"\", text.strip()).strip()    for cand in (t, _first_span(t)):        if cand is None: continue        try:            obj = json.loads(cand)            return obj, json.dumps(obj, sort_keys=True, ensure_ascii=False)        except Exception:            pass    return None, \"\"def score(preds, examples):    n = len(preds); valid = 0; lev = []    for p, ex in zip(preds, examples):        _, g_canon = parse_json(gold(ex[\"messages\"]))        p_obj, p_canon = parse_json(p)        if p_obj is not None:            try:                Draft7Validator(extract_schema(ex[\"messages\"])).validate(p_obj); valid += 1            except Exception:                pass        lev.append(Levenshtein.ratio(p_canon if p_obj is not None else p.strip(), g_canon))    return {\"schema_valid\": valid\/n, \"levenshtein\": sum(lev)\/n}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0434\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043d\u0430\u00a0\u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0435 MMLU.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 MMLU<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">LETTERS = [\"A\", \"B\", \"C\", \"D\"]@contextmanagerdef left_padding(tok):    old = tok.padding_side; tok.padding_side = \"left\"    try: yield    finally: tok.padding_side = old@torch.no_grad()def generate(examples, batch_size=24, max_new_tokens=1024):    model.eval()    cache = model.config.use_cache;    model.config.use_cache = True    out = []    try:        with left_padding(tokenizer):            for i in tqdm(range(0, len(examples), batch_size), desc=\"generate\"):                batch = examples[i:i+batch_size]                prompts = [tokenizer.apply_chat_template(                    [m for m in ex[\"messages\"] if m[\"role\"] != \"assistant\"],                    tokenize=False, add_generation_prompt=True) for ex in batch]                enc = tokenizer(prompts, return_tensors=\"pt\", padding=True,                                truncation=True, max_length=MAX_LEN).to(model.device)                gen = model.generate(**enc, max_new_tokens=max_new_tokens, do_sample=False,                                     use_cache=True, pad_token_id=tokenizer.pad_token_id)                out += tokenizer.batch_decode(gen[:, enc[\"input_ids\"].shape[1]:], skip_special_tokens=True)    finally:        model.config.use_cache = cache    return out@torch.no_grad()def eval_mmlu(data, batch_size=4):    model.eval()    letter_ids = [tokenizer(\" \" + L, add_special_tokens=False).input_ids[0] for L in LETTERS]    corr = total = 0    with left_padding(tokenizer):        for i in tqdm(range(0, len(data), batch_size), desc=\"mmlu\"):            batch = data[i:i+batch_size]            enc = tokenizer([ex[\"messages\"][0][\"content\"] for ex in batch], return_tensors=\"pt\",                            padding=True, truncation=True, max_length=MAX_LEN).to(model.device)            logits = model(**enc).logits[:, -1, :][:, letter_ids]            for ex, pi in zip(batch, logits.argmax(-1).tolist()):                corr += int(LETTERS[pi] == ex[\"answer_letter\"]); total += 1    return corr \/ total<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435\u00a0\u2014 \u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0443 \u0437\u0430\u043c\u0435\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u00a0\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438 MMLU. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u043e\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM. <\/p>\n<details class=\"spoiler\">\n<summary>\u041e\u0446\u0435\u043d\u043a\u0430 LLM \u0434\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">test_examples = [test_ds[i] for i in range(len(test_ds))]base_json = score(generate(test_examples), test_examples)base_mmlu = eval_mmlu(mmlu)baseline = {**base_json, \"mmlu\": base_mmlu}print(baseline)# {'schema_valid': 0.265,'levenshtein': 0.4112473125422889, 'mmlu': 0.45964912280701753} <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>schema_valid\u00a0\u2014 0.27<\/p>\n<\/li>\n<li>\n<p>levenshtein\u00a0\u2014 0.41 <\/p>\n<\/li>\n<li>\n<p>mmlu\u00a0\u2014 0.46<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0441\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e.<\/p>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LoRA \u0432\u0435\u0441\u0430 \u0434\u043b\u044f\u00a0\u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 peft. <em>\u0423\u00a0\u043c\u0435\u043d\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LoRA \u0441\u00a0torchao. <\/em> <em>\u0420\u0435\u0448\u0438\u0442\u044c \u0435\u0451 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/em><\/p>\n<details class=\"spoiler\">\n<summary>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LoRA<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># ! pip uninstall torchaomodel.gradient_checkpointing_enable()model.enable_input_require_grads()lora = LoraConfig(    r=16, lora_alpha=32, lora_dropout=0.05, bias=\"none\", task_type=\"CAUSAL_LM\",    target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"],)model = get_peft_model(model, lora)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u043e\u043a\u0435\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u0437\u0430\u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0431\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u00a0\u0441\u0432\u043e\u0451\u043c \u043e\u0442\u0432\u0435\u0442\u0435. <\/p>\n<details class=\"spoiler\">\n<summary>\u0422\u043e\u043a\u0435\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def tokenize_and_mask(example):    msgs = example[\"messages\"]    full   = tokenizer.apply_chat_template(msgs, tokenize=False)    prefix = tokenizer.apply_chat_template(        [m for m in msgs if m[\"role\"] != \"assistant\"], tokenize=False, add_generation_prompt=True)    ids = tokenizer(full, add_special_tokens=False, truncation=True, max_length=MAX_LEN)[\"input_ids\"]    n = min(len(tokenizer(prefix, add_special_tokens=False)[\"input_ids\"]), len(ids))    labels = [-100] * n + ids[n:]            # loss \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u0430    return {\"input_ids\": ids, \"labels\": labels}train_tok = train_ds.map(tokenize_and_mask, remove_columns=train_ds.column_names)val_tok   = val_ds.map(tokenize_and_mask,   remove_columns=val_ds.column_names)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u043c\u0435\u0442\u0440\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u00a0\u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u044d\u0442\u0430\u043f\u0430\u0445.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u043c\u0435\u0442\u0440\u0438\u043a<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">VAL_PROBE = [val_ds[i] for i in range(min(40, len(val_ds)))]history = [{\"step\": 0, \"schema_valid\": baseline[\"schema_valid\"],            \"levenshtein\": baseline[\"levenshtein\"], \"mmlu\": baseline[\"mmlu\"]}]def preprocess_logits_for_metrics(logits, labels):    if isinstance(logits, tuple): logits = logits[0]    return logits.argmax(dim=-1)def compute_metrics(eval_pred):    gc_on = model.is_gradient_checkpointing    if gc_on: model.gradient_checkpointing_disable()        jm = score(generate(VAL_PROBE, batch_size=8, max_new_tokens=512), VAL_PROBE)    macc = eval_mmlu(mmlu, batch_size=4)        if gc_on: model.gradient_checkpointing_enable()        out = {\"schema_valid\": jm[\"schema_valid\"], \"levenshtein\": jm[\"levenshtein\"], \"mmlu\": macc}    history.append({\"step\": trainer.state.global_step, **out})    return out<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0414\u043b\u044f\u00a0\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u044f \u043e\u0431\u0443\u0447\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 1\u00a0\u044d\u043f\u043e\u0445\u0435.  Eval \u0431\u0443\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0435 25 \u0448\u0430\u0433\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a \u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 (\u0438\u043b\u0438 \u0440\u0435\u0433\u0440\u0435\u0441\u0441?).<\/p>\n<details class=\"spoiler\">\n<summary>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">class Collator:    def __call__(self, feats):        m = max(len(f[\"input_ids\"]) for f in feats); pad = tokenizer.pad_token_id        ids = [f[\"input_ids\"] + [pad]*(m-len(f[\"input_ids\"])) for f in feats]        att = [[1]*len(f[\"input_ids\"]) + [0]*(m-len(f[\"input_ids\"])) for f in feats]        lab = [f[\"labels\"] + [-100]*(m-len(f[\"labels\"])) for f in feats]        return {\"input_ids\": torch.tensor(ids), \"attention_mask\": torch.tensor(att), \"labels\": torch.tensor(lab)}args = TrainingArguments(    output_dir=\"qwen-lora-json\",    num_train_epochs=1,    per_device_train_batch_size=1,     gradient_accumulation_steps=8,     per_device_eval_batch_size=1,    learning_rate=2e-4,     lr_scheduler_type=\"cosine\",     warmup_ratio=0.03,     fp16=True,    eval_strategy=\"steps\",     eval_steps=25,    save_strategy=\"steps\",     save_steps=25,     save_total_limit=2,     eval_accumulation_steps=1,    logging_steps=10,    load_best_model_at_end=True,     metric_for_best_model=\"eval_loss\",     greater_is_better=False,    remove_unused_columns=False,     report_to=\"none\",)trainer = Trainer(    model=model, args=args,    train_dataset=train_tok, eval_dataset=val_tok,    data_collator=Collator(),    compute_metrics=compute_metrics,    preprocess_logits_for_metrics=preprocess_logits_for_metrics,)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0437\u0430\u0432\u0435\u0442\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u00a0\u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 <\/p>\n<pre><code class=\"python\">trainer.train()<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u044f\u043b\u043e \u043e\u043a\u043e\u043b\u043e \u0447\u0430\u0441\u0430.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2bd\/efc\/efa\/2bdefcefa90d9bf327404ec98b9ce394.png\" alt=\"\u0425\u043e\u0434 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f Qwen2.5-0.5B\" title=\"\u0425\u043e\u0434 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f Qwen2.5-0.5B\" width=\"575\" height=\"211\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2bd\/efc\/efa\/2bdefcefa90d9bf327404ec98b9ce394.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2bd\/efc\/efa\/2bdefcefa90d9bf327404ec98b9ce394.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0425\u043e\u0434 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f Qwen2.5-0.5B<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u00a0\u043c\u044b \u0432\u0438\u0434\u0438\u043c\u00a0\u2014 \u0441\u00a0\u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u00a0\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0430\u0445 \u043f\u0430\u0434\u0430\u043b\u0430. \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043e\u0446\u0435\u043d\u043a\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438 JSON \u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u043b\u0438 \u0441\u0435\u0431\u044f \u043d\u0435\u00a0\u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e, \u043d\u043e\u00a0\u043d\u0430\u00a0\u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0432\u0443\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0432\u0438\u0434\u0435\u043d \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043f\u043e\u00a0\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044e. <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u00a0\u2014 \u043e\u0446\u0435\u043d\u0438\u043c \u043d\u0430\u0448\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u00a0\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. <\/p>\n<pre><code class=\"python\">final = {**score(generate(test_examples), test_examples), \"mmlu\": eval_mmlu(mmlu)}print(f\"{'\u043c\u0435\u0442\u0440\u0438\u043a\u0430':&lt;14}{'\u0434\u043e':&gt;9}{'\u043f\u043e\u0441\u043b\u0435':&gt;9}{'\u0394':&gt;9}\")for k in [\"schema_valid\", \"levenshtein\", \"mmlu\"]:    print(f\"{k:&lt;14}{baseline[k]:&gt;9.3f}{final[k]:&gt;9.3f}{final[k]-baseline[k]:&gt;+9.3f}\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3c2\/a97\/047\/3c2a970477033e7c9ad941774c6183d2.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\" width=\"425\" height=\"96\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3c2\/a97\/047\/3c2a970477033e7c9ad941774c6183d2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3c2\/a97\/047\/3c2a970477033e7c9ad941774c6183d2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439: \u0434\u0430\u0436\u0435 \u043d\u0430\u00a0\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0451\u043c\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 1\u00a0\u044d\u043f\u043e\u0445\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f Qwen \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043b\u0443\u0447\u0448\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u043f\u043e\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445  \u0438 \u044d\u043f\u043e\u0445 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043b\u0443\u0447\u0448\u0435. \u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 =)<\/p>\n<h2>\u041a\u043e\u043d\u0435\u0446<\/h2>\n<p>\u0412\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437\u00a0\u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a\u00a0\u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438 \u0442\u0435\u043e\u0440\u0438\u044e, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u043b\u0438 LLM \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON. \u041e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430\u00a0\u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c LLM \u0440\u0435\u0448\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e\u00a0\u0436\u0435 \u0438\u043b\u0438\u00a0\u0434\u0440\u0443\u0433\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430\u00a0\u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<p><em>\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430\u00a0<\/em><a href=\"https:\/\/t.me\/+TLnsXnf2dTE4ZDFi\" rel=\"noopener noreferrer nofollow\"><em>\u043c\u043e\u0439 Te<\/em><\/a><em>l<\/em><a href=\"https:\/\/t.me\/+xIZA62BYfgQ0YmYy\" rel=\"noopener noreferrer nofollow\"><em>egram\u2011\u043a\u0430\u043d\u0430\u043b<\/em><\/a><em>, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u043e\u0431\u00a0IT \u0438 AI \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445.<\/em><\/p>\n<\/div>\n<p>\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\/1044422\/\">https:\/\/habr.com\/ru\/articles\/1044422\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432 \u041c\u0430\u043a\u0441\u0438\u043c. \u042f Team Lead \u0432 R&amp;D-\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 red_mad_robot \u0438 \u0430\u0432\u0442\u043e\u0440\u00a0Telegram\u2011\u043a\u0430\u043d\u0430\u043b\u0430 \u041c\u0430\u043a\u0441\u0438\u043c \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432 \/\/ IT, AI. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043c\u0441\u044f \u0432\u00a0\u0442\u0435\u043c\u0443 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 (LLM). \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u044f \u0434\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0432\u0432\u043e\u0434\u043d\u0443\u044e, \u0430\u00a0\u0434\u0430\u043b\u0435\u0435 \u043d\u0430\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a\u00a0\u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c LLM \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u043f\u043e\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0425\u043e\u0434 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u041f\u043e\u0435\u0445\u0430\u043b\u0438!\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 LLM, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a\u00a0GPT, Grok, DeepSeek, Qwen, Claude, \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447. \u041f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441: \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435\u2011\u0442\u043e LLM, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435? \u041e\u0442\u0432\u0435\u0442 \u0442\u0430\u043a\u043e\u0439: \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 LLM \u043f\u043e\u00a0API (\u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u00a0\u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445), \u0447\u0442\u043e\u00a0\u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 152-\u0424\u0417 \u0438\u043b\u0438\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0437\u0430\u0449\u0438\u0442\u044b \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u0434\u0435\u0441\u044c \u0432\u00a0\u0441\u0432\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 open source \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 Hugging Face \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u00a0\u0441\u0432\u043e\u0451\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438.\u041d\u043e\u00a0\u043d\u0435\u00a0\u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e.\u0414\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b LLM \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0449\u043d\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0440\u043e\u0433\u043e. \u0412\u00a0open source \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e: \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 LLM, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u0447 \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c. \u0411\u043e\u043b\u044c\u0448\u0438\u0435 LLM \u0442\u044f\u0436\u0435\u043b\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c\u00a0\u0436\u0435\u043b\u0435\u0437\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043c\u0435\u043d\u044c\u0448\u0435. \u041f\u0440\u0430\u0432\u0434\u0430, \u043d\u0435\u00a0\u0444\u0430\u043a\u0442, \u0447\u0442\u043e\u00a0\u043e\u043d\u0430 \u0440\u0435\u0448\u0438\u0442 \u0432\u0430\u0448\u0443 \u0443\u0437\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00a0\u2014 \u0442\u043e\u0433\u0434\u0430 \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c.\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM: \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLMPre\u2011training: \u044d\u0442\u043e \u044d\u0442\u0430\u043f, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c LLM \u043e\u0431\u0443\u0447\u0430\u044e\u0442 \u043d\u0430\u00a0\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u0441\u044b\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0442\u043e\u043a\u0435\u043d\u043e\u0432. \u0417\u0434\u0435\u0441\u044c LLM \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u0430\u043c\u0438 \u0438 \u0435\u0451 \u043e\u0431\u0443\u0447\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 LLM \u0443\u0436\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0438 \u0434\u0430\u0436\u0435 \u0440\u0435\u0448\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435\u2011\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0438. \u041d\u043e\u00a0\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043e\u043d\u0430 \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c, \u0430\u00a0\u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 Pretrain \u0437\u0430\u0434\u0430\u0442\u044c LLM \u043a\u0430\u043a\u043e\u0439\u2011\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u00a0\u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e, \u0430\u00a0\u043d\u0430\u0447\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0451 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438\u00a0\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u00a0\u0442\u0435\u043c\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u0430, \u043d\u043e\u00a0\u043d\u0435\u00a0\u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e. \u0414\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0443\u0447\u0438\u0442\u044c LLM \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u0442\u0430\u043f Fine\u2011tuning.Fine\u2011tuning: \u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0443\u0447\u0438\u043c \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0438\u043b\u0438\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438\u00a0\u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON \u043f\u043e\u00a0\u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443 \u0438 \u0441\u0445\u0435\u043c\u0435). \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e\u00a0\u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u043b\u043e\u0432\u0438\u043b\u0430 \u0441\u0443\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0441\u0445\u043e\u0436\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e\u00a0\u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u00a0\u0432\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0430\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u043c\u043e\u0440\u043e\u0437\u043a\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u0435\u0441\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 LoRA.Alignment, \u0438\u043b\u0438\u00a0\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435. \u042d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u044d\u0442\u0430\u043f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f LLM. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0430\u0442\u00a0\u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439\u00a0\u2014 \u043d\u0435\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0438\u043b\u0438\u00a0\u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b RL.\u0412\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u043c\u0441\u044f \u043d\u0430\u00a0\u044d\u0442\u0430\u043f\u0435 Fine\u2011tuning. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e, \u0432\u043e\u0437\u044c\u043c\u0451\u043c open source LLM, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u0430 \u044d\u0442\u0430\u043f Pretrain, \u0438 \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u043c \u0435\u0451 \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u043e\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 JSON\u2011\u0441\u0445\u0435\u043c\u0435.\u041f\u0440\u0438\u00a0Fine\u2011tuning LLM \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u041e\u0434\u0438\u043d \u0438\u0437\u00a0\u043d\u0438\u0445\u00a0\u2014 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439, \u0438\u0437\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u00a0\u044d\u0442\u0430\u043f\u0435 Pretrain. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0431\u043e\u0440\u044c\u0431\u044b \u0441\u00a0\u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f\u00a0\u043b\u0438\u0431\u043e\u00a0\u0436\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f Fine\u2011tuning \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u00a0\u044d\u0442\u0430\u043f\u0435 Pretrain. \u0412\u00a0\u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u043c \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441\u00a0\u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435\u043c, \u043d\u043e\u00a0\u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a MMLU.\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u00a0\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0443.\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0412\u00a0\u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u00a0\u0445\u043e\u0434\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e, \u043a\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b, \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.\u0417\u0430\u0434\u0430\u0447\u0430\u041c\u0435\u0442\u0440\u0438\u043a\u0438\u0414\u0430\u043d\u043d\u044b\u0435\u041c\u043e\u0434\u0435\u043b\u044c\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0417\u0430\u0434\u0430\u0447\u0430\u0417\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c,\u00a0\u2014 \u044d\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f JSON \u043f\u043e\u00a0\u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443 \u0438 \u0441\u0445\u0435\u043c\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u00a0LLM \u044f \u0431\u0443\u0434\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0438 \u0441\u0445\u0435\u043c\u0443, \u0438 \u043d\u0430\u00a0\u0432\u044b\u0445\u043e\u0434\u0435 \u0445\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0438\u0437\u0432\u043b\u0435\u043a\u043b\u0430 \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u00a0JSON \u043f\u043e\u00a0\u0441\u0445\u0435\u043c\u0435.\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 LLM \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0443\u041c\u0435\u0442\u0440\u0438\u043a\u0438\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043c\u044b \u0440\u0435\u0448\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443.\u0412\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u044f \u0445\u043e\u0447\u0443 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c 2\u00a0\u0432\u0435\u0449\u0438:\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f JSON \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c, \u0447\u0442\u043e\u00a0JSON \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u0442\u043e, \u0447\u0442\u043e\u00a0\u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432\u0430\u043b\u0438\u0434\u0435\u043d (\u0447\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435\u00a0\u0432\u044b\u0442\u0430\u0449\u0438\u043b\u0430\u00a0\u043b\u0438\u0448\u043d\u0435\u0435). \u0414\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430.\u0433\u0434\u0435 N\u00a0\u2014 \u0447\u0438\u0441\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u00a0\u0442\u0435\u0441\u0442\u0435; y\u0302, y\u00a0\u2014 \u043e\u0442\u0432\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u044d\u0442\u0430\u043b\u043e\u043d; S\u00a0\u2014 \u0432\u0445\u043e\u0434\u043d\u0430\u044f JSON\u2011\u0441\u0445\u0435\u043c\u0430; lev\u00a0\u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430; 1[\u00b7]\u00a0\u2014 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (\u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 0\u00a0\u0438\u043b\u0438 1). 2. \u0422\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u00a0\u043d\u043e\u0432\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a MMLU, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u00a0\u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0437\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445. \u0433\u0434\u0435 M\u00a0\u2014 \u0447\u0438\u0441\u043b\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0437\u00a0MMLU; \u00e2_j, a_j\u00a0\u2014 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0438 \u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0442\u0432\u0435\u0442\u0430; 1[\u00b7]\u00a0\u2014 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (\u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 0\u00a0\u0438\u043b\u0438 1). \u0414\u0430\u043d\u043d\u044b\u0435\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c open\u2011source \u0434\u0430\u0442\u0430\u0441\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0448\u0451\u043b \u043d\u0430\u00a0Hugging Face. \u0410\u00a0\u0438\u043c\u0435\u043d\u043d\u043e\u00a0\u2014 scrapegraphai\/scrapegraphai-100k. \u042d\u0442\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u0437 100\u00a0\u0442\u044b\u0441. \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u0435\u0431\u2011\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, JSON\u2011\u0441\u0445\u0435\u043c\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u0438. \u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u0434\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b Colab, \u0432\u043e\u0437\u044c\u043c\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438\u0437\u00a0\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0432\u00a0\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 1000\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432.\u0414\u0430\u0442\u0430\u0441\u0435\u0442 scrapegraphai\/scrapegraphai-100k\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u00a0\u2014 paraloq\/json_data_extraction. \u042d\u0442\u043e \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 Google Gemini Pro \u0438 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0439 8\u00a0\u0434\u043e\u043c\u0435\u043d\u043e\u0432\u00a0\u2014 \u043e\u0442\u00a0\u043c\u0435\u0434\u0438\u0446\u0438\u043d\u044b \u0438 e\u2011commerce \u0434\u043e\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u0412\u0437\u044f\u043b \u0435\u0433\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0\u043e\u043d \u043d\u0435\u00a0\u0441\u0432\u044f\u0437\u0430\u043d \u0441\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u043c \u0438 \u0441\u043e\u0431\u0440\u0430\u043d \u043f\u043e\u2011\u0434\u0440\u0443\u0433\u043e\u043c\u0443,\u00a0\u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c LLM. \u0414\u0430\u0442\u0430\u0441\u0435\u0442 paraloq\/json_data_extraction\u0414\u043b\u044f\u00a0\u043e\u0446\u0435\u043d\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e MMLU (Massive Multitask Language Understanding)\u00a0\u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u043e\u0431\u0449\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u0438\u0437 14\u00a0\u0442\u044b\u0441. \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u00a0\u0432\u044b\u0431\u043e\u0440\u043e\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 4\u00a0\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 57\u00a0\u0434\u043e\u043c\u0435\u043d\u043e\u0432\u00a0\u2014 \u043e\u0442\u00a0\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0438 \u0444\u0438\u0437\u0438\u043a\u0438 \u0434\u043e\u00a0\u043f\u0440\u0430\u0432\u0430, \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u044b \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041e\u043d \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043c\u0435\u0440\u0438\u0442\u044c, \u043d\u0435\u00a0\u0442\u0435\u0440\u044f\u0435\u0442\u00a0\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0436\u043d\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0418\u0437\u2011\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 Colab \u044f \u0431\u0435\u0440\u0443 \u043d\u0435\u00a0\u0432\u0435\u0441\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a, \u0430\u00a0\u043f\u043e 5\u00a0\u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0437\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 57\u00a0\u0434\u043e\u043c\u0435\u043d\u043e\u0432 (\u0438\u0442\u043e\u0433\u043e 285\u00a0\u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432)\u00a0\u2014 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u0437\u0430\u0431\u044b\u0432\u0430\u043d\u0438\u044f. \u0414\u0430\u0442\u0430\u0441\u0435\u0442 MMLU\u041c\u043e\u0434\u0435\u043b\u044c\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u044f \u0432\u044b\u0431\u0440\u0430\u043b Qwen2.5-0.5B. \u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u043c\u043b\u0430\u0434\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0435\u0440\u0438\u0438 Qwen2.5\u00a0(0.5\u00a0\u043c\u043b\u0440\u0434 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 32K). \u0415\u0451 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u00a0\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 Colab \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u00a0LoRA.\u041c\u043e\u0434\u0435\u043b\u044c Qwen2.5-0.5B\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u0414\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434 LoRA \u0441\u00a0\u0437\u0430\u043c\u043e\u0440\u043e\u0437\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u0435\u0441\u043e\u0432. LoRA (Low\u2011Rank Adaptation)\u00a0\u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434, \u043f\u0440\u0438\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0441\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0437\u0430\u043c\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0430\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0440\u0430\u043d\u0433\u0430, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u00a0\u0441\u043b\u043e\u0438. \u0417\u0430\u00a0\u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u00a0\u043b\u0438\u0448\u044c \u043c\u0430\u043b\u0443\u044e \u0434\u043e\u043b\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0441\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u044c Colab. LoRA\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443 \u0432\u00a0\u0442\u0440\u0438 \u044d\u0442\u0430\u043f\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0437\u043c\u0435\u0440\u044e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430\u00a0\u043d\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438\u00a0\u2014 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0447\u043a\u0430 \u043e\u0442\u0441\u0447\u0451\u0442\u0430. \u0417\u0430\u0442\u0435\u043c \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443. \u0412\u00a0\u043a\u043e\u043d\u0446\u0435 \u043e\u0446\u0435\u043d\u044e \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u00a0\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438 \u0441\u0440\u0430\u0432\u043d\u044e \u0435\u0451 \u0441\u00a0\u043d\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439. \u0422\u0430\u043a \u043c\u044b \u043f\u043e\u0439\u043c\u0451\u043c, \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0430\u043b\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0436\u043d\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f. \u0425\u043e\u0434 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0414\u0430\u043b\u0435\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u00a0\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u0438\u0436\u0435 \u044f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0433 \u0438 Python\u2011\u043a\u043e\u0434 \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u0435\u0434\u0438\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u00a0\u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0442\u0435\u0441\u0442\u043e\u0432. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0435\u0434\u0438\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u043f\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u0441\u0435\u043c\u043f\u043b\u043e\u0432. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442, \u043f\u0440\u043e\u043c\u043f\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437\u0432\u043b\u0435\u0447\u044c JSON, \u0441\u0445\u0435\u043c\u0443 JSON, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043a\u0441\u0442, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e) \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 JSON, \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0438\u0437\u00a0\u0442\u0435\u043a\u0441\u0442\u0430.\u0422\u0430\u043a\u0436\u0435 \u044f \u0432\u0432\u0451\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430\u00a0\u2014 \u0434\u043e 4096\u00a0\u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0432\u00a0\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 GPU \u0432\u00a0Colab (\u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u0441\u044f OOM). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044f \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043b \u0442\u0435\u043a\u0441\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445import json, pandas as pdfrom jsonschema import Draft7Validatorfrom transformers import AutoTokenizerMODEL_NAME = &#171;Qwen\/Qwen2.5-0.5B&#187;MAX_TOKENS = 4096N_TRAIN, N_TEST = 1000, 200SEED = 42SYSTEM = (    &#171;You are an information extraction engine. Given a source text and a JSON Schema, &#187;    &#171;extract the relevant information and return a single JSON object that strictly conforms &#187;    &#171;to the schema. Output only the JSON, with no extra commentary, markdown, or code fences.&#187;)INSTRUCTION = (    &#171;Extract the information from the text below into a JSON object that strictly conforms &#187;    &#171;to the given JSON Schema. Use only information present in the text. Return only the JSON object.&#187;)tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)def as_obj(x):    return x if isinstance(x, (dict, list)) else json.loads(x)def to_chat(text, schema, target):    user = (f&#187;{INSTRUCTION}\\n\\n&#187;            f&#187;### JSON Schema\\n{json.dumps(schema, ensure_ascii=False)}\\n\\n&#187;            f&#187;### Text\\n{str(text).strip()}&#187;)    return {&#171;messages&#187;: [        {&#171;role&#187;: &#171;system&#187;,    &#171;content&#187;: SYSTEM},        {&#171;role&#187;: &#171;user&#187;,      &#171;content&#187;: user},        {&#171;role&#187;: &#171;assistant&#187;, &#171;content&#187;: json.dumps(target, ensure_ascii=False)},    ]}def fits(rec):    return len(tokenizer.apply_chat_template(rec[&#171;messages&#187;], tokenize=True)) &lt;= MAX_TOKENS\u0414\u0430\u043b\u0435\u0435\u00a0\u0431\u044b\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u043d\u043e 1000\u00a0\u0441\u0435\u043c\u043f\u043b\u043e\u0432 \u0441\u00a0\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c JSON \u0434\u043b\u044f\u00a0\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437\u00a0scrapegraphai-100k. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438df = pd.read_parquet(&#171;hf:\/\/datasets\/scrapegraphai\/scrapegraphai-100k\/data\/train.parquet&#187;)df = df[df[&#171;response_is_valid&#187;]].sample(frac=1, random_state=SEED)train = []for _, r in df.iterrows():    if len(train) &gt;= N_TRAIN:        break    try:        schema, target = as_obj(r[&#171;schema&#187;]), as_obj(r[&#171;response&#187;])        if not str(r[&#171;content&#187;]).strip():            continue        Draft7Validator(schema).validate(target)        rec = to_chat(r[&#171;content&#187;], schema, target)&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-482648","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482648","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=482648"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482648\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=482648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=482648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=482648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}