Alterna · учебный материал

20.2 Проверяем совместимость частей

Словарь, размеры таблиц и веса должны подходить друг другу. Совпадения названий файлов недостаточно.

Что в этом материале

Содержание и основные понятия

На предыдущей странице: определяем вход и ожидаемый результат.
Словарь, размеры таблиц и веса должны подходить друг другу. Совпадения названий файлов недостаточно.
Совместимость словаря, параметров и runtime проверяется до запуска. Происхождение ответа и запреты действий входят в проект наравне с прямым расчётом. Финал соединяет знакомое.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Данные делятся до обучения и связываются с конфигурацией
Train pipeline должен отвечать, какие samples использованы, как они разделены и какой config породил checkpoint. Случайное разбиение после chunking способно поместить соседние части одного документа и в train, и в validation. Поэтому устойчивый ключ строят из ID исходного объекта, а bucket вычисляют детерминированно. Встроенный
hash()
Python не подходит: его salt может меняться между процессами; криптографический SHA-256 даёт стабильный результат для тех же bytes.
Validation split остаётся закрытым от optimizer и выбора отдельных ответов. При повторном запуске те же IDs обязаны попасть в те же множества независимо от порядка входного списка. Checkpoint для продолжения включает weights, optimizer/scheduler state, step и RNG states, а manifest связывает его с hashes данных, tokenizer и config. Одних весов достаточно для inference, но недостаточно для точного resume.
Продолжение.
Lineage view соединяет source version, фильтрацию, split, batches, config hash, optimizer steps и checkpoint digest. Изменение одного параметра создаёт новый run ID, а resume проверяет совместимость до загрузки state. Метрики подписываются split и step: число без этой пары нельзя однозначно связать с состоянием модели.
Граница применимости.
Stable split не предотвращает semantic duplicates, contamination из внешних benchmark и дрейф данных. Один seed не обеспечивает bitwise reproducibility между разными kernels и hardware. Успешное уменьшение validation loss не доказывает factuality, безопасность или полезность; эти свойства проверяются отдельными наборами после заморозки кандидата.
from hashlib import sha256
sample_ids_20b = [f'sample-{index_20b}' for index_20b in range(12)]
def split_name_20b(identifier_20b):
bucket_20b = int(sha256(identifier_20b.encode('utf-8')).hexdigest(), 16) % 4
return 'validation' if bucket_20b == 0 else 'train'
assignments_20b = {item_20b: split_name_20b(item_20b) for item_20b in sample_ids_20b}
# Полный исполняемый пример — по ссылке ниже.
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Vocabulary order и shapes являются частью совместимости artifact.
Запускаем изученную цепочку. Как этот вопрос продолжает полученный результат?
Python-примеры главы 20
Академическая база →

Структурная карта учебников