大模型論文:Language Models are Unsupervised Multitask Learners(GPT2)

大模型論文:Language Models are Unsupervised Multitask Learners(GPT2)

文章地址:https://storage.prod.researchhub.com/uploads/papers/2020/06/01/language-models.pdf

摘要

自然語言處理任務,例如問答、機器翻譯、閱讀理解和摘要,通常是通過對特定任務的數據集進行監督學習來實現的。我們展示了,語言模型在沒有任何顯式監督的情況下,僅通過訓練一個名為 WebText 的包含數百萬網頁的新數據集,就開始學會這些任務。

當模型以“文檔 + 問題”的形式進行輸入時,生成的回答在 CoQA 數據集上達到了 55 的 F1 分數 —— 這一成績相當于或超過了四個基線系統中的三個的表現,而無需使用 127,000 多個訓練樣本。

語言模型的容量對于實現零樣本任務遷移(zero-shot task transfer)至關重要,增加模型容量會以對數線性方式提升各種任務的表現。我們最大的模型 GPT-2 是一個具有 15 億參數的 Transformer,它在 8 個語言建模數據集中的 7 個上,在零樣本設置下達到了最先進的表現,但仍未完全擬合 WebText 數據。

該模型生成的樣本文本體現了這些改進,并且內容連貫、段落清晰。這些發現表明,構建能從自然演示中學習完成任務的語言處理系統,是一個非常有前景的方向。


模型背景

1、背景和挑戰:

當前的機器學習系統通過大量數據、強大的模型和監督學習,能夠高效地完成某些特定任務。然而,這些系統在面對數據分布的變化時表現出不穩定性,難以處理來自不同數據源或新的任務類型的輸入。這些系統通常只能在特定任務中表現良好,缺乏跨任務的泛化能力。

2、現有方法的限制:

為了訓練這些模型,通常的做法是為每個任務手動收集和標注大量數據,然后訓練模型進行任務。雖然這種方法能有效推動“狹義專家”系統的發展,但仍存在許多問題,特別是對于復雜且多樣化的任務,現有方法的表現不盡如人意。例如,標題生成模型、圖像分類系統和閱讀理解系統在面對多樣化的輸入時,往往難以維持穩定和高效的表現。

3、從單一任務到多任務學習的轉變:

為了克服這種局限性,研究人員開始探索多任務學習的方向。多任務學習是通過同時訓練多個任務來提高模型的泛化能力。然而,現有的多任務學習方法仍處于起步階段,通常依賴大量的訓練對,而這對于構建廣泛應用的系統而言仍然困難重重。

4、預訓練與遷移學習的結合:

在自然語言處理領域,結合預訓練和監督微調的方法已經取得了顯著成果。通過在一個大的數據集上進行預訓練,然后在具體任務上進行微調,模型能夠遷移并應用到新的任務中。最近的研究表明,使用自注意力機制的模型(如Transformer)已經能夠取得更高效的遷移效果,無需依賴任務特定的架構。

5、零樣本學習的潛力:

本文的一個重要創新是展示了語言模型能夠在“零樣本”設置下執行多種任務,無需任何額外的監督學習或架構修改。這意味著,通過訓練一個通用的語言模型,可以直接在新的任務中獲得競爭力的表現,甚至在某些任務上達到最先進的水平。


方法介紹

  • 一切的基礎在于語言建模。這種建模方式視語言為符號序列,目標是學習這些符號序列的聯合分布,而這種聯合概率可以分解為逐個預測下一個詞的條件概率。Transformer 等架構的出現極大提升了這種預測能力
    p ( x ) = ∏ i = 1 n p ( s i ∣ s 1 , … , s i ? 1 ) p(x) = \prod_{i=1}^{n} p(s_i \mid s_1, \dots, s_{i-1}) p(x)=i=1n?p(si?s1?,,si?1?)

  • 傳統任務建模是“給定輸入,預測輸出”,但為了讓模型泛化到多個任務,我們需要“給定輸入+任務類型,預測輸出”。例如:

    • 翻譯任務:(translate to french, english text, french text)
    • 閱讀理解任務:(answer the question, document, question, answer)

    這將不同任務統一成語言格式的輸入輸出序列,使得模型通過學習語言結構就能學會任務

  • 本質上,語言建模任務本身就可以隱式包含監督目標。如果目標詞序列中包含任務和輸入信息,模型就可以在沒有顯式監督標簽的前提下學會任務。這是利用語言建模進行任務遷移和泛化的關鍵突破口,作者得出結論:只要模型足夠大(capacity 足夠),它將能夠被動學習自然語言中的任務模式,從而在沒有額外標簽的情況下執行多種任務

  • 文章的最終目標是驗證這種基于語言建模的“無監督多任務學習”是否成立——即能否在 zero-shot 的前提下完成各種任務

訓練數據集

  • 以往的大多數語言模型訓練工作都基于單一領域的文本,比如新聞文章、維基百科或小說書籍。本文的做法則強調構建盡可能大且多樣化的數據集,以收集來自盡可能多領域和語境下的自然語言任務示例

  • 現有的一些數據集存在問題,比如網頁抓取數據 Common Crawl,數據質量問題也非常嚴重,在研究常識推理任務時大量文檔“內容幾乎無法理解”

  • 本文構建了一個新的網頁抓取數據集,強調文檔質量。為此,本文僅抓取了經過人工篩選/推薦的網頁。人工全面篩選網頁代價極高,因此采用了 Reddit 作為起點 —— 抓取所有 Reddit 用戶推薦(至少獲得 3 karma)的鏈接。最終的數據集被稱為 WebText,包含了這些 4500 萬個鏈接中提取的文本子集。使用 Dragnet和 Newspaper1 兩種內容抽取器,從 HTML 頁面中提取正文文本。

  • 經過去重和啟發式清洗后,最終得到約 800 萬個文檔,共計約 40 GB 文本數據。本文移除了所有維基百科文檔,以避免和常見評估任務中的訓練數據產生重疊。

  • WebText 訓練集中發現的英語到法語和法語到英語翻譯的自然發生的演示示例

    在這里插入圖片描述

輸入表示

‘’一個通用的語言模型應該能夠為任意字符串計算概率(或生成該字符串)‘’

  • 當前的大規模語言模型在預處理上通常包括小寫轉換、分詞、詞表外(OOV)標記等,這些步驟限制了模型可處理的字符串范圍,雖然直接將 Unicode 字符串處理為 UTF-8 字節序列在理論上是優雅的,但目前的字節級語言模型在像 One Billion Word Benchmark 這類大規模數據集上性能不如詞級模型。

  • Byte Pair Encoding (BPE) 是一種折中方案,介于字符級與詞級之間。它能將頻繁的符號序列作為整體詞處理,稀有序列則逐字符處理。盡管名字中有“字節”,但主流 BPE 實現實際上是基于 Unicode 碼點而非字節。如果要處理所有 Unicode 字符串,這將導致初始詞匯表超過 13 萬個符號,這遠超 BPE 常用的 32,000 到 64,000 的詞匯規模。而使用字節級 BPE,初始詞匯表只需 256(所有字節)。但如果直接對字節序列應用 BPE,由于其貪心的頻率啟發式策略,會產生很多變體詞,例如:dogdog.dog!dog? 都會占用不同詞位,造成詞匯空間浪費。

  • 為避免這一點,本文禁止 BPE 在不同字符類別之間合并(如字母與標點),但允許空格作為例外。這種做法大大提高了壓縮效率,同時僅帶來極小的詞碎片問題。這種輸入表示方式結合了詞級模型的經驗優勢與字節級模型的通用性。由于該方法能為任意 Unicode 字符串賦予概率,因此我們可以在任何數據集上評估模型,而無需考慮預處理、分詞或詞匯表差異。

  • 字節級模型:字節級模型將文本數據轉換為 UTF-8 編碼的字節序列(每個字符由 1~4 個字節組成),并直接對這些字節進行建模,模型的輸入不是“詞”或“字”,而是:

    文本:"Hello 你好"
    字節序列:[72, 101, 108, 108, 111, 32, 228, 189, 160]
    

模型結構(Model)

  • 本文采用基于 Transformer架構的語言模型。其整體結構大體遵循 OpenAI GPT 模型(GPT1,2018),但進行了如下修改:

    1. Layer Normalization從原本的子模塊輸出移至輸入端,類似于預激活殘差網絡。
    2. 在最后一個 自注意力模塊(Self-attention block) 之后加入了一個額外的 LayerNorm。
    3. 使用了一種改進的初始化方式,以適應深層模型中殘差路徑上的累積效應。具體地,殘差層的初始化權重按 1 N \frac{1}{\sqrt{N}} N ?1? 縮放( N N N 是殘差層數)。
    4. 詞匯表擴展為 50,257 個 token
    5. 上下文窗口從 512 tokens 擴展到 1024 tokens
    6. 訓練時使用 更大的 batch size:512
  • WebText 語言模型在多個 NLP 任務上的零樣本表現,隨模型規模增長而變化

    在這里插入圖片描述

總結

1. WebText 的創建思路:

傳統語言模型訓練依賴單一語料,如 Wikipedia,而 WebText 嘗試模擬“真實互聯網語言環境”,利用 Reddit 的社交推薦機制(3 karma 門檻)實現“半自動高質量篩選”。這是一種近似“人類興趣驅動”的篩選方法,避免了模型過擬合某些任務或文本類型。


2. 輸入表示策略的突破:
  • 普通模型受限于詞表和預處理方法。
  • 字節級模型通用但性能差。
  • 他們通過改進的 BPE 變體結合了兩者優勢:兼顧壓縮效率、泛化能力和字符保留完整性,對低資源或多語言任務尤其關鍵。

3. 架構優化重點:
  • 殘差連接初始化和 LayerNorm 的調整,提高了模型的穩定性與訓練效率。
  • 更大詞表 + 更長上下文窗口,顯著提升理解長文段能力。
  • 這些設計讓模型能支持更復雜的任務輸入,如“問答+文檔+答案”等復雜結構。

實驗

  • 本文訓練并測試了四個語言模型(LM),規模呈對數均勻分布。所有模型都基于 WebText 數據集訓練,并進行 perplexity 調優模型架構總結如下表所示:

    在這里插入圖片描述

  • 最小的模型與原始 GPT 相當,第二小的模型等效于 BERT中的最大模型。最大的模型稱為 GPT-2,其參數數量是 GPT 的十倍以上。每個模型的學習率均通過在 WebText 中 5% 的保留集(held-out sample)上手動調整,以獲得最佳困惑度(perplexity)。所有模型在 WebText 上仍存在欠擬合,且保留集困惑度隨著訓練時間增加尚未達到最優

  • 下面對常用的幾個任務進行實驗

困惑度(Perplexity)是語言模型中最常用的評估指標之一,用來衡量模型對語言序列預測的“困惑程度”或“不確定性”。它本質上反映的是模型在預測下一個詞(或字符、字節)時的平均不確定性。數值越低,說明模型越“自信”、越擅長預測;數值越高,說明模型越“困惑”。

1、 語言建模(Language Modeling)

  • 首先研究 WebText 語言模型在其主要訓練任務語言建模上的表現。由于模型在字節級上操作,不依賴有損預處理或分詞,可以在任意語言建模基準上直接評估它。評估方式是:計算一個數據集在 WebText LM 下的對數概率,并除以該數據集的單位數量(如字符、字節或單詞)
  • 由于許多數據集與 WebText 存在風格差異(如使用標準化文本、分詞、標點斷開、縮寫、句子順序打亂等),模型在這些測試集上通常會面臨分布外預測(out-of-distribution)挑戰。特別地,符號 <UNK> 在 WebText 中極其稀有(在 400 億字節中僅出現 26 次),因此我們使用可逆 de-tokenizer 來移除這些預處理殘留,以實現簡單的領域適應

在這里插入圖片描述

  • WebText 模型在多個數據集和任務間遷移能力強。在 zero-shot 設置下,8 個任務中有 7 個任務上達成當前最優。在 One Billion Word Benchmark上,模型仍顯著落后,主要是因為該數據集較大且預處理極端(如句子級打亂),使得語言的長距離結構信息被破壞。

2、兒童圖書測試(Children’s Book Test, CBT)

  • CBT用于評估語言模型在不同詞類別(如命名實體、名詞、動詞、介詞)上的表現。它是一種自動化 cloze 測試,任務是從 10 個候選項中選擇正確的被遮蓋詞。

  • 本文復現了原始論文中的方法,對每個選項和句子剩余部分聯合計算概率,并選出概率最高者。如下圖所示,隨著模型規模增加,準確率穩定上升,接近人類表現。

    在這里插入圖片描述

  • 經過分析發現測試集之一《叢林奇談》與 WebText 有重疊,因此報告無重疊的驗證集結果。GPT-2 達到了新的 SOTA 水平:

    • 名詞類準確率:93.3%
    • 命名實體準確率:89.1%

    同時,本文使用 de-tokenizer 移除了 CBT 中的 PTB 風格分詞偽影,以提升質量

3、LAMBADA

  • LAMBADA 數據集用于測試系統建模文本中長距離依賴的能力。任務是預測句子的最后一個詞,而這些句子通常需要至少 50 個詞的上下文信息,才能被人類成功預測。GPT-2 將該任務上的困惑度(perplexity)從 99.8降至 8.6,準確率從 19%提升至 52.66%。但錯誤分析顯示,GPT-2 預測的大多數詞雖然是語法上合理的延續詞,卻不是句子的真實結尾詞。這表明 GPT-2 沒有意識到“所預測詞必須是句末詞”這一隱含規則。通過添加停用詞過濾器,準確率可進一步提升至 63.24%,比之前最優方法還提高了 4%。

  • 要點總結:

    • LAMBADA 是一個理解句子整體結構的重要 benchmark。

    • GPT-2 在語言建模指標上(如困惑度)取得了突破性進展,但在“理解任務規則”方面仍有缺陷。

    • 加入額外約束(如“必須是句末詞”或過濾停用詞)有助于提升性能。

4、Winograd Schema Challenge

  • Winograd Schema 挑戰評估系統進行常識推理和歧義消解的能力。任務是基于語境判斷指代詞所指的實體。Trinh(2018)證明了語言模型能通過概率預測實現良好的性能。本文遵循他們的方法,在下圖中用全分與部分分兩種方式可視化性能

在這里插入圖片描述

  • GPT-2 能處理歧義性語言,展現出一定的常識理解能力,但由于樣本數量較少,結論需要謹慎解讀

5、閱讀理解(Reading Comprehension)

  • CoQA是一個對話式問答數據集,來自 7 個不同領域,包括自然語言對話中的問題和答案。該任務考察模型是否能理解上下文并回答上下文相關的問題(如 “Why?”)。
  • GPT-2 在未進行任何監督訓練的情況下,直接使用貪心解碼,在開發集上取得 55 F1 分數,與 4 個基準系統中的 3 個持平或超越(這些系統使用了 127,000+ 手工標注數據進行訓練)。盡管 GPT-2 的表現令人驚艷,但其答案中仍存在啟發式錯誤,如將回答限制為“文中提到的名字”來回應 who 類問題。即仍存在“檢索式回答”偏好,說明它更擅長識別已有信息,而非深度推理

6、文本摘要(Summarization)

  • 本文在 CNN/Daily Mail 數據集上測試 GPT-2 的摘要能力。通過在文章后添加提示 “TL;DR:” 并用 Top-k 隨機采樣(k=2)生成 100 個 token,總結為前三個句子。

  • 生成的摘要結構合理,但存在細節混亂或偏向文章結尾的問題。例如將事故車數量或標志位置搞錯。ROUGE-1/2/L 分數略優于“隨機選三句”方法,但低于經典摘要系統。若移除 “TL;DR:” 提示,則分數下降 6.4,說明 GPT-2 確實能“理解任務提示”。

  • 這說明GPT-2 具有一定抽象性與結構化摘要能力,添加任務提示(prompt)可顯著提升表現,說明模型學會了**“提示控制行為”**

    在這里插入圖片描述

7、翻譯(Translation)

  • 我們測試 GPT-2 是否學會了翻譯任務。通過提供訓練格式為:

    english sentence = french sentence
    

    并以類似 prompt 形式開始預測,GPT-2 可在 WMT-14 英法測試集上取得:

    • 英→法:5 BLEU(略低于簡單詞典替換方法)
    • 法→英:11.5 BLEU(顯著優于多種無監督基線)

    但仍遠低于當前最優系統(33.5 BLEU,Artetxe et al., 2019)。這令人驚訝,因為 WebText 明確過濾了非英語網頁

    經檢測,僅有 10MB 法語數據進入 WebText,比常規法語訓練語料小 500 倍。

  • 總結:

    • GPT-2 展現出初步翻譯能力,盡管訓練時幾乎沒見過目標語言。
    • 借助 prompt,模型能“理解”任務需求。
    • 強大的英文語言建模能力可以部分遷移到翻譯任務

8、問答(Question Answering)

  • 為了評估 GPT-2 能否“記住”或“檢索”知識,本文使用 Natural Questions數據集作為測試。GPT-2 僅正確回答 4.1% 的問題,但這已比簡單基線(如返回最多見回答)高出 5.3 倍。最小模型準確率甚至不超過 1%。在 GPT-2 最有信心的前 1% 問題中,準確率達 63.1%,說明其置信度校準良好。但整體表現(4.1%)仍遠不及開放問答系統(30-50%)。

    在這里插入圖片描述

  • 總結:

    • GPT-2 在未檢索的前提下直接生成答案,是極具挑戰的任務。
    • 它的知識“儲存在參數中”,但仍不足以應對大規模事實問答。
    • 高置信度預測表現好,提示有望借助置信度進行“選擇性回答”。

9、總結

總結表:GPT-2 在各任務中的表現
任務評估指標GPT-2 表現(Zero-shot)備注
LAMBADAPerplexity/Acc8.6 PPL / 52.7% → 63.2%加約束顯著提升
WinogradAccuracy70.7%高于 SOTA,任務樣本少
閱讀理解 CoQAF155接近或超越多數有監督系統
摘要 CNN/DMROUGE 1,2,L稍優于 random-3有提示時表現顯著更好
翻譯 WMT-14BLEU5(英→法),11.5(法→英)英文強大建模能力遷移帶動
問答 NQAccuracy4.1%(全體),63.1%(Top1%)記憶能力弱但置信度校準好

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

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

相關文章

分布式ID生成方案的深度解析與Java實現

在分布式系統中&#xff0c;生成全局唯一的ID是一項核心需求&#xff0c;廣泛應用于訂單編號、用戶信息、日志追蹤等場景。分布式ID不僅需要保證全局唯一性&#xff0c;還要滿足高性能、高可用性以及一定的可讀性要求。本文將深入探討分布式ID的概念、設計要點、常見生成方案&a…

記 etcd 無法在docker-compose.yml啟動后無法映射數據庫目錄的問題

1、將etcd 單獨提取 Dockerfile&#xff0c;指定配置文件和數據目錄 #鏡像 FROM bitnami/etcd:3.5.11 #名稱 ENV name"etcd" #重啟 ENV restart"always" #運行無權限 ENV ALLOW_NONE_AUTHENTICATION"yes" #端口 EXPOSE 2379 2380 #管理員權限才…

怎樣才不算干擾球·棒球1號位

在棒球運動中&#xff0c;"干擾球"&#xff08;Interference&#xff09;是指球員或場外人員非法影響了比賽的正常進行。以下情況通常 不構成干擾&#xff0c;屬于合法行為或無需判罰&#xff1a; 1. 擊跑員&#xff08;Batter-Runner&#xff09;合法跑壘 跑壘限制…

PyTorch實現多輸入輸出通道的卷積操作

本文通過代碼示例詳細講解如何在PyTorch中實現多輸入通道和多輸出通道的卷積運算&#xff0c;并對比傳統卷積與1x1卷積的實現差異。 1. 多輸入通道互相關運算 當輸入包含多個通道時&#xff0c;卷積核需要對每個通道分別進行互相關運算&#xff0c;最后將結果相加。以下是實現…

深入解析 MySQL 中的日期時間函數:DATE_FORMAT 與時間查詢優化、DATE_ADD、CONCAT

深入解析 MySQL 中的日期時間函數&#xff1a;DATE_FORMAT 與時間查詢優化 在數據庫管理和應用開發中&#xff0c;日期和時間的處理是不可或缺的一部分。MySQL 提供了多種日期和時間函數來滿足不同的需求&#xff0c;其中DATE_FORMAT函數以其強大的日期格式化能力&#xff0c;…

SSH配置優化:提升本地內網Linux服務器遠程連接速度與穩定性

文章目錄 引言一. 理解SSH連接過程與影響因素二. 服務器端SSH配置優化三. 客戶端SSH配置優化四. 高級技巧五. 內網穿透突破公網IP限制總結 引言 SSH (Secure Shell) 是一種網絡協議&#xff0c;用于加密的網絡服務&#xff0c;常用于遠程登錄和管理Linux服務器。對于本地內網的…

BERT - MLM 和 NSP

本節代碼將實現BERT模型的兩個主要預訓練任務&#xff1a;掩碼語言模型&#xff08;Masked Language Model, MLM&#xff09; 和 下一句預測&#xff08;Next Sentence Prediction, NSP&#xff09;。 1. create_nsp_dataset 函數 這個函數用于生成NSP任務的數據集。 def cr…

“實時滾動”插件:一個簡單的基于vue.js的無縫滾動

1、參考連接&#xff1a; 安裝 | vue-seamless-scroll 2、使用步驟&#xff1a; 第一步&#xff1a;安裝 yarn add vue-seamless-scroll 第二步&#xff1a;引入 import vueSeamlessScroll from vue-seamless-scroll/src 第三步&#xff1a;注冊 components: { vueSeamless…

【藍橋杯】賽前練習

1. 排序 import os import sysn=int(input()) data=list(map(int,input().split(" "))) data.sort() for d in data:print(d,end=" ") print() for d in data[::-1]:print(d,end=" ")2. 走迷宮BFS import os import sys from collections import…

pyTorch-遷移學習-學習率衰減-四種天氣圖片多分類問題

目錄 1.導包 2.加載數據、拼接訓練、測試數據的文件夾路徑 3.數據預處理 3.1 transforms.Compose數據轉化 3.2分類存儲的圖片數據創建dataloader torchvision.datasets.ImageFolder torch.utils.data.DataLoader 4.加載預訓練好的模型(遷移學習) 4.1固定、修改預訓練…

第十四屆藍橋杯大賽軟件賽國賽Python大學B組題解

文章目錄 彈珠堆放劃分偶串交易賬本背包問題翻轉最大階梯最長回文前后綴貿易航線困局 彈珠堆放 遞推式 a i a i ? 1 i a_ia_{i-1}i ai?ai?1?i&#xff0c; n 20230610 n20230610 n20230610非常小&#xff0c;直接模擬 答案等于 494 494 494 劃分 因為總和為 1 e 6 1e6…

Python 和 JavaScript兩種語言的相似部分-由DeepSeek產生

Python 和 JavaScript 作為兩種流行的編程語言&#xff0c;雖然在設計目標和應用場景上有差異&#xff08;Python 偏向后端和腳本&#xff0c;JavaScript 偏向前端和動態交互&#xff09;&#xff0c;但它們的語法存在許多相似之處。以下是兩者在語法上的主要共同點及對比&…

改善 Maven 的依賴性

大家好&#xff0c;這里是架構資源棧&#xff01;點擊上方關注&#xff0c;添加“星標”&#xff0c;一起學習大廠前沿架構&#xff01; 建議使用mvn dependency:analyze命令來擺脫已聲明但未使用的依賴項&#xff1a; 還有另一個用例&#xff0c; mvn dependency:analyze 它可…

【SQL】子查詢詳解(附例題)

子查詢 子查詢的表示形式為&#xff1a;(SELECT 語句)&#xff0c;它是IN、EXISTS等運算符的運算數&#xff0c;它也出現于FROM子句和VALUES子句。包含子查詢的查詢叫做嵌套查詢。嵌套查詢分為相關嵌套查詢和不想關嵌套查詢 WHERE子句中的子查詢 比較運算符 子查詢的結果是…

Stable Diffusion 擴展知識實操整合

本文的例子都是基于秋葉整合包打開的webui實現的 一、ADetailer——改善人臉扭曲、惡心 After detailer插件可以自動檢測生成圖片的人臉&#xff0c;針對人臉自動上蒙版&#xff0c;自動進行重繪&#xff0c;整個流程一氣呵成&#xff0c;因此可以避免許多重復的操作。除此之…

freertos內存管理簡要概述

概述 內存管理的重要性 在嵌入式系統中&#xff0c;內存資源通常是有限的。合理的內存管理可以確保系統高效、穩定地運行&#xff0c;避免因內存泄漏、碎片化等問題導致系統崩潰或性能下降。FreeRTOS 的內存管理機制有助于開發者靈活地分配和釋放內存&#xff0c;提高內存利用…

按規則批量修改文件擴展名、刪除擴展名或添加擴展名

文件的擴展名是多種多樣的&#xff0c;有些不同文件的擴展名之間相互是可以直接轉換的。我們工作當中最常見的就是 doc 與 docx、xls 與 xlsx、jpg 與 jpeg、html 與 htm 等等&#xff0c;這些格式在大部分場景下都是可以相互轉換 能直接兼容的。我們今天要介紹的就是如何按照一…

熱門面試題第15天|最大二叉樹 合并二叉樹 驗證二叉搜索樹 二叉搜索樹中的搜索

654.最大二叉樹 力扣題目地址(opens new window) 給定一個不含重復元素的整數數組。一個以此數組構建的最大二叉樹定義如下&#xff1a; 二叉樹的根是數組中的最大元素。左子樹是通過數組中最大值左邊部分構造出的最大二叉樹。右子樹是通過數組中最大值右邊部分構造出的最大…

MySQL學習筆記7【InnoDB】

Innodb 1. 架構 1.1 內存部分 buffer pool 緩沖池是主存中的第一個區域&#xff0c;里面可以緩存磁盤上經常操作的真實數據&#xff0c;在執行增刪查改操作時&#xff0c;先操作緩沖池中的數據&#xff0c;然后以一定頻率刷新到磁盤&#xff0c;這樣操作明顯提升了速度。 …

RNN、LSTM、GRU匯總

RNN、LSTM、GRU匯總 0、論文匯總1.RNN論文2、LSTM論文3、GRU4、其他匯總 1、發展史2、配置和架構1.配置2.架構 3、基本結構1.神經元2.RNN1. **RNN和前饋網絡區別&#xff1a;**2. 計算公式&#xff1a;3. **梯度消失:**4. **RNN類型**:&#xff08;查看發展史&#xff09;5. **…