English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гость
1 / ?
назад к урокам

CUDA отображает индексы документов

CUDA-тренер знает, какой документ он отобрал

Каждый этап обучения извлекает последовательность из бинарного .btok, который содержит много документов один за другим. CUDA регистрирует индекс документа вместе с потерями: шаг 47213, источник=gutenberg, документ=128407, потери=2.81. Проксси собирает эти отчеты и поддерживает множество уникальных индексов документов, виденных на источнике.


Из счетов в покрытие

Покрытие источника = уникальные_документы_видены / n_docs. Несколько примеров:


Источникn_docsуникально виденопокрытие
gutenberg512,000154,00030.1%
hermes3-general67,39547,17670.0%
dictionary88,00088,000100.0%
synthetic-chat1,4001,400100.0%

Малые источники быстро насыщаются. Большые источники опускаются ниже 50% на недели. Бонус за покрытие стимулирует бандита посетить документы, которые он еще не просмотрел в источнике.


Бонус покрытия на источнике


Формула бонуса

Бонус за покрытие линейно увеличивается от 1,3x при 0% покрытия до 1,0x при 50% покрытии, а затем остается на уровне 1,0x выше 50%:


if coverage < 0.5:
    bonus = 1.0 + 0.3 * (1.0 - coverage / 0.5)
else:
    bonus = 1.0

Источник с 0% покрытием получает 1,3x; источник с 25% получает 1,15x; источник с 50% опускается до 1,0x. Выше 50%, бонуса не применяется.

Вычисление бонуса

Запуск с покрытием gutenberg на уровне 30% и hermes3-general на уровне 70%. Вычислите бонус за покрытие для каждого источника. Показать свой расчет.

Два разных сигнала свежести

Одная цель, разная детализация

ANDREA имеет два механизма, предотвращающих переобучение на одном источнике. Они кажутся схожими; они измеряют разные вещи.


Штраф за эпоху. Отслеживает общее переизвлечение. Когда lifetime_pulls / n_docs > 1.0, источник теоретически обошел каждый документ хотя бы один раз. Штраф = 1 / (1 + epochs). Источник синтетического чата с 1,4 тыс. документов и 5,6 тыс. жизненных извлечений (эпох = 4) получает штраф 1/5 = 0.2x. Эпохи сохраняются при перезапусках; они никогда не устаревают.


Бонус за покрытие. Отслеживает свежесть на уровне документа в источнике. CUDA отображает индексы документов; прокси сохраняет множество для каждого источника. Истоки ниже 50% покрытия уникальных документов могут получить до 1.3x. Бонус за покрытие стимулирует исследование хвоста источника; штраф за эпоху наказывает истощение его.


Почему оба важны


СигналОтслеживаетНаправлениеЛимитСохраняется при перезапусках
Штраф за эпохуобщее переизвлечениеуменьшает1/(1+e)да
Бонус за покрытиесвежесть на уровне документаувеличивает1.3xда

500-тысячный источник gutenberg может оставаться ниже 50% покрытия на протяжении всего 200-тысячного обучения, никогда не приближаясь к эпохе = 1. Штраф за эпоху игнорирует это; бонус за покрытие активно тянет бандит к неисследованным 70% хвосту gutenberg.


С другой стороны, 1,4-тысячный источник синтетического чата насыщает покрытие (100%) в течение нескольких тысяч извлечений; бонус за покрытие остается на 1.0x, в то время как штраф за эпоху растет.

Различать два

Представьте себе два источника на половине обучения: источник A имеет 1,4 тыс. документов и 8,4 тыс. жизненных извлечений. Источник B имеет 500 тыс. документов и 80 тыс. жизненных извлечений; прокси уже отображало 75 тыс. уникальных индексов документов для B. Который сигнал (штраф за эпоху или бонус за покрытие) определяет вес бандита для каждого источника и почему?

Что дает бонус за покрытие АНДРЕЕ

Провал, который он предотвращает

Без отслеживания на уровне документов агент, выбирающий на основе вознаграждения за шаг, выбирает .btok последовательности жадно. Корпус Гутенберга размером в 500 тыс. документов содержит несколько тысяч последовательностей с низким кросс-энтропией (согласованное предложение, распространенная лексика). Агент, выбирающий только на основе вознаграждения, возвращается к этим последовательностям снова и снова, потому что они продолжают производить сильные сигналы вознаграждения.


Результат: корпус размером в 500 тыс. документов будет отобран через, возможно, 2-5 тыс. уникальных последовательностей в течение 200 тыс. тренировочных шагов. Модель запоминает эти последовательности, не видя остальные. Вместе с тем, емкость не используется, а покрытие остается ниже 1%.


Что дает бонус за покрытие

1.3x при 0% покрытии, уменьшаясь до 1.0x при 50%. Эта подсказка распространяется через выбор UCB1: руки с низким покрытием остаются конкурентоспособными даже тогда, когда их вознаграждение за вытаскивание уменьшается. Агент исследует хвост по своему усмотрению, а не случайно.


Во время 200-тыс. тренировочного шага на корпусе Гутенберга размером в 500 тыс. документов бонус за покрытие обычно повышает фактическое покрытие с ~3% (без бонуса) до ~25-30% (с бонусом). То же количество вычислений - восьми до десяти раз больше документов, касающихся.


Где живет отслеживание


КомпонентОтветственность
microgpt_cuda.cuОтчеты о индексе документа на каждом тренировочном шаге
training_proxy.pyУдерживает множество seen_docs для каждого источника
training_proxy.pyВычисляет покрытие, применяет бонус к вознаграждению агента
training_proxy.pyСохраняет seen_docs в .state.json при перезагрузке

Подключение к конкретному инженерному выбору

Предположим, вы убрали бонус за покрытие из обучения ANDREA-120M. Предсказайте одну конкретную последствие для гутенберговой руки (имеющей 500 тыс. и более документов) в течение 200-тыс. тренировочного шага. Ссылка на процент покрытия, разнообразие документов или качество выборки downstream.