5

Organisasi Tensor untuk Populasi, Evaluasi, dan Status

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

Dalam implementasi rekayasa algoritma evolusi,organisasi berbasis tensormemetakan secara seragam pertanyaan “apa itu populasi, bagaimana hasil evaluasinya, dan sejauh mana proses berjalan” dari objek dan daftar yang tersebar menjadi tensor yang teratur. Intinya adalah membangun kontrak data yang terpadu untuk populasi, evaluasi, dan status, sehingga komputasi batch, penempatan di perangkat, dan penjadwalan paralel selanjutnya memiliki semantik memori yang sama.

Organisasi Tensor untuk Populasi, Evaluasi, dan StatusMemetakan solusi kandidat, evaluasi fitness, dan status algoritma secara seragam menjadi tensor yang dapat dihitung secara batchOrganisasi Serial TradisionalObjek dan daftar tersimpan secara terpisahDaftar KandidatDaftar / kumpulan objekEvaluasi Satu per SatuMemanggil fungsi evaluasi dalam perulanganStatus TersebarSkalar / variabel globalPerulangan per IndividuBolak-balik antara host dan perangkat sering terjadiTensorisasiorganisasi berbasis tensorPopulasi · Evaluasi · Status disatukan menjadi tensor teratur, membentuk kontrak data yang terpaduNDTensor Populasi[N, D]N adalah dimensi batch, D adalah dimensi keputusanMutasi dan persilangan batchSelesai dalam sekali jalanNMKMatriks Evaluasi[N, M] atau [N, M+K]M tujuan, K kendalaVektorisasi fungsi evaluasiMengembalikan hasil seluruh batchWadah Tensor StatusSkalar atau tensor kecilGenerasi, solusi terbaik, status bilangan acakTersimpan seragam di perangkatDapat di-checkpoint dan direproduksiContoh: N = 1024, D = 50, M = 2 · populasi [1024, 50], evaluasi [1024, 2]Dimensi batch di luar: operator divektorisasi sepanjang dimensi N untuk seluruh batchIndividu panjang variabel: padding + mask atau bucketingStatus terpadu: dapat direproduksi, dilacak, dan diperbarui secara batch

Tensorisasi Populasi: Dikodekan sebagai [N, D]

Mengorganisasi N solusi kandidat berdasarkan dimensi batch menjadi tensor pengkodean berbentuk [N, D]. Variabel kontinu, variabel diskret, atau pengkodean multi-segmen dapat dinyatakan sebagai tensor bidang atau blok terkelompok, dengan tetap menjaga keseragaman tipe data dan lokasi perangkat.

  • Dimensi batch di luar: umumnya menempatkan N di lapisan terluar, agar operator yang sama dijalankan secara tervektorisasi pada seluruh batch.
  • Pemblokan bidang: jika individu terdiri dari beberapa segmen parameter, dapat dipecah menjadi [N, D1] + [N, D2] + … dan tetap tersimpan secara berurutan.
  • Penanganan panjang variabel: individu dengan panjang variabel ditangani dengan padding plus mask atau bucketing, untuk mencegah struktur heterogen mengganggu komputasi batch.

Matriksisasi Hasil Evaluasi: [N, M] dan [N, K]

Satu evaluasi batch menghasilkan matriks fitness [N, M]; multi-tujuan, multi-kendala, dan metrik tambahan dapat digabungkan menjadi [N, M+K] atau disimpan dalam tabel terpisah, untuk menghindari pemanggilan fungsi evaluasi secara berulang per individu.

Pengelolaan Terpadu Tensor Status

Generasi, status bilangan acak, hyperparameter strategi, solusi terbaik, cache riwayat, peringkat atau status sampling juga dimasukkan ke dalam tensor atau wadah status terstruktur, guna menjamin reproduktibilitas, keterlacakan, dan pembaruan batch.

Contoh: N=1024, D=50, M=2
Populasi direpresentasikan sebagai tensor [1024, 50], nilai evaluasi sebagai tensor [1024, 2], kendala sebagai [1024, K]. Generasi, solusi terbaik best_x, dan status acak rng_state disimpan secara seragam di perangkat sebagai tensor status. Pembaruan setiap generasi dapat diselesaikan secara menyeluruh pada dimensi batch yang sama, bukan melalui perulangan Python per individu.

Manfaat dan Batasan Organisasi

Tensor yang terpadu dapat mengurangi lalu lintas bolak-balik antara host dan perangkat, menurunkan overhead perulangan, serta menyediakan dasar data untuk paralelisasi operator berikutnya; namun perlu menangani validitas mask, pemborosan padding, pertumbuhan skala multi-tujuan, dan biaya sinkronisasi status.