# EvoX 智能演化系統與 AI Native 科研實踐 課程講義

課時：1 · 課件頁面：16

## 閱讀導航

- [第4課｜主題：現代計算底座與張量化並行演化](#lecture-lesson-1)

---

<a id="lecture-lesson-1"></a>

## 第4課｜主題：現代計算底座與張量化並行演化

<a id="lecture-page-1"></a>

### 現代計算底座與張量化並行演化

*頁面 1*

> **頁面目標：** 學習 EvoX 如何將種群、評價與狀態組織為可整體計算的張量，突破傳統串行瓶頸以實現大規模加速。

> **頁面目標**
>
> 本頁作為第四課的開篇，點出這一課要解決的核心問題——當演化算法的種群規模、評價次數和迭代步數不斷增大時，傳統的逐個體、逐步驟串行處理方式會成為明顯的瓶頸。本課的主線，就是看 EvoX 如何把種群、評價與狀態重新組織成可以整體參與計算的張量，從而在大規模場景下獲得實質性的加速。

> **講解順序**
>
> 可以先拋出一個直觀設問——「如果種群裡有十萬個個體，我們還要一個一個地循環處理，會發生什麼？」引導學生意識到串行循環在時間與硬件利用率上的雙重浪費。隨後給出本課的答案方向：把整個種群視為一批數據、把一代的更新視為一次批量運算，讓計算能整體落到並行硬件上。最後再引出 Runtime 這一層的作用，說明它負責在保持算法可組合性的同時調度異構算力。

**講授要點**

- 1. 張量化表達——種群、適應度評價和算法內部狀態不再是零散的對象，而是被組織成具有統一形狀的張量，使一代演化可以表達為若干次批量運算。這樣做的好處是計算模式規整、便於向量化，也讓同一套算法描述能適配不同規模的種群。 2. 串行瓶頸的突破——傳統實現中，評價與狀態更新往往按個體逐個進行，規模一大，循環開銷和同步等待就會主導運行時間
- 批量化和之後，這些開銷被攤薄，吞吐顯著提高。 3. Runtime 的調度作用——Runtime 位於算法描述與底層硬件之間，負責把批量運算分派到 CPU、GPU 等異構算力上，使算法作者不必為每種設備重寫邏輯。同時，它保持算法組件的可組合性，讓不同算子、不同策略能夠自由拼接而不破壞並行能力。

**關鍵詞覆蓋**

- 張量化、批量計算、串行瓶頸、大規模加速、異構算力調度、算法可組合性。

**理解檢查**

請學生用自己的話說清「把種群變成張量」到底改變了什麼——預期回答應落在「從逐個體循環變為整體批量運算，從而讓並行硬件真正被用起來」這一層；若只複述術語而說不出因果，可提示他們從計算次數與硬件利用率兩個角度重新組織表述。

> **過渡提示**
>
> 確認學生已經建立起「張量化 → 批量計算 → 並行加速」這條基本因果鏈之後，再進入後續頁面，具體看種群與狀態是如何被組織成張量、以及 Runtime 如何完成調度的。

<a id="lecture-page-2"></a>

### 現代計算底座與張量化並行演化

*頁面 2*

> **頁面目標：** 學習者應理解現代演化計算面臨的大規模算力需求與傳統架構的矛盾。

> **頁面目標**
>
> 理解現代演化計算面臨的大規模算力需求與傳統串行架構之間的矛盾；掌握將種群、評價與狀態組織為張量、以批量並行推進演化的思路；認識大模型對候選生成的擴展，以及由此帶來的系統級架構取捨。

> **講解順序**
>
> 先點明核心矛盾「多樣性→評價次數→狀態管理與調度成本」，再解釋串行循環為何先觸頂；接著展開張量化的三個層面——種群張量、評價張量、狀態張量，並歸納出「批量並行」這一核心術語；然後說明大模型如何把候選生成推到新邊界；最後落到 EvoX 場景示例與系統級取捨，並處理練習與案例。

**講授要點**

- 演化依賴種群多樣性，而多樣性會直接轉化為評價次數、狀態管理與調度成本。傳統 CPU 逐個體循環中，每個個體要單獨調用目標函數、單獨更新狀態、單獨記錄日誌
- 當種群從幾十增長到上千，評價次數和牆鐘時間幾乎線性增長，一旦單次仿真代價高昂，整體吞吐就被鎖死在「單核節奏」上。多樣性越高、評價越貴，串行瓶頸越明顯。 張量化的做法是把種群、評價與狀態重新組織成可整體計算的張量。種群張量把全部候選參數堆疊成「個體數×維度」的二維張量，一次算子調用即完成全種群的變異與更新
- 評價張量把批量評價請求打包下發，由 GPU 或批處理服務並行執行後合併返回值
- 狀態張量把適應度、約束違背量、排名等中間狀態以張量形式維護，使選擇、排序與更新都能整體計算。三者合起來就是「批量並行」，它把多樣性帶來的計算量從負擔變成可被吞吐吸收的規模，因此不是優化細節，而是現代演化計算的基礎設施問題。 當計算規模被打開後，關鍵問題從「能不能算」轉向「候選從哪裡來」。大模型能理解自然語言、代碼、領域知識與項目上下文，並據此構造結構複雜的候選，使演化對象從數值參數擴展到程序、算法乃至完整系統狀態
- 過去依賴人工設計的編碼與變異方式，開始可以由模型參與生成。兩股力量由此相遇：GPU 讓大量可能被同時探索，大模型讓系統產生更豐富的可能，而演化機制負責把候選送入真實任務，通過執行與評價決定哪些變化值得保留。 對算法工程師與系統開發者而言，這不是局部優化，而是架構取捨：需要在候選生成的豐富性、批量計算的吞吐與工程複雜度之間做系統級權衡。多樣性是演化有效性的前提，但它必須由吞吐來消化。EvoX 場景中，若仍用串行 CPU 循環逐個體評價，種群規模會被吞吐限制
- 改為張量化批量並行後，同一輪即可同時組織大量候選的參數、評價狀態與更新，使「保持多樣性」與「大規模探索」在工程上同時可行。

**關鍵詞覆蓋**

- 批量並行、張量化、種群張量、評價張量、狀態張量、串行瓶頸、候選生成、系統級權衡。

**練習處理**

本頁有 5 道選擇題與 1 個案例題，共 2 問。選擇題分別檢查核心矛盾、批量並行的實現方式、大模型角色、遷移後的系統級權衡、EvoX 場景中的直接變化。答題時抓住兩條主線：一是「多樣性→計算量→串行瓶頸→批量並行」的因果鏈；二是「大模型負責生成更豐富的候選，評價機制負責判斷哪些候選值得保留」的分工。案例題第一問要求診斷串行瓶頸並說明張量化從種群、評價、狀態三處改變組織方式；第二問要求從候選豐富性 vs 批量吞吐、探索收益 vs 工程複雜度、批量吞吐 vs 評價保真等維度給出取捨判斷。

正確回答應能聯繫本頁概念並說明依據；若判斷錯誤，回到「多樣性→評價次數→狀態管理與調度成本」這條因果鏈，並區分「加速同一個串行循環」與「改變計算的組織方式」。

**理解檢查**

隨機請一名學生用自己的話總結本頁重點，尤其說出多樣性如何轉化為計算量、串行為何觸頂、張量化批量並行如何組織種群、評價與狀態。若學生只能複述術語而不能解釋因果，可引導其回到圖表中的斜率對比與「串行瓶頸：吞吐觸頂」標記處。

> **過渡提示**
>
> 確認學生能說出本頁的核心關係——多樣性帶來計算量，串行執行觸頂，張量化批量並行以整體計算消化規模之後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-3"></a>

### 演化多樣性與計算規模挑戰

*頁面 3*

> **頁面目標：** 學習者應理解真實問題中多目標權衡與候選多樣性帶來的計算壓力。

> **頁面目標**
>
> 理解多目標權衡與候選多樣性帶來的計算壓力，掌握 Pareto 前沿、支配關係以及多樣性保持與評價成本之間的張力。

**講授要點**

- 當問題只有一個目標時，才存在唯一最優解。真實工程問題通常有多個相互牽制的目標（升力與阻力、精度與時延、性能與成本），此時「好答案」是一組互不支配的權衡解，即 Pareto 前沿。 逐項比較 A 是否在所有目標上都不比 B 差 → 是否至少有一個目標上 A 嚴格更優 → 兩條都成立才是 A 支配 B。只要有一項 A 更差，二者互不支配，都可能留在前沿上。 橫軸 f1、縱軸 f2 均為越小越好
- 簇 A 偏向低 f1，簇 B 折中，簇 C 偏向低 f2
- 灰點為被支配解。決策者需要整條前沿代表的取捨空間，而不是算法挑出的單點。 指沿 Pareto 前沿不同權衡方向分布的結構化差異。方向覆蓋——填滿前沿左上端、中段、右下端
- 差異保留——幾乎相同的候選等價於一個
- 決策價值——偏好往往事後明確，保留差異候選可零成本重新選擇。 多樣性越強，搜索空間越廣、種群規模越大、評價次數越多。當評價依賴高保真仿真（如超臨界翼型氣動計算耗時數小時），單次評價成本被放大為主瓶頸。常見應對：代理模型替代大部分高保真評價
- 把有限高保真預算優先分配給最能擴展前沿覆蓋的候選
- 重新分配種群規模與迭代代數之間的預算。 把多樣性等同於隨機噪聲或多跑幾次。真正的多樣性是結構化的方向差異
- 單純隨機擾動不會擴展前沿覆蓋，也無法降低決策難度。 練習線索（5 道選擇題 + 1 個案例分析）： Pareto 前沿是一組互不支配的權衡解，任意兩個解在不同目標上各有優劣。 A 在 f1 上更好、B 在 f2 上更好，二者互不支配，都可能留在前沿上。 多樣性是沿 Pareto 前沿不同權衡方向分布的結構化差異，直接服務於決策。 更寬的權衡方向覆蓋需要更大搜索範圍、種群規模與目標評價次數，因此多樣性越強，計算規模挑戰越大。 用代理模型承擔大部分評價，把有限高保真預算集中用於擴展前沿覆蓋，可緩解規模與多樣性之間的張力。 超臨界翼型設計。交付物應是一組位於 Pareto 前沿、覆蓋不同權衡方向的候選解集，而非單一方案
- 緩解張力的措施包括代理模型、預算優先分配、調整種群與代數比例、多保真分階段篩選等。

**理解檢查**

請學生用自己的話解釋支配關係與 Pareto 前沿，並舉例說明多樣性為何帶來計算壓力。若學生將多樣性與隨機擾動混淆，可回到「自檢口訣」——候選再多，若擠在前沿同一角，仍然沒有多樣性。

> **過渡提示**
>
> 確認學生能區分單點最優與權衡解集，並理解多樣性成本後，再進入下一頁關於張量化並行演化的內容。

<a id="lecture-page-4"></a>

### 傳統串行 CPU 循環的效率瓶頸

*頁面 4*

> **頁面目標：** 學習者應認識到傳統串行 CPU 循環在處理數萬次候選評價時的性能局限。

**講授要點**

- 總評價次數 ≈ 種群規模 × 迭代代數；串行評價耗時 ≈ 總評價次數 × 單次評價耗時。先把這兩個量算出來，再判斷瓶頸是否值得動手改造。
- 解釋器層循環、逐個體邊界檢查與類型分發、非連續內存訪問、頻繁同步與數據搬運，會疊加成串行的常數開銷。只調優算子本身，只能削掉其中一小部分。
- 把不同種群規模下的牆鐘耗時畫出來：近似直線的說明執行仍是串行的，呈階梯狀的說明已按批次組織。曲線的形狀比單點數字更能說明瓶頸歸屬。

> **頁面目標**
>
> 本頁要讓學生認識到，當候選評價達到數萬次量級時，傳統串行 CPU 循環會成為整條演化流水線中最窄的一段；這個瓶頸屬於執行模型層面，而不是單個算子寫法或代碼瑕疵。後續的批處理、張量化與並行調度，正是針對這一結構性瓶頸的改造方向。
>
> 講解順序與講授要點：
>
> 演化依賴多樣性，多樣性帶來種群規模與評價次數的成倍增長。總評價次數 ≈ 種群規模 × 迭代代數；串行評價耗時 ≈ 總評價次數 × 單次評價耗時。評價次數達到 10⁵ 量級時，串行牆鐘耗時近似線性增長。
>
> 圖中比較串行逐個處理與批量並行處理。橫軸是候選評價次數 10³、10⁴、10⁵，縱軸是歸一化牆鐘耗時。串行曲線近似線性增長；並行曲線呈階梯式增長。深色段表示調度與數據搬運開銷。關鍵結論是：同等工作量下，並行耗時的增長主要由批次數而非個體數決定。用曲線形狀比只看單點數字更能說明瓶頸歸屬。
>
> 最樸素的實現是把整個種群當成列表，循環逐個取個體 → 解碼為具體參數 → 調用評價函數 → 把適應度寫回。相鄰迭代之間幾乎無法重疊：評價結果不回來，寫回無法推進；寫回不完成，下一個體就無處安放結果。於是多核、SIMD、GPU 等並行單元大部分時間空閒。
>
> 線性膨脹的評價次數；解釋器層的逐個執行，包括逐個體循環、邊界檢查與類型分發，帶來固定卻高昂的常數開銷；非連續訪存與數據搬運，逐個取用的個體在內存中往往不連續，緩存命中率偏低；同步與調度，為了取到下一個體，執行流反覆停頓再恢復。只調優算子內部，只能削掉其中一小部分。
>
> 以種群 1000、迭代 100 代為例，總評價次數約為 1000 × 100 = 10⁵ 次。若單次評價平均 1 ms，僅評價環節串行就約需 100 秒，尚未計入算子計算與調度開銷；若為維持多樣性把重啟次數從 1 次增加到 5 次，代價近似線性上升到約 500 秒。同等工作量若按批組織並交由並行硬件處理，牆鐘時間主要由批次數與每批耗時決定。
>
> 當單次評價極廉價（微秒級）或種群極小（百量級以下）時，調度與內存開銷可能反超計算開銷，串行與並行的差距明顯收窄，張量化的邊際收益遞減，瓶頸會轉移到調度粒度與內存帶寬。因此是否值得改造執行模型，要結合評價成本與規模共同評估。
>
> 串行 CPU 循環的效率瓶頸是結構性的。要真正解決，需要把逐個重構為逐批，也就是批處理、張量化與並行調度，這構成後續張量化計算圖設計的直接動機。

**關鍵詞覆蓋**

- 串行 CPU 循環、批量並行、牆鐘耗時、候選評價次數、批次數、解釋器層開銷、非連續訪存、同步與調度、結構性瓶頸、張量化。

**練習處理**

本頁有 5 道選擇題。建議每題先讓學生說出判斷依據，再給出反饋。

第 1 題問串行循環最主要的執行模型限制。答案是「相鄰迭代之間難以重疊，多核、SIMD、GPU 等並行單元大部分時間空閒」。反饋要點：逐個執行的取個體 → 解碼 → 評價 → 寫回流程，讓每個個體成為一次獨立的串行步驟，硬件缺少可同時執行的獨立工作；瓶頸不是算不出適應度，而是同一時刻只有一個個體在被處理。

第 2 題問種群 1000、迭代 100 代、單次評價 1 ms 時，僅評價環節的串行牆鐘時間。答案約為 100 秒。引導算法：總評價次數約為 1000 × 100 = 10⁵ 次，再乘以 1 ms。

第 3 題問哪一項不屬於放大串行循環常數開銷的因素。答案是「張量化批處理調度」。反饋要點：張量化批處理是緩解瓶頸的改造方向，不是串行循環自身放大開銷的來源；串行開銷來自非連續訪存、逐個體邊界檢查與類型分發、解釋器層循環等。

第 4 題問批量並行下完成同等總工作量時，牆鐘時間主要由什麼決定。答案是「批次數與每批耗時」。反饋要點：批處理把逐個變成逐批，牆鐘時間隨批次數呈階梯式增長，而不再隨個體數近似線性增長。

第 5 題問哪種情形下把串行循環判定為結構性瓶頸最可能不成立。答案是「單次評價降至微秒級，且種群規模僅百量級」。反饋要點：此時調度與內存開銷可能反超計算開銷，串行與並行的差距收窄；判斷瓶頸要結合評價成本和規模共同評估。

**課堂活動**

可使用本頁案例「十萬次評價下的執行模型選擇」。先讓學生估算，再討論改造邊界。

估算當前串行實現僅評價環節的牆鐘耗時，並說明重啟次數從 1 次增加到 5 次後的變化，據此判斷優化重點。參考回答：1000 × 100 = 10⁵ 次評價，乘以 1 ms 約為 100 秒；重啟 5 次則約為 5 × 10⁵ 次評價，即約 500 秒，牆鐘耗時近似線性膨脹。這說明在算子內部做常數級微調收益有限，優化重點應放在執行模型層面，即批處理、張量化與並行調度，讓牆鐘時間由批次數而非個體數決定。

若改用批量並行執行模型，還需考慮哪些邊界條件來判斷改造是否值得。參考回答：其一，評價成本與規模，若單次評價降到微秒級，或種群縮到百量級以下，調度與內存搬運開銷可能反超計算開銷，並行收益遞減；其二，批次數與批次大小的約束，批次大小受顯存、內存帶寬、單批計算時間限制，批次過大會抬高單批耗時與同步成本；其三，數據布局與訪存，候選個體若不能組織成連續、可向量化的張量，批處理仍會因非連續訪存而打折。綜合來看，只有當評價次數與單次評價成本都足夠大時，改造執行模型的收益才顯著。

**理解檢查**

隨機請一名學生用自己的話總結本頁重點，例如「為什麼串行循環是結構性瓶頸」「並行後牆鐘時間由什麼決定」。若學生只會說「慢」，追問數量級和批次數兩個維度。可補充速算口訣：總評價次數 ≈ 種群規模 × 迭代代數；串行評價耗時 ≈ 總評價次數 × 單次評價耗時。提醒不要只盯算子內部，並可用曲線形狀自檢：近似直線說明執行仍是串行的，呈階梯狀說明已按批次組織。

> **過渡提示**
>
> 確認學生能說出「串行是執行模型瓶頸、並行按批組織後牆鐘由批次數決定」後，再進入後續張量化計算圖與並行調度的設計內容。

**資料依據**

演化依賴多樣性，而多樣性意味著龐大的計算量。傳統串行 CPU 循環在處理數萬次候選評價時效率低下。

<a id="lecture-page-5"></a>

### 從候選列表到張量化計算圖

*頁面 5*

> **頁面目標：** 學習者應掌握將演化過程從列表表示轉換為張量化計算圖的核心轉變。

> **頁面目標**
>
> 學習者應掌握將演化過程從列表表示轉換為張量化計算圖的核心轉變，並能解釋為什麼演化需要批量張量計算，以及張量化如何改變演化過程的表達方式。

**講授要點**

- 演化依賴多樣性，需要評價數萬乃至數百萬候選解。若把候選寫成普通對象數組，用逐項循環評價，大部分時間會消耗在逐項調度與宿主語言控制流上，而不是真正的數值運算。傳統串行 CPU 循環低效的根因就在這裡。 候選集合、評價結果與算法狀態被統一組織為張量。整代候選寫成形狀為 [種群規模, 解維度] 的候選張量
- 一個候選不再是一個獨立對象，而是張量中的一個切片或一行。頁面圖示也按這個順序展開：左側候選列表逐項處理，中間候選張量，右側計算圖中依次為變異、評價、選擇、狀態更新。 變異等操作直接作用於整個種群，一次調用完成全部候選更新
- 評價寫成 evaluate(候選張量)，一次得到整代結果，評價單位從「個」變成「批」。 選擇與狀態更新不再只是串行控制邏輯，而是圖中的節點，因而獲得算子融合、並行調度等編譯優化機會。 算法的邏輯，如變異分布和選擇壓力，並沒有被改寫
- 被改寫的是表達方式。這不是簡單把循環搬到更快的設備上，而是以張量為最小處理單位來組織數據與算子。若仍堅持「一個候選等於一個獨立對象」，再寬的並行硬件也只能被串行餵數據。 本頁關鍵躍遷可記作「從候選列表到張量化計算圖」
- 看到批量算子，就想到「整群一起算」。

**關鍵詞覆蓋**

- 張量化計算、候選張量、批量算子、批量評價、計算圖、編譯優化、種群規模、解維度。

**練習處理**

選擇題 1 的答案應指向逐項調度與宿主語言控制流的固定開銷，而非算力不足或多樣性不足。反饋時強調候選越多，這部分開銷占比越高。

一個候選解對應候選張量中的一個切片，例如一行；它不再綁定為獨立宿主語言對象。

選擇與狀態更新進入計算圖後，可獲得算子融合、並行調度等編譯優化機會，減少中間張量與同步開銷。

評價輸出最可能為 [種群規模] 或 [種群規模, 目標數]；評價沿種群維度為每個候選產生一個或一組指標。

EvoX 在表達層面把逐個候選的列表式處理，改為以張量為一等公民的批量計算圖。

50000 候選翼型搜索。原實現瓶頸主要在數據組織與調度層：逐候選對象訪問、逐項函數調用、逐次比較和手動狀態更新，以及每次只處理一個候選，無法填滿硬件並行寬度。張量化改造不改變選擇壓力和變異分布，而是把候選、評價結果與算法狀態統一為張量，讓變異和評價一次作用於整個種群。若希望選擇與狀態更新也獲得編譯優化，應把候選張量設為 [50000, 48]；評價輸出為 [50000] 或 [50000, 目標數]；變異對整張候選張量生效；選擇用張量索引或掩碼；

狀態更新寫成沿種群維度的歸約節點，如取最小值或求均值。

**理解檢查**

候選張量的形狀是什麼？一次評價的輸出形狀是什麼？哪兩個環節從串行控制邏輯變成了計算圖節點？三點都能答上，說明已掌握本頁核心躍遷。

> **過渡提示**
>
> 確認學生能用自己的話說明「從候選列表到張量化計算圖」的變化後，再進入下一頁的應用、例題或總結。

<a id="lecture-page-6"></a>

### 種群、評價與狀態的張量化組織

*頁面 6*

> **頁面目標：** 學習者應理解如何將種群數據、適應度評價和狀態變量統一映射為張量結構。

> **頁面目標**
>
> 理解如何把種群數據、適應度評價和算法運行狀態統一映射為張量結構，形成可批量計算、可設備駐留、可復現的統一數據契約。

> **講解順序**
>
> 先用三個問題切入——種群是什麼、評價得怎樣、運行到哪一步；再對應三類容器——種群張量 [N, D]、評價與約束矩陣 [N, M] 和 [N, K]、統一狀態容器；最後說明批量評價與狀態駐留如何把逐個體循環變成整批運算。

**講授要點**

- 把 N 個候選解組織為 [N, D] 的編碼張量。N 是批維，D 是特徵維，通常把 N 放在最外層，使同一算子能一次性作用於整批。若個體由多段參數組成，可拆成 [N, D1] + [N, D2] + … 等字段塊
- 變長個體用填充加掩碼或分桶處理，避免異構結構破壞整批計算。 一次批量評價產生 [N, M] 適應度矩陣
- 多目標、多約束和附加指標可並列為 [N, M+K] 或分表存儲，關鍵是避免逐個體循環調用評價函數。 代數、隨機數狀態、策略超參、最優解、歷史緩存、排名或採樣狀態等也進入張量或結構化狀態容器，保證可復現、可追蹤、可批量更新。 統一張量能減少主機與設備間往返、降低循環開銷，並為後續算子並行提供數據基礎
- 但要注意掩碼有效性、填充浪費、多目標數量增長導致評價矩陣變寬，以及狀態同步成本。

> **素材線索**
>
> - 內存布局圖把種群張量、評價矩陣、約束矩陣和統一狀態容器放在同一設備內存語義下。可提醒學習者關注「批量評價」箭頭表示一次調用處理整批，而不是逐個個體調用。 當 N=1024、D=50、M=2 時，種群為 [1024, 50]，評價值為 [1024, 2]，約束為 [1024, K]。generation 可存為標量，best_x 可存為 [D] 的一維張量，rng_state 可用適當長度的整數張量表示。每代更新都可在同一批維上整體完成。

**練習處理**

核心理解是「種群、評價與狀態統一映射為張量結構」。若選對，說明該理解與本頁主線一致；若選錯，請回到頁面開頭回顧統一數據契約。

合理說法應強調批量評價生成 [N, M] 與 [N, K]，而不是逐個體循環。判斷時能聯繫矩陣形狀和批量評價依據即可。

合理說法應說明代數、隨機數狀態、最優解等也納入統一狀態容器，便於檢查點和復現。若回答只停留在「把數據放進張量」，提醒還要關注狀態管理與復現。

針對 N=2048、D=100、M=3、K=5 的場景，建議種群 [2048, 100]，評價 [2048, 3]，約束 [2048, 5]；狀態變量如 generation 用標量張量，best_x 用 [100]，rng_state 用整數張量，歷史緩存可用 [T, 2048, 100] 或壓縮存儲。批量評價時，把評價函數向量化，使其接受 [N, D] 並返回 [N, M] 和 [N, K]；變長個體採用填充加掩碼或分桶，計算後按掩碼忽略無效部分。

**理解檢查**

請一名學習者用一句話說明為什麼 N 應作為最外層批維，並說出至少一個狀態變量為何要張量化。若回答停留在「把數據放進張量」，補充：關鍵是統一數據契約和整批算子執行。

> **過渡提示**
>
> 確認學習者能區分種群、評價、約束和狀態四類容器後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-7"></a>

### 算子並行與編譯優化

*頁面 7*

> **頁面目標：** 學習者應理解變異、交叉等操作作用於整個種群時的底層編譯優化機制。

> **頁面目標**
>
> 理解在 EvoX 的現代計算底座中，演化算子的最小執行單元從「個體」變為「種群張量」；掌握張量化算子與計算圖編譯如何提升批量演化吞吐，同時保持算法語義不變。

> **講解順序**
>
> 先建立「算子作用在誰身上」的判斷，再對比逐個體循環與張量級算子的執行差異，然後說明計算圖編譯從算子序列到執行計劃的優化方式，最後用案例和練習鞏固「效率變了、語義沒變」的原則。

**講授要點**

- 1. 種群張量形狀為 [N, D]，N 是種群規模，D 是決策變量維度。變異、交叉、選擇等算子可直接作用於整個種群張量，一次調用覆蓋全部 N 個個體
- 個體維度充當批量維度，設備可大規模並行執行，吞吐隨種群規模放大。 2. 逐個體寫法如 for ind in population: ind = mutate(ind) 會把每個算子拆成 N 次小調用，帶來頻繁的框架調度與內核啟動
- 每次批量僅為 1，設備並行單元難以填滿，中間結果反覆創建與釋放還會增加顯存分配和數據搬運開銷。改造關鍵是 population = mutate(population_tensor)，讓算子以種群張量為單位執行。 3. 計算圖編譯把「變異 → 交叉 → 選擇」組織成計算圖，在整張圖上做全局優化：算子融合可把多個逐元素運算合併為更少內核，減少中間張量與讀寫
- 內核生成與調度用更少內核啟動次數完成整代演化
- 內存復用為中間結果預規劃緩衝區，降低分配與搬運成本。 優化只改變「怎麼算」，不改變「算什麼」。內核數量、中間張量規模、內存與調度策略可以變，但變異、交叉、選擇的邏輯含義、算子組合順序和隨機數使用方式應保持一致
- 相同隨機種子下，優化前後的逐代軌跡與結果應當一致。 把張量化誤認為換了演化算法，或認為編譯優化會讓算法「更聰明」。張量化只是把同一算子作用到整個種群張量上
- 編譯優化也只落在執行層。優化後若不做回歸驗證，容易把實現差異誤當成算法改進。

> **素材線索**
>
> - 圖中左側為種群張量 [N, D] 與全部個體，中間為「變異 → 交叉 → 選擇」的演化算子計算圖，右側對比編譯前「逐個體循環、多次內核啟動、批量維度為 1」和編譯後「融合計算圖、少量高效 GPU 內核、一次批量前向完成整代演化」。可用這條流程幫助學生把張量化與編譯優化聯繫起來。

**練習處理**

本頁練習圍繞執行粒度與語義保持展開。

變異算子一次調用通常作用於整個種群張量 [N, D]；不是目標函數值向量，也不是單個個體的決策向量。

逐個體 Python/CPU 循環慢，是因為大量小規模調用帶來調度與框架開銷，且批量維度為 1，設備利用率低。

算子融合的主要收益是把多個逐元素運算合併為更少內核，減少中間張量與內核啟動次數；它不改變概率分布或算子含義。

只改變執行方式，不改變變異、交叉、選擇的邏輯含義和組合順序。

population[i] = mutate(ind) 的改造，應改為 population = mutate(population_tensor)，並把算子序列交給計算圖編譯優化；縮小 N、換循環語法或僅用 CPU 多線程都沒有解決執行粒度問題。

以種群規模 N = 4096、維度 D = 128 的演化策略為例，初始實現設備利用率低於 30%，單代耗時近似隨 N 線性增長，顯存占用偏高。診斷應落在執行粒度：逐個體循環把固定開銷放大 N 倍，批量維度退化為 1，並行單元填不滿，中間結果反覆創建釋放。改造分三步：第一步張量化算子，讓變異、交叉、選擇直接作用於 [N, D] 張量；第二步啟用計算圖編譯，進行算子融合、內核生成、內存復用與調度優化；第三步固定隨機種子做回歸驗證，對比優化前後的逐代最優適應度曲線與種群統計量。

若曲線基本重合，說明只是執行方式變化；若分叉，先檢查是否改變了算子順序、隨機數使用次數或選擇規則。

**理解檢查**

一個演化算子應作用在單個個體還是整個種群張量上？算子融合到設備利用率的等價鏈是什麼？如何驗證優化沒有改變算法語義？期望回答：作用在 [N, D] 種群張量上；融合越多，內核啟動越少，中間張量讀寫越少，設備利用率越高；用同一隨機種子對比優化前後的逐代最優適應度曲線與種群統計量。

> **過渡提示**
>
> 確認學生能區分張量化與計算圖編譯，並能用同種子回歸驗證語義不變後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-8"></a>

### 開放解耦的底座架構設計

*頁面 8*

> **頁面目標：** 學習者應理解 EvoX 底座架構的解耦設計原則與核心組件劃分。

> **頁面目標**
>
> 理解 EvoX 開放解耦底座的設計原則與五個核心模塊的職責劃分，能用「模塊邊界」判斷需求落點。

> **講解順序**
>
> 先給出核心判斷——研究者不應把時間花在並行通信、設備分配與分布式容錯上；再引出五個一級模塊，最後用架構圖說明上層演化邏輯與下層統一調度的分層關係。

**講授要點**

- 算法模塊定義「如何演化」
- 問題模塊提供統一評價接口
- 工作流按階段組織演化
- 監視模塊觀測演化過程
- Runtime 調度器作為統一執行層，回答「在哪裡算、怎麼算得動」。可記口訣：「演化邏輯在上，算力調度在下」，順序為算法 → 問題模塊 → 工作流 → 監視模塊 → Runtime 調度器。 算法模塊只描述選擇、交叉、變異、更新等搜索邏輯，不綁定具體問題，也不感知張量在哪張卡上
- 問題模塊把仿真、目標函數或環境封裝成統一評價接口
- 工作流決定初始化、迭代演化、收斂判定等階段順序
- 監視模塊採集指標、記錄種群狀態與收斂曲線
- Runtime 調度器屏蔽 GPU、加速設備、分布式集群的差異，接管批量計算、並行與通信細節。 算法與問題互相獨立，問題與算力互相獨立。新增變異算子時，只需改算法模塊
- 問題模塊繼續提供統一評價接口，工作流與監視模塊保持原組織方式，Runtime 調度器自動完成批量張量計算與設備分配，底層執行代碼無需修改。因此同一底座可承載強化學習、遺傳編程與組合優化等場景，避免重複建設並行、調度與分布式工程設施。 解耦不等於性能一定變慢。真正影響性能的是 Runtime 調度器對批量計算與設備利用的處理方式，而不是模塊數量。判斷分層是否高效，應比較端到端耗時、設備利用率與通信占比
- 若調度開銷上升，應優化 Runtime 調度器的批量計算與設備利用策略，而不是把並行代碼寫回算法模塊。 用「要不要改」檢驗解耦。換硬件或集群規模只應改 Runtime 調度器
- 換問題只應改問題模塊
- 換算子只應改算法模塊。若小改動波及三層以上，說明實現已經耦合過度。解耦節省的是重複工程，不是計算時間，仍需基準實驗驗證調度開銷是否可接受。

**練習處理**

五大核心模塊的排除項（答案為「超參數搜索器」，它屬於實驗配置或算法策略，不是底座一級模塊）；高內聚低耦合的準確體現（答案為算法模塊內部邏輯自洽且不綁定具體問題，問題模塊也不感知底層算力）；Runtime 調度器核心職責（答案為屏蔽 GPU、加速設備與分布式集群差異並統一調度執行）；新增變異算子時的改動範圍（答案為只需在算法模塊中實現新邏輯，問題、工作流、監視與 Runtime 調度保持不變）；統一開放接入的最直接意義（答案為各領域復用同一套工程基礎設施）。

反饋時先讓學生回到「五個模塊職責邊界」找證據，再說明為什麼其他選項會破壞邊界或混淆職責。

多節點 GPU 集群擴展中，算法模塊、問題模塊、工作流、監視模塊應保持不動，因為它們的職責與算力形態無關；需要改動或重新配置的是 Runtime 調度器。若爭論「算子內手寫設備分配與通信」還是「完全依賴 Runtime 調度器」，評估關鍵是改動落在哪一層：設備分配與通信屬於執行層，寫進算子會把算力細節耦合進算法模塊。驗證方案是在同一組合優化問題上比較純 Runtime 調度與手寫調度的端到端耗時、設備利用率、通信開銷占比，並記錄遷移到另一類硬件或強化學習任務時的成本；

只有可復現的顯著收益能補償耦合與遷移成本時，才考慮局部下沉。

**理解檢查**

請學生用自己的話複述五個模塊及各自回答的問題，並任選一個需求判斷應改哪一層。過渡提示：確認學生能區分「演化邏輯」與「算力調度」後，再進入後續張量化並行演化的實現細節。

<a id="lecture-page-9"></a>

### 算法與問題模塊劃分

*頁面 9*

> **頁面目標：** 學習者應理解算法模塊與問題模塊在底座架構中的職責與交互方式。

> **頁面目標**
>
> 理解 EvoX 開放解耦底座中算法模塊與問題模塊的職責邊界、接口契約，以及這種劃分對多目標、帶約束和昂貴反饋問題的意義。

> **講解順序**
>
> 先用一句話錨定分工——算法模塊回答「如何搜索」，問題模塊回答「評價什麼、環境如何反饋」。再展開二者的輸入輸出，最後落到接口契約穩定帶來的獨立擴展、可組合與可遷移。

**講授要點**

- 1. 算法模塊封裝搜索策略與演化機制。它負責候選解生成、種群初始化、變異、交叉、選擇、精英保留，以及迭代輪次、種群規模、重啟與收斂判據、算子參數調度等搜索控制。關鍵點是它只依賴「候選解會被評價」這一抽象前提，不關心目標函數的物理含義和具體形式。 2. 問題模塊定義評價標準與環境反饋。它把候選解轉化為可比較的反饋，如目標值、適應度、約束違反量或一次環境交互結果
- 同時聲明變量維度、取值範圍和可行域規則，讓算法知道在哪裡生成候選解。問題模塊對同一批候選解給出一致評價，使不同個體、不同代甚至不同算法之間可以橫向比較。 算法模塊提交一批候選解，問題模塊返回結構化評價結果（目標向量、約束違反量及可選診斷信息），算法模塊據此更新種群並推進下一代。一次「提交—返回」往復就是一代演化。方向的正確性很重要：算法側提交待評價的候選解，問題側返回評價結果。 獨立擴展——新增或替換算法不影響問題定義，修改或新增問題也不必改寫算法模塊
- 可組合——同一問題模塊可接入不同演化算法，同一算法模塊可切換到不同問題模塊
- 可遷移——只要契約穩定，兩側可跨任務復用、替換與遷移。 真實工程問題如超臨界翼型設計常同時具有多個彼此牽制的目標、相互嵌套的約束以及昂貴而稀疏的反饋。問題模塊把多目標和約束統一折算為可比較的評價結果，必要時藉助代理模型降低成本
- 算法模塊則維護一組多樣化候選方案，支持專家在升力、阻力與安全餘量之間做偏好取捨。因此契約不能只承載單一標量適應度，還要承載目標向量與約束違反量，否則多目標與約束信息會在接口處永久丟失。

**關鍵詞覆蓋**

- 算法模塊、問題模塊、候選解批次、評價結果、目標向量、約束違反量、接口契約、獨立擴展、可組合、可遷移、代理模型。 把目標函數、約束處理或問題特有啟發式規則寫進算法模塊，或在問題模塊裡實現選擇與種群更新，都會讓兩側重新耦合。自檢問題是：「如果只改物理模型，我是否只需替換問題模塊？」答案必須是肯定的。接口要「窄而全」：窄指字段少而穩定，只傳候選解批次與評價結果兩類信息
- 全指關鍵信息不能殘缺，目標向量、約束違反量、變量維度與邊界都要保留。只返回單個標量適應度是最難事後補救的設計缺陷。

> **練習線索**
>
> - 五道選擇題分別核對——誰負責搜索、問題模塊核心職責、契約數據流方向、解耦後的獨立擴展、單標量適應度的後果。正確答案依次指向：算法模塊生成候選解並更新種群
> - 問題模塊把候選解轉化為目標值、約束違反量或環境交互結果
> - 算法模塊產出候選解批次，問題模塊返回評價結果
> - 只要契約不變，替換任一側時另一側無需重寫
> - 丟棄約束信息會使算法無法獲得約束反饋，帶約束問題難以被正確處理。反饋時若學生答對，要求其說明依據
> - 若答錯，引導回到「誰在搜索，誰在評價」和「契約是否完整」兩點重新判斷。 翼型氣動優化遷移到機翼結構減重時，更換演化算法不需要重寫問題模塊，因為問題模塊只對外承諾「輸入候選解批次、輸出評價結果」，與算法內部選擇、更新或排序機制無關。復用同一算法到結構重量最小化時，問題模塊至少返回三類信息：目標值（結構重量，若有剛度指標則為目標向量）、約束違反量（剛度與幾何可行性約束的越界程度）、搜索空間的變量維度與取值範圍。缺一不可，因為算法只負責搜索，需要目標值判斷優劣，需要約束違反量區分可行與不可行，需要一致邊界生成合法候選解。

**課堂活動**

讓學生用記憶錨點複述——算法模塊 = 如何搜索（生成、變異、交叉、選擇、迭代控制）；問題模塊 = 評價什麼（目標值、約束違反量、環境反饋）。隨後請一名學生回答：「如果只改物理模型，哪一側應當被替換？」

**理解檢查**

隨機請一名學生用自己的話說出「候選解批次 ⇄ 評價結果」的數據流，並解釋為什麼只返回單一標量適應度會破壞帶約束問題的處理。

> **過渡提示**
>
> 確認學生能區分搜索與評價、並能說清契約必須「窄而全」後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-10"></a>

### 工作流與監視模塊管理

*頁面 10*

> **頁面目標：** 學習者應理解工作流控制與監視模塊在演化過程管理中的作用。

> **頁面目標**
>
> 學完本頁，學習者應能區分工作流模塊與監視模塊的職責，並解釋二者如何把演化循環從「未知黑箱」變成可觀測、可判定、可干預、可復現的受控過程。

> **講解順序**
>
> 先用一句話建立分工——工作流回答「按什麼順序跑」，監視回答「現在跑到哪、好不好、要不要動」。然後展開工作流的順序、回邊與階段邊界，再說明監視如何採集狀態、暴露指標並驅動決策。最後收束到三條職責邊界與可觀測性代價，並用 GPU 張量化演化示例串起整套邏輯。

**講授要點**

- 1. 工作流模塊編排的是步驟與依賴，而不是算法邏輯本身。它定義「初始化 → 評價（批量）→ 選擇 → 變異/交叉 → 狀態更新 → 終止判定」的順序、回邊與階段邊界，並通過統一接口把算法模塊與問題模塊串聯起來。編排的關鍵在於粒度與邊界：把「一次批量評價」視為一個可整體調度的階段，而不是逐個個體推進
- 階段邊界同時就是監視採樣點與調度切換點。 2. 監視模塊是運行狀態的採集與暴露層，持續追蹤種群規模、評價次數、適應度分布、收斂性與多樣性、單代耗時、顯存與吞吐等指標。但觀測的目的不是記錄，而是決策：指標用於觸發終止、早停、重啟、參數或策略切換，從而形成「監視 → 判定 → 干預」的閉環。 3. 可控性還要求狀態可序列化。檢查點保存與恢復使長時演化可中斷續跑、失敗可定位、實驗可復現。同時，解耦要求監視以回調或鉤子方式掛載，不侵入算法與問題模塊，因此控制台、日誌、曲線面板等不同監視後端可以互換，而核心算法無需改動。 工作流管「順序與階段」，監視管「狀態與指標」，運行時調度器管「資源與並行映射」。常見錯誤是把資源映射或算法邏輯塞進工作流，或把順序控制塞進監視，從而導致耦合與不可復現。可觀測性也有代價：高頻採樣與同步回傳可能打斷並行流水線，因此採樣頻率、指標聚合方式與異步落盤策略需要按實驗目的權衡。 工作流把「批量評價」整體作為一個階段調度
- 監視模塊在同一階段內按代記錄最優與平均適應度、種群多樣性與單代耗時
- 當連續 N 代指標停滯時，觸發終止判定或切換到更大擾動的策略，並同步落盤檢查點，使該次演化既可復現，也能從中斷處續跑。

**關鍵詞覆蓋**

- 工作流模塊、監視模塊、步驟與依賴、階段邊界、回邊、批量評價、可觀測性、監視→判定→干預、檢查點、回調/鉤子、職責邊界、採樣代價。

> **練習線索**
>
> - 本頁練習圍繞五個判斷展開。工作流的直接編排對象是步驟與依賴，而不是算子公式、顯存映射或目標函數編碼
> - 把批量評價整體作為階段調度，是因為粒度與邊界更合適，階段邊界同時承擔監視採樣與調度切換
> - 監視的根本目的是決策，而非事後歸檔
> - 回調或鉤子掛載是為了解耦，使監視後端可互換
> - 可觀測性需要權衡採樣頻率、指標聚合與落盤策略，因為高頻採樣可能干擾並行流水線。答對時，強調依據來自「順序與階段」和「監視→判定→干預」兩條線
> - 答錯時，回到職責邊界，區分算法邏輯、資源映射、順序控制與狀態採集四類職責。

**理解檢查**

可用「長時張量化演化的可疑停頓」案例檢驗掌握程度。先利用階段邊界把批量評價、選擇、變異、狀態更新各自的耗時拆開，判斷單代耗時攀升究竟來自哪個階段；再疊加平均適應度停滯與多樣性下降兩條曲線，判斷是收斂趨於穩定，還是陷入局部最優。處置方案按「監視 → 判定 → 干預」組織：監視層採集適應度停滯代數、多樣性與單代耗時；判定層設定「連續 N 代改善低於閾值且多樣性跌破下界」為停滯、「單代耗時超閾值」為資源異常；干預層觸發策略切換、早停或重啟，並針對耗時異常調整批次規模或並行映射。

處置前先落盤檢查點，保證實驗可復現、失敗可定位、長時演化可中斷續跑。

> **過渡提示**
>
> 確認學習者能說出「工作流管順序與階段、監視管狀態與指標、調度器管資源與並行映射」，再進入下一頁。

<a id="lecture-page-11"></a>

### Runtime 調度器與異構算力管理

*頁面 11*

> **頁面目標：** 學習者應掌握 Runtime 調度器在異構硬件分配和算法可組合性中的核心作用。

> **頁面目標**
>
> 掌握 Runtime 調度器在 EvoX 中的定位——它是連接算法邏輯與物理硬件的執行中樞，負責把上層演化算法、問題定義與工作流映射到 GPU、加速設備（TPU/NPU）和分布式集群等異構算力資源，並在屏蔽硬件差異的同時維持算法模塊的高效可組合性。

> **講解順序**
>
> 1. 先區分算法層與執行層。算法層關注「做什麼」，Runtime 關注「在哪做、怎麼做」。這一分離是理解 EvoX 架構的關鍵。
>
> 異構算力調度，統一管理 GPU、加速設備與分布式集群，把任務、算子與張量計算圖分配到合適後端；依賴與狀態協調，保證任務依賴關係和執行狀態正確同步；統一調度接口，使算法層提交任務時無需綁定具體設備或集群形態；模塊可組合性，支持算法、問題、算子與執行後端按模塊組合、替換與復用。
>
> 同一套演化算法從單機 GPU 切換到多機集群時，算法層代碼保持不變，由 Runtime 重新映射計算任務與執行後端。研究者因此能專注算法創新，而不必為每種硬件重寫代碼。
>
> 上層為算法與工作流層（算法模塊、問題定義、工作流），中間是 Runtime 調度器與統一調度接口，下層是異構算力層（GPU、TPU/NPU、分布式集群）；向下傳遞任務、算子與計算圖，向上回傳狀態與結果。

**講授要點**

- Runtime 不實現演化算法邏輯，也不定義問題目標函數
- 它的職責是調度與映射。 它管理的執行資源是硬件資源，如 GPU、加速設備和分布式集群
- 算法模塊源代碼屬於算法層，不是 Runtime 調度的對象。 算法層只需描述要做什麼，不必關心在什麼硬件上做，因此同一套算法可遷移到單機、多卡或跨集群環境。 可組合性意味著算法、問題、算子與執行後端能夠自由組合、替換和復用，而不是被鎖定在單一硬件後端。

**關鍵詞覆蓋**

- Runtime 調度器、異構算力調度、依賴與狀態協調、統一調度接口、模塊可組合性、GPU、加速設備、TPU/NPU、分布式集群、算法層、執行層。

> **素材線索**
>
> - 本頁配有 Runtime 調度器連接硬件設備與上層算法的架構圖。圖中上層為算法與工作流層，中間為 Runtime 調度器與統一調度接口，下層為異構算力層
> - 箭頭表示任務/算子/計算圖向下分發，狀態/結果向上回傳。講圖時可讓學生沿著箭頭複述「上層提交什麼、Runtime 做什麼、下層返回什麼」。

**練習處理**

選擇題 1 的正確答案是將算法與工作流映射到異構算力資源，並屏蔽硬件差異。反饋要點：Runtime 是執行中樞，不實現算法邏輯，也不定義問題。

Runtime 管理硬件執行資源，源代碼屬於算法層內容。

選擇題 3 的正確答案是通過統一調度接口，算法層無需綁定具體設備或集群形態。反饋要點：降低耦合意味著算法層不需要針對每種硬件編寫不同代碼。

選擇題 4 的正確答案是算法、問題、算子與執行後端按模塊組合、替換與復用。反饋要點：可組合性體現在組件可自由組合和替換。

選擇題 5 的正確答案是重新映射計算任務與執行後端，算法層代碼保持不變。反饋要點：Runtime 動態調整任務映射，算法層無需修改。

多目標翼型設計場景中，團隊同時優化升力係數與巡航升阻比，並在單機 GPU 與分布式集群之間遷移同一套算法代碼。回答時抓住兩點：第一，Runtime 通過統一調度接口把任務、算子與計算圖映射到具體硬件後端；硬件變化時算法層代碼不變，由 Runtime 重新映射與拆分計算圖，並協調任務依賴和狀態同步。第二，調度時需考慮任務計算特徵與依賴關係、硬件能力（如 GPU 並行度、集群通信開銷）、多目標評估的並行執行與稀疏反饋下的同步，以及狀態回傳，保證跨硬件高效落地且不破壞可組合性。

**理解檢查**

請學生用自己的話解釋「算法層關注做什麼，Runtime 關注在哪做、怎麼做」，並舉例說明從 GPU 換到集群時哪一層發生變化、哪一層保持不變。若學生只記住硬件名稱而沒有說明調度與映射關係，可引導其回到架構圖的箭頭關係。

> **過渡提示**
>
> 確認學生能說出 Runtime 的調度與映射作用，並能用統一接口和可組合性解釋跨硬件遷移後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-12"></a>

### 統一底座支撐的多領域應用

*頁面 12*

> **頁面目標：** 學習者應理解該統一底座如何支持強化學習、遺傳編程及組合優化等廣泛任務。

> **講解順序**
>
> 先用一句話點明「統一底座 = 開放接入 + 張量化執行 + Runtime 調度。看到「多領域應用」時，按這三問自檢：任務靠什麼接入？候選解怎麼批量評價？算力與狀態誰來統一管理？」，再結合頁面上的示例、圖示或關鍵詞解釋它為什麼重要。

**講授要點**

- 統一底座 = 開放接入 + 張量化執行 + Runtime 調度。看到「多領域應用」時，按這三問自檢：任務靠什麼接入？候選解怎麼批量評價？算力與狀態誰來統一管理？
- 環境步進並行、程序樹結構演化、離散張量映射屬於適配層
- 評價流程、狀態管理、算子組織與調度屬於共享層。若把某領域的專有結構直接寫進共享調度邏輯，就說明抽象層級選錯了。
- 本頁只回答「統一底座能支撐什麼」。遇到吞吐量、調度開銷、批量張量實現細節一類的問題，先放到後續計算效率與批量張量方法的學習範圍，不要在此處糾纏。

統一底座支撐的多領域應用

11

AI999

現代計算底座與張量化並行演化

控制與決策任務需要與不斷變化的環境持續交互，結構設計任務需要在可變長度的程序與表達式空間中搜索，資源分配與路徑規劃任務則要在離散的排列與約束中求解。如果為每一類問題單獨重建一套系統，評價接口、狀態存儲、算子庫與算力調度都要重複實現，工程遷移成本極高。統一底座 的核心思路，就是用同一套演化基礎設施承載這些異構任務，讓多領域應用共享評價、狀態、算子與算力管理。

開放接入 （用統一的註冊與接口規範接入任務）、 張量化執行 （把候選解組織為批次，批量並行評價）、 運行時調度 （在異構算力上分配任務並維護狀態）。三者共同保證跨領域復用，也解釋了為什麼「為強化學習、遺傳編程及組合優化提供了統一的開放接入底座」這一能力值得單獨討論。

統一底座支撐的多領域應用 同一開放接入底座 · 共享評價流程、狀態管理、算子組織與算力調度 底座能力 / 任務領域 強化學習 遺傳編程 組合優化 開放接入 環境接入接口 程序結構接入 解與約束接入 並行環境交互 多環境批量採樣 — — 程序樹結構演化 — 變異 / 交叉 — 張量化求解 策略批次評價 結構張量化 候選與約束批次 Runtime 調度 與狀態管理 共享調度與狀態 共享調度與狀態 共享調度與狀態 適配層：吸收領域差異 —— 環境步進並行 · 程序樹結構演化 · 離散張量映射 統一底座：開放接入 · 張量化執行 · Runtime 調度與狀態管理 三類典型任務如何落到同一底座 強化學習：底座提供並行環境交互能力，支持多環境實例批量採樣、一批候選策略並行評價，並與演化優化形成閉環。

底座支持程序樹等變長、層次化結構的演化，可在統一種群與評價流程中處理結構表示及其變異、交叉。組合優化：把離散決策、選擇、排列與約束目標適配為張量化求解，通過批量候選與並行評價提升搜索吞吐。共享什麼，適配什麼 領域差異由 適配層 吸收：強化學習重在環境步進的並行，遺傳編程重在程序樹結構的演化，組合優化重在離散決策到張量的映射。三者共享底層 Runtime 調度與狀態管理——共享評價流程、狀態載體、算子組織方式與算力管理，而不是為每類問題重建系統。

如果把某個領域的專有結構直接寫進共享調度邏輯，說明抽象層級選錯了。本頁範圍 本頁聚焦「統一底座能支撐什麼」，不展開具體性能對比與調度器實現細節；後者留給後續計算效率與批量張量方法部分繼續討論。

統一開放接入底座的首要價值是什麼？

讓不同領域復用評價、狀態、算子與算力管理，顯著降低工程遷移成本

用一個統一算法取代強化學習、遺傳編程與組合優化

把所有任務都壓縮成同一種固定長度的向量表示

為每一類新問題重新搭建獨立的系統與工具鏈

任務形態不同，但接入規範、批量評價、狀態管理與算力調度可以共用，新增問題只需在適配層描述差異。

「為每類問題重建系統」正是底座要解決的問題；同時底座也不要求所有任務共用同一算法或同一表示，差異由適配層吸收。

正確。這個回答能聯繫本頁概念，並說明依據。

請回到本頁講解，找出關鍵證據或例子後再判斷。

在強化學習場景中，統一底座主要提供哪一項關鍵能力？

程序樹的變異與交叉算子

僅支持單個環境實例的串行步進

多環境實例批量採樣並收集軌跡，一批候選策略並行評價

離散排列與約束的建模接口

多環境實例同時推進、軌跡批量收集、候選策略並行評價，從而與演化優化構成閉環。

程序樹結構演化屬於遺傳編程的適配點，離散約束建模屬於組合優化的適配點；強化學習的關鍵是環境交互的批量並行，而非單實例串行。

遺傳編程任務接入統一底座時，底座必須支持的關鍵特性是什麼？

只處理固定長度實數向量

程序樹等變長、層次化結構的表示與演化，包括結構變異與交叉

必須把程序樹強制編碼為固定長度的二進制串後再演化

只能處理無約束的連續目標函數

遺傳編程的候選解是變長、層次化的程序結構，底座需要在統一種群與評價流程中容納這種表示，並支持相應的變異與交叉。

固定長度向量是典型連續優化的表示；遺傳編程的核心特徵恰恰是變長、層次化的程序樹結構，以及針對結構的演化操作。

組合優化任務接入統一底座，最關鍵的適配工作是什麼？

取消全部約束，只保留單一目標

把問題改寫為連續可微的神經網絡訓練任務

為每一個問題實例單獨編譯一個專用求解器

把離散決策、選擇、排列與約束目標適配為張量化求解

候選解與約束被組織成批次，從而復用底座的批量候選與並行評價能力。

逐實例編譯專用求解器等於回到「重建系統」的老路；放棄約束也改變了問題本身，兩者都不是底座所要求的適配。

關於共享層與適配層的分工，下列哪一項理解是正確的？

調度邏輯必須為強化學習、遺傳編程和組合優化各寫一份

適配層只做界面展示，不參與任何任務語義轉換

共享層負責程序樹結構演化，適配層負責環境步進

領域差異由適配層吸收，三類任務共享底層 Runtime 調度與狀態管理

環境步進並行、程序樹結構演化、離散張量映射屬於適配層；評價流程、狀態管理、算子組織與調度屬於共享層。

把領域專有結構寫進共享調度邏輯，或讓共享層去處理某一領域特有的結構演化，都是層級劃分錯誤。

同一運行時承載三類異構任務

閱讀場景，回答問題。

某算法團隊正在建設演化計算平台。此前他們為強化學習控制、符號回歸（程序結構搜索）和物流路徑規劃分別維護三套獨立系統：每套都有自己的評價接口、狀態存儲與算力調度，代碼重複嚴重，換一個任務就要重寫一遍流程。新方案改為用一個統一底座承載這三類任務：強化學習任務並行推進多個環境實例並收集軌跡；遺傳編程任務並行評價程序樹種群；組合優化任務把候選解與約束組織成張量批次，由統一調度分配異構算力。

1. 團隊為什麼放棄為每類問題單獨維護系統？請從復用與遷移成本的角度說明。

任務接入、候選解的批量評價、候選與種群的狀態管理、算子組織以及算力調度。分別維護意味著這些能力被重複實現三遍，任何新任務都要重建一遍流程，工程遷移成本很高。統一底座讓三類任務復用同一套評價流程、狀態載體、算子組織方式與算力管理，新任務只需在適配層描述自身差異即可接入。

2. 請指出三類任務在適配層分別吸收的差異，並說明它們在共享層復用了什麼。

強化學習重在環境步進的並行（多環境實例批量採樣、軌跡收集與策略批量評價）；遺傳編程重在程序樹等變長、層次化結構的表示與演化（結構變異與交叉）；組合優化重在把離散決策、選擇、排列與約束目標映射為張量化求解。共享層復用：開放接入規範、張量化批量執行、Runtime 調度與狀態管理，以及統一的異構算力分配。正因為差異被收攏在適配層、共性沉在共享層，才不必為每類問題重建系統。

先記住三根支柱

統一底座 = 開放接入 + 張量化執行 + Runtime 調度。看到「多領域應用」時，按這三問自檢：任務靠什麼接入？候選解怎麼批量評價？算力與狀態誰來統一管理？

分清共享層與適配層

環境步進並行、程序樹結構演化、離散張量映射屬於適配層；評價流程、狀態管理、算子組織與調度屬於共享層。若把某領域的專有結構直接寫進共享調度邏輯，就說明抽象層級選錯了。

本頁的邊界

本頁只回答「統一底座能支撐什麼」。遇到吞吐量、調度開銷、批量張量實現細節一類的問題，先放到後續計算效率與批量張量方法的學習範圍，不要在此處糾纏。

step-1

學習者應理解該統一底座如何支持強化學習、遺傳編程及組合優化等廣泛任務。

lesson_4

lesson_4_slide_11

來自 EvoClass 草稿

為強化學習、遺傳編程及組合優化提供了統一的開放接入底座

lesson_id_distribution

67ee25ab22558e4ae0e13f24b7c34c2da1218107cceb1cd331b38fc3521a9743

**資料依據**

來自 EvoClass 草稿（第 4-4 頁）

> **素材線索**
>
> - 為強化學習、遺傳編程及組合優化提供了統一的開放接入底座

**課堂活動**

請用一個貼近學生經驗的例子複述本頁內容，並讓學生說出這個例子和"統一底座 = 開放接入 + 張量化執行 + Runtime 調度。看到「多領域應用」時，按這三問自檢：任務靠什麼接入？候選解怎麼批量評價？算力與狀態誰來統一管理？"之間的關係。

> **對應目標**
>
> - 掌握將演化過程表達為批量張量計算的方法
> - 理解 Runtime 在調度異構算力與保持算法可組合性上的作用

**理解檢查**

隨機請一名學生用自己的話總結本頁重點，授課者根據回答補充遺漏的關鍵詞。

> **過渡提示**
>
> 確認學生能說出本頁的核心關係後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-13"></a>

### 計算效率對比分析實踐

*頁面 13*

> **頁面目標：** 學習者應通過實踐對比理解 CPU 串行遍歷與 GPU 張量批處理的效率差異。

> **頁面目標**
>
> 把計算效率對比落到一次可復現的實踐上，理解 CPU 串行個體遍歷與 GPU 張量批處理的端到端效率差異，弄清加速來自哪裡、代價是什麼、邊界在何處。

> **講解順序**
>
> 先給出同一演化任務上的兩條基線，再看效率對比柱狀圖，隨後講可復現的度量協議，最後歸納收益來源、約束條件與實踐結論。

**講授要點**

- 用循環逐個個體調用評價函數，每代需要 N 次獨立調度、狀態更新與結果匯總。循環控制、解釋器開銷和分散內存訪問會稀釋有效算力
- 個體越多，這些非計算成本占比越高。 把種群、評價輸入與運行狀態組織為張量，在 GPU 上批量執行評價與算子，一次調用覆蓋整個候選集，從而大幅減少串行循環與調度次數。 在相同問題、相同種群、相同隨機種子，並且預熱並設備同步後計時的條件下，CPU 串行循環為基準 1.0×，GPU 批處理 b=64 約為 2.2×，b=256 約為 4.5×，b=1024 約為 7.1×。圖中展示的是每代耗時相對值，批大小越大，固定開銷越容易被攤薄。 固定問題、種群規模、迭代代數與隨機種子
- 記錄每代實際耗時、總耗時、吞吐（評估/秒）、加速比、GPU 利用率與顯存占用。計時前要預熱，排除首次編譯與顯存分配影響
- 計時點要做設備同步
- 計算耗時與主機—設備數據傳輸耗時分開統計。缺少任一環節，加速比都可能失真。 收益來自批量並行、張量化算子以及設備內並行，使一次調用處理整個候選集
- 約束包括批大小、問題維度、評價函數可向量化程度、主機—設備拷貝開銷與內核啟動開銷。批量過小會被啟動開銷吃掉收益
- 評價函數若無法向量化，批處理幾乎無從發揮。 正確順序是先驗證評價函數能否批量化，再對比 CPU 與 GPU 實現。效率優勢最終應落到「在相同計算預算下獲得更多代或更多候選方案」上，並據此決定部署方式與實驗設計，而不是單純追求加速比數字。

**練習處理**

第1題正確答案是「每個個體獨立調用評價函數所帶來的調度、解釋器與分散內存訪問開銷」。串行基線每代產生 N 次獨立調度與狀態更新，循環控制、解釋器開銷與分散訪存會稀釋有效算力；此時還沒有 GPU 內核啟動與拷貝。

第2題正確答案是把種群、評價輸入與運行狀態組織成張量，一次調用覆蓋整個候選集。加速核心是批量並行與張量化，而不是改變精度、種群規模或種子數量。

第3題規範協議是固定問題、種群規模、代數與種子，預熱並做設備同步後再計時，並區分計算與數據傳輸耗時。

GPU 常異步執行，若不同步，計時可能漏掉尚未完成的計算，導致耗時被低估、加速比虛高；同步本身不提升算力，也不消除數據傳輸。

評價函數可向量化程度低時，GPU 批處理優勢明顯減弱，甚至可能因拷貝與內核啟動開銷而收益有限；加速並非恆定，也不會隨批量增大而無上限提升。

案例實踐：

1. 未做設備同步得到的約 9 倍加速很可能不可信。主機下發內核後不會等待其完成便繼續執行，若計時點不同步，測得時間可能只覆蓋內核下發階段，遺漏仍在執行的實際計算，使 GPU 耗時被嚴重低估、加速比被虛高。修正做法是：每個計時點調用設備同步，確保所有下發工作真正完成後再讀取時間戳；先做預熱迭代，並把主機—設備數據傳輸耗時與純計算耗時分開統計。只有在固定種子、預熱並同步條件下測得的每代耗時與總耗時，才可作為可信依據。

2. 小批量 b=8 下加速比僅約 1.2 倍並不矛盾。批處理收益受批大小、內核啟動開銷與數據傳輸開銷共同約束；批量過小時，設備上可並行工作量不足，固定開銷占每代耗時比例較大，有效並行度無法攤薄這些成本，加速比自然接近 1。建議在顯存允許範圍內增大批大小，盡量把評價函數與後處理邏輯整體向量化，並重新按規範協議測量，分別報告每代耗時、總耗時、吞吐與加速比，從而判斷收益是否真正落在相同預算下獲得更多代或更多候選這一目標上。

**理解檢查**

隨機請學生用自己的話說明為什麼先驗證評價函數可向量化，再比較 CPU 與 GPU；並說出預熱與設備同步分別解決什麼問題。

> **過渡提示**
>
> 確認學生能區分收益來源與約束條件，並能把加速換算成預算收益後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-14"></a>

### 批量張量計算的核心方法

*頁面 14*

> **頁面目標：** 學習者應鞏固將演化過程表達為批量張量計算的核心方法。

> **頁面目標**
>
> 鞏固將演化過程表達為批量張量計算的核心方法，理解批維度、批量算子、計算圖優化與吞吐量指標之間的關係，並能識別偽批次量化。

> **講解順序**
>
> 候選張量 X 為 [N × D]，目標與約束 F 為 [N × M]，評價輸出 Y 為 [N × M]；批維度 N 永遠在最外層，D 與 M 描述單個候選的變量數與目標項數。
>
> 把種群、目標/約束、評價輸出與演化狀態統一映射為帶批維度的張量，狀態量用標量或小張量緩衝維護，而不是逐個體記錄在 Python 對象中。
>
> 變異 X′ = X + σ·randn(X)，交叉沿 N 維配對重組，選擇 idx = topk(F, k)，評價 Y = fθ(X)。重點不是單個表達式，而是所有候選共享同一張張量運算圖，一次批調用替代 N 次單候選調用；約束與越界可用掩碼張量在同一批運算內處理。
>
> 算子融合減少內核啟動，批內並行讓全候選同時執行，異步執行重疊計算與傳輸，內存復用減少中間張量分配。
>
> 從單步延遲轉向候選/秒或代/秒，因為一次批調用承載整批候選，整體吞吐才反映搜索效率。
>
> 把批量算子嵌在逐個體 Python 循環裡會重新引入解釋器開銷與內核啟動開銷，批維度形同虛設。自檢方法：一次演化步驟中，調度層級應當只有「批」，沒有「個體」。

**講授要點**

- 批維度 N 是候選數，形狀對得上時，變異、交叉、選擇、評價都能直接沿 N 維批量執行。 張量化的直接收益來自減少調用次數與調度開銷，而不是改變候選數量或提升單點精度。 randn(X) 生成與 X 同形狀的隨機擾動張量，擾動是逐元素的，σ 控制強度。 topk(F, k) 沿批維度 N 選出前 k 個候選的索引，選擇對象是候選而不是變量或目標項。 批量執行改變性能瓶頸的位置，延遲仍可測量，但衡量規模效率要看單位時間完成多少候選或多少代。

**關鍵詞覆蓋**

- 批量張量計算、批維度 N、形狀契約、批量算子、計算圖優化、吞吐量、候選/秒、代/秒、偽批次量化。

> **素材線索**
>
> - 本頁示意圖為主題「演化過程 → 批量張量計算圖」，三欄依次為①張量化組織、②批量算子、③編譯優化與吞吐量。板書或思維導圖可按這三欄展開，並在第三欄突出吞吐量指標「候選/秒 · 代/秒」。

> **練習線索**
>
> - 5 道選擇題分別檢查形狀契約、張量化的性能收益、變異表達式含義、topk 選擇語義、指標換擋原因。答題反饋可強調：正確時聯繫形狀契約或調用方式說明依據
> - 錯誤時回到本頁講解，找關鍵證據再判斷。 案例題「把逐個體演化循環遷移到批量張量執行」要求說明如何將候選、目標與狀態組織為張量並沿 N 批處理，以及計算圖優化與顯存不足時的權衡。答案要點包括 X:[N×D]、F:[N×M]、Y=fθ(X)、狀態用標量或小張量緩衝
> - 變異、交叉、選擇、評價均沿 N 維批量執行
> - 優化可做算子融合、批內並行、異步執行、內存復用
> - 顯存不足時可採分塊或小批量執行、降低數值精度、縮短中間張量生命周期，但同一代內所有候選應保持一致的比較口徑。

**課堂活動**

讓學生用自己的話解釋「為什麼批維度 N 應在最外層」，並給一個簡單例子，如 N=4、D=3、M=2，寫出 X、F、Y 的形狀，說明一次批調用如何替代多次單候選調用。

**理解檢查**

請學生總結形狀契約、指出一種偽批次量化寫法、解釋指標為何從單步延遲轉向吞吐量。若學生只能複述名詞而說不出調用次數與調度層級的變化，可回到批量算子與常見誤區部分補講。

> **過渡提示**
>
> 確認學生能說出形狀契約與批量執行的關係後，再進入下一頁的應用、總結或更複雜的計算圖優化討論。

<a id="lecture-page-15"></a>

### Runtime 調度與算法可組合性

*頁面 15*

> **頁面目標：** 學習者應鞏固 Runtime 在異構算力調度和算法可組合性方面的核心認知。

> **頁面目標**
>
> 建立 Runtime 的中間層定位——它不是具體算法，而是承上啟下的調度與抽象層：向上支持算法、問題與工作流的靈活組合，向下管理 CPU、GPU 等異構算力，從而維持算法可組合性與硬件無關性。

> **講解順序**
>
> 先給出「中間層」判斷；再拆解調度對象、異構資源與解耦機制；接著說明可組合性的收益與代價；最後用算法替換示例和練習檢查理解。

**講授要點**

- 根據工作流與監視模塊狀態，把種群、評價、算子等任務調度到合適設備，統一管理並行執行與資源使用。它承接算法、問題、工作流模塊，向下調用 CPU、GPU、加速器。 算法、問題、算子通過模塊化接口組合，不直接綁定底層硬件、並行策略或編譯細節。因此替換 DE、PSO 等算法或更換優化問題時，不必重寫底層 GPU/CPU 並行代碼。 設備差異、張量化執行與編譯優化由 Runtime 吸收，算法層保持設備無關，便於替換與復用。 抽象會帶來調度與數據搬運開銷，需要在靈活性、性能和工程複雜度之間平衡，例如採用批處理、異步執行或緩存減少數據搬運。 同一 Runtime 可支撐多領域應用，也為方法演化與算法替換提供穩定執行環境。

> **素材線索**
>
> - 本頁示意圖可分三層閱讀。上層是算法層，包含算法模塊、問題定義、工作流，三者通過統一接口接入
> - 中層是 Runtime 調度層，負責任務調度、並行執行、資源管理與接口隔離
> - 下層是異構算力，包括 CPU、GPU、加速器。兩側提示分別強調「算法可替換，硬件無關」和「權衡：靈活性·性能·複雜度」，底部提示「同一 Runtime 支撐多領域應用」。講解時可沿箭頭自上而下說明：算法層不直接觸達硬件，而是由 Runtime 按工作流調度執行。

**關鍵詞覆蓋**

- 異構算力調度、算法可組合性、統一接口、工作流調度、硬件無關抽象、接口隔離、調度開銷、數據搬運開銷。

**練習處理**

五道選擇題可用於快速檢查。第1題正確方向是「提供調度與抽象層，管理異構算力並維持算法可組合性」，若學生誤選「直接實現優化算法」，需強調 Runtime 不實現具體算法。第2題正確方向是「通過模塊化接口組合，不綁定底層硬件與並行策略」，若誤選 CUDA API 或手寫並行代碼，說明這會破壞解耦。第3題正確方向是「吸收設備差異、張量化執行與編譯優化，使算法層設備無關」。第4題正確方向是「抽象會帶來調度與數據搬運開銷，需權衡靈活性、性能和工程複雜度」。

第5題正確方向是「同一 Runtime 可支撐多領域應用，並為方法演化提供穩定執行環境」。反饋時統一回扣三處證據：中間層而非算法實現、可組合性要求硬件解耦、抽象並非零開銷。

Runtime 作為中間層，將算法、問題與工作流模塊通過統一接口組合，把種群、評價、算子等任務調度到 CPU 或 GPU 上執行；算法層不直接綁定硬件、並行策略或編譯細節，因此團隊更換 DE、PSO 或調整種群規模時，無需重寫底層並行代碼。第二問可答：抽象會帶來額外調度與數據搬運開銷，可能影響端到端性能；同時 Runtime 本身的維護與調試增加工程複雜度。團隊可通過批處理、異步執行或緩存減少數據搬運，在靈活性、性能和工程複雜度之間取得平衡。

**理解檢查**

請學生用一句話說明 Runtime 為什麼能讓算法替換不牽動硬件代碼；再各舉一個調度對象和一個異構資源，確認不會把「種群、評價、算子」與「CPU、GPU、加速器」混淆。

> **過渡提示**
>
> 確認學生能區分調度對象與異構資源，並能說出可組合性的收益與開銷後，再進入下一頁的例題、應用或總結。

<a id="lecture-page-16"></a>

### 高強度並行演化探索的基石

*頁面 16*

> **頁面目標：** 學習者應全面總結 EvoX 計算底座與張量化並行演化的整體價值與實踐意義。

> **頁面目標**
>
> 全面總結 EvoX 計算底座與張量化並行演化的整體價值與實踐意義。學習者應能說明從候選列表到張量化計算圖的轉變，掌握種群、評價與狀態三類張量化對象，理解統一 Runtime 與解耦架構如何支撐高強度並行演化探索。

> **講解順序**
>
> 先指出傳統串行流程的瓶頸，再引出張量化計算圖這一基石，然後展開三大張量化對象，接著講計算圖化與統一架構，最後落到收益、實踐意義與超臨界翼型案例。

**講授要點**

- 1. 傳統演化實驗把每個個體當作獨立 Python 對象，逐個建模、逐個評價。當候選規模擴大到成千上萬時，真正的瓶頸往往不再是算法本身，而是逐候選的調度、同步與 I/O 開銷。EvoX 的基石可以概括為：從候選列表到張量化計算圖。它把種群、評價與運行時狀態重新組織為可整體計算的張量，再由統一 Runtime 調度到 GPU 與異構算力上批量執行，從而支撐大規模、多目標、多解並行的演化搜索。 2. 三大張量化對象： 個體參數、基因或策略不再逐個 Python 對象循環，而是按批次維度組織為張量，個體之間的差異由張量的一個維度承載。 適應度、約束、多目標指標以及仿真或模型評價結果可批量計算，同一批次內的候選共享一次設備調用，顯著降低逐候選調度與 I/O 開銷。 演化代數、隨機種子、緩存與監控指標等運行時狀態被統一管理，使並行加速之後的實驗依然可復現、可追蹤。 張量化不是對某一處做局部優化，而是貫穿演化循環的三個層面。任何一層退回逐對象循環，並行度都會在那一層被卡住。 把候選列表提升為張量化計算圖之後，算子並行與編譯優化才有施展空間，種群規模與評價並行度可以隨算力擴展，而不是被解釋器循環鎖死。與之配套的是統一架構——算法、問題、工作流與監視、Runtime 調度器相互解耦，使算法可組合、問題可插拔、異構算力統一管理。使用者在寫算法時不必同時操心底層調度。 替代傳統 CPU 串行循環，在 GPU 與異構算力上實現大規模加速，為高強度探索提供穩定的吞吐基礎
- 在相同的牆鐘時間內，可以探索更多候選、更多目標組合或更多隨機重複。 當底層循環與調度工程被底座吸收，研究者可以把精力轉向問題建模、目標權衡與實驗假設的設計，而不必首先陷入底層循環與調度工程。這一分工既是高強度並行演化探索的前提，也為後續方法演化與 AI Native 科研提供工程基礎。 超臨界翼型多目標優化中，巡航升阻比與臨界抖振升力係數彼此牽制，需要保留一組差異化候選方案供專家權衡。單次高精度仿真昂貴、候選規模達數千，早期 CPU 串行循環一次實驗需要數天，且隨機種子與中間結果散落難以復驗。改造思路：先做種群張量化，把候選翼型參數按批次維度組織為張量
- 再做評價張量化，對升阻比、抖振升力係數等目標與約束批量評價，可先由代理模型批量預測，再對少量候選調用高精度仿真
- 同時做狀態張量化，統一記錄代數、隨機種子、緩存與監視指標
- 最後計算圖化並由統一 Runtime 調度到 GPU 與異構算力批量執行。吞吐提升的環節包括批量評價並行、算子並行與編譯優化、去除逐候選的 Python 調度與同步開銷，以及在相同牆鐘時間內同時探索更多候選、更多目標組合與更多隨機重複。關於可復驗性：不宜過早輸出唯一最優方案，因為目標彼此牽制，早期單點收斂會丟失權衡信息
- 保留差異化候選才能讓專家按收益、代價與適用條件選擇。可復驗性方面，應把代數、隨機種子、緩存與監控指標作為運行時狀態統一記錄並隨計算圖管理，使批量並行執行的結果完整復現與追溯，候選批次的評價記錄也應可回溯到具體參數與評價配置。

**練習處理**

本頁配套五道選擇題和一個案例題，可用於檢查概念理解與遷移應用。

基石是從候選列表到張量化計算圖，由統一 Runtime 批量調度執行。答題提示：瓶頸在逐候選的 Python 循環、調度與 I/O，而不是算法本身，也不是壓縮種群或提高單核主頻。

種群張量化是按批次維度組織張量，個體差異由張量維度承載。答題提示：逐對象循環恰恰是要擺脫的做法；張量化與目標個數無關，也不以犧牲可復現性為代價。

評價張量化的主要收益是適應度、約束與多目標指標批量計算，降低逐候選調度與 I/O 開銷。答題提示：它不提升單次評價的數值精度，不能替代仿真模型，也不意味著放棄記錄。

運行時狀態統一管理是為了增強實驗的可復現性與可追蹤性。答題提示：狀態張量化把代數、種子、緩存與監視指標一併管理，與縮減顯存無關，也不會取消隨機種子或限制並行。

解耦的意義是算法可組合、問題可插拔、異構算力得到統一管理。答題提示：解耦釋放復用與並行能力，而不是把算法限制為串行實現，更不會取消對實驗假設與目標權衡的需求。

先按種群、評價、狀態、計算圖與 Runtime 四步說明改造，再指出吞吐提升環節；第二問要解釋為何保留多樣化候選，並說明如何通過狀態張量化與統一記錄保證可復驗。

學生答對時，肯定其能聯繫本頁概念並說明依據；答錯時，引導回到本頁講解，找出關鍵證據或例子後再判斷。

**課堂活動**

可讓學生找一個自己熟悉的演化計算或批量評價場景，判斷其中是否存在顯式的 Python 循環；若存在，討論應優先在種群、評價還是狀態哪一層進行張量化，並說明理由。

**理解檢查**

隨機請一名學生用自己的話總結本頁重點，教師根據回答補充三處張量化、統一 Runtime、突破串行瓶頸、可復現性與解耦架構等關鍵詞。可追問：為什麼可復現不是附加項？若隨機種子、代數、緩存與監控指標沒有隨計算圖統一記錄，加速收益會被可追溯性的缺失抵消。

> **過渡提示**
>
> 確認學生能說出從候選列表到張量化計算圖的核心關係，並能區分種群、評價與狀態三類張量化對象後，再進入下一頁的例題、應用或總結。
