[{"data":1,"prerenderedAt":91},["ShallowReactive",2],{"wiki-ai-testing-testing-llm-applications-ru":3},{"meta":4,"html":8,"headings":9,"words":90},{"title":5,"description":6,"published":7,"updated":7,"sourceUpdated":7},"Тестирование приложений на LLM","Как тестировать приложения на языковых моделях: недетерминированность, наборы оценок (evals), проверка ответа другой моделью, регресс после смены модели.","2026-11-03","\u003Cp>\u003Cstrong>Тестирование приложения на LLM\u003C/strong> - проверка программы, в которой часть результата создаёт большая языковая модель (large language model, LLM): ответ пользователю, классификацию, извлечённые данные, решение вызвать инструмент. Код вокруг модели проверяют обычными тестами. Поведение модели измеряют наборами оценок: фиксированными задачами с ожидаемым итогом, которые запускают многократно и проверяют кодом, другой моделью или людьми.\u003C/p>\n\u003Cp>Международного стандарта, который описывал бы метод тестирования приложений на LLM, нет. Понятия и практики взяты из научных статей и документации поставщиков моделей. Метод оценки ответов моделью-судьёй исследован в статье «Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena» (Zheng и соавторы, июнь 2023 года). Anthropic описывает оценку в руководстве «Define success criteria and build evaluations» и в инженерной статье «Demystifying evals for AI agents» (9 января 2026). Силлабус ISTQB Certified Tester AI Testing (CT-AI), выпущенный в октябре 2021 года, охватывает тестирование систем на основе ИИ в целом.\u003C/p>\n\u003Ch2 id=\"какую-задачу-решает\" class=\"wiki-heading\">Какую задачу решает\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"какую-задачу-решает\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cp>Классический тест предполагает, что одинаковый вход даёт одинаковый выход, а \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"expected-result\">ожидаемый результат\u003C/span> можно записать заранее. Приложение на LLM нарушает оба допущения: два правильных ответа могут быть сформулированы по-разному, а один и тот же запрос при двух запусках может дать разные ответы.\u003C/p>\n\u003Cp>Поведение меняется и без изменений в коде. Новая формулировка системного промпта, новая версия модели или новый документ в базе знаний могут улучшить одну группу ответов и сломать другую. Ручная проверка нескольких запросов в окне чата этого не покажет.\u003C/p>\n\u003Cp>Тестирование приложения на LLM отделяет то, что можно проверить точно, от того, что можно только измерить. Код покрывают детерминированными тестами. Поведение модели измеряют на фиксированном наборе задач, а результаты двух версий сравнивают как доли успешных попыток.\u003C/p>\n\u003Ch2 id=\"из-чего-состоит-приложение-на-llm\" class=\"wiki-heading\">Из чего состоит приложение на LLM\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"из-чего-состоит-приложение-на-llm\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cp>В таблице - части приложения на LLM и их типичные \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"defect\">дефекты\u003C/span>.\u003C/p>\n\u003Cdiv class=\"wiki-table wiki-table--cols-3\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Часть\u003C/th>\n\u003Cth>Что делает\u003C/th>\n\u003Cth>Типичные дефекты\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Промпт\u003C/td>\n\u003Ctd>Системный промпт, инструкции, примеры, шаблоны\u003C/td>\n\u003Ctd>Неоднозначные инструкции, противоречащие правила, не учтённые граничные случаи\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Модель\u003C/td>\n\u003Ctd>Создаёт ответ\u003C/td>\n\u003Ctd>Неверные факты, проигнорированные инструкции, другое поведение после обновления\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Поиск\u003C/td>\n\u003Ctd>Находит документы для контекста\u003C/td>\n\u003Ctd>Нерелевантные или устаревшие документы, нужного документа нет\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Инструменты\u003C/td>\n\u003Ctd>Функции, которые вызывает модель\u003C/td>\n\u003Ctd>Не тот инструмент, неверные аргументы, лишние вызовы\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Разбор ответа\u003C/td>\n\u003Ctd>Превращает ответ в данные\u003C/td>\n\u003Ctd>Невалидный JSON, нет полей, неожиданные значения\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Ограничители\u003C/td>\n\u003Ctd>Фильтры входа и выхода, проверки политик\u003C/td>\n\u003Ctd>Вредный контент проходит, допустимые запросы блокируются\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>Поиск лежит в основе генерации с дополнением найденными данными (retrieval-augmented generation, RAG), описанной Lewis и соавторами (2020): приложение помещает найденные документы в контекст модели. Неверный ответ тогда может быть ошибкой модели или поиска, и отдельный тест поиска с ожидаемыми документами для каждого запроса показывает, что именно отказало.\u003C/p>\n\u003Ch2 id=\"недетерминированность\" class=\"wiki-heading\">Недетерминированность\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"недетерминированность\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Ch3 id=\"сэмплирование-и-температура\" class=\"wiki-heading\">Сэмплирование и температура\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"сэмплирование-и-температура\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Языковая модель вычисляет вероятность каждого возможного следующего токена и выбирает один из этого распределения случайно. Параметр «температура» (temperature) управляет тем, насколько распределение плоское: высокая температура делает маловероятные токены вероятнее, низкая сосредотачивает выбор на самых вероятных.\u003C/p>\n\u003Cp>В API OpenAI температура - число от 0 до 2, по умолчанию 1. Глоссарий Anthropic указывает, что даже при температуре 0 результаты не полностью детерминированы и одинаковые входные данные могут дать разные ответы при разных вызовах API.\u003C/p>\n\u003Ch3 id=\"seed\" class=\"wiki-heading\">Seed\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"seed\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>В OpenAI Chat Completions API есть параметр \u003Ccode>seed\u003C/code>: при одинаковых seed и параметрах система старается выбирать токены детерминированно, но без гарантии. Параметр помечен как бета-функция и как устаревший, как и поле \u003Ccode>system_fingerprint\u003C/code>, которое сообщало об изменениях на стороне сервера. В более новом Responses API параметра \u003Ccode>seed\u003C/code> нет.\u003C/p>\n\u003Ch3 id=\"причины-вне-сэмплирования\" class=\"wiki-heading\">Причины вне сэмплирования\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"причины-вне-сэмплирования\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Статья Thinking Machines Lab «Defeating Nondeterminism in LLM Inference» (Horace He, 10 сентября 2025) объясняет, почему температуры 0 недостаточно: вычисления зависят от размера пакета (batch), в котором сервер обрабатывает запрос, а размер пакета - от нагрузки со стороны других пользователей. В эксперименте из статьи с открытой моделью Qwen3-235B 1000 генераций одного промпта при температуре 0 дали 80 разных текстов. С ядрами, не зависящими от размера пакета, все 1000 совпали, ценой более медленного вывода.\u003C/p>\n\u003Cp>Страница Anthropic об идентификаторах моделей называет ещё одну причину. Веса за идентификатором модели неизменны, но окружающая инфраструктура может меняться: маршрутизатор запросов, классификаторы безопасности, логика сэмплирования. Такие обновления могут давать небольшие различия в поведении при том же идентификаторе.\u003C/p>\n\u003Ch3 id=\"что-детерминировано\" class=\"wiki-heading\">Что детерминировано\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"что-детерминировано\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Таблица делит части приложения по тому, повторяется ли их результат.\u003C/p>\n\u003Cdiv class=\"wiki-table wiki-table--cols-2\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Детерминировано\u003C/th>\n\u003Cth>Не детерминировано\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Шаблоны промптов и их подстановка\u003C/td>\n\u003Ctd>Текст, созданный моделью\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Парсеры, валидаторы, бизнес-правила\u003C/td>\n\u003Ctd>Выбор инструмента и его аргументов\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Обработчики инструментов при заданных аргументах\u003C/td>\n\u003Ctd>Формулировка, длина и порядок ответа\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Поиск по фиксированному индексу для фиксированного вектора запроса\u003C/td>\n\u003Ctd>Вердикты модели-судьи\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>Левую колонку проверяют обычными тестами, правую измеряют наборами оценок.\u003C/p>\n\u003Ch2 id=\"наборы-оценок\" class=\"wiki-heading\">Наборы оценок\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"наборы-оценок\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cp>\u003Cstrong>Набор оценок\u003C/strong> (evaluation set, eval) - фиксированный набор задач с входными данными и ожидаемым итогом вместе с оценщиками, которые проверяют каждый ответ, и метриками, которые сводят результаты. Он играет роль \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"test-suite\">набора тестов\u003C/span>: на каждой версии запускается один и тот же набор.\u003C/p>\n\u003Ch3 id=\"критерии-успеха\" class=\"wiki-heading\">Критерии успеха\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"критерии-успеха\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Оценка начинается с критериев успеха. Руководство Anthropic требует критериев конкретных, измеримых, достижимых и относящихся к делу: «хорошая работа» - не критерий, «F1 не ниже 0,85 на отложенных сообщениях» - критерий. Большинству приложений нужно несколько критериев: точность выполнения задачи, согласованность, тон, сохранение конфиденциальности, задержка, цена.\u003C/p>\n\u003Ch3 id=\"задачи-и-ожидаемый-итог\" class=\"wiki-heading\">Задачи и ожидаемый итог\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"задачи-и-ожидаемый-итог\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Задача содержит входные данные, нужный ей контекст и ожидаемый итог. Ожидаемый итог - не всегда одна строка. Это может быть метка, значение, список фактов, которые ответ должен или не должен содержать, или состояние системы после запуска. Пример показывает одну задачу; имена полей произвольные.\u003C/p>\n\u003Cdiv class=\"wiki-code\" data-language=\"json\">\u003Cdiv class=\"wiki-code__header\">\u003Cspan class=\"wiki-code__language\">JSON\u003C/span>\u003Cbutton type=\"button\" class=\"wiki-code__copy\" data-wiki-copy data-copied-label=\"Скопировано\">\u003Csvg class=\"wiki-code__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M216,28H88A12,12,0,0,0,76,40V76H40A12,12,0,0,0,28,88V216a12,12,0,0,0,12,12H168a12,12,0,0,0,12-12V180h36a12,12,0,0,0,12-12V40A12,12,0,0,0,216,28ZM156,204H52V100H156Zm48-48H180V88a12,12,0,0,0-12-12H100V52H204Z\"/>\u003C/svg>\u003Csvg class=\"wiki-code__icon wiki-code__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003Cspan class=\"wiki-code__label\">Копировать\u003C/span>\u003Cspan class=\"wiki-code__label wiki-code__label--done\">Скопировано\u003C/span>\u003C/button>\u003C/div>\u003Cpre>\u003Ccode>{\n  &quot;id&quot;: &quot;returns-policy-004&quot;,\n  &quot;input&quot;: &quot;Can I return a laptop 40 days after delivery?&quot;,\n  &quot;context_documents&quot;: [&quot;policies/returns-v3.md&quot;],\n  &quot;expected&quot;: {\n    &quot;label&quot;: &quot;not_eligible&quot;,\n    &quot;must_mention&quot;: [&quot;30 days&quot;],\n    &quot;must_not_call&quot;: [&quot;issue_refund&quot;]\n  },\n  &quot;graders&quot;: [&quot;json_schema&quot;, &quot;exact_label&quot;, &quot;tool_calls&quot;, &quot;rubric_judge&quot;],\n  &quot;tags&quot;: [&quot;returns&quot;, &quot;edge-case&quot;]\n}\u003C/code>\u003C/pre>\u003C/div>\n\u003Cp>Руководство Anthropic даёт три принципа для набора: задачи повторяют реальное распределение запросов и включают граничные случаи, проверку можно автоматизировать, объём важнее качества.\u003C/p>\n\u003Ch3 id=\"оценщики\" class=\"wiki-heading\">Оценщики\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"оценщики\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Оценщик - логика, которая оценивает одну сторону ответа. Статья «Demystifying evals» делит оценщиков на три вида; в таблице - их сильные и слабые стороны, как они названы в статье.\u003C/p>\n\u003Cdiv class=\"wiki-table wiki-table--cols-3\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Оценщик\u003C/th>\n\u003Cth>Сильные стороны\u003C/th>\n\u003Cth>Слабые стороны\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Код\u003C/td>\n\u003Ctd>Быстро, дёшево, объективно, воспроизводимо\u003C/td>\n\u003Ctd>Отвергает допустимые варианты, не видит нюансов\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Модель\u003C/td>\n\u003Ctd>Гибко, масштабируется, работает со свободным текстом\u003C/td>\n\u003Ctd>Недетерминирован, дороже, нужна калибровка\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Человек\u003C/td>\n\u003Ctd>Эталонное качество, экспертное суждение\u003C/td>\n\u003Ctd>Медленно, дорого, трудно масштабировать\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>У задачи часто несколько оценщиков. Сначала идут дешёвые проверки кодом, затем оценщик-модель проверяет то, что код проверить не может: правильность по существу, полноту, тон.\u003C/p>\n\u003Ch3 id=\"метрики\" class=\"wiki-heading\">Метрики\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"метрики\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Ответы различаются, поэтому каждую задачу запускают в нескольких попытках, и результат задачи - доля успешных попыток, а не один вердикт. Метрики \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"pass-at-k\">pass@k\u003C/span> и \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"pass-caret-k\">pass^k\u003C/span> для повторных попыток и статистика малых выборок описаны в статье \u003Ca href=\"/ru/wiki/mcp/evaluating-mcp-servers\" class=\"wiki-link wiki-link--article\">Оценка MCP-сервера на моделях\u003C/a>. Метрики классического тестирования, такие как \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"pass-rate\">доля пройденных тестов\u003C/span> и её знаменатели, описаны в статье \u003Ca href=\"/ru/wiki/test-management/test-metrics\" class=\"wiki-link wiki-link--article\">Метрики тестирования\u003C/a>.\u003C/p>\n\u003Ch2 id=\"детерминированные-проверки\" class=\"wiki-heading\">Детерминированные проверки\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"детерминированные-проверки\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cp>Ответ модели случаен, но правила, которым он должен следовать, - нет, и многие из них проверяются точно.\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Схема.\u003C/strong> Ответ - валидный JSON и соответствует JSON Schema.\u003C/li>\n\u003Cli>\u003Cstrong>Точное совпадение.\u003C/strong> Метка, число или идентификатор после нормализации равны ожидаемому значению.\u003C/li>\n\u003Cli>\u003Cstrong>Правила для подстрок.\u003C/strong> Ответ содержит обязательную фразу или не содержит запрещённую.\u003C/li>\n\u003Cli>\u003Cstrong>Вызовы инструментов.\u003C/strong> Модель вызвала нужный инструмент и не вызвала запрещённый.\u003C/li>\n\u003Cli>\u003Cstrong>Состояние.\u003C/strong> После запуска система в ожидаемом состоянии.\u003C/li>\n\u003C/ul>\n\u003Cp>Пример ниже реализует несколько таких проверок на Python с библиотекой \u003Ccode>jsonschema\u003C/code>. Функция возвращает список ошибок; пустой список означает, что задача прошла детерминированные проверки.\u003C/p>\n\u003Cdiv class=\"wiki-code\" data-language=\"python\">\u003Cdiv class=\"wiki-code__header\">\u003Cspan class=\"wiki-code__language\">python\u003C/span>\u003Cbutton type=\"button\" class=\"wiki-code__copy\" data-wiki-copy data-copied-label=\"Скопировано\">\u003Csvg class=\"wiki-code__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M216,28H88A12,12,0,0,0,76,40V76H40A12,12,0,0,0,28,88V216a12,12,0,0,0,12,12H168a12,12,0,0,0,12-12V180h36a12,12,0,0,0,12-12V40A12,12,0,0,0,216,28ZM156,204H52V100H156Zm48-48H180V88a12,12,0,0,0-12-12H100V52H204Z\"/>\u003C/svg>\u003Csvg class=\"wiki-code__icon wiki-code__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003Cspan class=\"wiki-code__label\">Копировать\u003C/span>\u003Cspan class=\"wiki-code__label wiki-code__label--done\">Скопировано\u003C/span>\u003C/button>\u003C/div>\u003Cpre>\u003Ccode>import json\n\nimport jsonschema\n\nANSWER_SCHEMA = {\n    &quot;type&quot;: &quot;object&quot;,\n    &quot;properties&quot;: {\n        &quot;label&quot;: {&quot;enum&quot;: [&quot;eligible&quot;, &quot;not_eligible&quot;, &quot;unknown&quot;]},\n        &quot;answer&quot;: {&quot;type&quot;: &quot;string&quot;},\n    },\n    &quot;required&quot;: [&quot;label&quot;, &quot;answer&quot;],\n    &quot;additionalProperties&quot;: False,\n}\n\n\ndef check_answer(raw_output: str, expected_label: str, tool_calls: list[dict]) -&gt; list[str]:\n    try:\n        answer = json.loads(raw_output)\n    except json.JSONDecodeError as error:\n        return [f&quot;not JSON: {error}&quot;]\n    try:\n        jsonschema.validate(answer, ANSWER_SCHEMA)\n    except jsonschema.exceptions.ValidationError as error:\n        return [f&quot;schema: {error.message}&quot;]\n    failures = []\n    if answer[&quot;label&quot;] != expected_label:\n        failures.append(f&quot;label: {answer['label']} != {expected_label}&quot;)\n    called = [call[&quot;name&quot;] for call in tool_calls]\n    if &quot;search_policy&quot; not in called:\n        failures.append(&quot;search_policy was not called&quot;)\n    if &quot;issue_refund&quot; in called:\n        failures.append(&quot;issue_refund must not be called&quot;)\n    return failures\u003C/code>\u003C/pre>\u003C/div>\n\u003Cp>API моделей могут обеспечить часть этого уже при генерации. Структурированный вывод Anthropic использует ограниченное декодирование, чтобы ответ следовал JSON Schema из \u003Ccode>output_config.format\u003C/code>; у OpenAI есть формат ответа \u003Ccode>json_schema\u003C/code>. Документация Anthropic перечисляет случаи, когда ответ всё равно может не совпасть со схемой: отказ модели и ответ, обрезанный по \u003Ccode>max_tokens\u003C/code>. Поэтому проверка схемы остаётся в тестах.\u003C/p>\n\u003Ch2 id=\"llm-as-judge\" class=\"wiki-heading\">LLM-as-judge\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"llm-as-judge\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Ch3 id=\"виды-судей\" class=\"wiki-heading\">Виды судей\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"виды-судей\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>\u003Cstrong>LLM-as-judge\u003C/strong> (модель-судья) - проверка, при которой языковая модель оценивает ответы приложения по инструкции. Статья Zheng и соавторов описывает три варианта:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Попарное сравнение.\u003C/strong> Судья видит вопрос и два ответа и выбирает лучший или объявляет ничью.\u003C/li>\n\u003Cli>\u003Cstrong>Оценка одного ответа.\u003C/strong> Судья ставит оценку одному ответу.\u003C/li>\n\u003Cli>\u003Cstrong>Оценка по эталону.\u003C/strong> Судья получает эталонный ответ; это помогает, например, с математическими задачами.\u003C/li>\n\u003C/ul>\n\u003Cp>По данным статьи, GPT-4 в роли судьи согласовывался с предпочтениями людей более чем в 80 процентах случаев, на том же уровне, на каком согласуются между собой люди.\u003C/p>\n\u003Ch3 id=\"известные-смещения\" class=\"wiki-heading\">Известные смещения\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"известные-смещения\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Та же статья описывает систематические ошибки моделей-судей. Таблица сводит их с числами, полученными для моделей 2023 года.\u003C/p>\n\u003Cdiv class=\"wiki-table wiki-table--cols-3\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Смещение\u003C/th>\n\u003Cth>Что происходит\u003C/th>\n\u003Cth>Результат в статье\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Смещение позиции (position bias)\u003C/td>\n\u003Ctd>Судья предпочитает ответ из-за его места\u003C/td>\n\u003Ctd>GPT-4 дал тот же вердикт после перестановки ответов в 65 процентах случаев\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Смещение многословия (verbosity bias)\u003C/td>\n\u003Ctd>Судья предпочитает более длинные ответы\u003C/td>\n\u003Ctd>Ответы, раздутые повторами, обманули Claude-v1 и GPT-3.5 в 91,3 процента случаев, GPT-4 - в 8,7 процента\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Самопредпочтение (self-enhancement bias)\u003C/td>\n\u003Ctd>Судья предпочитает ответы своей модели\u003C/td>\n\u003Ctd>GPT-4 завышал свою долю побед примерно на 10 процентов, Claude-v1 - примерно на 25; авторы считают данных недостаточно, чтобы подтвердить смещение\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Ограниченные рассуждения\u003C/td>\n\u003Ctd>Судья неверно оценивает ответы по математике и логике\u003C/td>\n\u003Ctd>Судей сбивали с толку оцениваемые ответы\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>Статья предлагает меры против этого. Пару оценивают дважды с переставленными ответами, и победа засчитывается, только если оба вердикта совпали. Примеры в промпте судьи подняли согласованность GPT-4 до 77,5 процента, а эталонный ответ снизил долю ошибок на математических вопросах с 70 до 15 процентов.\u003C/p>\n\u003Ch3 id=\"рубрики\" class=\"wiki-heading\">Рубрики\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"рубрики\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>\u003Cstrong>Рубрика\u003C/strong> (rubric) - набор критериев и допустимых вердиктов, по которым судья оценивает ответ. Руководство Anthropic даёт три правила: рубрика подробная и ясная, судья возвращает ограниченный результат, например «correct» или «incorrect» или оценку от 1 до 5, и судья рассуждает до того, как поставить оценку. Руководство также рекомендует проверять ответ другой моделью, не той, что его создала.\u003C/p>\n\u003Cp>Статья «Demystifying evals» добавляет два правила: судья может ответить «Unknown», если информации недостаточно, и каждую сторону ответа оценивает отдельный изолированный судья.\u003C/p>\n\u003Ch3 id=\"калибровка-по-оценкам-людей\" class=\"wiki-heading\">Калибровка по оценкам людей\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"калибровка-по-оценкам-людей\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Судья - измерительный инструмент, и его проверяют как инструмент: люди размечают выборку ответов по той же рубрике, судья оценивает те же ответы, вердикты сравнивают. Статья требует, чтобы судьи были тщательно откалиброваны по экспертам-людям; после этого достаточно периодической проверки людьми.\u003C/p>\n\u003Cp>В примере 200 ответов размечены людьми и судьёй.\u003C/p>\n\u003Cdiv class=\"wiki-table wiki-table--cols-3\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>\u003C/th>\n\u003Cth>Судья: пройден\u003C/th>\n\u003Cth>Судья: не пройден\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Люди: пройден\u003C/td>\n\u003Ctd>120\u003C/td>\n\u003Ctd>10\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Люди: не пройден\u003C/td>\n\u003Ctd>20\u003C/td>\n\u003Ctd>50\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>Простое совпадение - (120 + 50) / 200 = 85 процентов. Часть его ожидается случайно, и каппа Коэна (Cohen, 1960) делает поправку: kappa = (p_o - p_e) / (1 - p_e), где p_o - наблюдаемое совпадение, а p_e - совпадение, ожидаемое по долям каждого вердикта. Здесь p_e = 0,65 x 0,70 + 0,35 x 0,30 = 0,56, и kappa = (0,85 - 0,56) / 0,44, около 0,66.\u003C/p>\n\u003Cp>Кроме того, судья пропустил 20 из 70 ответов, которые люди не приняли, то есть 29 процентов. Это более опасная ошибка, и рубрику дорабатывают на этих 20 ответах, прежде чем использовать судью.\u003C/p>\n\u003Ch2 id=\"проверка-людьми\" class=\"wiki-heading\">Проверка людьми\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"проверка-людьми\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cp>Люди пишут ожидаемые итоги и рубрики, размечают выборку для калибровки и читают стенограммы. Статья «Demystifying evals» указывает, что оценкам не доверяют, пока кто-то не прочитал стенограммы попыток: неудача может быть ошибкой оценщика, а не приложения.\u003C/p>\n\u003Cp>Проверку людьми используют и там, где других надёжных оценщиков нет, например для юридического или медицинского содержания. Руководство Anthropic называет её самым гибким методом и рекомендует по возможности обходиться без неё, потому что она медленная и дорогая.\u003C/p>\n\u003Ch2 id=\"регресс-после-смены-модели-или-промпта\" class=\"wiki-heading\">Регресс после смены модели или промпта\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"регресс-после-смены-модели-или-промпта\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Ch3 id=\"версии-моделей\" class=\"wiki-heading\">Версии моделей\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"версии-моделей\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Поставщики публикуют модели под идентификаторами, которые фиксируют версию. \u003Cstrong>Снимок модели\u003C/strong> (model snapshot) - такая зафиксированная версия модели под собственным идентификатором. На платформе Anthropic каждый идентификатор модели обозначает закреплённую версию с неизменными весами; у старых моделей идентификаторы с датой, например \u003Ccode>claude-sonnet-4-5-20250929\u003C/code>, и псевдонимы, которые переходят на новейший снимок. OpenAI тоже указывает идентификаторы с датой, например \u003Ccode>o3-2025-04-16\u003C/code>.\u003C/p>\n\u003Cp>Закреплённую версию выводят из эксплуатации после срока уведомления: не менее 60 дней у Anthropic для публично выпущенных моделей, не менее 6 месяцев у OpenAI для общедоступных моделей. Вывод из эксплуатации вынуждает сменить модель, и регрессионный запуск для этого планируют заранее.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Закреплённый идентификатор модели фиксирует веса, но не всё поведение. Anthropic указывает, что изменения инфраструктуры могут давать небольшие различия при том же идентификаторе, поэтому регрессионный набор запускают и по расписанию, а не только после изменений.\u003C/p>\n\u003C/blockquote>\n\u003Ch3 id=\"версии-промптов-и-фиксированный-набор\" class=\"wiki-heading\">Версии промптов и фиксированный набор\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"версии-промптов-и-фиксированный-набор\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Промпт версионируют вместе с кодом. Каждый запуск оценки записывает всё, что влияет на ответ: версию промпта, идентификатор модели, параметры, поисковый индекс, определения инструментов и оценщиков. Без этой записи два запуска нельзя сравнить.\u003C/p>\n\u003Cp>Статья «Demystifying evals» разделяет две цели. Оценка возможностей (capability evaluation) измеряет то, что приложение пока делает плохо, и её доля успеха поначалу низкая. Регрессионная оценка (regression evaluation) проверяет то, что уже работало, и её доля успеха держится около 100 процентов. Задачи, которые стабильно проходят, переводят из первого набора во второй.\u003C/p>\n\u003Ch3 id=\"сравнение-запусков\" class=\"wiki-heading\">Сравнение запусков\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"сравнение-запусков\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h3>\n\u003Cp>Изменение принимают после сравнения двух запусков на тех же задачах, с теми же оценщиками и тем же числом попыток. Сравнивают по каждой задаче: неизменный итог может скрывать десять сломанных задач и десять улучшенных. Сравнивают также токены, задержку и вызовы инструментов.\u003C/p>\n\u003Cp>Регресс инструментов, которыми приложение пользуется через Model Context Protocol, описан в статье \u003Ca href=\"/ru/wiki/mcp/mcp-server-regression-testing\" class=\"wiki-link wiki-link--article\">Регрессионное тестирование MCP-сервера\u003C/a>. Атаки через инструкции, спрятанные во входных данных, - отдельный вид тестов, он описан в статье \u003Ca href=\"/ru/wiki/ai-testing/prompt-injection\" class=\"wiki-link wiki-link--article\">Prompt injection\u003C/a>.\u003C/p>\n\u003Ch2 id=\"классические-программы-и-приложения-на-llm\" class=\"wiki-heading\">Классические программы и приложения на LLM\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"классические-программы-и-приложения-на-llm\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cp>Таблица сравнивает тестирование классических программ и приложений на LLM.\u003C/p>\n\u003Cdiv class=\"wiki-table wiki-table--cols-3\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>\u003C/th>\n\u003Cth>Классическая программа\u003C/th>\n\u003Cth>Приложение на LLM\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Выход при том же входе\u003C/td>\n\u003Ctd>Тот же\u003C/td>\n\u003Ctd>Меняется от запуска к запуску\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Ожидаемый результат\u003C/td>\n\u003Ctd>Точное значение\u003C/td>\n\u003Ctd>Метка, факты, рубрика, состояние\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Вердикт теста\u003C/td>\n\u003Ctd>Пройден или не пройден\u003C/td>\n\u003Ctd>Доля успешных попыток\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Оценщик\u003C/td>\n\u003Ctd>Проверка в коде\u003C/td>\n\u003Ctd>Код, модель, человек\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Причина регресса\u003C/td>\n\u003Ctd>Изменение кода\u003C/td>\n\u003Ctd>Изменение кода, промпта, модели, данных\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Стоимость запуска\u003C/td>\n\u003Ctd>Секунды, без модели\u003C/td>\n\u003Ctd>От минут до часов, расход модели\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>В одном приложении сочетаются оба вида тестирования. Детерминированные части проверяют как любой код при каждом изменении. Набор оценок запускают при смене промпта, модели или данных и по расписанию.\u003C/p>\n\u003Cp>Недетерминированный результат - не то же самое, что \u003Cspan class=\"wiki-term\" tabindex=\"0\" data-wiki-term=\"flaky-test\">нестабильный тест\u003C/span>: нестабильный тест падает из-за дефекта в тесте или окружении и его исправляют, а разброс ответов модели - свойство системы, и его измеряют. Нестабильные тесты описаны в статье \u003Ca href=\"/ru/wiki/test-automation/flaky-tests\" class=\"wiki-link wiki-link--article\">Нестабильные тесты\u003C/a>.\u003C/p>\n\u003Ch2 id=\"термины\" class=\"wiki-heading\">Термины\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"термины\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cdiv class=\"wiki-table wiki-table--cols-2\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Термин\u003C/th>\n\u003Cth>Значение\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Приложение на LLM\u003C/td>\n\u003Ctd>Программа, в которой часть результата создаёт большая языковая модель\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Набор оценок (eval)\u003C/td>\n\u003Ctd>Фиксированный набор задач с ожидаемым итогом, оценщиками и метриками\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Температура (temperature)\u003C/td>\n\u003Ctd>Параметр сэмплирования, который управляет случайностью выбора следующего токена\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>LLM-as-judge\u003C/td>\n\u003Ctd>Проверка, при которой языковая модель оценивает ответы по инструкции\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Рубрика (rubric)\u003C/td>\n\u003Ctd>Набор критериев и допустимых вердиктов, по которым судья оценивает ответ\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Смещение позиции (position bias)\u003C/td>\n\u003Ctd>Склонность модели-судьи предпочитать ответ из-за его места\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Каппа Коэна (Cohen's kappa)\u003C/td>\n\u003Ctd>Мера согласия двух оценщиков с поправкой на случайное совпадение\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Снимок модели (model snapshot)\u003C/td>\n\u003Ctd>Зафиксированная версия модели под собственным идентификатором\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Ch2 id=\"источники\" class=\"wiki-heading\">Источники\u003Cbutton type=\"button\" class=\"wiki-heading__anchor\" data-wiki-anchor=\"источники\" aria-label=\"Скопировать ссылку на раздел\" data-copied-label=\"Ссылка на раздел скопирована\">\u003Csvg class=\"wiki-heading__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\"/>\u003C/svg>\u003Csvg class=\"wiki-heading__icon wiki-heading__icon--done\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\"/>\u003C/svg>\u003C/button>\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://arxiv.org/abs/2306.05685\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena, L. Zheng et al., arXiv:2306.05685, NeurIPS 2023\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://platform.claude.com/docs/en/test-and-evaluate/define-success\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Define success criteria and build evaluations, документация Claude Platform\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Demystifying evals for AI agents, Anthropic, 9 января 2026\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://platform.claude.com/docs/en/about-claude/glossary\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Glossary: Temperature, документация Claude Platform\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Model IDs and versions, документация Claude Platform\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://platform.claude.com/docs/en/about-claude/model-deprecations\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Model deprecations, документация Claude Platform\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://platform.claude.com/docs/en/build-with-claude/structured-outputs\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Structured outputs, документация Claude Platform\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/create\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Create chat completion, справочник OpenAI API\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://developers.openai.com/api/docs/deprecations\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Deprecations, документация OpenAI API\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Defeating Nondeterminism in LLM Inference, H. He, Thinking Machines Lab, 10 сентября 2025\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://arxiv.org/abs/2005.11401\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, P. Lewis et al., arXiv:2005.11401\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://doi.org/10.1177/001316446002000104\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">A Coefficient of Agreement for Nominal Scales, J. Cohen, Educational and Psychological Measurement, 1960\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://istqb.org/istqb-releases-certified-tester-ai-testing-v10-ct-ai/\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">ISTQB releases Certified Tester AI Testing (CT-AI), ISTQB, октябрь 2021\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003Cli>\u003Ca href=\"https://python-jsonschema.readthedocs.io/en/stable/validate/\" target=\"_blank\" rel=\"noopener\" class=\"wiki-link wiki-link--external\">jsonschema: Schema Validation, документация библиотеки Python\u003Csvg class=\"wiki-link__icon\" viewBox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\u003Cpath d=\"M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z\"/>\u003C/svg>\u003Cspan class=\"wiki-visually-hidden\">(откроется в новой вкладке)\u003C/span>\u003C/a> (на английском)\u003C/li>\n\u003C/ul>\n",[10,14,17,20,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87],{"id":11,"level":12,"text":13},"какую-задачу-решает",2,"Какую задачу решает",{"id":15,"level":12,"text":16},"из-чего-состоит-приложение-на-llm","Из чего состоит приложение на LLM",{"id":18,"level":12,"text":19},"недетерминированность","Недетерминированность",{"id":21,"level":22,"text":23},"сэмплирование-и-температура",3,"Сэмплирование и температура",{"id":25,"level":22,"text":26},"seed","Seed",{"id":28,"level":22,"text":29},"причины-вне-сэмплирования","Причины вне сэмплирования",{"id":31,"level":22,"text":32},"что-детерминировано","Что детерминировано",{"id":34,"level":12,"text":35},"наборы-оценок","Наборы оценок",{"id":37,"level":22,"text":38},"критерии-успеха","Критерии успеха",{"id":40,"level":22,"text":41},"задачи-и-ожидаемый-итог","Задачи и ожидаемый итог",{"id":43,"level":22,"text":44},"оценщики","Оценщики",{"id":46,"level":22,"text":47},"метрики","Метрики",{"id":49,"level":12,"text":50},"детерминированные-проверки","Детерминированные проверки",{"id":52,"level":12,"text":53},"llm-as-judge","LLM-as-judge",{"id":55,"level":22,"text":56},"виды-судей","Виды судей",{"id":58,"level":22,"text":59},"известные-смещения","Известные смещения",{"id":61,"level":22,"text":62},"рубрики","Рубрики",{"id":64,"level":22,"text":65},"калибровка-по-оценкам-людей","Калибровка по оценкам людей",{"id":67,"level":12,"text":68},"проверка-людьми","Проверка людьми",{"id":70,"level":12,"text":71},"регресс-после-смены-модели-или-промпта","Регресс после смены модели или промпта",{"id":73,"level":22,"text":74},"версии-моделей","Версии моделей",{"id":76,"level":22,"text":77},"версии-промптов-и-фиксированный-набор","Версии промптов и фиксированный набор",{"id":79,"level":22,"text":80},"сравнение-запусков","Сравнение запусков",{"id":82,"level":12,"text":83},"классические-программы-и-приложения-на-llm","Классические программы и приложения на LLM",{"id":85,"level":12,"text":86},"термины","Термины",{"id":88,"level":12,"text":89},"источники","Источники",2345,1793718894050]