ToT:思維樹:借助大語言模型進行審慎的問題求解

摘要

語言模型正日益被部署于廣泛任務中的通用問題求解,但在推理階段仍受限于 token 級、從左到右的決策過程。這意味著在需要探索、戰略前瞻,或初始決策起關鍵作用的任務中,語言模型可能表現不佳。為克服這些挑戰,我們提出了一種新的語言模型推理框架——“思維樹(Tree of Thoughts, ToT)”,它是對當前廣泛使用的“思維鏈(Chain of Thought)”提示方法的推廣,能夠在連貫的文本單元(即“思維”)之間進行探索,這些單元作為問題求解的中間步驟。ToT 允許語言模型進行深思熟慮的決策:在多種不同的推理路徑之間進行考慮、自我評估選擇以決定下一步行動,并在必要時進行前瞻或回溯,以做出更具全局性的決策。我們的實驗表明,在三個需要非平凡規劃或搜索的新任務上,ToT 顯著增強了語言模型的問題求解能力,這三項任務分別是:24 點游戲、創意寫作和迷你縱橫字謎。例如,在 24 點游戲中,使用思維鏈提示的 GPT-4 僅解決了 4% 的任務,而我們的方法成功率達到了 74%。完整提示與代碼倉庫:https://github.com/princeton-nlp/tree-of-thought-llm

1 引言

語言模型(LMs)最初被設計用于文本生成,但隨著規模的擴大,如 GPT [25, 26, 1, 23] 和 PaLM [5],它們已經被證明能夠處理越來越廣泛的任務,這些任務需要數學、符號、常識和知識推理能力。令人驚訝的是,支撐這一切進展的,依然是最初的自回歸文本生成機制——以從左到右、逐 token 做出決策的方式生成文本。這樣一個簡單的機制是否足以構建一個通用問題求解器?如果不足,哪些問題會挑戰這一現有范式?又有哪些替代機制值得探索?

人類認知的相關文獻為回答這些問題提供了一些線索。“雙系統”模型的研究表明,人類在做決策時存在兩種模式——快速、自動、無意識的模式(“系統1”),以及緩慢、深思熟慮、有意識的模式(“系統2”)[30, 31, 16, 15]。這兩種模式也曾被關聯到機器學習中各種數學模型上。例如,人類及其他動物在強化學習中的研究探索了他們在何種情境下會采取聯想式的“無模型”學習,或更具深思熟慮的“有模型”規劃[7]。語言模型那種簡單的、聯想式的 token 級選擇也類似于“系統1”,因此或許可以通過一種更具深思熟慮的“系統2”規劃過程加以增強,該過程 (1) 維護并探索當前選擇的多種可能性,而非僅做出單一選擇,(2) 對當前狀態進行評估,并主動進行前瞻或回溯,以做出更具全局性的決策。
在這里插入圖片描述

為了設計這樣一種規劃過程,我們回溯人工智能(以及認知科學)的起源,從 Newell、Shaw 和 Simon 在 20 世紀 50 年代開展的規劃研究中汲取靈感 [21, 22]。Newell 等人將問題求解描述為在組合問題空間中的搜索過程,該空間被表示為一棵樹 [21]。因此,我們提出了用于語言模型通用問題求解的 思維樹(Tree of Thoughts, ToT) 框架。如圖1所示,盡管現有方法(將在下文詳細介紹)通過采樣連續的語言序列進行問題求解,ToT 則主動維護一棵“思維樹”,其中每一個“思維”是一個連貫的語言序列,作為朝向問題求解的中間步驟(見表1)。這種高級語義單元允許語言模型在語言中實現深思熟慮的推理過程,從而對不同中間思維在推進問題求解中的進展進行自我評估(見圖2、圖4、圖6)。這種通過語言模型的自我評估與深思熟慮來實現搜索啟發式的方法是新穎的,因為以往的搜索啟發式要么是編程實現的,要么是通過學習得到的。最后,我們將這種基于語言生成與評估多樣思維的能力與搜索算法結合,如廣度優先搜索(BFS)或深度優先搜索(DFS),以實現系統性地探索思維樹,并可進行前瞻與回溯。

在實證方面,我們提出了三項新任務,用以挑戰現有語言模型推理方法,即便是最先進的模型 GPT-4 [23]:24 點游戲創意寫作縱橫字謎(見表1)。這些任務需要演繹推理、數學推理、常識推理、詞匯推理能力,并要求引入系統性的規劃或搜索機制。我們展示了 ToT 在這三項任務上均取得了優越的結果,這得益于其足夠通用與靈活,能夠支持不同層級的思維單元、不同的思維生成與評估方式,以及適應不同問題特性的多種搜索算法。我們還通過系統性的消融實驗分析了這些設計選擇如何影響模型性能,并討論了未來如何更有效地訓練和使用語言模型的研究方向。

2 背景

我們首先形式化一些現有使用大型語言模型進行問題求解的方法,這些方法為我們的工作提供了靈感,并將在后文與我們的框架進行比較。我們使用 p θ p_θ pθ? 表示一個具有參數 θ θ θ 的預訓練語言模型(LM),使用小寫字母 x , y , z , s , ? x, y, z, s, \cdots x,y,z,s,? 表示一個語言序列,即 x = ( x [ 1 ] , ? , x [ n ] ) x = (x[1], \cdots, x[n]) x=(x[1],?,x[n]),其中每個 x [ i ] x[i] x[i] 是一個 token,從而有: p θ ( x ) = ∏ i = 1 n p θ ( x [ i ] ∣ x [ 1... i ] ) . \begin{array} { r } { p _ { \theta } ( x ) = \prod _ { i = 1 } ^ { n } p _ { \theta } ( x [ i ] | x [ 1 . . . i ] ) . } \end{array} pθ?(x)=i=1n?pθ?(x[i]x[1...i]).? 我們使用大寫字母 S , ? S, \cdots S,? 表示一組語言序列。

輸入-輸出(IO)提示是使用語言模型將問題輸入 x x x 轉化為輸出 y y y 的最常見方式: y ~ p θ ( y ∣ prompt I O ( x ) ) y \sim p_θ(y \mid \text{prompt}_{IO}(x)) ypθ?(ypromptIO?(x)),其中 prompt I O ( x ) \text{prompt}_{IO}(x) promptIO?(x) 是將輸入 x x x 包裝為包含任務指令和/或少量示例的提示模板。為簡潔起見,我們將 p θ prompt ( output ∣ input ) = p θ ( output ∣ prompt ( input ) ) p^{\text{prompt}}_θ(\text{output} \mid \text{input}) = p_θ(\text{output} \mid \text{prompt}(\text{input})) pθprompt?(outputinput)=pθ?(outputprompt(input)) ,因此,IO 提示可以形式化為: y ~ p θ I O ( y ∣ x ) y \sim p^{IO}_θ(y \mid x) ypθIO?(yx)

Chain-of-thought(CoT)提示 [38] 被提出用以解決輸入 x x x 到輸出 y y y 的映射非平凡的情況(例如,當 x x x 是一道數學題而 y y y 是最終的數值答案時)。其核心思想是在 x x x y y y 之間引入一系列思路鏈 z 1 , ? , z n z_1, \cdots, z_n z1?,?,zn?,其中每個 z i z_i zi? 是一個連貫的語言序列,作為通向問題解決的有意義的中間步驟(例如,對于數學問答任務, z i z_i zi? 可以是一個中間公式)。在使用 CoT 解決問題時,每個思路 z i ~ p θ CoT ( z i ∣ x , z 1 ? z i ? 1 ) z_i \sim p^{\text{CoT}}_θ(z_i \mid x, z_1 \cdots z_{i-1}) zi?pθCoT?(zi?x,z1??zi?1?) 被順序采樣,然后最終輸出 y ~ p θ CoT ( y ∣ x , z 1 ? z n ) y \sim p^{\text{CoT}}_θ(y \mid x, z_1 \cdots z_n) ypθCoT?(yx,z1??zn?)。在實踐中,整體序列 [ z 1... n , y ] ~ p θ C o T ( z 1... n , y ∣ x ) [ z _ { 1 . . . n} , y ] \; \sim \; p _ { \theta } ^ { C o T } ( z _ { 1 . . . n} , y | x ) [z1...n?,y]pθCoT?(z1...n?,yx) 被作為一個連續的語言序列進行采樣,而對于思路的劃分方式(例如每個 z i z_i zi? 是短語、句子還是段落)則是模糊的。

Self-consistency with CoT(CoT-SC)[36] 是一種集成方法,它采樣 k k k 條相互獨立的思路鏈: [ z 1 ? n ( i ) , y ( i ) ] ~ p θ C o T ( z 1 ? n , y ∣ x ) ( i = 1 ? k ) [ z _ { 1 \cdots n } ^ { ( i ) } , y ^ { ( i ) } ] \sim p _ { \theta } ^ { C o T } ( z _ { 1 \cdots n } , y | x ) \ ( i = 1 \cdots k ) [z1?n(i)?,y(i)]pθCoT?(z1?n?,yx)?(i=1?k),然后返回出現頻率最高的輸出: a r g m a x y # { i ∣ y ( i ) = y } \mathrm { a r g \, m a x } _ { y } \, \# \{ i \ | \ y ^ { ( i ) } \, = \, y \} argmaxy?#{i??y(i)=y}

,CoT-SC 相較于 CoT 有所提升,因為對于同一個問題通常存在多種思考過程(例如,證明同一個定理的不同方式),通過探索更豐富的思路集合可以使最終決策更具忠實性。然而,在每條鏈內部并未對不同思路步驟進行局部探索,而且“最頻繁”這一啟發式方法僅適用于輸出空間有限的情形(例如多項選擇問答)。

3 Tree of Thoughts: 使用語言模型進行深思熟慮的問題求解

一個真正的問題解決過程涉及反復使用已有信息以啟動探索,進而揭示更多信息,直到最終發現達成解答的方法為止。—— Newell 等人 [21]

關于人類問題解決的研究表明,人們會在一個組合型問題空間中進行搜索——這個空間可被視為一棵樹,其節點表示部分解,分支對應于對這些部分解進行修改的操作符 [21, 22]。采取哪條分支由啟發式方法決定,這些啟發式方法幫助在問題空間中導航,并引導問題解決者走向答案。這一視角揭示了當前使用語言模型解決一般問題的方法的兩個主要缺陷:

1)在局部層面,它們并未探索思路過程中的不同延續——即樹的各個分支;
2)在全局層面,它們未采用任何形式的規劃、前瞻或回溯來幫助評估這些不同的選項——也就是類似人類問題解決所特有的啟發式搜索方式。

為了解決上述問題,我們提出了 Tree of Thoughts(ToT)這一范式,它允許語言模型在多個思維路徑上進行探索(見圖1?)。ToT 將任何問題建模為對一棵樹的搜索過程,其中每個節點是一個狀態 s = [ x , z 1 ? i ] s = [x, z_{1 \cdots i}] s=[x,z1?i?],表示一個由輸入和迄今為止的思路序列構成的部分解。ToT 的一個具體實例需回答以下四個問題:

  1. 如何將中間過程分解為思維步驟;
  2. 如何從每個狀態生成可能的思路;
  3. 如何基于啟發式方法評估這些狀態;
  4. 應該使用哪種搜索算法。

1. 思路分解(Thought decomposition)

雖然 CoT 會以連貫方式采樣思路但不進行顯式分解,ToT 則利用問題的性質來設計并分解中間思路步驟。如表1所示,具體問題不同,思路的粒度也不同:在填字游戲中,一個思路可能是幾個詞;在24點游戲中,可能是一行算式;在創意寫作中,可能是一個寫作計劃的整段文字。一般而言,思路應足夠“小”,以便語言模型可以生成有希望且多樣的樣本(例如,生成整本書通常太“大”而難以保持連貫性);但也應足夠“大”,以便語言模型能夠評估其在解決問題方面的前景(例如,僅生成一個 token 通常太“小”,不足以做出判斷)。

2. 思路生成器 G ( p θ , s , k ) G(p_θ, s, k) G(pθ?,s,k)

給定一個樹狀態 s = [ x , z 1 ? i ] s = [x, z_{1 \cdots i}] s=[x,z1?i?],我們考慮兩種策略來為下一個思路步驟生成 k k k 個候選:

(a) 從 CoT 提示中獨立同分布地采樣思路(用于創意寫作,見圖4):
z ( j ) ~ p θ C o T ( z i + 1 ∣ s ) = p θ C o T ( z i + 1 ∣ x , z 1 ? i ) ( j = 1 ? ? k ) z ^ { ( j ) } ~ ~ \sim p_ { \theta } ^ { C o T } ( z _ { i + 1 } | s ) \, = \, p _ { \theta } ^ { C o T } ( z _ { i + 1 } | x , z _ { 1 \cdots i } ) \ ( j \, = \, 1 \cdot \cdot \, k ) z(j)??pθCoT?(zi+1?s)=pθCoT?(zi+1?x,z1?i?)?(j=1??k)
當思路空間較為豐富(例如每個思路是一個段落)時,這種方法效果更好,i.i.d. 采樣能帶來更大的多樣性;

(b) 使用“建議式提示”順序提出思路(用于24點游戲,見圖2;填字游戲,見圖6):
[ z ( 1 ) , ? , z ( k ) ] ~ p θ propose ( z i + 1 ( 1 ? k ) ∣ s ) [z^{(1)}, \cdots, z^{(k)}] \sim p^{\text{propose}}_θ(z^{(1 \cdots k)}_{i+1} \mid s) [z(1),?,z(k)]pθpropose?(zi+1(1?k)?s) 。當思路空間較受限(例如每個思路只是一個詞或一行)時,這種方法效果更佳,因為在相同上下文中提出多個不同思路可以避免重復。

一個真正的問題解決過程,是反復利用已有信息發起探索,而探索過程又反過來揭示更多信息,直到最終找到達成解決方案的路徑為止。—— Newell 等人 [21]

關于人類問題解決的研究表明,人類是在一個組合型的問題空間中進行搜索的——這個問題空間可以看作一棵樹,其中的節點表示部分解,分支則對應于對這些部分解進行修改的操作符 [21, 22]。選擇哪一個分支,取決于一些啟發式方法,這些方法幫助導航問題空間,引導問題解決者走向解決方案。這樣的視角揭示了現有語言模型在通用問題求解中存在的兩個關鍵缺陷:1)在局部層面,它們不會探索思維過程中的不同延續——即樹的不同分支;2)在全局層面,它們缺乏任何形式的計劃、前瞻性或回溯機制,無法評估這些不同的選項——而這些正是人類問題解決過程中的典型啟發式搜索方式。

為了解決上述缺陷,我們提出了 Tree of Thoughts(ToT)這一范式,它允許語言模型在“思維”層面探索多條推理路徑(見圖1?)。ToT 將任何問題建模為對一棵樹的搜索,其中每個節點表示一個狀態 s = [ x , z 1 ? ? ? i ] s = [x, z_{1···i}] s=[x,z1???i?],即包含輸入 x x x 和到目前為止生成的思維序列 z 1 ? ? ? i z_1···i z1????i 的一個部分解。一個具體的 ToT 實例包含對以下四個問題的回答:

  1. 如何將中間推理過程分解為思維步驟;
  2. 如何從每個狀態生成潛在的思維;
  3. 如何對狀態進行啟發式評估;
  4. 使用什么樣的搜索算法。

1. 思維分解(Thought decomposition)

雖然 Chain-of-Thought(CoT)可以在沒有顯式分解的情況下連貫地生成思維,ToT 則利用問題本身的特性對中間推理步驟進行設計和分解。如表1所示,依據問題的不同,一個“思維”可能是幾個詞(如填字游戲),一行公式(如24點游戲),或一整段寫作計劃(如創意寫作)。一般而言,一個“思維”應當足夠“小”,以便語言模型能夠生成有前景且多樣的樣本(例如生成整本書通常太“大”,不夠連貫);同時也要足夠“大”,以便語言模型可以對其在問題求解中的前景做出評估(例如生成一個 token 通常太“小”,無法評估)。

2. 思維生成器 G ( p θ , s , k ) G(p_\theta, s, k) G(pθ?,s,k)

給定樹狀態 s = [ x , z 1 ? ? ? i ] s = [x, z_1···i] s=[x,z1????i],我們考慮以下兩種策略來生成 k k k 個下一步思維候選:

(a)從 CoT 提示中獨立同分布地采樣思維(創意寫作,圖4):

z ( j ) ~ p θ CoT ( z i + 1 ∣ s ) = p θ CoT ( z i + 1 ∣ x , z 1 ? ? ? i ) , j = 1 ? ? ? k z^{(j)} \sim p^{\text{CoT}}_\theta(z_{i+1} \mid s) = p^{\text{CoT}}_\theta(z_{i+1} \mid x, z_1···i), \quad j = 1···k z(j)pθCoT?(zi+1?s)=pθCoT?(zi+1?x,z1????i),j=1???k

這種方法在思維空間較為豐富(例如每個思維是一段文字)時表現更好,獨立樣本有利于提高多樣性;

(b)使用“提議提示”順序提出思維(24點游戲,圖2;填字游戲,圖6):

[ z ( 1 ) , ? ? ? , z ( k ) ] ~ p θ propose ( z i + 1 ( 1 ? ? ? k ) ∣ s ) [z^{(1)}, ···, z^{(k)}] \sim p^{\text{propose}}_\theta(z_{i+1}^{(1···k)} \mid s) [z(1),???,z(k)]pθpropose?(zi+1(1???k)?s)

這種方法在思維空間較為受限(如每個思維僅為一個詞或一行)時表現更好,在同一上下文中提出不同思維可以避免重復。

溫馨提示:
閱讀全文請訪問"AI深語解構" :ToT:思維樹:借助大語言模型進行審慎的問題求解

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912922.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912922.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912922.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web3 + RWA 餐飲數字化解決方案白皮書(試點版)

一、背景:從“用戶”到“共創股東”,重構本地生活新邏輯 ? 項目愿景: “用一頓飯,鏈接一個社群;用一次消費,綁定一份權益”。 傳統商業以“交易”為中心,未來商業則以“關系 價值流轉”為核…

MCU的模擬輸入ADC引腳如何實現采樣時間與阻抗匹配

在MCU的模擬輸入ADC引腳中,實現采樣時間與阻抗匹配是關鍵的設計環節,直接影響采樣精度。以下是分步說明: 【】理解信號源阻抗與采樣時間的關系 ? 信號源阻抗(Rs):外部信號源的輸出阻抗(如傳感器…

等價矩陣 線性代數

所謂等價矩陣,就是說其秩相同的矩陣。 例題 A和B等價就是求A和B的秩,其實就是要求B的秩了,因為目標已經告訴你了A和B的秩是一樣的。那么怎么求B的秩呢?我們現在只有一種方法求其秩,就是通過把其經過初等變換之后符合標…

30.設計模式的優缺點

原文地址:設計模式的優缺點 更多內容請關注:智想天開 一、設計模式的優點 1. 提高代碼復用性與可維護性 復用性: 設計模式提供的是抽象的解決方案,可以在多個項目中重復應用,避免重復造輪子。例如,工廠模式封裝了對象…

Python 爬蟲實戰 | 國家醫保

一、國家醫保 1、目標網站 網址:https://fuwu.nhsa.gov.cn/nationalHallSt/#/search/drug-directory目標數據:獲取藥品信息 2、網站特點 服務端返回加密數據,客戶端發送請求攜帶的載荷也是加密的 3、定位解密入口 可以通過關鍵字encDa…

OpenCV CUDA模塊設備層----計算向量的平方根函數sqrt

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 OpenCV 的 CUDA 設備函數(device function),用于在 GPU 上計算一個 uchar4 類型向量的平方根,并返…

鴻蒙應用開發:HTTP訪問網絡

一、HTTP概述 在許多場景下,我們的應用需要從服務端獲取數據,例如,天氣應用需要從天氣服務器獲取天氣數據。新聞應用需要從新聞服務器獲取最新的新聞咨詢,通過HTTP數據請求,我們可以將互聯網上的信息展示在應用中&…

【Elasticsearch】refresh與提交

在Elasticsearch中,Translog日志的提交確實涉及到與刷新(Refresh)時寫入Lucene段的數據進行合并,并最終寫入磁盤。以下是詳細的步驟和解釋: 一、Translog日志的提交過程 1. 刷新(Refresh)操作 …

服務器異常宕機或重啟導致 RabbitMQ 啟動失敗問題分析與解決方案

服務器異常宕機或重啟導致 RabbitMQ 啟動失敗問題分析與解決方案 一、深度故障診斷與解決方案1. 權限配置不當故障2. 端口占用故障3. 數據目錄殘留故障 二、故障類型對比與診斷矩陣三、完整恢復流程(10步法)四、風險規避與最佳實踐🛡? 數據保…

車載以太網都有什么協議?

目錄 一、物理層協議(Physical Layer)二、數據鏈路層協議(Data Link Layer)三、網絡層協議(Network Layer)四、傳輸層協議(Transport Layer)五、應用層協議(Application Layer)六、車載網絡融合協議七、標準化組織八、協議分層總結表九、趨勢與未來協議車載以太網涉及…

設計模式之外觀模式:簡化復雜系統的優雅之道

設計模式之外觀模式:簡化復雜系統的優雅之道 今天我們來深入探討設計模式中的外觀模式(Facade Pattern)。想象一下,你走進一家高檔餐廳,只需要告訴服務員"我要一份A套餐",而不需要關心廚房里廚師…

《Python 架構之美:三大設計模式實戰指南》

《Python 架構之美:三大設計模式實戰指南》 在軟件世界中,設計模式是經驗的結晶,它為開發者提供了解決重復問題的通用模板。尤其在 Python 這種靈活而強大的語言中,設計模式并非“死規矩”,而更像“編程哲學”,為我們解構復雜系統、提升代碼可維護性提供了寶貴思路。 本…

力扣打卡第十八天 判定平衡二叉樹

110. 平衡二叉樹 給定一個二叉樹,判斷它是否是 平衡二叉樹 示例 1: 輸入:root [3,9,20,null,null,15,7] 輸出:true示例 2: 輸入:root [1,2,2,3,3,null,null,4,4] 輸出:false示例 3&#xf…

Python 物聯網(IoT)與邊緣計算開發實戰(1)

Python 物聯網(IoT)與邊緣計算開發實戰 https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 物聯網基礎與硬件交互 Raspberry Pi GPIO控制 python import RPi.GPIO as GPIO import time # 設置GPIO模式 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(F…

高通SG882G平臺(移遠):1、編譯腳本

文檔提供的編譯,有點問題。所以我重新整理了腳本。 build-lib.sh #!/bin/bashfunction prepare_build() {if [ ! -d download ]; thenmkdir downloadfilocal MODIFIED_DIRfile-replacelocal FILE_NAMEset_bb_env.shcp ${MODIFIED_DIR}/${FILE_NAME} \poky/qti-con…

Mac電腦 觸摸板增強工具 BetterTouchTool

BetterTouchTool mac版,是一款觸摸板增強工具,允許用戶使用各種手勢來控制其計算機。 Bettertouchtool mac是一個小而高效的macOS應用程序,旨在幫助您為手勢定義快捷方式。 此外,Bettertouchtool可用于使用常規鼠標和鍵盤快捷鍵…

LSTM(Long Short-Term Memory)模型的深度解析

在6.28號我發了一個博客《RNN(循環神經網絡)與LSTM(長短期記憶網絡)輸出的詳細對比分析》,但是我并未詳細講解LSTM,LSTM是循環神經網絡中的一個模型,然而通過這篇博客給大家深度解析一下LSTM&am…

WebRTC 安全性分析研究

一、概述 本文著重分析 WebRTC 的安全性,分析其安全性考慮及安全性實現,回答了以下問題: WebRTC 加密過程需要或依賴 CA (Certificate Authority)嗎? 不需要 CA, 但可能依賴 CA.DTLS-SRTP 加密機制中, DTLS 與 SRTP 的關系是什么? DTLS 實現秘鑰交換…

阿里云操作系統控制臺如何解決三大OS運維難題?

背景 操作系統運維常常遇到以下問題: 1.問題定界浪費大量人力:當業務出現問題時,客戶在不清楚是操作系統問題還是業務問題時,往往會拉上所有相關團隊一起排查,浪費人力。 2.問題定位時間長:通過操作系統…

自由學習記錄(65)

其他腳本語言也可以熱更新,但 Lua 特別適合,游戲主程序通常是 C,Lua 只是邏輯腳本,改 Lua 不影響主程序運行 語言應用場景PythonWeb 后端 / 數據處理服務JavaScript瀏覽器端熱重載 / React HMRC#Unity 的 ILRuntime / HybridCLR …