5

Тензорная организация популяции, оценки и состояния

AI999第4课:现代计算底座与张量化并行演化
00:00

В инженерной реализации эволюционных алгоритмовтензорная организацияунифицированно отображает «что представляет собой популяция, как получена оценка и на каком шаге выполняется процесс» из разрозненных объектов и списков в регулярные тензоры. По своей сути это установление единого контракта данных для популяции, оценки и состояния, что придаёт пакетным вычислениям, размещению на устройстве и последующему параллельному планированию общую семантику памяти.

Тензорная организация популяции, оценки и состоянияЕдиное отображение кандидатных решений, оценки приспособленности и состояния алгоритма в тензоры, пригодные для пакетных вычисленийТрадиционная последовательная организацияРазрозненное хранение объектов и списковСписок кандидатовСписок / набор объектовПоштучная оценкаЦиклический вызов функции оценкиРазрозненное состояниеСкаляр / глобальные переменныеЦикл по каждой особиЧастые пересылки между хостом и устройствомТензоризациятензорная организацияПопуляция · оценка · состояние — единые регулярные тензоры, образующие общий контракт данныхNDТензор популяции[N, D]N — пакетная размерность, D — размерность решенийПакетная мутация и скрещиваниеЗа один проходNMKМатрица оценок[N, M] или [N, M+K]M целей, K ограниченийВекторизация функции оценкиВозврат результатов для всего пакетаКонтейнер тензоров состоянияСкаляр или малый тензорПоколение, лучшее решение, состояние ГПСЧЕдиное размещение на устройствеКонтрольные точки и воспроизводимостьПример: N = 1024, D = 50, M = 2 · популяция [1024, 50], оценки [1024, 2]Пакетная размерность снаружи: операторы векторизуются по всей размерности NОсоби переменной длины: заполнение + маска или разбиение на корзиныЕдиное состояние: воспроизводимость, отслеживаемость, пакетные обновления

Тензоризация популяции: кодирование в виде [N, D]

Организуйте N кандидатных решений по пакетной размерности в кодирующий тензор формы [N, D]. Непрерывные переменные, дискретные переменные или многосегментное кодирование могут быть представлены полевыми тензорами или сгруппированными блоками с сохранением единого типа данных и расположения на устройстве.

  • Пакетная размерность снаружи: обычно N размещается во внешней размерности, чтобы один и тот же оператор векторизованно выполнялся на всём пакете.
  • Блочное разбиение по полям: если особь состоит из нескольких сегментов параметров, её можно разбить на [N, D1] + [N, D2] + … с сохранением непрерывного хранения.
  • Обработка переменной длины: особи переменной длины обрабатываются заполнением с маской или разбиением на корзины, чтобы гетерогенные структуры не нарушали пакетные вычисления.

Матричное представление результатов оценки: [N, M] и [N, K]

Одна пакетная оценка формирует матрицу приспособленности [N, M]; многоцелевые, многоограничительные и дополнительные показатели могут быть размещены совместно в [N, M+K] или храниться в отдельных таблицах, что позволяет избежать циклического вызова функции оценки для каждой особи.

Единое управление тензорами состояния

Номер поколения, состояние генератора случайных чисел, гиперпараметры стратегии, лучшее решение, кэш истории, состояние ранжирования или выборки также помещаются в тензоры или структурированный контейнер состояния, обеспечивая воспроизводимость, отслеживаемость и пакетные обновления.

Пример: N=1024, D=50, M=2
Популяция представлена тензором [1024, 50], значения оценок — тензором [1024, 2], ограничения — [1024, K]. Поколение generation, лучшее решение best_x и состояние ГПСЧ rng_state как тензоры состояния единообразно размещаются на устройстве. Обновление каждого поколения может выполняться целиком по одной пакетной размерности, а не в цикле Python по каждой особи.

Преимущества и границы организации

Единые тензоры позволяют сократить пересылки между хостом и устройством, снизить накладные расходы циклов и обеспечить основу данных для последующего распараллеливания операторов; однако необходимо учитывать корректность масок, потери от заполнения, рост размерности при многих целях и затраты на синхронизацию состояния.