MicroTape
Attention için küçük ters-mod grafiği.
Doğrudan uygulamadaninclude/nexus_model/core/micro_tape.hpp
01Yaşam süresi#
reset kullanılan slot sayısını ve işlem listesini temizler, kapasiteyi korur. load tensörü slotuna kopyalar ve int kimlik döndürür. Sonraki reset eski grafik kimliklerini geçersiz kılar. Bu global autograd değildir.
02İşlemler#
matmul ve matmul_bt rank-3 batch matrisleri kullanır. add/mul aynı şekilli eleman bazlı işlemler; add_matrix tekrar edilen sabit maske ekler ve maskeyi türetmez. Genel broadcasting varsaymayın.
| İşlem | Kural |
|---|---|
| matmul | [B,M,K] × [B,K,N] → [B,M,N] |
| matmul_bt | [B,M,K] × [B,N,K]ᵀ → [B,M,N] |
| scale | factor · a |
| add / mul | a+b / a⊙b |
| add_matrix | [B,M,N] + [M,N] |
| softmax | last axis |
03Dış gradyan#
backward(root,grad) tüm kullanılan slot türevlerini sıfırlar, köke verilen gradyanı kopyalar, işlemleri tersten uygular. value(id) ve grad(id) sonuçlara erişir.
MicroTape tape;auto q = Tensor::full({1,2,4}, 0.1f);auto k = Tensor::full({1,3,4}, 0.2f);int iq=tape.load(q), ik=tape.load(k);int p=tape.softmax(tape.scale(tape.matmul_bt(iq,ik),0.5f));tape.backward(p, Tensor::full({1,2,3},1.f));◆Kaynak kodla birlikte okuyun. API davranışı mevcut uygulamayı esas alır.