- BrainTools - https://www.braintools.ru -
В апреле OpenAi проводила конкурс Parameter Golf [1] на самую эффективную нейросеть. Были выставлены ограничения — 16 мегабайт на веса и обвязку, 10 минут обучения [2] на восьми H100. Единственный критерий — самый низкий bpb. Бэйслайном конкурса был код от OpenAi, собранный в классической архитектуре классическими инструментами, его bpb составил 1,2244, победитель добился 1.0565
Идея конкурса мне очень понравилась по весьма прозаическим причинам — размер весов позволял провести обучение на моей старенькой Geforce 1660 с шестью гигабайтами памяти [3] на борту, а чёткая цель позволяла легко ориентироваться среди конкурентов.
Дальше обзор победителей и мой результат.
Целевой показатель bpb (bits per byte) хорош тем, что он абсолютно объективен. Микросети принципиально неспособны к удержанию семантики в том виде, в котором вы привыкли при общении с LLM, но этот показатель демонстрирует, как модель научилась сжимать информацию через выучивание базовых грамматических инвариантов.
Сразу поясню, что в перечень победителей попадали только те, кто улучшил последний лучший результат bpb на 0,005.
Чтобы втиснуться в 16 МБ и выжать bpb 1.05, подавляющее число участников пошли путем жёсткой оптимизации: 2-битное квантование (разрушающее логику [4]), хардкодные N-граммы из 90-х, костыли для регистров (CaseOps) и обучение на лету (TTT). Задача — минимизация bpb на старых архитектурах.
Моя цель была другой: я хотел добиться, того же самого, но через чистую нейросетевую топологию, без скриптовых костылей и статистических махинаций. По сути, только за счет правильной внутренней динамики. В принципе, мой результат bpb 1.075 оказался очень близок к рекордному.
|
№ |
Run (Ключевые инструменты) |
BPB Скор |
Автор |
Детали реализации архитектуры и методов |
|
1 |
Calib32 Token-Only N-gram + AsymLogit Stack |
1.0565 |
codemath3000 |
На базе PR 2135. Перезапуск архитектуры из PR 2130 на чистых каноничных данных CaseOps с батчем калибровки GPTQ_CALIBRATION_BATCHES=32. Усредненный результат по 3 сидам: 1.05651 в рамках льготного периода. Улучшение p=0.014 по сравнению с PR 2014. |
|
2 |
Progressive Context Growth + Short-Doc Score-First TTT |
1.0576 |
simonbissonnette |
На базе PR 2014. Использован стек CaseOps (PR 1855 / 1953) с прогрессивным увеличением контекста до 3k токенов. Включает адаптацию во время инференса (TTT) с предварительным скорингом для коротких документов. В основе ветка AWQ-lite / AsymLogit. Среднее по 3 сидам: 1.05759. |
|
3 |
Long-Context No-Q/V TTT + QK-Gain 5.25 |
1.0586 |
andrewbaggio1 |
На базе PR 1953 (база V21 из 1945). Использован длинный контекст (2560) для оценки и TTT. Применена маска TTT без обновления Q/V весов (no-Q/V), learning rate для TTT = 0.75, инициализация QK_GAIN=5.25. Среднее по 3 сидам: 1.05855. |
|
4 |
AWQ-Lite GPTQ + AsymLogit on PR1855 Stack |
1.0594 |
alertcat |
На базе PR 1945. Классический стек PR 1855, дополненный смешанным квантованием AWQ-lite GPTQ (PR 1908) и асимметричными логитами AsymLogit. Среднее по 3 сидам для базы V21 v2: 1.05943 после строгого перезапуска с seed=42. |
|
5 |
BOS-Fixed SmearGate + LQER + SparseAttnGate + 9-Hparam Stack |
1.0611 |
codemath3000 |
На базе PR 1855. Стек с исправленными границами BOS (начало последовательности), добавлены LQER и база SparseAttnGate / PolarNS / FusedCE. Применено погрупповое сжатие lrzip и жадное переопределение 9 гиперпараметров. |
|
6 |
BOS-Fixed SmearGate + LQER Asymmetric + PR1787 SparseAttn + Phased TTT |
1.0614 |
aquariouseworkman |
На базе PR 1851. Применен фикс границ BOS к стеку SmearGate + LQER. Используется база SparseAttnGate / PolarNS / FusedCE, токенизация CaseOps и фазированный TTT с предварительным скорингом (phased score-first TTT). |
|
7 |
PR1736 + PolarNS + MIN_LR + SparseAttnGate + FusedCE + Warm-A TTT |
1.0634 |
nprime06 |
На базе PR 1787. Стек CaseOps, к которому добавлены: коэффициенты Newton-Schulz (PolarNS), MIN_LR=0.1, SparseAttnGate, фьюзд-кросс-энтропия с софткаппингом (fused softcapped CE) и TTT с теплым стартом матрицы A (warm-start-A). |
|
8 |
CaseOps + MLPClip12 + SmearGate/LoRA-TTT |
1.0645 |
dexhunter |
На базе PR 1769. Стек CaseOps с доработками SmearGate и адаптацией LoRA-TTT, добавлен клиппинг перцептрона MLPClip12. Среднее по 5 сидам сдвигает границу эффективности (frontier) CaseOps. |
|
9 |
SP8192 + CaseOps + GatedAttn + QuantGate + Loop45 + Phased TTT |
1.0655 |
dexhunter |
На базе PR 1736. Внедрено биективное преобразование CaseOps без потерь с учетом BPB через байтовые сайдкар-файлы (byte-sidecar). Добавлены гейтированное внимание [5] (GatedAttn) и масштабирование квант-гейтов поверх стека фазированного TTT. |
|
10 |
CaseOps Tokenizer + Tapered WD + Phased TTT |
1.0678 |
romeerp |
На базе PR 1729. Биективное преобразование регистра (CaseOps) с валидационными байтовыми сайдкарами, плюс мягкое позднее затухание weight-decay (taper) для оптимизатора Muon на легальном стеке фазированного TTT. |
|
11 |
SmearGate + Attention Output Gate + Legal TTT |
1.0714 |
MarioPaerle |
На базе PR 1667. Использованы: SmearGate, гейт выхода механизма внимания (attention output gate), рекуррентность по глубине (depth recurrence), параллельные остаточные связи, QK-Gain=5.25, квантование и score-first TTT. |
|
12 |
VarLen Attention + Fused MLP + Multi-Phase Global SGD TTT |
1.0719 |
dexhunter |
На базе PR 1626. Использованы: механизм внимания с переменной длиной (VarLen Attention), fused MLP, многофазный глобальный SGD для TTT, урезанный (trimmed) GPTQ, MLR 0.026, int7 эмбеддинги и адаптивный клиппинг. |
|
13 |
VarLenAttn + PhasingTTT |
1.0728 |
romeerp |
На базе PR 1610. Стек в стиле PR 1530 (внимание переменной длины + fused MLP), к которому добавлен фазированный TTT поверх уже отскоренных валидационных чанков контекста. |
(перевод топа с сайта конкурса)
Когда я увидел первые рекорды с bpb на уровне ещё 1,21 — 1,22, то немного испугался. Люди работали с нейросетями объемом более 100 миллионов параметров (которые моя видеокарта даже бы не смогла пошевелить), применяли жесточайшее квантование, и чем дальше, тем хуже. Использовались инструменты о которых я, честно говоря, и не слышал.
Вот саммари основных направлений оптимизации, желающие могут изучить дополнительно:
Test-Time Training (TTT) и его мутации: Настройка весов прямо в процессе инференса на конкретном промпте. Участники используют Score-First TTT (сначала оцениваем, потом учим), Phased TTT (обучение по фазам контекста), LoRA-TTT и экзотические фиксы вроде Warm-A (теплый старт матриц) или заморозку Q/V матриц во время TTT (No-Q/V).
Агрессивное квантование и компрессия: AWQ-lite, GPTQ (с калибровочными батчами), int7 для эмбеддингов и погрупповое сжатие lrzip.
Механизм внимания: Отказ от классического Attention в пользу SparseAttnGate, внимания с переменной длиной (VarLen Attention), гейтирования выходов внимания (Attention Output Gate) и подгонки QK-Gain для стабилизации softmax-распределения.
Работа с регистрами и логитами: Внедрение CaseOps (биективные преобразования токенизатора для умной обработки регистра без потери байтовой информации) и AsymLogit (асимметричные логиты).
Нормализация и регуляризация: PolarNS (применение коэффициентов Ньютона-Шульца вместо стандартного LayerNorm), фьюзд кросс-энтропия с мягким ограничением выбросов (softcapped CE), управление затуханием весов (tapered WD для Muon) и клиппинг градиентов внутри MLP (MLPClip12).
Надо отдать должное OpenAi, понимая, что весь топ будет забит хардкорными ml-инженерами, живущими оптимизацией, был добавлен стек альтернативных архитектур. OpenAi предложила направлять код, который может быть хуже текущего лучшего результата, или не проходящего по размерам нейросети, но с оригинальной архитектурой. Я больше ориентировался именно на этот вариант.
|
№ |
Run (Оригинальные архитектуры) |
BPB Скор |
Автор |
Детали реализации архитектуры и методов |
|
1 |
1 Bit Quantization |
1.1239 |
CiprianFlorin-Ifrim |
106 миллионов параметров, квантованных до 1 бита, плюс различные архитектурные изменения и 2 часа обучения. |
|
2 |
MDLM Text Diffusion |
1.1465 |
agalimova |
На базе PR 1106. Маскированная диффузионная языковая модель (MDLM) с оценкой в стиле ELBO через поглощающую маску. Провалидирована на двух ускорителях H100 как дискретная диффузионная модель. |
|
3 |
Hymba-8L + Sliding Attention at 32K |
1.1467 |
mkenney2 |
На базе PR 1245. Гибридная архитектура Mamba SSM со скользящим окном внимания и контекстом на 32 тысячи токенов. Усреднение по 3 сидам, размер менее 16 МБ, адаптация score-first TTT. |
|
4 |
Mamba-3 Hybrid SSM + SP8192 + Legal TTT |
1.1473 |
mradassaad |
На базе PR 1644. 7-слойная гибридная модель Mamba-3: 5 блоков пространства состояний (SSM) и 2 слоя внимания. Использованы SP8192, AR GPTQ, чанковый score-first TTT и оценка с перекрытием состояний (stateful-overlap eval). |
|
5 |
Differential-Gated Attention |
1.1898 |
ddavidgao |
На базе PR 542. Альтернативный механизм внимания, передающий дифференциальную полезную нагрузку (акцент на новизну) в глубоких слоях. Включает анализ избыточности, зависящей от глубины сети. |
|
6 |
Learned Adapters on Random Linear Maps |
1.1971 |
pranavxiyer |
На базе PR 2058. Перцептроны-адаптеры со случайными сидами и обучаемыми адаптерами в стиле LoRA ранга 160. 12 слоев, множитель MLP 3x, смешанная компрессия int6/int8. Подтверждено на 3 сидах с 10-минутными логами. |
|
7 |
JEPA + Mamba2 LeWorldModel |
1.2064 |
CiprianFlorin-Ifrim |
На базе PR 903. Амбициозная заявка, объединяющая архитектуру SSM и JEPA для предсказания скрытых состояний (latent-prediction). Представлена с доказательствами долгих вычислений и 10-минутными логами. |
(перевод топа с сайта конкурса)
Здесь лучший результат 1,12, что существенно хуже инженерного топа. Впрочем, по собственному опыту [6] скажу, здесь вина больше не архитектур, а разницы в подходах. Классические методы оптимизации плохо или вообще не работают на оригинальных нейросетях, а средства оптимизации уникальных архитектур недостаточно проработаны ни математически [7], ни экспериментально.
Саммари подходов:
Альтернативы Трансформеру (SSM и Гибриды): Сразу несколько участников экспериментируют с Mamba (State Space Models). Применяются гибридные сборки (например, 5 слоев SSM + 2 слоя Attention), позволяющие получить линейную сложность при длинном контексте (до 32К токенов), сохраняя способность к локальному фокусу через скользящее окно внимания.
Текстовая Диффузия: Попытка перенести успех диффузионных моделей из генерации картинок в генерацию текста. Используется дискретная маскированная диффузия (MDLM) вместо классической авторегрессии.
Предиктивные Мировые Модели (World Models): Эксперименты с архитектурой JEPA от Яна Лекуна, соединенной с Mamba2. Обучение идет не на уровне предсказания токенов (пикселей), а на предсказании абстрактных скрытых представлений.
Экстремальное сжатие: Радикальная квантизация до 1 бита (бинаризация весов). Несмотря на серьезную потерю в скоре (1.12), модель всё еще работает, что доказывает высокую избыточность параметров в LLM.
Локальные инъекции рандома и LoRA: Использование случайных линейных отображений в качестве базиса, на котором обучаются низкоранговые адаптеры (LoRA) для экономии памяти, плюс инъекция дифференциальных гейтов во внимание, чтобы слои передавали только новую, а не избыточную информацию.
С учетом моих технических ограничений, обучать большую нейросеть с последующей агрессивной квантизацией возможности не было. Более того, соревноваться с оптимизаторами на их поле смысла не было и нет. Поэтому мой максимум была сеть, которая бы просто влезала в процессе обучения на мою видеокарту.
Здесь могло бы быть описание 150 разных версий кодов, гипотез, предположений, зависаний компьютера, переустановок не выдержавшего драйвера видеокарты и так далее. Но это скучно.
Конечно долгое обучение разных версий сказалось, но на самом деле, просто к окончанию конкурса не было хороших идей. Поэтому, когда 30 апреля конкурс кончился, я не расстроился, а продолжил изыскания дальше, уже в своём ритме, не торопясь.
В итоге получился код с bpb около 1.075, accuracy (10) — 88.8%. Словарь 1024 токена, датасет Fineweb. Сеть около 17 миллионов параметров. Размер весов до квантования 66 мб, квантованием я в связи с окончанием конкурса заморачиваться не стал. Для меня уже был важен только результат.
Результат, даже с учетом потенциальных потерь после оптимизации, выглядит удивительно в инженерном топе, и лучшим в топе альтернативных архитектур.
Итак, как выглядит архитектура:

По сути основная идея это гибридизация достоинств рекуррентной нейросети и трансформера. Я разделил нейросеть на три основных элемента.
Сенсорный блок (Sensor) — двухслойный трансформер, отвечает за базовую токенизацию и первичная семантическая обработка
Рекуррентный модулятор (Cortex) — рекуррентная нейросеть вычисляет и удерживает долгосрочные инварианты
Моторный блок (Motor) — трехслойный трансформер, собирает выходы первых двух элементов и формирует финальные логиты.
Подробнее под спойлером:
Осуществляет первичное нелинейное преобразование дискретной входной последовательности токенов размерности [Batch, SEQ_LEN].
Элемент Embed: Слой статической проекции токенов в латентное пространство размерности D_MODEL = 512, совмещенный с аддитивным наложением обучаемых позиционных эмбеддингов.
Элемент Transformer Front (TF): 2-слойный блок Transformer Encoder. Применяет механизмы многоголового самовнимания (Multi-Head Self-Attention) и полносвязные сети (FeedForward) с каузальной маской, ограничивающей доступ к токенам из будущего. На выходе формирует промежуточный тензор признаков mid_l2_seq размерности [Batch, 64, 512].
Элемент FrontHead: Изолированная линейная голова, вычисляющая локальную стохастическую неопределенность на выходе сенсорного блока без пропускания градиента назад в рамках контекста torch.no [8]_grad. Из распределения извлекаются нормализованная энтропия Шеннона по формуле:
H_norm = – sum(P_i * ln(P_i)) / ln(VOCAB_SIZE)
и максимальная вероятность токена Top1. Данные скаляры усредняются по окнам CHUNK_SIZE = 4 и конкатенируются в управляющий вектор mode_signal размерности [Batch, 16, 2].
Контур вычисления и удержания долгосрочных контекстных инвариантов. Работает на пониженной частоте дискретизации по времени.
Элемент CortexIn: Входной линейный мост. Принимает тензор mid_l2_seq, сжатый по временной оси путем усреднения токенов внутри каждого чанка до размерности [Batch, 16, 512]. Оператор detach полностью изолирует веса сенсорного блока от градиентов рекуррентной сети. Слой проецирует признаки в вектор core_input размерности [Batch, 16, 128].
Элемент FastRNN: Рекуррентный блок GRU с размерностью скрытого состояния CORE_DIM = 128. Принимает конкатенированный вектор fast_rnn_input размерности [Batch, 16, 130], состоящий из core_input и mode_signal. Обновляет состояние на каждом шаге чанка (каждые 4 токена).
Элемент SlowRNN: Рекуррентный блок GRU верхнего уровня со скрытым состоянием 128. Принимает выходы FastRNN с шагом децимации SLOW_UPDATE_INTERVAL = 4. Фиксирует макроструктурные семантические изменения на интервале в 16 токенов.
Механизм прямого воздействия рекуррентных инвариантов на остаточный поток (residual stream) Трансформера.
Каузальный сдвиг (Causality Shift): Для предотвращения утечки данных (data leakage) выходы рекуррентных слоев смещаются на один шаг назад. На шаге t применяются состояния, вычисленные на шаге t-1. Тензоры интерполируются методом repeat_interleave до исходной длины последовательности (64 токена) и проецируются через линейные слои bridge_fast и bridge_slow в размерность 512.
Узел синтеза (Σ): Выполняет аддитивное смещение промежуточного представления mid_l2_seq. Амплитуда рекуррентного воздействия регулируется весовыми скалярными параметрами gate_fast и gate_slow, которые изначально инициализированы нулями:
modulated_mid_seq = mid_l2_seq + mod_fast gate_fast + mod_slow gate_slow
Финезационный контур авторегрессионного декодирования и вычисления целевых функций потерь.
Элемент Transformer Back (TB): 3-слойный блок Transformer Encoder. Обрабатывает модулированный поток modulated_mid_seq, формируя финальное контекстное представление с учетом рекуррентных поправок.
Элемент FinalHead: Линейный слой проекции выходов TB в пространство словаря [Batch, 64, 1024]. Вычисляет итоговые логиты, на основе которых рассчитывается базовая кросс-энтропия языкового моделирования L_CE.
Элемент Монитор хаоса (PredH): Линейный слой motor_monitor, подключенный к объединенным выходам FastRNN и SlowRNN. Генерирует локальный прогноз энтропии моторного блока preds_H_tensor для каждого чанка.
Узел оптимизации L_Pred: Вычисляет среднеквадратичную ошибку [9] (MSE) между прогнозом preds_H_tensor и фактической энтропией распределения FinalHead, усредненной по чанкам:
L_Pred = MSE(preds_H_tensor, real_H_chunks)
Этот сигнал ошибки оптимизирует исключительно веса рекуррентного контура и спектральных врат, настраивая их на минимизацию неопределенности в моторном блоке. Общий шаг градиентного спуска выполняется по композитному лоссу:
L_Total = (L_CE + w_fut L_Fut + w_pred L_Pred) / GRAD_ACCUM_STEPS
Если вы обратите внимание на названия элементов, то наверняка увидите аналогию с человеческим мозгом [10]. Как ни странно, это не было задумано специально, а произошло естественно после массы проб и ошибок.
Разделение на SENSOR и MOTOR воспроизводит архитектуру афферентных (воспринимающих) и эфферентных (исполнительных) путей нервной системы [11]. Первичный анализ признаков изолирован от финального формирования моторных команд (токенов).
Блок CORTEX выполняет функцию ассоциативной [12] коры. Двухуровневая структура GRU (Fast и Slow контуры) реализует иерархическое удержание контекста на разных временных шкалах, что необходимо для планирования долгосрочных семантических зависимостей.
Элемент PredH (слой motor_monitor) технически является аналогом эфферентной копии (efference copy) в нейробиологии. Модель передает копию исполнительного плана обратно в прогнозирующий контур. Это позволяет оценить рассогласование между ожидаемым и реальным хаосом (неопределенностью) моторного блока и минимизировать его через ошибку L_Pred.
Более того, в процессе обучения нейросеть выступила несколько неожиданно, кортекс не обогащал представления сети, а занимался тем, что подавлял шум и неверные векторы. Что весьма подозрительно напомнило мне концепцию Свобода-вето Бенджамина Либета — сознание не создает желания, а лишь отвергает неприемлемые.
А это ссылки на код [13], логи [14], веса [15]. Обратите внимание, инференс нейросети требует передачи state рекуррентной сети, вот пример кода [16] для расчета bpb.
В перспективе, я полагаю, необходимы эксперименты с разморозкой весов, что возможно улучшит инференс и поставит вопрос о возможности реализации continual learning.
Этот раздел полезен, но может быть не интересен. Читатели моих предыдущих статей знают, что я придерживаюсь достаточно оригинальных взглядов на сознание, нейросети и философию в целом. Конкретно этот код не опирался на математику, а вполне органично вырос из моих концептуальных гипотез.
В первую очередь, это концепция Апофатического ИИ, концепция утверждает, что нейросеть обучается не на запоминании позитивных примеров, а на отбрасывании ошибочных через проведение границы (формирование инварианта). Подробнее можно прочитать в статье Апофатический ИИ [17]. Наиболее неожиданный результат экспериментов состоит в следующем: оба gate (G_fast и G_slow) в процессе обучения ушли в устойчивый минус и продолжали углубляться. Кортекс не добавлял смысл к представлениям автомата, а подавлял лишнее.
По сути это прямое воплощение апофатического принципа на уровне архитектуры. Смысл рождается не из накопления, а из отсечения. Причем не запрограммированного, а появившегося эмерджентно из архитектуры. Последние слои получают уже очищенный сигнал и строят финальное предсказание на более инвариантном пространстве.
Во-вторых, это концепция двухслойного сознания, которую я формулирую так: интеллектуальная система состоит из двух принципиально разных уровней. Первый — байесовский автомат, предиктивная машина, которая непрерывно моделирует внешний мир и реагирует на него. Второй — глубинный слой, который не имеет прямого доступа к внешнему миру вообще. Он видит только первый слой — и именно это меняет его качество..
Глубинный слой не содержит модель мира. Он содержит модель того, как первый слой моделирует мир. Функции глубинного слоя: разрыв зацикливания, выбор менее вероятного, остановка реакции [18].
В коде это реализовано буквально. Трансформер — это автомат первого уровня. GRU-кортекс — это наблюдатель второго уровня, который не читает входные токены напрямую. Он получает только усреднённые представления из скрытого пространства, и на основании этого строит модель того, как автомат справляется с текстом.
Ключевое следствие: кортекс вынужден предсказывать выход на следующем шаге. Чтобы делать это хорошо, он строит внутреннюю модель поведения [19] автомата. Это и есть операционализация второго уровня сознания через задачу предиктивного кодирования.
Ну и много всего остального, но достаточно и этого.
Естественно, в коде и интерпретациях могут быть ошибки или пространство для улучшения, если кто-то заинтересуется и их найдёт, обязательно сообщите мне, буду благодарен.
Дальнейшее развитие предполагается, но масштабирование упирается в железо. Если кто-то может дать доступ к приличным GPU или предоставить грант (а вдруг), был бы благодарен ещё больше.
Перспективы:
— более устойчивое обучение на малых данных за счёт усиления роли hard negatives и структурных границ;
— снижение деградации при обучении на синтетических датасетах, поскольку модель учится не только корреляциям, но и топологии запретов;
— появление более экономичных моделей, где часть интеллекта [20] формируется не ростом параметров, а организацией внутренней динамики;
— развитие архитектур с внутренним мониторингом неопределённости (энтропии), где генерация управляется не только вероятностью токена, но и состоянием собственной когнитивной геометрии;
— потенциальное уменьшение галлюцинаций через усиление апофатических границ («что недопустимо»).
Если гипотеза верна хотя бы частично, то дальнейшая эволюция [21] LLM может идти не только через масштабирование Transformer’ов, но и через появление архитектур, где ключевым вычислением станет динамическая система внутренних отрицаний — своего рода «свобода вето» внутри самой модели. Более фантастические перспективы я приводить не стал за их фантастичностью.
Автор: Kamil_GR
Источник [22]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/30806
URLs in this post:
[1] Parameter Golf: https://github.com/openai/parameter-golf
[2] обучения: http://www.braintools.ru/article/5125
[3] памяти: http://www.braintools.ru/article/4140
[4] логику: http://www.braintools.ru/article/7640
[5] внимание: http://www.braintools.ru/article/7595
[6] опыту: http://www.braintools.ru/article/6952
[7] математически: http://www.braintools.ru/article/7620
[8] torch.no: http://torch.no
[9] ошибку: http://www.braintools.ru/article/4192
[10] мозгом: http://www.braintools.ru/parts-of-the-brain
[11] нервной системы: http://www.braintools.ru/nervous-system
[12] ассоциативной: http://www.braintools.ru/article/621
[13] код: https://github.com/Kamilgr1/apophatic-vortex/blob/main/TriuneVortex.py
[14] логи: https://github.com/Kamilgr1/apophatic-vortex/blob/main/vortex_26_4_log.txt
[15] веса: https://huggingface.co/Kamilgr/apophatic-vortex/blob/main/vortex_26_4_final_step_37000.pt
[16] кода: https://github.com/Kamilgr1/apophatic-vortex/blob/main/eval.py
[17] Апофатический ИИ: https://habr.com/ru/articles/986162/
[18] реакции: http://www.braintools.ru/article/1549
[19] поведения: http://www.braintools.ru/article/9372
[20] интеллекта: http://www.braintools.ru/article/7605
[21] эволюция: http://www.braintools.ru/article/7702
[22] Источник: https://habr.com/ru/articles/1039766/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1039766
Нажмите здесь для печати.