Практическое задание

Среднее по версии нужно дополнить разбивкой по темам, распределениями и числом примеров. Автоматический выбор idxmax убираем: он игнорирует малые группы и риск регрессии.

Короткий ответ

Что ответить на собеседовании

Среднее по версии нужно дополнить разбивкой по темам, распределениями и числом примеров. Автоматический выбор idxmax убираем: он игнорирует малые группы и риск регрессии.

Подробный разбор

Ответ с пояснениями

Условие

Практическое задание

AI сгенерировал код для решения о выпуске новой LLM. Проведи ревью: измени его так, чтобы редактор мог сравнить качество версий по тематическим сегментам, увидеть разброс оценок и заметить риск ухудшения на малой группе данных.

import matplotlib.pyplot as plt import pandas as pd

scores = pd.read_csv('model_scores.csv') summary = scores.groupby('model_version')['score'].mean() plt.bar(summary.index, summary.values) plt.title('Качество моделей') plt.ylabel('Средняя оценка') plt.show()

print('Лучшая версия:', summary.idxmax())

Ответ

Среднее по версии нужно дополнить разбивкой по темам, распределениями и числом примеров. Автоматический выбор idxmax убираем: он игнорирует малые группы и риск регрессии.

Нужна колонка topic; если её нет, сначала добавьте тематическую разметку. Пример сохраняет выбросы, показывает n и отмечает малые группы условным порогом 20, который не является статистической гарантией.

import matplotlib.pyplot as plt
import pandas as pd

scores = pd.read_csv('model_scores.csv')
required = {'model_version', 'topic', 'score'}
if not required.issubset(scores.columns):
    raise ValueError('Нужны model_version, topic и score')
scores['score'] = pd.to_numeric(scores['score'], errors='raise')
if scores[list(required)].isna().any().any():
    raise ValueError('Сначала разберите пропущенные значения')
stats = scores.groupby(['topic', 'model_version'])['score'].agg(
    n='count', mean='mean', median='median', std='std', minimum='min'
)
stats['small_group'] = stats['n'] < 20
print(stats)
for topic, part in scores.groupby('topic'):
    ax = part.boxplot(column='score', by='model_version', showfliers=True)
    ax.set_title(str(topic))
    ax.set_ylabel('Оценка')
    plt.suptitle('')
    plt.show()

Для решения о релизе сравните версии на одинаковых example_id, оцените парные разницы и неопределённость по темам. Не объявляйте отсутствие значимости доказательством отсутствия регресса.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее