前言這篇筆記整理如何使用 NNI(Neural Network Intelligence)做超參數搜尋。範例任務是用 CNN 訓練 CIFAR-10,並透過 NNI 搜尋 learning rate、momentum 與 batch size。 作業檔案簡介程式碼放在 ThreeMonth03/hyperparameter_tuning。 主要目錄如下: config/:放 requirement.txt。 src/:放 source code,包含 cnn.py 與 nni_search.py。 log/:放 NNI experiment log,可以回放歷史 trainin
前言這篇筆記整理如何用 Docker Compose 建立 Jupyter 與 TensorBoard 環境,並透過 local forwarding 在本機瀏覽器使用遠端服務。 範例 repo 放在 ThreeMonth03/Docker_example。 專案結構這個 repository 裡有幾個重點: jupyter/:Jupyter 服務的 Dockerfile。 tensorboard/:TensorBoard 服務的 Dockerfile。 docker-compose.yml:管理兩個 image 與 container。 main.ipynb、logs/:用來
前言這篇筆記整理 LLaMA 使用的 Positional Embedding,也就是 RoPE(Rotary Position Embedding)。Positional Encoding 是 Transformer 中很容易被略過、但其實很關鍵的細節:它讓模型能在沒有 RNN 時間序列結構的情況下,仍然保留 token 的順序資訊。 Positional Encoding 簡介Transformer 會一次讀入整段 input,不像 RNN 會依照時間序列逐步傳入。因此,input embedding 必須額外加入位置資訊。 舉例來說: I Am that I Am. 如果用 RNN
前言這篇筆記整理 torch.nn.Transformer 中一個常見限制:d_model 必須能被 nhead 整除。 從理論上看,Multi-Head Attention 可以想成對同一份 input 做多組 Self-Attention,再把多個 head 的輸出接起來。因此直覺上會覺得 feature size 與 head 數量不一定要整除。但 PyTorch 的實作為了效率,會把 embedding dimension 平均切給每個 head,這就是限制的來源。 Multi-Head Transformer 理論Multi-Head Transformer 的概念是:對同一個
Introduction to HardwareDNN 常見的運算包含 Convolution 與 FC Layer,這兩類 Layer 的核心多半是大量點積運算,而點積又會仰賴 MAC(Multiply-Accumulate,乘法累加器)。在硬體裡,MAC 通常會放在 ALU 中,因此一塊運算單元會配置不少 ALU 來支撐高吞吐量。 這篇 survey 將 DNN 運算硬體分成兩大類: Temporal Architecture:代表是 CPU、GPU。 Spatial Architecture:代表是 ASIC、FPGA 這類 DNN accelerator。 Temporal