{"id":357547,"date":"2024-05-20T23:53:12","date_gmt":"2024-05-20T23:53:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=357547"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=357547","title":{"rendered":"<span>LLM \u043a\u0430\u043a \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u0435 2023 \u0433\u043e\u0434\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u0433\u0443\u0433\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 <a href=\"https:\/\/arxiv.org\/pdf\/2309.03409.pdf\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 LLM \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0422\u0430\u043c \u043d\u0435\u0442 \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 (Mistral-7B-Instruct) \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438.<\/p>\n<h2>\u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438<\/h2>\n<p>\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u2014 \u044d\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 (\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445) \u0441 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/34c\/962\/4ca\/34c9624ca1a7786f92548cf5c3853c71.png\" alt=\"\" title=\"\" width=\"461\" height=\"295\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/34c\/962\/4ca\/34c9624ca1a7786f92548cf5c3853c71.png\"\/><\/figure>\n<p>\u0420\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 &#8212; \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c. \u041b\u0438\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 X, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Y:<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/883\/217\/53f\/88321753f2bdc66b5a1291042ae0d57d.png\" alt=\"\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f\" title=\"\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f\" width=\"800\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/883\/217\/53f\/88321753f2bdc66b5a1291042ae0d57d.png\"\/><\/p>\n<div><figcaption>\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043d\u0430\u0448\u0430 \u043b\u0438\u043d\u0438\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u0421\u0430\u043c\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%85_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2#:~:text=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%20%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%85%20%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2%20(%D0%9C%D0%9D%D0%9A)%20%E2%80%94,%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9%20%D0%BE%D1%82%20%D1%8D%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85%20%D0%B2%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0442\u043e\u0434 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 (\u041c\u041d\u041a)<\/a>. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u044b \u043e\u0442 \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u043d\u0438\u0438. \u0417\u0430\u0434\u0430\u0447\u0430 &#8212; \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f. <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043f\u043e\u0442\u0435\u0440\u044c (loss function \u0438\u043b\u0438 cost function). \u0418 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0435\u0451 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u0438\u043c\u0435\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041a\u043e\u0433\u0434\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u044f\u0432\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u043e\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 (\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e). \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e, \u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e-\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c.<\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u0421\u0430\u043c\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 &#8212; \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a. <\/p>\n<figure class=\"bordered\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f8f\/b23\/a0f\/f8fb23a0ff9d3800c1175a3f58d26209.png\" alt=\"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c (cost) \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (w)\u00a0\" title=\"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c (cost) \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (w)\u00a0\" width=\"380\" height=\"237\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f8f\/b23\/a0f\/f8fb23a0ff9d3800c1175a3f58d26209.png\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c (cost) \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (w)\u00a0<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u043c\u044b \u043a\u0430\u043a \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c: \u0435\u0441\u043b\u0438 \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 w, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u043c\u043e\u044f \u043b\u0438\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0434 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f? \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e w, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 &#8212; \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e. \u0418 \u0442\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u044e\u0441\u044c \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u043a\u0430\u0436\u0443\u0441\u044c \u0432 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0435.<\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0448\u0430 \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. <\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<br \/>\u041f\u0440\u043e \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D1%80%D0%B0%D0%B4%D0%B8%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D1%83%D1%81%D0%BA\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<br \/>\u0424\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0442\u0435\u0440\u044c &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE%D1%82%D0%B5%D1%80%D1%8C\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<h2>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e LLM<\/h2>\n<p>\u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 y, x;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u043c \u0432\u0435\u0441\u0430 (w, b) \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u043d\u0438\u0438 y_pred = w*x + b;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 w, b. \u0418 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043c \u0435\u0451 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c w, b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0442\u0435\u0440\u044c. (\u041c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: w, b, loss);<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u044c\u044e w, b, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0438\u0445 loss \u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0434\u0430\u0434\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u0438. (\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 &#8212; \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u0441\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043a \u043d\u0435\u043c\u0443 \u0431\u0443\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0430, \u043d\u043e \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 10 \u0448\u0442\u0443\u043a);<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0436\u0434\u0451\u043c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 3 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f loss \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 1 \u0438 \u043f\u0440\u0438\u043c\u0435\u043c \u044d\u0442\u043e \u0437\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c Mistral-7B-Instruct-v0.1 \u0441 Hugging Face:<\/p>\n<pre><code class=\"python\">import torch from transformers import AutoModelForCausalLM, AutoTokenizer  device = \"cuda\"  model = AutoModelForCausalLM.from_pretrained(\"mistralai\/Mistral-7B-Instruct-v0.1\",     device_map=device,     torch_dtype=torch.bfloat16)  tokenizer = AutoTokenizer.from_pretrained(\"mistralai\/Mistral-7B-Instruct-v0.1\")<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"python\">import numpy as np import pandas as pd import matplotlib.pyplot as plt  x = np.arange(0, 6, 0.5) # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f x y = 3*x + np.random.randint(-1, 2, 12) # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f y + \u0448\u0443\u043c  # \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0432\u0435\u0441\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u043d\u0438\u0438 y_pred = w*x + b # \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0435\u0441\u0430 w, b, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c y_pred # \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0441 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \"y\", \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0448\u0435 w = np.random.uniform(-5, 5)  b = np.random.uniform(-5, 5)<\/code><\/pre>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a:<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() ax.scatter(x, y) ax.plot(x, w*x + b, c='red') ax.set_xlabel('x') ax.set_ylabel('y');<\/code><\/pre>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/229\/55b\/f3a\/22955bf3ac7b5dba8ca8563d2d48b236.png\" alt=\"\u0421\u0438\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 - \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f y \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c x.\u041a\u0440\u0430\u0441\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f - \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u0430\u043c\u0438 (w, b). \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c.\" title=\"\u0421\u0438\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 - \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f y \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c x.\u041a\u0440\u0430\u0441\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f - \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u0430\u043c\u0438 (w, b). \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c.\" width=\"574\" height=\"432\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/229\/55b\/f3a\/22955bf3ac7b5dba8ca8563d2d48b236.png\"\/><\/p>\n<div><figcaption>\u0421\u0438\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 &#8212; \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f y \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c x.<br \/>\u041a\u0440\u0430\u0441\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f &#8212; \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u0430\u043c\u0438 (w, b). <br \/>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c.<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 LLM, \u0440\u0430\u0441\u0447\u0451\u0442\u0430  loss:<\/p>\n<pre><code class=\"python\">def is_number_isdigit(s): # \u043f\u0430\u0440\u0441\u0438\u043d\u0433 str \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 LLM     n1 = s[0].replace('.','',1).replace('-','',1).strip().isdigit()     n2 = s[1].replace('.','',1).replace('-','',1).strip().isdigit()     return n1 * n2     # \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \"last_nums\" \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 loss &lt; 1 def check_last_solutions(loss_list, last_nums):     if len(loss_list) >= last_nums:         last = loss_list[-last_nums:]         return all(num &lt; 1 for num in last)         def loss_calc(y, w, x, b):     return ((y - w*x + b)**2).mean() # \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c \u041c\u041d\u041a     loss = loss_calc(y, w, x, b) # \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 loss \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 (w, b)  d = {'loss': [loss], 'w': [w], 'b': [b]} loss_list = [loss] # \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432\u0441\u0435 loss \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435  df = pd.DataFrame(data=d) # \u0434\u0430\u0442\u0430\u0441\u0435\u0442 c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0432\u0435\u0441\u0430\u043c\u0438 (w, b) \u0438 loss df.sort_values(by=['loss'], ascending=False, inplace=True)<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c loss \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 w, b:<\/p>\n<pre><code>df<\/code><\/pre>\n<pre><code class=\"xml\">Output:  loss         w        b 404.096928-2.6836551.586905<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u043c\u0442:<\/p>\n<pre><code class=\"python\"># num_sol - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u043c\u0442\u0435 def create_prompt_bias(num_sol):      meta_prompt_start = f'''Now you will help me minimize a function with two input variables w, b. I have some (w, b) pairs and the function values at those points. The pairs are arranged in descending order based on their function values, where lower values are better.\\n\\n'''      solutions = ''     if num_sol > len(df.loss):         num_sol = len(df.loss)      for i in range(num_sol):         solutions += f'''input:\\nw={df.w.iloc[-num_sol + i]:.3f}, b={df.b.iloc[-num_sol + i]:.3f}\\nvalue:\\n{df.loss.iloc[-num_sol + i]:.3f}\\n\\n'''           meta_prompt_end = f'''Give me a new (w, b) pair that is different from all pairs above, and has a function value lower than any of the above. Do not write code. The output must end with a pair [w, b], where w and b are numerical values.  w, b ='''      return meta_prompt_start + solutions + meta_prompt_end<\/code><\/pre>\n<pre><code># \u0412\u043e\u0442 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u043e\u043c\u0442 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.  # \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e loss(value) \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e.  Now you will help me minimize a function with two input variables w, b. I have some (w, b) pairs and the function values at those points. The pairs are arranged in descending order based on their function values, where lower values are better.  input: w=-0.456, b=0.357 value: 135.314  input: w=0.700, b=0.450 value: 63.494  Give me a new (w, b) pair that is different from all pairs above, and has a function value lower than any of the above. Do not write code. The output must end with a pair [w, b], where w and b are numerical values.  w, b =<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"python\">num_solutions = 10 # \u043a\u043e\u043b-\u0432\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u043c\u0442  for i in range(500):          text = create_prompt(num_solutions)      model_inputs = tokenizer([text], return_tensors=\"pt\").to(device)     model.to(device)      generated_ids = model.generate(             **model_inputs,             max_new_tokens=15,             temperature=0.8,             do_sample=True,             pad_token_id=50256             )      output = tokenizer.batch_decode(generated_ids)[0]      response = output.split(\"w, b =\")[1].strip()          if \"\\n\" in response:         response = response.split(\"\\n\")[0].strip()      if \",\" in response:         numbers = response.split(',')          if is_number_isdigit(numbers):         w, b = float(numbers[0].strip()), float(numbers[1].strip())         loss = loss_calc(y, w, x, b)         loss_list.append(loss)         new_row = {'loss': loss, 'w': w, 'b': b}         new_row_df = pd.DataFrame(new_row, index=[0])         df = pd.concat([df, new_row_df], ignore_index=True)         df.sort_values(by='loss', ascending=False, inplace=True)      if i % 20 == 0: # \u043f\u0440\u0438\u043d\u0442\u0443\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 20-\u044b\u0439 \u0448\u0430\u0433          print(f'{w=} {b=} loss={loss:.3f}')      if check_last_solutions(loss_list, 3):         break<\/code><\/pre>\n<pre><code>Output:  w=-100.0 b=1.0 loss=112593.792 w=-1.5 b=0.9 loss=245.704 w=2.2 b=1.1 loss=15.197 w=-2.0 b=-1.0 loss=246.792 w=3.5 b=1.2 loss=0.809<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 loss:<\/p>\n<pre><code class=\"python\">print(*loss_list[-10:], sep='\\n')<\/code><\/pre>\n<pre><code>44.41708333333333 28.161666666666665 26.42833333333333 21.763333333333335 46.583333333333336 20.939537499999997 20.939537499999997 0.80875 0.80875 0.6437500000000002<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0448\u0430 \u043f\u0440\u044f\u043c\u0430\u044f:<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() ax.scatter(x, y) ax.plot(x, w*x + b, c='red');<\/code><\/pre>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0eb\/a14\/508\/0eba14508c0adcf589396eee9c563ee9.png\" alt=\"\u041f\u043e\u0445\u043e\u0436\u0435, \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c\" title=\"\u041f\u043e\u0445\u043e\u0436\u0435, \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c\" width=\"556\" height=\"413\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0eb\/a14\/508\/0eba14508c0adcf589396eee9c563ee9.png\"\/><\/p>\n<div><figcaption>\u041f\u043e\u0445\u043e\u0436\u0435, \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 loos \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 (\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 700 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0438 \u0431\u044b\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0440\u043e\u0441\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430).<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() print(f'number of step = {len(loss_list)}') ax.plot([x for x in loss_list if x &lt; 700]);<\/code><\/pre>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f40\/d0d\/b53\/f40d0db5336f3b054d897dda60f9bfdd.png\" alt=\"\u0414\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 60-\u0442\u0438 \u0448\u0430\u0433\u043e\u0432\" title=\"\u0414\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 60-\u0442\u0438 \u0448\u0430\u0433\u043e\u0432\" width=\"552\" height=\"413\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f40\/d0d\/b53\/f40d0db5336f3b054d897dda60f9bfdd.png\"\/><\/p>\n<div><figcaption>\u0414\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 60-\u0442\u0438 \u0448\u0430\u0433\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435. \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 (<em>temperature<\/em>), \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u0430\u0440\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0433\u0440\u0430\u0435\u0442 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0448\u0430\u0433\u0430 \u0434\u043b\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430. \u0427\u0435\u043c \u043d\u0438\u0436\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0442\u0435\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0441\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f loss, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u0431\u0440\u043e\u0441\u044b. \u0418 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 &#8212; \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 &#171;\u0448\u0430\u0433\u0438&#187; \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c, \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0441\u0445\u043e\u0434\u0438\u0442\u0441\u044f, \u043d\u043e \u0438 \u0447\u0430\u0441\u0442\u043e \u043e\u0442\u0434\u0430\u0451\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u044b\u0431\u0440\u043e\u0441\u044b.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 loss \u043f\u0440\u0438 <em>temperature<\/em>=0.5 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 20 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439:<\/p>\n<pre><code>w=-0.001 b=2.73 loss=153.029 w=0.0 b=2.73 loss=152.950 w=1.0 b=2.73 loss=83.893 w=0.333 b=1.73 loss=108.150 w=0.5 b=1.73 loss=97.242 w=0.94 b=1.73 loss=71.318 w=0.97 b=1.75 loss=69.999 w=0.995 b=1.715 loss=68.143 w=0.999 b=1.719 loss=67.990 w=0.999 b=1.719 loss=67.990 w=0.999 b=1.719 loss=67.990 w=0.999 b=1.719 loss=67.990 w=0.719 b=0.2 loss=61.172 w=0.75 b=0.15 loss=58.963 w=0.852 b=0.1 loss=53.394 w=0.905 b=0.095 loss=50.863 w=0.918 b=0.078 loss=50.063 w=0.922 b=0.068 loss=49.762 w=0.931 b=0.063 loss=49.294 w=0.936 b=0.056 loss=48.985 w=0.935 b=0.057 loss=49.042 w=0.939 b=0.054 loss=48.826 w=0.939 b=0.054 loss=48.826 w=0.946 b=0.051 loss=48.475 w=0.934 b=0.043 loss=48.922<\/code><\/pre>\n<p>P. S.<\/p>\n<p>\u041d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435, \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438 \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b (\u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Mistral-7B-Instruct \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 bfloat16 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 16Gb).<\/p>\n<p>\u041d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0443\u0433\u0430\u044e\u0449\u0435\u0439. \u0414\u0430\u0436\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 LLM \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 &#171;\u0443\u043c\u043d\u044b\u043c\u0438&#187;, \u0430 \u043b\u044e\u0434\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442 \u0438\u043c \u0432\u0441\u0451 \u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0441\u0441\u044b\u043b\u0430\u043b\u0441\u044f \u0432\u043d\u0430\u0447\u0430\u043b\u0435, \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043c\u0442\u043e\u0432 &#8212; \u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u044f\u0432\u043a\u0430 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0443 \u043f\u0440\u043e\u043c\u0442 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 (\u043d\u0443 \u0438\u043b\u0438 \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432\u043d\u0435\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0432\u044b \u0432 \u0438\u0445 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435).<\/p>\n<p>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u043a\u043e\u0434\u043e\u043c \u043d\u0430 GitHub &#8212; <a href=\"https:\/\/github.com\/akocherovskiy\/LLM_as_optimizer\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/akocherovskiy\/LLM_as_optimizer<\/a><\/p>\n<p>Google Colab, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u04224 &#8212; <a href=\"https:\/\/colab.research.google.com\/drive\/1JkPWG8-U1OuWcV-5yJdUtjbP_8nJNiYc#scrollTo=NFVUe5VUrAFH\" rel=\"noopener noreferrer nofollow\">LLM_as_optimizer<\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/767650\/\"> https:\/\/habr.com\/ru\/articles\/767650\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u0435 2023 \u0433\u043e\u0434\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u0433\u0443\u0433\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 <a href=\"https:\/\/arxiv.org\/pdf\/2309.03409.pdf\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 LLM \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0422\u0430\u043c \u043d\u0435\u0442 \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 (Mistral-7B-Instruct) \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438.<\/p>\n<h2>\u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438<\/h2>\n<p>\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u2014 \u044d\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 (\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445) \u0441 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445.<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0420\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 &#8212; \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c. \u041b\u0438\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 X, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Y:<\/p>\n<figure class=\"bordered full-width\">\n<div><figcaption>\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043d\u0430\u0448\u0430 \u043b\u0438\u043d\u0438\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u0421\u0430\u043c\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%85_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2#:~:text=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%20%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%85%20%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2%20(%D0%9C%D0%9D%D0%9A)%20%E2%80%94,%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9%20%D0%BE%D1%82%20%D1%8D%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85%20%D0%B2%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0442\u043e\u0434 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 (\u041c\u041d\u041a)<\/a>. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u044b \u043e\u0442 \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u043d\u0438\u0438. \u0417\u0430\u0434\u0430\u0447\u0430 &#8212; \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f. <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043f\u043e\u0442\u0435\u0440\u044c (loss function \u0438\u043b\u0438 cost function). \u0418 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0435\u0451 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u0438\u043c\u0435\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041a\u043e\u0433\u0434\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u044f\u0432\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u043e\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 (\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e). \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e, \u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e-\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c.<\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u0421\u0430\u043c\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 &#8212; \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a. <\/p>\n<figure class=\"bordered\">\n<div><figcaption>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c (cost) \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (w)\u00a0<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u043c\u044b \u043a\u0430\u043a \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c: \u0435\u0441\u043b\u0438 \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 w, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u043c\u043e\u044f \u043b\u0438\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0434 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f? \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e w, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 &#8212; \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e. \u0418 \u0442\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u044e\u0441\u044c \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u043a\u0430\u0436\u0443\u0441\u044c \u0432 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0435.<\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0448\u0430 \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. <\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<br \/>\u041f\u0440\u043e \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D1%80%D0%B0%D0%B4%D0%B8%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D1%83%D1%81%D0%BA\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<br \/>\u0424\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0442\u0435\u0440\u044c &#8212; <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE%D1%82%D0%B5%D1%80%D1%8C\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<h2>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e LLM<\/h2>\n<p>\u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 y, x;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u043c \u0432\u0435\u0441\u0430 (w, b) \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u043d\u0438\u0438 y_pred = w*x + b;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 w, b. \u0418 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043c \u0435\u0451 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c w, b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0442\u0435\u0440\u044c. (\u041c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: w, b, loss);<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u044c\u044e w, b, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0438\u0445 loss \u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0434\u0430\u0434\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u0438. (\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 &#8212; \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u0441\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043a \u043d\u0435\u043c\u0443 \u0431\u0443\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0430, \u043d\u043e \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 10 \u0448\u0442\u0443\u043a);<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0436\u0434\u0451\u043c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 3 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f loss \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 1 \u0438 \u043f\u0440\u0438\u043c\u0435\u043c \u044d\u0442\u043e \u0437\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c Mistral-7B-Instruct-v0.1 \u0441 Hugging Face:<\/p>\n<pre><code class=\"python\">import torch from transformers import AutoModelForCausalLM, AutoTokenizer  device = \"cuda\"  model = AutoModelForCausalLM.from_pretrained(\"mistralai\/Mistral-7B-Instruct-v0.1\",     device_map=device,     torch_dtype=torch.bfloat16)  tokenizer = AutoTokenizer.from_pretrained(\"mistralai\/Mistral-7B-Instruct-v0.1\")<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"python\">import numpy as np import pandas as pd import matplotlib.pyplot as plt  x = np.arange(0, 6, 0.5) # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f x y = 3*x + np.random.randint(-1, 2, 12) # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f y + \u0448\u0443\u043c  # \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0432\u0435\u0441\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u043d\u0438\u0438 y_pred = w*x + b # \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0435\u0441\u0430 w, b, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c y_pred # \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0441 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \"y\", \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0448\u0435 w = np.random.uniform(-5, 5)  b = np.random.uniform(-5, 5)<\/code><\/pre>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a:<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() ax.scatter(x, y) ax.plot(x, w*x + b, c='red') ax.set_xlabel('x') ax.set_ylabel('y');<\/code><\/pre>\n<figure class=\"bordered full-width\">\n<div><figcaption>\u0421\u0438\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 &#8212; \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f y \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c x.<br \/>\u041a\u0440\u0430\u0441\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f &#8212; \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u0430\u043c\u0438 (w, b). <br \/>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c.<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 LLM, \u0440\u0430\u0441\u0447\u0451\u0442\u0430  loss:<\/p>\n<pre><code class=\"python\">def is_number_isdigit(s): # \u043f\u0430\u0440\u0441\u0438\u043d\u0433 str \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 LLM     n1 = s[0].replace('.','',1).replace('-','',1).strip().isdigit()     n2 = s[1].replace('.','',1).replace('-','',1).strip().isdigit()     return n1 * n2     # \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \"last_nums\" \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 loss &lt; 1 def check_last_solutions(loss_list, last_nums):     if len(loss_list) >= last_nums:         last = loss_list[-last_nums:]         return all(num &lt; 1 for num in last)         def loss_calc(y, w, x, b):     return ((y - w*x + b)**2).mean() # \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c \u041c\u041d\u041a     loss = loss_calc(y, w, x, b) # \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 loss \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 (w, b)  d = {'loss': [loss], 'w': [w], 'b': [b]} loss_list = [loss] # \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432\u0441\u0435 loss \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435  df = pd.DataFrame(data=d) # \u0434\u0430\u0442\u0430\u0441\u0435\u0442 c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0432\u0435\u0441\u0430\u043c\u0438 (w, b) \u0438 loss df.sort_values(by=['loss'], ascending=False, inplace=True)<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c loss \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 w, b:<\/p>\n<pre><code>df<\/code><\/pre>\n<pre><code class=\"xml\">Output:  loss         w        b 404.096928-2.6836551.586905<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u043c\u0442:<\/p>\n<pre><code class=\"python\"># num_sol - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u043c\u0442\u0435 def create_prompt_bias(num_sol):      meta_prompt_start = f'''Now you will help me minimize a function with two input variables w, b. I have some (w, b) pairs and the function values at those points. The pairs are arranged in descending order based on their function values, where lower values are better.\\n\\n'''      solutions = ''     if num_sol > len(df.loss):         num_sol = len(df.loss)      for i in range(num_sol):         solutions += f'''input:\\nw={df.w.iloc[-num_sol + i]:.3f}, b={df.b.iloc[-num_sol + i]:.3f}\\nvalue:\\n{df.loss.iloc[-num_sol + i]:.3f}\\n\\n'''           meta_prompt_end = f'''Give me a new (w, b) pair that is different from all pairs above, and has a function value lower than any of the above. Do not write code. The output must end with a pair [w, b], where w and b are numerical values.  w, b ='''      return meta_prompt_start + solutions + meta_prompt_end<\/code><\/pre>\n<pre><code># \u0412\u043e\u0442 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u043e\u043c\u0442 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.  # \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e loss(value) \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e.  Now you will help me minimize a function with two input variables w, b. I have some (w, b) pairs and the function values at those points. The pairs are arranged in descending order based on their function values, where lower values are better.  input: w=-0.456, b=0.357 value: 135.314  input: w=0.700, b=0.450 value: 63.494  Give me a new (w, b) pair that is different from all pairs above, and has a function value lower than any of the above. Do not write code. The output must end with a pair [w, b], where w and b are numerical values.  w, b =<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"python\">num_solutions = 10 # \u043a\u043e\u043b-\u0432\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u043c\u0442  for i in range(500):          text = create_prompt(num_solutions)      model_inputs = tokenizer([text], return_tensors=\"pt\").to(device)     model.to(device)      generated_ids = model.generate(             **model_inputs,             max_new_tokens=15,             temperature=0.8,             do_sample=True,             pad_token_id=50256             )      output = tokenizer.batch_decode(generated_ids)[0]      response = output.split(\"w, b =\")[1].strip()          if \"\\n\" in response:         response = response.split(\"\\n\")[0].strip()      if \",\" in response:         numbers = response.split(',')          if is_number_isdigit(numbers):         w, b = float(numbers[0].strip()), float(numbers[1].strip())         loss = loss_calc(y, w, x, b)         loss_list.append(loss)         new_row = {'loss': loss, 'w': w, 'b': b}         new_row_df = pd.DataFrame(new_row, index=[0])         df = pd.concat([df, new_row_df], ignore_index=True)         df.sort_values(by='loss', ascending=False, inplace=True)      if i % 20 == 0: # \u043f\u0440\u0438\u043d\u0442\u0443\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 20-\u044b\u0439 \u0448\u0430\u0433          print(f'{w=} {b=} loss={loss:.3f}')      if check_last_solutions(loss_list, 3):         break<\/code><\/pre>\n<pre><code>Output:  w=-100.0 b=1.0 loss=112593.792 w=-1.5 b=0.9 loss=245.704 w=2.2 b=1.1 loss=15.197 w=-2.0 b=-1.0 loss=246.792 w=3.5 b=1.2 loss=0.809<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 loss:<\/p>\n<pre><code class=\"python\">print(*loss_list[-10:], sep='\\n')<\/code><\/pre>\n<pre><code>44.41708333333333 28.161666666666665 26.42833333333333 21.763333333333335 46.583333333333336 20.939537499999997 20.939537499999997 0.80875 0.80875 0.6437500000000002<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0448\u0430 \u043f\u0440\u044f\u043c\u0430\u044f:<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() ax.scatter(x, y) ax.plot(x, w*x + b, c='red');<\/code><\/pre>\n<figure class=\"bordered full-width\">\n<div><figcaption>\u041f\u043e\u0445\u043e\u0436\u0435, \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 loos \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 (\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 700 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0438 \u0431\u044b\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0440\u043e\u0441\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430).<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() print(f'number of step = {len(loss_list)}') ax.plot([x for x in loss_list if x &lt; 700]);<\/code><\/pre>\n<figure class=\"bordered full-width\">\n<div><figcaption>\u0414\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 60-\u0442\u0438 \u0448\u0430\u0433\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435. \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 (<em>temperature<\/em>), \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u0430\u0440\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0433\u0440\u0430\u0435\u0442 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0448\u0430\u0433\u0430 \u0434\u043b\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430. \u0427\u0435\u043c \u043d\u0438\u0436\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0442\u0435\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0441\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f loss, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u0431\u0440\u043e\u0441\u044b. \u0418 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 &#8212; \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 &#171;\u0448\u0430\u0433\u0438&#187; \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c, \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0441\u0445\u043e\u0434\u0438\u0442\u0441\u044f, \u043d\u043e \u0438 \u0447\u0430\u0441\u0442\u043e \u043e\u0442\u0434\u0430\u0451\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u044b\u0431\u0440\u043e\u0441\u044b.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 loss \u043f\u0440\u0438 <em>temperature<\/em>=0.5 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 20 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439:<\/p>\n<pre><code>w=-0.001 b=2.73 loss=153.029 w=0.0 b=2.73 loss=152.950 w=1.0 b=2.73 loss=83.893 w=0.333 b=1.73 loss=108.150 w=0.5 b=1.73 loss=97.242 w=0.94 b=1.73 loss=71.318 w=0.97 b=1.75 loss=69.999 w=0.995 b=1.715 loss=68.143 w=0.999 b=1.719 loss=67.990 w=0.999 b=1.719 loss=67.990 w=0.999 b=1.719 loss=67.990 w=0.999 b=1.719 loss=67.990 w=0.719 b=0.2 loss=61.172 w=0.75 b=0.15 loss=58.963 w=0.852 b=0.1 loss=53.394 w=0.905 b=0.095 loss=50.863 w=0.918 b=0.078 loss=50.063 w=0.922 b=0.068 loss=49.762 w=0.931 b=0.063 loss=49.294 w=0.936 b=0.056 loss=48.985 w=0.935 b=0.057 loss=49.042 w=0.939 b=0.054 loss=48.826 w=0.939 b=0.054 loss=48.826 w=0.946 b=0.051 <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-357547","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/357547","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=357547"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/357547\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=357547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=357547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=357547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}