無過擬合的記憶:分析大語言模型的訓練動態

Kushal Tirumala? Aram H. Markosyan? Luke Zettlemoyer Armen Aghajanyan
Meta AI 研究
{ktirumala,amarkos,lsz,armenag}@fb.com

原文鏈接:[2210.09262] Physics-Driven Convolutional Autoencoder Approach for CFD Data Compressions?

摘要

盡管超大語言模型被廣泛應用,但其潛在的訓練和記憶動態機制仍未得到充分理解。我們通過實證研究,在因果語言建模和掩碼語言建模中,針對不同模型規模以及整個訓練過程進行精確記憶的研究。我們衡量了數據集大小、學習率和模型規模對記憶的影響,發現更大的語言模型在所有設置下都能更快地記憶訓練數據。令人驚訝的是,我們發現更大的模型在過擬合之前能夠記憶更多的數據,并且在整個訓練過程中遺忘的傾向更小。我們還分析了不同詞性的記憶動態,發現模型首先記憶名詞和數字;我們提出假設并提供實證證據,表明名詞和數字可作為記憶單個訓練示例的唯一標識符。這些發現共同為理解隨著模型規模增大而出現的獨特訓練動態,增添了新的拼圖碎片。

1 引言

模型記憶其訓練數據的速度和程度,是提供關于其如何泛化到新測試實例的關鍵統計指標。經典框架,如偏差 - 方差權衡主張在不進行完全記憶的情況下擬合訓練集。然而,最近的研究表明,深度學習中記憶與泛化之間存在更為共生的關系。本文通過實證研究,在因果語言建模和掩碼語言建模中,針對不同模型規模以及整個訓練過程進行記憶研究。

語言模型最近的大部分性能提升都來自于規模的擴大,最新的模型參數數量達到了 10 的 11 次方。眾所周知,更大的模型能夠記憶更多的訓練數據,這是它們泛化能力提升的關鍵因素。然而,令人驚訝的是,在理解模型規模對訓練過程中語言模型記憶動態的影響方面,相關研究相對較少。現有工作主要集中在訓練后對記憶的分析。在本研究中,我們致力于研究語言模型中的記憶和遺忘動態,重點在于更好地衡量隨著模型規模擴大,這些動態如何變化。我們的主要貢獻包括:

  1. 我們測量了訓練過程中記憶動態對模型規模(以及其他因素,如數據集大小、過擬合和學習率)的依賴程度。我們發現更大的語言模型能夠更快地記憶訓練數據。
  2. 我們設計了控制實驗,以刻畫語言模型中的遺忘曲線(即語言模型在整個訓練過程中自然遺忘記憶的方式)。我們的實證研究表明,遺忘曲線存在下限 —— 我們將其稱為遺忘基線,并且該基線隨著模型規模的增加而上升,即增加模型規模可以減輕遺忘。
  3. 我們分析了不同詞性的記憶速率,發現名詞和數字的記憶速度比其他詞性快得多。我們假設這是因為名詞和數字集合可被視為特定樣本的唯一標識符,并通過在現有唯一標識符設置下分析記憶速率為該假設提供了證據。

這些發現共同為理解隨著模型規模增大而出現的獨特訓練動態,提供了更多線索。

2 背景和相關工作

2.1 語言模型中的記憶

無意記憶是語言模型面臨的一個已知挑戰,這使得它們容易受到提取攻擊和成員推理攻擊,盡管已有研究致力于減輕這些漏洞。最近的研究認為,記憶并非完全有害,對于某些類型的泛化(例如在問答任務中)至關重要,同時還能讓模型編碼大量的世界知識或事實性知識。也有越來越多的工作分析語言模型中記憶的基本屬性。與我們的工作最相關的是 Carlini 等人的研究,他們分析了完全訓練后的語言模型的記憶情況,并觀察到記憶與模型規模、訓練數據重復度以及提示上下文長度之間的依賴關系。雖然我們也研究縮放行為,但我們的重點在于整個訓練過程中的記憶動態。

2.2 語言模型訓練動態

先前的工作廣泛分析了訓練動態,以了解神經網絡模型在訓練過程中如何獲取信息。Saphra 和 Lopez 率先分析了語言建模的訓練動態,重點關注預訓練過程中內部表示的演變。這激發了一系列研究,分析神經語言模型如何在預訓練過程中學習語言結構、世界知識、單個單詞以及跨語言結構。這種分析已擴展到許多下游任務,包括文本摘要、機器 / 語音翻譯以及各種自然語言處理任務。

2.3 語言模型中的遺忘

也有研究關注語言模型中的記憶退化(遺忘)現象。災難性遺忘或災難性干擾最早被報道,研究神經網絡在訓練新數據時,如何傾向于遺忘先前訓練任務或訓練批次中的信息。這給持續學習(或終身學習)帶來了關鍵挑戰,其目標是在對通常非常大的數據流進行單次遍歷的過程中逐漸學習。已經提出了許多機制來提高對災難性遺忘的魯棒性。也有越來越多的工作表明,模型和數據集的規模都可以使模型更不易遺忘,以及研究圖像分類器中遺忘自然發生的特征和遺忘如何提高訓練效率。機器遺忘是一種迫使訓練好的模型忘記先前學習樣本的技術,主要是受數據保護和隱私法規的推動。我們的工作獨特之處在于關注訓練過程中的遺忘測量,并量化其隨規模的變化情況。

2.4 縮放定律

我們一直觀察到通過擴大模型規模可以提高性能,并且規模本身已被證明會使模型內部行為偏離經典的偏差 - 方差范式。最近的努力集中在嘗試為語言模型建模縮放定律,包括數據和模型規模、在遷移學習中的應用、路由網絡以及各種自回歸生成任務。雖然縮放定律的大部分工作是實證性的,但也有一些有趣的研究致力于從理論上解釋神經縮放定律。大多數縮放定律僅關注交叉熵損失,而我們研究的是記憶。

3 實驗設置

為了大規模研究訓練過程中的記憶動態,我們的記憶度量必須易于計算,同時又要足夠精確,以反映模型實際從訓練數據中記住了多少信息。標簽記憶是一個理想的候選指標,因為它一直為神經網絡的潛在屬性提供理論見解,在實證環境中仍然適用,并且計算成本相對較低。我們將我們的度量制定為自監督設置下標簽記憶的類似物。

定義如下:設 V 表示詞匯表大小。設 c 表示一組上下文,可視為元組 (s, y) 的列表,其中 s 是輸入上下文(不完整的文本塊),y 是詞匯表中完成該文本塊的真實標記的索引。設 S 表示輸入上下文的集合,設 f: S→R 的 V 次方表示一個語言模型。如果 argmax (f (s)) = y,則上下文 c = (s, y) ∈ C 被記憶。

請注意,單個單詞可以作為多個上下文的真實標記出現。對于給定的一組上下文 c(即給定的訓練數據集),我們可以分析被記憶上下文的比例。我們將其稱為精確記憶,盡管它也可以被視為準確率,因為我們衡量的是語言模型的 argmax 與真實標記匹配的頻率。在本文中,除非另有說明,當我們提到記憶時,均指上述定義。我們定義 T 為 M (f) 的閾值,并將 T (N, τ) 表示為具有 N 個參數的語言模型 f 為了滿足 M (f)≥τ,每個訓練數據點需要被查看的最小次數。在利用更大的數據集時,模型無法進行多個輪次的訓練,因此我們改為考慮每次更新時的記憶情況。我們引入 M_update (f, U) 作為模型在進行第 U 次梯度下降更新時,對該批次數據的記憶情況,并定義 T_update (N, τ) 為具有 N 個參數的語言模型為了滿足 M_update (f, U)≥τ,需要執行的最小梯度下降更新次數。

先前分析語言模型記憶的工作對記憶的定義有所不同。出于隱私考慮,有研究從訓練數據提取的角度定義記憶,即如果一個字符串 s 可以通過與語言模型交互生成,則該字符串是可提取的。更具體地說,有研究將字符串 s 定義為 k - 逼真記憶,如果它是可提取的,并且在最多 k 個訓練示例中出現。還有研究將字符串 s 定義為 k - 記憶,如果語言模型可以通過使用訓練數據中的 k 個上下文標記進行提示來生成它。由于對訓練數據提示的依賴,這個定義僅適用于因果語言建模;對于掩碼語言建模,使用上述定義。請注意,如果一個示例被精確記憶,根據定義它就是可提取的。換句話說,k - 逼真記憶標記集和 k - 記憶標記集都包含精確記憶標記集。因此,分析精確記憶為 k - 逼真記憶和 k - 記憶提供了一種下限。在另一項旨在估計單個訓練示例影響的工作中,將訓練示例 x 定義為被記憶的,如果模型在包含 x 的數據子集和不包含 x 的數據子集上的預期性能差異足夠大。這個定義借鑒了先前在理論上分析分類設置中標簽記憶的工作。

3.1 模型架構

我們復制了公開可用的 Transformer 語言模型架構參考。我們使用 1.25 億、3.55 億、13 億、27 億、67 億和 130 億參數的模型配置。我們研究因果語言模型和掩碼語言模型。我們使用 FairSeq 框架進行訓練,以 PyTorch 為底層框架。對于更大的模型,我們使用 FairScale 中提供的全分片數據并行實現,并使用 Aim 實驗跟蹤工具。

3.2 數據集

在所有實驗中,我們使用兩個現有數據集:包含約 1.03 億個標記的 WIKITEXT-103 基準數據集,以及用于訓練原始 RoBERTa 模型的 RoBERTa 語料庫,包含約 390 億個標記。在第 4 節中,我們使用了這兩個數據集,由于計算限制,在其他部分主要使用 WIKITEXT-103 數據集。

4 更大的語言模型記憶更快

眾所周知,更大的神經語言模型樣本效率更高,在達到相同性能時需要更少的優化步驟,并且收斂速度更快,其中性能通常定義為測試困惑度。在本節中,我們研究訓練集上的 T (N, τ) 與 N 的關系,以回答這個問題。

當我們固定記憶閾值 τ = 0.9,并隨著 N 的增加檢查 T (N, τ) 時,發現更大的語言模型需要查看每個訓練數據點的次數更少,就能實現對訓練集 90% 的精確記憶;換句話說,T (N, 0.9) 隨著 N 的增加單調遞減。當我們將 T 在 0.4 到 0.95 之間變化時,仍然觀察到 T (N, τ) 通常隨著 N 的增加而減少。對于固定的 N,T (N, τ) 隨著 τ 的增加而增加,這是預期的,因為記憶更多的訓練集需要對模型進行更多輪次的訓練。更有趣的是,增加 T 會使 T (N, τ) 從與 N 無關的常數,平滑過渡到隨 N 指數遞減。

我們將 0.4 作為范圍的下限,因為對于所有模型規模,低于此值的記憶閾值在最初幾個輪次內即可達到;將 0.95 作為上限,因為對于較小的模型,更高的值需要不合理的長時間訓練。

4.1 對語言建模任務和數據集大小的依賴

為了研究我們的觀察結果對特定語言建模任務的依賴程度,我們在 WIKITEXT103 上以 0.15 的掩碼概率對掩碼語言建模任務重復此分析。與因果語言建模不同,對于較低的 T 值,T (N, τ) 并不隨 N 單調遞減,而對于較高的 T 值,T (N, τ) 隨 N 單調遞減,這兩種情況之間的相變發生在 τ = 0.6 和 τ = 0.7 之間。較小的模型最初記憶訓練數據更快,但從長遠來看速度較慢。

語言模型的訓練嚴重依賴于數據集的大小,因此我們預計 M (f) 也會受到類似的影響。在更大的 ROBERTA 數據集上針對掩碼和因果語言建模分析訓練集記憶情況時,由于數據集太大,對整個訓練集進行多輪訓練并評估記憶變得不可行,尤其是在訓練更大的模型時。因此,我們關注較小的 T 值,并研究達到記憶閾值所需的梯度下降更新次數。我們觀察到與之前類似的趨勢,即在掩碼和因果語言建模中,對于各種 T 值,T_update (N, τ) 都隨 N 單調遞減。與 WIKITEXT103 不同,掩碼語言建模在 τ 上沒有相變。

4.2 為何更大的模型記憶更快?

此時一個很自然的問題是,為何更大的模型記憶更快?通常,記憶與過擬合相關,這似乎提供了一個簡單的解釋。為了將記憶與過擬合區分開來,我們在過擬合發生之前考察記憶情況,這里我們將過擬合定義為語言模型在驗證集上的困惑度首次增加的訓練輪次。令人驚訝的是,隨著參數數量的增加,過擬合之前的記憶比例總體上呈上升趨勢,這表明過擬合本身并不能完全解釋隨著模型規模增大,記憶動態所表現出的特性。

在我們的訓練配置中,學習率并非固定不變。直觀地說,更大的學習率應該會使記憶速度更快。為了探究學習率在多大程度上能夠解釋我們的實驗結果,我們選取了部分模型架構,在 WIKITEXT103 數據集上,以標準的學習率范圍進行訓練,并同時測量記憶情況。即使固定學習率,更大的模型達到 0.9 的記憶比例也更快,這表明我們的結果并非僅僅由學習率的差異所導致。有趣的是,隨著模型規模的增加,模型對學習率的敏感度通常會降低。我們還注意到,T (N, τ) 最初會下降,最終會上升,并且只要選擇的學習率處于曲線的最低點附近,記憶動態就不會發生顯著變化。這一結果與越來越多的觀點一致,即對于超過特定規模的神經語言模型而言,學習率不再是一個關鍵的超參數。

詳盡地探究所有可能的影響因素是難以實現的,并且完整地解釋為何更大的模型記憶更快也超出了本文的研究范圍。在接下來的部分,我們將展示一些研究,希望這些研究能夠豐富解答此類問題的方法。

4.3 通過唯一標識符進行記憶

近期有研究探索如何利用外部記憶來提升模型性能。在本小節中,我們思考這種架構上的改變是否必要。受信息檢索系統的啟發,我們采用一種簡單的方法:為訓練集中的每個樣本添加一個唯一標識符,然后觀察記憶速度是否會提升。具體而言,我們將語言建模任務設定為在 WIKITEXT103 上進行因果語言建模,并使用 1.25 億參數的模型。在每個訓練樣本前,插入字符串 “document ID <unique_id>”,其中 unique_id 是一個唯一的整數,每個訓練上下文對應一個。為了使用這些唯一整數,我們必須將它們添加到詞表中,這會顯著增加模型的規模,因為語言模型的最后一層輸出維度必須與詞表大小相等。因此,M (f) 動態的任何變化都可能歸因于因詞表大小增加而添加的額外參數。為了控制這一因素,我們首先考察僅增加詞表大小(不使用任何新增詞元)的影響。然后,利用這些新增詞元為每個訓練樣本添加前綴,觀察 M (f) 動態的變化。增加詞表大小確實提高了記憶速度。盡管我們之前已經證明更大的模型記憶更快,但考慮到我們并沒有顯著增加參數數量,這一結果仍然令人驚訝。此外,當我們利用這些新增詞元來唯一標識訓練樣本時,記憶速度進一步提升,不過使用文檔 ID 進行提示會使記憶動態不再隨時間單調增加。

4.4 從詞性角度看記憶

上一節中,我們展示了唯一標識符能夠增強記憶效果。常規文本中,數字和專有名詞也可作為唯一標識符的有力替代。受此啟發,我們利用詞性標注來研究記憶的句法特征。我們追蹤詞性 p 的正確預測位置數量與標注為該詞性 p 的真實詞元總數的比率 R (p) 。我們還展示了一個類似的比率,記為 R_mem (p),但分子僅考慮那些也被精確記憶的詞元。正確預測詞性并不一定意味著精確記憶,語言模型對詞性的記憶速度比對詞元的確切值的記憶速度更快。雖然所有詞性最終都會被記憶,但某些詞性的記憶速度更快,這與先前的研究結果一致。然而,與先前的工作不同,我們發現名詞、專有名詞和數字的記憶速度明顯快于動詞和形容詞,無論是在 R (p) 還是 R_mem (p) 方面。這對隱私保護具有潛在影響,因為敏感信息很可能是名詞、專有名詞或數字。我們的發現也與研究兒童語言習得的工作存在一定的一致性。

5 語言模型中的遺忘曲線

本節研究記憶的對立面 —— 語言模型中的遺忘現象。受遺忘曲線假說的啟發,該假說認為在沒有刻意保留的情況下,人類記憶會隨時間衰退,我們希望了解語言模型中記憶退化的動態過程。

我們首先選擇一批訓練集中不存在的數據,即從驗證集中選取一批數據。我們將這批數據稱為特殊批次。然后,我們從模型訓練過程中選取一個檢查點,將特殊批次輸入模型進行訓練,之后恢復在訓練集上的標準訓練。接著,我們評估特殊批次上的記憶退化情況,并分析遺忘曲線可能依賴的各種因素。在本節中,我們將整個驗證集作為特殊批次。特殊批次僅在首次引入時被模型查看一次。

特殊批次上的精確記憶在開始時迅速下降,但隨著訓練的繼續,下降速度呈指數級減緩。換句話說,特殊批次上的遺忘曲線似乎趨近于一個基線 —— 我們將這種趨勢稱為遺忘基線。我們通過查看訓練過程中特殊批次上的最低記憶值來近似遺忘基線。

遺忘基線的數值隨著模型規模的增加而單調上升。這意味著更大的模型遺忘更少,這與近期在圖像分類任務中研究災難性遺忘的工作結果一致。這是有益的,因為更大的模型可以利用來自先前任務的更多信息;然而,從隱私角度來看,這并不理想,因為這意味著更大的模型可能會保留更多訓練數據中的敏感信息。

我們還研究了遺忘基線對數據批次順序的敏感性。我們執行上述相同的遺忘曲線分析,但從不同的訓練檢查點開始分析。通過這種方式,我們在不顯著改變實驗設置的情況下,改變了輸入給模型的數據批次順序。我們觀察到遺忘基線對數據批次順序不敏感。

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

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

相關文章

黑馬Redis(三)黑馬點評項目

優惠卷秒殺 一、全局唯一ID 基于Redis實現全局唯一ID的策略&#xff1a; Component RequiredArgsConstructor public class RedisIdWorker {private static final Long BEGIN_TIMESTAMP1713916800L;private static final int COUNT_BITS 32;Resourceprivate final StringRed…

flume----初步安裝與配置

目錄標題 **flume的簡單介紹**?flume的**核心組件**?**核心特點** **安裝部署**1&#xff09;**解壓安裝包**2&#xff09;**修改名字** **&#xff08;配置文件時&#xff0c;更方便&#xff09;****3&#xff09;??配置文件**4&#xff09;**兼容Hadoop**5&#xff09;**…

深度整合Perforce P4+Jira+Confluence:游戲開發團隊協作工具鏈搭建指南

現場對話 游戲開發團隊最頭疼的版本管理問題是什么&#xff1f; SVN宕機&#xff1f; Git倉庫爆炸&#xff1f; 還是美術資源管理一團亂&#xff1f; 在4月11-12日的GGS 2025全球游戲峰會上&#xff0c;Perforce中國授權合作伙伴-龍智的銷售和技術支持團隊&#xff0c;與行業…

k8s基本概念-YAML

YAML介紹 YAML是“YAML Aint a Markup Language” (YAML不是一種置標語言)的遞歸縮進寫,早先YAML的意思其實是:“Yet Another Markup Language”(另一種置標語言) YAML是一個類似XML、JSON的標記性語言。YAML強調以數據為中心,并不是以標識語言為重點。因而YAML本身的定義…

ECharts散點圖-散點圖20,附視頻講解與代碼下載

引言&#xff1a; ECharts散點圖是一種常見的數據可視化圖表類型&#xff0c;它通過在二維坐標系或其它坐標系中繪制散亂的點來展示數據之間的關系。本文將詳細介紹如何使用ECharts庫實現一個散點圖&#xff0c;包括圖表效果預覽、視頻講解及代碼下載&#xff0c;讓你輕松掌握…

Infrared Finance:Berachain 生態的流動性支柱

在加密市場中&#xff0c;用戶除了參與一級和二級交易&#xff0c;還有一種低門檻參與的就是空投。從 2021 年 DeFi 成為主流開始&#xff0c;空投一直都是“以小搏大”的機會&#xff0c;通過參與項目早期的鏈上交互和任務以獲取空投獎勵&#xff0c;近幾年已成為一種廣受歡迎…

附1:深度解讀:《金融數據安全 數據安全分級指南》——數據分類的藝術專欄系列

文章目錄 一、文件背景與意義1.1 文件背景1.2 文件意義 二、文件結構與核心內容2.1 文件結構概述2.2 核心內容解析2.2.1 范圍與適用對象2.2.2 數據安全定級目標與原則2.2.3 數據安全定級要素2.2.4 要素識別2.2.5 數據安全級別劃分 三、定級方法與流程3.1 定級流程3.2 級別變更機…

vue mixin混入與hook

mixin混入是 ?選項式 API?&#xff0c;在vue3-Composition API <script setup> 中無法直接使用&#xff0c;需通過 setup() 函數轉換 vue2、vue3選項式API: // mixins/mixin.js export const mixin {methods: {courseType(courseLevel) {const levelMap {1: 初級,…

Excel如何安裝使用EPM插件并且漢化?

Excel如何使用EPM插件 Excel如何使用EPM插件一、安裝EPM插件二、啟動EPM插件三、插件漢化設置 Excel如何使用EPM插件 一、安裝EPM插件 在安裝EPM插件時&#xff0c;若運行安裝包后出現報錯提示&#xff0c;通常是因為系統缺少 Visual Studio 2010 組件&#xff0c;需先安裝該…

vue3-springboot-mysql的docker部署

Docker配置原理與部署文檔 概述 本文檔詳細說明RuoYi-Vue與BladeX集成項目的Docker部署原理&#xff0c;包括配置文件的作用、相互關系及數據流動。通過三個核心配置文件&#xff08;docker-compose.yml、Dockerfile和docker-entrypoint.sh&#xff09;&#xff0c;實現了應用…

第十二天 使用Unity Test Framework進行自動化測試 性能優化:Profiler分析、內存管理

前言 在完成游戲核心功能開發后,如何確保項目質量并成功發布到各大平臺?本文將從自動化測試到商店上架,手把手教你構建完整的游戲開發閉環。使用Unity 2022 LTS版本進行演示,所有代碼均經過實際項目驗證。 一、自動化測試實戰(Unity Test Framework) 1.1 測試框架搭建 …

【專題四】前綴和(3)

&#x1f4dd;前言說明&#xff1a; 本專欄主要記錄本人的基礎算法學習以及LeetCode刷題記錄&#xff0c;按專題劃分每題主要記錄&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代碼&#xff1b;&#xff08;2&#xff09;優質解法 優質代碼&#xff1b;&#xff…

深度解析:TextRenderManager——Cocos Creator藝術字體渲染核心類

一、類概述 TextRenderManager 是 Cocos Creator 中實現動態藝術字體渲染的核心單例類。它通過整合資源加載、緩存管理、異步隊列和自動布局等功能&#xff0c;支持普通字符模式和圖集模式兩種渲染方案&#xff0c;適用于游戲中的動態文本&#xff08;如聊天內容、排行榜&…

【漫話機器學習系列】229.特征縮放對梯度下降的影響(The Effect Of Feature Scaling Gradient Descent)

特征縮放對梯度下降的影響&#xff1a;為什么特征標準化如此重要&#xff1f; 在機器學習和深度學習中&#xff0c;梯度下降是最常用的優化算法之一。然而&#xff0c;很多人在訓練模型時會遇到收斂速度慢、訓練不穩定的問題&#xff0c;其中一個重要原因就是特征未進行適當的…

【神經網絡與深度學習】批標準化(Batch Normalization)和層標準化(Layer Normalization)

引言 在深度學習中&#xff0c;標準化技術&#xff08;Normalization&#xff09;是提高神經網絡訓練效率和性能的重要工具。其中&#xff0c;批標準化&#xff08;Batch Normalization, BN&#xff09;和層標準化&#xff08;Layer Normalization, LN&#xff09;是兩種常用的…

OpenHarmony之電源管理子系統公共事件定義

OpenHarmony之電源管理子系統公共事件定義 電源管理子系統面向應用發布如下系統公共事件&#xff0c;應用如需訂閱系統公共事件&#xff0c;請參考公共事件接口文檔。 COMMON_EVENT_BATTERY_CHANGED 表示電池充電狀態、電平和其他信息發生變化的公共事件的動作。 值&#x…

linux 環境下 c++ 程序打印 core dump 信息

linux 信號機制 軟中斷信號 Signal&#xff0c;簡稱信號&#xff0c;用來通知進程發生了異步事件&#xff0c;進程之間可以互相通過系統調用 kill 等函數來發送軟中斷信號。內核也可以因為內部事件而給進程發送信號&#xff0c;通知進程發生了某個事件。 進程對信號的處理 進…

Qt開發環境的安裝與問題的解決(2)

文章目錄 1. Qt開發環境安裝的說明2. 通過安裝包進行安裝3. 通過在線下載程序 解決問題下載 https....網路錯誤問題解決開始安裝--第一部分開始安裝--第二部分 4. 建議配置環境變量&#xff08;非必須&#xff09;配置環境變量的意義 簡介&#xff1a;這篇文章主要分享Qt開發環…

【每日EDA行業分析】2025年4月25日

深度總結&#xff1a;EDA 軟件行業現狀與發展趨勢 一、引言 在半導體產業的復雜生態中&#xff0c;EDA 軟件宛如一顆閃耀的明珠&#xff0c;它是集成電路設計的核心工具&#xff0c;貫穿芯片從設計構思到最終封裝測試的全流程&#xff0c;其重要性不言而喻&#xff0c;被譽為…

flutter實踐:比例對比線圖實現

需求&#xff1a;flutter實現一個左右對比線圖,帶有動畫效果 效果圖&#xff1a; Widget _buildTop() {return Container(height: themeData.heightXl,padding: EdgeInsets.symmetric(horizontal: themeData.hSpacingMd),child: Row(mainAxisAlignment: MainAxisAlignment.spa…