大模型微調理論、實戰:LLaMA-Factory、Unsloth

概述

微調,Fine-Tuning,簡稱FT,可理解為對LLM的定制,目的是增強專業領域知識,并優化特定任務的性能。通過在特定數據集上微調一個預訓練模型,可實現:

  • 更新知識:引入新的領域專屬信息;
  • 定制行為:調整模型的語氣、個性或響應風格;
  • 優化任務:提升針對特定任務場景的準確性和相關性;
  • 降低成本:避免從頭訓練模型。

可將微調后的模型視為一個專門優化的Agent,更高效地執行特定任務。

優勢:通過修改模型參數,永久地提高模型能力。

劣勢:若處理不當,很可能造成模型原始能力的災難性遺忘,即導致模型原始能力丟失,對于復雜模型尤其如此。因此需小心謹慎地設計模型微調數據集和微調訓練流程,并經過反復多次訓練驗證,得到最佳模型。

應用場景:

  • 風格微調:適用于客服系統、虛擬助理等場景,微調得到不同語氣、情感表達、禮貌程度、回答方式、對話策略等。
  • 知識灌注:微調可將外部知識或領域特定的信息快速集成到已有的預訓練模型中。
  • 多輪推理:微調能更高效地理解長文本、推理隱含信息,或從數據中提取邏輯關系。
  • 能力提升:在MAS系統或工具調用(Function Call,FC)場景中,微調能顯著提升Agent能力,使得模型能夠學會更精準的功能調用策略、參數解析和操作指令,進而有效地與其他系統進行交互、調用外部API或執行特定任務。

策略

Supervised FT,SFT,有監督微調,指使用帶標簽的目標任務數據集對預訓練模型進行訓練,通過模型預測結果與真實標簽的誤差反向傳播,更新模型參數的過程。

核心特點:依賴高質量標注數據;訓練過程有明確監督信號,模型收斂方向更明確。

全量微調(Full FT,FFT)和參數高效微調(Parameter-Efficient FT,PEFT)

維度FFTPEFT
定義對預訓練模型所有參數進行更新,無參數凍結僅更新模型一小部分參數,通常<1%,其余參數凍結
參數更新范圍100%模型參數0.1%~1%參數,依方法不同略有差異
計算/存儲成本極高,需支持全量參數反向傳播,千億級模型需多卡集群極低,僅更新小部分參數,單卡GPU即可支持
數據依賴需大量標注數據,通常數萬~十萬條,否則易過擬合數據需求低,數千~萬條即可,抗過擬合能力更強
性能上限理論性能最高,可充分適配任務性能接近全量微調,多數場景下差距<5%,部分任務可持平
適用場景數據量充足、計算資源雄厚資源有限、數據量少、多任務快速適配

FFT優勢:無參數凍結,模型可充分學習任務特性,在數據量充足時能達到最優性能。

劣勢

  • 成本極高:以千億參數模型為例,全量微調需數十張H100,單日訓練成本可達數萬元;
  • 數據需求高:若標注數據不足,易導致過擬合,模型記住訓練數據,泛化能力差;
  • 存儲壓力大:訓練過程中需保存大量中間參數(如梯度、優化器狀態),對存儲容量要求極高。

主流PEFT方法:

  • LoRA:Low-Rank Adaptation:低秩適應。一個超大話題,需另起一篇。
  • Instruction Tuning:指令微調
  • Prompt Tuning:提示詞微調
  • Prefix Tuning:前綴微調
  • Adapter Tuning:適配器微調
數據量/資源推薦方法適用場景
數據量充足>10萬條、計算資源雄厚FFT大廠核心業務,如電商平臺情感分析、機器翻譯
數據量中等1~萬條、資源有限LoRA中小企業領域適配,如醫療對話、法律文檔問答
數據量少<1萬條、資源有限其他小樣本任務,如特定領域NER、少量標注分類任務

LoRA憑借低成本+高性能的平衡,已成為當前LLM微調的主流選擇。

Prompt Tuning

思想:不改變模型原始權重,僅通過優化輸入提示詞本身來引導模型輸出期望結果;提示詞可以是離散的(人工設計模板)或連續的(可訓練的向量,如P-Tuning)。

微調對象:只微調與輸入提示相關的少量參數(如Prompt Embedding),不改變語言模型主體參數。

典型方法:P-Tuning、P-Tuning v2。

Instruction Tuning

思想:通過在大量指令-輸入-輸出對數據上微調整個模型(或部分參數),讓模型學會理解和執行各種自然語言指令。

微調對象:模型參數本身(全參數微調,或部分參數微調)。

特點:

  • 目標是增強模型對自然語言指令的泛化能力,使其能直接按照用戶指令執行任務。
  • 微調后模型對提示工程依賴較低,輸出更自然、一致。
  • 需大量標注數據,計算成本相對較高。

Prefix Tuning

思想:與Prompt Tuning類似,在輸入序列前添加一段可訓練的連續向量(即前綴Token,會參與模型的注意力計算),僅優化這些前綴參數,其余模型參數凍結。

微調對象:僅前綴參數(通常占模型總參數的0.1%)。

特點:

  • 適用于生成類任務;
  • 前綴長度可調,長度越長效果通常越好,但推理速度幾乎不受影響。

Adapter Tuning

論文,
在這里插入圖片描述

思想:在預訓練模型的每一層(或部分層)插入小型適配器模塊(通常由兩層MLP構成,如BottleNeck結構:降維→激活→升維),僅訓練這些適配器參數,模型主體凍結。

微調對象:適配器模塊參數(通常占模型總參數的3~5%)。

特點:

  • 幾乎不影響原模型結構,推理時只需額外計算適配器部分;
  • 適配器模塊可針對不同任務分別訓練,靈活性強;
  • 參數量比Prefix Tuning大,但通常效果更穩定。

其他微調方法對比

方法微調對象是否改模型權重參數占比適用場景優點缺點
Prompt Tuning輸入提示(連續/離散)極低資源受限、快速適配高效、極低計算開銷依賴提示工程,效果有限
Instruction Tuning模型參數(全/部分)較高通用指令執行、多任務輸出自然、泛化強需大量標注數據、開銷大
Prefix Tuning輸入前綴(連續向量)極低生成任務參數極省、推理快僅適合生成類任務
Adapter Tuning插入適配器模塊理解+生成任務靈活、穩定、可插拔參數略多,訓練略復雜

對比RAG

參考RAG概述。

  • 針對特定任務的專業性
    微調讓模型深入理解某個特定領域或任務,使其能精準處理結構化、重復性高或具有復雜背景的查詢,這是RAG無法獨立完成的
  • 推理速度更快
    微調后的模型直接生成答案,無需額外的檢索步驟,適用于對響應速度要求極高的場景。
  • 個性化行為與風格
    微調可精準控制模型的表達方式,確保其符合品牌風格、行業規范或特定約束。
  • 為模型添加新知識
    微調的核心目標之一,讓模型掌握全新的概念或知識,只要數據集中包含相關信息。

RAG+微調:結合兩者,以發揮最大優勢:

  • RAG讓系統具備動態獲取最新外部知識的能力;
  • 微調讓模型掌握核心專業知識,即使沒有外部檢索也能穩定發揮作用;還能幫助模型更好地理解和整合檢索回來的信息;
  • 任務專業性:微調擅長特定任務,RAG提供最新外部知識,兩者互補;
  • 適應性:當檢索失敗時,微調后的模型依然能維持高水平的性能,RAG讓系統無需頻繁重新訓練也能保持知識更新;
  • 效率:微調建立穩定的基礎,RAG則減少對大規模訓練的需求,僅在必要時提供額外信息。

實戰

一些建議:

  • 微調沒有單一的最佳方式,只有適用于不同場景的最佳實踐;
  • 使用Unsloth等易入門的開源框架;
  • 從4比特QLoRA量化入手;
  • 使用免費云服務器資源如Google Colab和Kaggle Notebook。

數據集

微調流程中,數據集質量直接決定微調效果,尤其是當模型需具備復雜功能(如FC、混合推理)或應用于特定領域任務時。

模型通過特殊字符標記識別輸入類型、系統提示和輸出邊界,數據集需遵循模型的格式規范。以Qwen3為例:

  • <|im_start|>:標記文本開始,后跟角色,如user/assistant/system;
  • <|im_end|>:標記文本結束。

標記可在模型的tokenizer_config.json文件中查看完整定義。

常見微調數據集格式

  • 基礎問答:Alpaca風格,適用于簡單指令微調,包含instruction、input和output三個核心字段。示例:
{"instruction": "識別并解釋給定的科學理論","input": "細胞理論","output": "細胞理論是生物科學的基礎理論,認為所有生命體由細胞構成,細胞是生物的基本結構和功能單位。"
}

微調時,腳本會自動將其轉換為Qwen3等模型兼容的標記格式:

<|im_start|>user
識別并解釋給定的科學理論:細胞理論<|im_end|>
<|im_start|>assistant
細胞理論是生物科學的基礎理論...<|im_end|>
  • 帶系統提示和FC:若需提升模型的FC能力,數據集需包含系統提示、工具定義和調用示例。系統提示:明確FC規則;工具定義:通過<tools>描述函數參數。對話示例:
<|im_start|>system
你是天氣助手,查詢天氣時需調用get_weather函數。
<tools>[{"name":"get_weather","parameters":{"location":"城市名稱"}}]</tools><|im_end|>
<|im_start|>user
北京天氣如何?<|im_end|>
<|im_start|>assistant
<tool_call>{"name":"get_weather","arguments":{"location":"北京"}}</tool_call><|im_end|>

高效微調僅能優化現有FC能力,無法讓模型從無到有學會該功能。

  • 帶思考過程:為提升模型推理能力,數據集需包含中間思考步驟,用特殊標記分隔思考過程與最終輸出。例如:
<|im_start|>system
你是數學助手,需展示解題步驟。<|im_end|>
<|im_start|>user
計算3+5×2的結果。<|im_end|>
<|im_start|>assistant
<think>用戶問的是3加5乘2,先算乘法再算加法,5乘2等于10,再加3就是13。/think>3+5×2=3+10=13<|im_end|>

作為示例和思路,為混合推理模型構造微調數據集,采用多數據集拼接策略,核心步驟:

  • 選擇基礎數據集
    • 普通對話數據:如FineTome-100k(含10萬條多輪對話,ShareGPT風格),用于保留模型的自然交互能力。
    • 推理類數據:如OpenMathReasoning(含54萬道數學題及詳細解題步驟),用于強化邏輯推理能力。
  • 數據集配比調整:需根據微調目標平衡不同類型數據的比例:
    • 若側重數學推理:可按7:3比例混合;
    • 若需均衡能力:可按5:5比例混合,避免模型過度偏向單一任務。
  • 格式統一與清洗:確保所有數據轉換為Qwen3兼容的標記格式;過濾重復樣本、錯誤標注和低質量內容,避免模型學習噪聲數據。

數據集下載渠道:HF、ModelScope(魔搭社區,簡稱MS)

框架

LLaMA-Factory

57.5K Star,7K Fork。參考LLaMA-Factory。

Unsloth

參考Unsloth實戰。45.1K Star,3.6K Fork。

ColossalAI

GitHub,41.1K Star,4.5K Fork。一個高效的分布式人工智能訓練系統,旨在最大化提升AI訓練效率,最小化訓練成本。作為DL框架內核,提供自動超高維并行、大規模優化庫等前沿技術。

優勢表現:與英偉達Megatron-LM相比,僅需一半數量的GPU即可完成GPT-3訓練,半小時內預訓練ViT-Base/32,并在兩天內訓練完15億參數的GPT模型。提供多種并行技術,如數據并行、流水線并行和張量并行,以加速模型訓練。

強化學習訓練,則推薦veRL和OpenRLHF等框架。

MS-Swift

MS社區推出,GitHub,9.7K Star,851 Fork。

XTuner

上海AI實驗室的InternLM團隊推出的開源(4.7K Star,354 Fork)輕量化LLM微調工具庫,支持LLM多模態圖文模型的預訓練及輕量級微調。

特點:

  • 高效:僅需8GB顯存即可微調7B模型,支持多節點跨設備微調70B+ LLM。通過自動分發FlashAttention、Triton kernels等高性能算子加速訓練,兼容DeepSpeed,能輕松應用ZeRO優化策略提升訓練效率;
  • 靈活:兼容InternLM等多種主流LLMs和LLaVA多模態圖文模型,支持預訓練與微調。數據管道設計靈活,兼容任意數據格式,支持QLoRA、LoRA及全量參數微調等多種算法;
  • 全能:支持增量預訓練、指令微調與Agent微調,提供豐富的開源對話模板便于與模型交互。訓練所得模型可無縫接入部署工具庫LMDeploy、評測工具庫OpenCompass及VLMEvalKit,實現從訓練到部署的全流程支持。

安裝

# 環境準備
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env
# 源碼安裝
git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[deepspeed]'
# 驗證
xtuner list-cfg

XTuner支持增量預訓練、單輪對話、多輪對話三種數據集格式:

  • 增量預訓練數據集用于提升模型在特定領域或任務的能力;
  • 單輪對話和多輪對話數據集則經常用于指令微調階段,以提升模型回復特定指令的能力。

MindSpeed LLM

GitHub。

對比選型

維度LLaMA-FactoryUnslothMS-SwiftMindSpeed LLM
定位微調,主打模塊化與多場景適配微調+加速,聚焦性能與效率優化,顯存優化型訓練加速引擎多模態全棧工具鏈昇騰硬件深度優化框架
社區生態中文社區活躍,提供Web UI工具HF生態兼容,開發者論壇活躍MS框架,整合天池/魔搭社區資源華為昇騰社區雙軌支持,兼容MindSpore/PyTorch雙后端
優勢模塊化設計、多硬件自適應、量化技術高速微調、低內存占用、主流模型兼容、顯存效率極致優化多模態DPO訓練,推理吞吐量提升20倍昇騰910B訓練速度超A100 2.3倍,支持千億參數模型分布式訓練
局限全參微調速度較慢,存在歷史安全漏洞社區較新文檔不完善,依賴Triton內核經驗生態依賴性強,脫離MS擴展性受限硬件適配單一,非昇騰環境支持有限
硬件支持NVIDIA/AMD/Ascend GPU、Mac M系列芯片主要支持NVIDIA GPUNVIDIA GPU 為主,部分支持Ascend NPU(算子兼容問題)昇騰910B/910C NPU,支持訓推共卡
模型支持支持主流支持主流,兼容HuggingFace格式支持主流,500+純文本模型、200+多模態模型支持主流,新增MindSpore后端
訓練效率全參微調速度較Unsloth慢30%,支持DeepSpeed分布式40GB可處理70B模型,GRPO流程優化多卡訓練效率提升40%(DDP+FSDP),集成vLLM加速千億參數模型分布式訓練效率領先,GRPO訓練速度提升顯著
顯存優化動態量化(2-8bit)+梯度檢查點,8B模型微調顯存10GB動態4bit量化+Triton內核重寫,顯存占用減少80%PEFT技術+混合精度訓練,顯存占用降低70%算子融合+內存復用,70B模型訓練顯存32GB(GRPO優化后)
微調策略全參微調、LoRA、QLoRA,支持DPO、SimPO對齊LoRA、QLoRA、動態量化訓練,GRPO強化學習LoRA+、GaLore、Q-GaLore,多模態DPO訓練QLoRA、DPO、PPO,支持訓推共卡模式
易用性低代碼Web UI,數據標注-訓練-部署一鍵式操作API簡潔,5分鐘上手,提供Colab一鍵啟動腳本依賴MS數據工具,多模態任務配置模板化需熟悉Ascend-CANN工具鏈,昇騰專用SDK
典型場景多模態內容生成、行業LLM私有化部署資源受限環境快速迭代、學術研究原型開發多模態對話系統、長文本生成(16K Token)昇騰集群部署的千億參數模型訓練、金融風控/政務合規場景

其他框架

框架優勢適用場景
Hugging Face高度兼容,易用,文檔豐富一般NLP任務,模型選擇豐富
LoRA顯存節省,減少微調計算量顯存有限的設備,微調大規模模型
PEFT高效微調,低計算開銷資源有限的環境,適合大規模預測級模型的微調
DeepSpeed大規模分布式訓練,顯存優化超大規模訓練,多卡分布式訓練
AdapterHub低資源消耗,快速微調多任務微調,資源有限的環境
Alpaca-LoRA生成任務優化,LoRA技術結合對話生成、文本生成
FastChat對話系統微調,快速集成對話生成任務,尤其是對ChatGPT等模型微調
FairScale大規模分布式訓練優化,自動化優化多卡分布式訓練,大規模微調

資料

Notebook

Unsloth AI開源Notebook,涵蓋:

  • BERT、TTS、視覺等多模態;
  • GRPO、DPO、SFT、CPT等方法論;
  • 數據準備、評估、保存等微調階段;
  • Llama、Gemma、Phi等模型;
  • 其他:工具調用、分類、合成數據;

參考

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

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

相關文章

【LCA 樹上倍增】P9245 [藍橋杯 2023 省 B] 景區導游|普及+

本文涉及知識點 樹上倍增 P9245 [藍橋杯 2023 省 B] 景區導游 題目描述 某景區一共有 NNN 個景點&#xff0c;編號 111 到 NNN。景點之間共有 N?1N-1N?1 條雙向的擺渡車線路相連&#xff0c;形成一棵樹狀結構。在景點之間往返只能通過這些擺渡車進行&#xff0c;需要花費…

基于Python+Streamlit的旅游數據分析與預測系統:從數據可視化到機器學習預測的完整實現

&#x1f3de;? 基于PythonStreamlit的旅游數據分析與預測系統&#xff1a;從數據可視化到機器學習預測的完整實現 &#x1f4dd; 前言 在大數據時代&#xff0c;旅游行業的數據分析變得越來越重要。如何從海量的旅游數據中挖掘有價值的信息&#xff0c;并進行準確的銷量預測&…

飛算JavaAI全鏈路實戰:智能構建高可用電商系統核心架構

飛算JavaAI全鏈路實戰&#xff1a;智能構建高可用電商系統核心架構 前言&#xff1a;AI編程新時代的電商系統開發范式變革 在當今數字經濟時代&#xff0c;電商系統作為企業數字化轉型的核心載體&#xff0c;其復雜度和技術要求與日俱增。一個完整的電商系統不僅需要處理商品、…

論文精讀(五):面向鏈接預測的知識圖譜表示學習方法綜述

筆者鏈接&#xff1a;撲克中的黑桃A 專欄鏈接&#xff1a;論文精讀 本文關鍵詞&#xff1a;知識圖譜; 表示學習; 鏈接預測; 多元關系; 超關系 引 諸位技術同仁&#xff1a; 本系列將系統精讀的方式&#xff0c;深入剖析計算機科學頂級期刊/會議論文&#xff0c;聚焦前沿突破…

Roo Code之自定義指令(Custom Instructions),規則(Rules)

在Roo Code 中&#xff0c;Custom Instructions 可以通過Instructions 設定和Rules 規則文件實現。什么是Custom Instructions&#xff1f; 自定義指令(Custom Instructions)定義了超出Roo基本角色定義范圍的具體行為、偏好和約束。示例包括編碼風格、文檔標準、測試要求和工作…

9/8我是ai大師

一、變量定義部分&#xff08;理解程序的 "記憶"&#xff09;c運行/* USER CODE BEGIN PV */ static uint8_t last_button_state 1; // 初始為高電平&#xff08;未按下&#xff09; static uint8_t device_mode 0; // 設備模式&#xff1a;0LD1, 1LD3, 2蜂鳴器, 3…

前沿重器[74] | 淘寶RecGPT:大模型推薦框架,打破信息繭房

前沿重器欄目主要給大家分享各種大廠、頂會的論文和分享&#xff0c;從中抽取關鍵精華的部分和大家分享&#xff0c;和大家一起把握前沿技術。具體介紹&#xff1a;倉頡專項&#xff1a;飛機大炮我都會&#xff0c;利器心法我還有。&#xff08;算起來&#xff0c;專項啟動已經…

jenkins加docker 部署項目

jenkins加docker 部署springboot項目 1項目結構Dockerfile 內容 FROM openjdk:8-jdk-alpine ARG JAR_FILEtarget/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar","--server.port9090"]在A服務器上啟動jenkins …

提示詞工程(Prompt Engineering)的崛起——為什么“會寫Prompt”成了新技能?

&#x1f380;【開場 貓貓狐狐的對話】&#x1f43e;貓貓扒著屏幕&#xff1a;“喵&#xff1f;咱寫的這句 Prompt 怎么又跑偏啦&#xff1f;明明只是想讓它幫忙寫一段 Python 代碼&#xff0c;它偏要給咱寫論文摘要……” &#x1f98a;狐狐瞇著眼&#xff0c;聲音帶點冷意&a…

供應鏈管理系統入門知識:是什么,功能模塊,怎么定制開發?

如果你是剛接觸企業運營的新手&#xff0c;聽到 “供應鏈管理系統” 可能會覺得有點復雜。其實&#xff0c;它就像一個 “智能管家”&#xff0c;幫企業把從買材料到賣產品的一系列流程管得明明白白。今天就用大白話給你講清楚這個系統到底是什么&#xff0c;以及它能幫上什么忙…

kotlin - 平板分屏,左右拖動,2個Activity計算寬度,使用ActivityOptions、Rect(三)

kotlin - 平板分屏&#xff0c;左右拖動&#xff0c;2個Activity計算寬度&#xff0c;使用ActivityOptions、Rect使用平板&#xff0c;api33才支持&#xff0c;可以左右拖動&#xff0c;分屏第一個頁面 &#xff0c; 思考&#xff1a;分屏后&#xff0c;對整個app的影響&#x…

v0.29.3 敏感詞性能優化之繁簡體轉換 opencc4j 優化

敏感詞性能調優系列 v0.29.0 敏感詞性能優化提升 14 倍全過程 v0.29.1 敏感詞性能優化之內部類迭代器內部類 v0.29.2 敏感詞性能優化之基本類型拆箱、裝箱的進一步優化的嘗試 v0.29.3 敏感詞性能優化之繁簡體轉換 opencc4j 優化 背景 opencc4j opencc4j 中&#xff0c;因…

Spark SQL解析查詢parquet格式Hive表獲取分區字段和查詢條件

首先說一下&#xff0c;這里解決的問題應用場景&#xff1a; sparksql處理Hive表數據時&#xff0c;判斷加載的是否是分區表&#xff0c;以及分區表的字段有哪些&#xff1f;再進一步限制查詢分區表必須指定分區&#xff1f; 這里涉及到兩種情況&#xff1a;select SQL查詢和…

谷歌發布文本嵌入模型EmbeddingGemma(附部署方式)

EmbeddingGemma是谷歌于2025年9月開源的開放式文本嵌入模型&#xff0c;專為端側設備設計&#xff0c;具備以下核心優勢&#xff1a; 性能優勢 在MTEB基準測試中&#xff0c;EmbeddingGemma在500M以下參數規模的多語言文本嵌入模型中表現最佳&#xff0c;性能接近參數翻倍的頂…

CPU調度——調度的目標

2.2.2 調度的目標 當系統中“想運行”的實體多于 CPU 的數量時&#xff0c;調度就不可避免地要在“效率”與“公平”之間做取舍。直觀地說&#xff0c;一類目標希望把硬件壓榨到更高的利用率&#xff0c;讓單位時間內做更多的工作&#xff1b;另一類目標則關心個體體驗&#x…

C++ 8

封裝一個學生的類&#xff0c;定義一個學生這樣類的vector容器, 里面存放學生對象&#xff08;至少3個&#xff09;再把該容器中的對象&#xff0c;保存到文件中。再把這些學生從文件中讀取出來&#xff0c;放入另一個容器中并且遍歷輸出該容器里的學生。#include <iostream…

短視頻矩陣系統源碼開發搭建技術指南--支持OEM

短視頻矩陣系統架構設計短視頻矩陣系統通常采用分布式架構&#xff0c;包含內容管理、用戶管理、推薦算法、存儲分發等模塊。主流技術棧包括微服務框架&#xff08;Spring Cloud/Dubbo&#xff09;、消息隊列&#xff08;Kafka/RabbitMQ&#xff09;、數據庫&#xff08;MySQL/…

不連續頁分配器補充

vmalloc流程 1. 背景&#xff1a;vmalloc() 要解決的問題 kmalloc() 要求 虛擬地址連續&#xff0c;物理頁也連續。大塊內存分配可能失敗。vmalloc() 只保證 虛擬地址連續&#xff0c;物理內存可以由很多不連續的頁拼接。 實現的關鍵就是&#xff1a; 在 vmalloc 區域 找一塊空…

bug | 事務粒度不能太大,含demo

刷到一個說法&#xff0c;建議不要使用transaction注解。這個說法不太準確&#xff0c;注解可以用&#xff0c;但標注的事務粒度不能太大&#xff0c;這樣可能會引起數據庫阻塞問題。以下介紹注解事務和編程式事務的兩種用法。 關鍵字&#xff1a;聲明式事務&#xff0c;編程式…

別再看人形機器人了!真正干活的機器人還有這些!

每次提起“機器人”&#xff0c;你腦海中是不是立刻浮現出雙足行走、擬人微笑、還能陪你聊天的那種“人形機器人”&#xff1f;但真相是&#xff1a;人形機器人并非更實用&#xff0c;只是滿足了我們對“人類替代品”的幻想。事實上&#xff0c;機器人的世界遠比我們想象的更豐…