<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B5%D1%80%D1%81%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%98%D0%98_%D0%B8_A%2FB-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5</id>
	<title>Версионирование моделей ИИ и A/B-тестирование - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B5%D1%80%D1%81%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%98%D0%98_%D0%B8_A%2FB-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%92%D0%B5%D1%80%D1%81%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%98%D0%98_%D0%B8_A/B-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;action=history"/>
	<updated>2026-05-11T15:13:53Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%92%D0%B5%D1%80%D1%81%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%98%D0%98_%D0%B8_A/B-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6129&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «В контексте моделей ИИ A/B-тестирование имеет решающее значение для оценки влияния измен...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%92%D0%B5%D1%80%D1%81%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%98%D0%98_%D0%B8_A/B-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6129&amp;oldid=prev"/>
		<updated>2026-01-29T08:54:13Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «В контексте моделей ИИ A/B-тестирование имеет решающее значение для оценки влияния измен...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В контексте моделей ИИ A/B-тестирование имеет решающее значение для оценки влияния изменений в обучающем наборе данных, векторных базах данных, алгоритмах, функциях или конфигурациях на ключевые показатели эффективности, такие как точность, вовлеченность пользователей или доход. Путем предъявления различных сегментов пользователей каждому варианту и анализа их взаимодействия A/B-тестирование предоставляет основанные на данных сведения о том, какая версия конкретной модели обеспечивает лучшие результаты. Этот метод гарантирует, что обновления моделей ИИ будут основаны на измеримых улучшениях, минимизируя риски и оптимизируя результаты в реальных приложениях.&lt;br /&gt;
&lt;br /&gt;
== Что вы узнаете ==&lt;br /&gt;
В этом руководстве мы сначала рассмотрим существующий готовый дашборд. Затем мы настроим ваше приложение для отправки дополнительных метаданных. Наконец, мы адаптируем дашборд для анализа данных на основе метаданных.&lt;br /&gt;
&lt;br /&gt;
== Шаги ==&lt;br /&gt;
Общие этапы следующие:&lt;br /&gt;
&lt;br /&gt;
# Изучение текущего дашборда.&lt;br /&gt;
# Настройка приложения для отправки пользовательских метаданных.&lt;br /&gt;
# Адаптация существующего дашборда.&lt;br /&gt;
&lt;br /&gt;
Подробности каждого этапа см. ниже.&lt;br /&gt;
&lt;br /&gt;
=== Изучение текущего дашборда ===&lt;br /&gt;
В рамках приложения '''AI Observability''' мы предоставляем готовый дашборд. ﻿ ﻿&lt;br /&gt;
&lt;br /&gt;
Дашборд позволяет выбирать различных поставщиков и модели и сравнивать их. Это дает возможность оценить их производительность по ключевым показателям, таким как время ответа, количество запросов, потребление токенов, стоимость и настройки температуры. Кроме того, прокрутив вниз, можно проанализировать, как разные модели реагировали на один и тот же запрос, что крайне важно для выявления регрессий.&lt;br /&gt;
&lt;br /&gt;
Этот дашборд предоставляет возможность построения графиков данных в реальном времени и визуализации тенденций, позволяя отслеживать колебания производительности с течением времени, что крайне важно для принятия решений на основе данных при выборе или оптимизации моделей ИИ для использования в производственных условиях. Улучшенной функцией является возможность отслеживания пользовательских метаданных, например, названия обучающего набора данных для тонкой настройки, или добавления бизнес-метрик, таких как удовлетворенность, с помощью классических кнопок.&lt;br /&gt;
&lt;br /&gt;
Давайте посмотрим, как можно передать ваши пользовательские данные в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
=== Настройка вашего приложения ===&lt;br /&gt;
Ваше приложение уже должно быть оснащено необходимыми инструментами в соответствии с руководством по [[Начало работы с наблюдаемостью ИИ и LLM|началу работы]]. Теперь мы можем адаптировать его для распространения дополнительных метаданных. Для этого мы используем [[OpenTelemetry]] и его '''API'''.&lt;br /&gt;
&lt;br /&gt;
В рабочих процессах ИИ/машинного обучения и '''LLM''' крайне важно отслеживать метаданные, связанные с обучением и проверкой модели. Это включает в себя такие детали, как версия модели, идентификатор обучающего набора данных или используемые гиперпараметры. Распространяя эту информацию, вы можете сопоставлять результаты обучения с их последующей производительностью в производственной среде, что позволяет быстрее отлаживать ошибки и лучше понимать поведение модели.&lt;br /&gt;
&lt;br /&gt;
Например, давайте добавим метаданные обучения (например, версию модели и идентификатор набора данных) к каждому трассировочному сигналу. Вот как можно изменить инструментарий вашего приложения:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|from traceloop.sdk import Traceloop&lt;br /&gt;
&lt;br /&gt;
headers = { &amp;quot;Authorization&amp;quot;: &amp;quot;Api-Token &amp;lt;YOUR_DT_API_TOKEN&amp;gt;&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
Traceloop.init(&lt;br /&gt;
&lt;br /&gt;
    app_name=&amp;quot;&amp;lt;your-service&amp;gt;&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    api_endpoint=&amp;quot;https://&amp;lt;YOUR_ENV&amp;gt;.live.astromkey.com/api/v2/otlp&amp;quot;, # or OpenTelemetry Collector URL&lt;br /&gt;
&lt;br /&gt;
    headers=headers,&lt;br /&gt;
&lt;br /&gt;
    resource_attributes={&lt;br /&gt;
&lt;br /&gt;
        'model.version': os.getenv('MODEL_VERSION'),&lt;br /&gt;
&lt;br /&gt;
        'dataset.id': os.getenv('DATASET_ID'),&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
|}&lt;br /&gt;
Параметр &amp;lt;code&amp;gt;resource_attributes&amp;lt;/code&amp;gt; сопоставляет атрибуты, передаваемые в '''OpenTelemetry Resource Attributes'''. Следовательно, эти свойства прикрепляются ко всем сигналам, передаваемым в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
Это полезно для статических метаданных. Однако в некоторых случаях нам нужно добавить информацию, специфичную для запроса, например, значение флага функции во время эксперимента. Для этого мы можем использовать '''OpenTelemetry''' и создать диапазон, содержащий атрибуты запроса.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|from opentelemetry import trace&lt;br /&gt;
&lt;br /&gt;
def handle_request():&lt;br /&gt;
&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
   with trace.get_tracer(&amp;quot;my-awesome-app&amp;quot;).start_as_current_span(name=&amp;quot;handle_request&amp;quot;) as span:&lt;br /&gt;
&lt;br /&gt;
       span.set_attribute(&amp;quot;feature_flag.key&amp;quot;, &amp;quot;my-new-feature-enabled&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
       span.set_attribute(&amp;quot;feature_flag.result.value&amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
       # rest of the handling logic&lt;br /&gt;
&lt;br /&gt;
       ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Адаптация существующего дашборда ===&lt;br /&gt;
Прежде чем изменять дашборд, давайте создадим копию существующего. Чтобы продублировать дашборд, откройте меню рядом с названием панели и выберите '''Дублировать'''.&lt;br /&gt;
&lt;br /&gt;
Это создаст копию готового дашборда, который можно свободно редактировать. Теперь мы можем добавить несколько переменных для фильтрации данных по версии модели и идентификатору набора данных. Чтобы добавить переменные на дашборд, откройте меню рядом со списком переменных и выберите '''Переменная'''. &lt;br /&gt;
&lt;br /&gt;
Мы можем добавить первую переменную для версии модели. Назовём её &amp;lt;code&amp;gt;ModelVersion&amp;lt;/code&amp;gt; и  используем &amp;lt;code&amp;gt;DQL&amp;lt;/code&amp;gt; в качестве определения типа. Наконец, давайте используем следующее DQL-выражение для заполнения возможных значений переменной:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|fetch spans&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; filter isNotNull(gen_ai.system) and isNotNull(model.version)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; summarize versions = collectDistinct(model.version)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; expand versions&lt;br /&gt;
|}&lt;br /&gt;
Запрос извлекает все сегменты, имеющие значения для атрибутов &amp;lt;code&amp;gt;gen_ai.system&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;model.version&amp;lt;/code&amp;gt;. Атрибут &amp;lt;code&amp;gt;model.version&amp;lt;/code&amp;gt;— это тот, который мы добавили вручную на предыдущем шаге. Атрибут &amp;lt;code&amp;gt;gen_ai.system&amp;lt;/code&amp;gt; устанавливается для всех сегментов, связанных с ИИ. Затем мы собираем все уникальные значения для атрибута &amp;lt;code&amp;gt;model.version&amp;lt;/code&amp;gt;. Наконец, мы указываем DQL рассматривать каждое значение &amp;lt;code&amp;gt;model.version&amp;lt;/code&amp;gt; как отдельное значение для заполнения выпадающего меню переменной с помощью команды &amp;lt;code&amp;gt;expand&amp;lt;/code&amp;gt;. Выберите '''Выполнить''', чтобы убедиться, что получены правильные значения.&lt;br /&gt;
&lt;br /&gt;
Теперь мы можем использовать &amp;lt;code&amp;gt;$ModelVersion&amp;lt;/code&amp;gt; в качестве переменной в DQL, и она будет заполнена значением, выбранным из выпадающего меню. Мы можем изменить существующие блоки, чтобы убедиться, что новая переменная используется для правильной фильтрации данных, добавив новое операторное выражение фильтра:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;| filter model.version == $ModelVersion&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Вот и всё! Теперь вы можете добавить больше переменных для фильтрации данных, используя дополнительные пользовательские метаданные.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>