7D-AI系列:模型微調之mlx-lm

大模型的出現,導致信息量太大,只有靜心動手操作,才能得到真理。

文章目錄

    • 環境要求
    • 安裝
    • 示例
    • mlx-lm微調工具參數
    • 準備數據集
    • 下載模型
    • 微調模型
    • 合并模型
    • 驗證結果
      • 驗證微調前的模型
      • 驗證微調后的模型

環境要求

  • macbook pro m系列芯片
  • mlx環境已安裝

安裝

mlx-lm微調工具是一個用于微調基于mlx框架的預訓練語言模型(LM)的工具。該工具提供了多種功能,包括預訓練語言模型的微調、模型保存和加載、模型評估等功能。

(mlx) gaolou@GaodeMacBook-Pro mlx-examples % pip install mlx-lm

示例

當使用 generate 命令且不指定模型時,會自動下載 models--mlx-community--Llama-3.2-3B-Instruct-4bit 模型。并保在 /Users/gaolou/.cache/huggingface/hub 中。

(mlx) gaolou@GaodeMacBook-Pro mlx-examples % mlx_lm.generate --prompt "How tall is Mt Everest?"
special_tokens_map.json: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████| 296/296 [00:00<00:00, 2.87MB/s]
config.json: 1.12kB [00:00, 2.42MB/s]                                                                                                                             
tokenizer_config.json: 54.6kB [00:00, 66.4MB/s]                                                                                         | 1/6 [00:00<00:04,  1.04it/s]
model.safetensors.index.json: 45.7kB [00:00, 124MB/s]
tokenizer.json: 17.2MB [00:01, 16.9MB/s]
model.safetensors: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 1.81G/1.81G [00:47<00:00, 37.7MB/s]
Fetching 6 files: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:52<00:00,  8.78s/it]
==========
Mt. Everest is approximately 8,848 meters (29,029 feet) tall.
==========
Prompt: 41 tokens, 101.355 tokens-per-sec
Generation: 19 tokens, 120.663 tokens-per-sec
Peak memory: 1.937 GB
(mlx) gaolou@GaodeMacBook-Pro mlx-examples %

mlx-lm微調工具參數

(mlx) gaolou@GaodeMacBook-Pro mlx-lm % mlx_lm.lora --help                                  
usage: mlx_lm.lora [-h] [--model MODEL] [--train] [--data DATA] [--fine-tune-type {lora,dora,full}] [--optimizer {adam,adamw}] [--mask-prompt][--num-layers NUM_LAYERS] [--batch-size BATCH_SIZE] [--iters ITERS] [--val-batches VAL_BATCHES] [--learning-rate LEARNING_RATE][--steps-per-report STEPS_PER_REPORT] [--steps-per-eval STEPS_PER_EVAL] [--resume-adapter-file RESUME_ADAPTER_FILE] [--adapter-path ADAPTER_PATH][--save-every SAVE_EVERY] [--test] [--test-batches TEST_BATCHES] [--max-seq-length MAX_SEQ_LENGTH] [-c CONFIG] [--grad-checkpoint] [--seed SEED]
LoRA or QLoRA finetuning.
options:-h, --help            show this help message and exit--model MODEL         The path to the local model directory or Hugging Face repo.--train               Do training--data DATA           Directory with {train, valid, test}.jsonl files or the name of a Hugging Face dataset (e.g., 'mlx-community/wikisql')--fine-tune-type {lora,dora,full}Type of fine-tuning to perform: lora, dora, or full.--optimizer {adam,adamw}Optimizer to use for training: adam or adamw--mask-prompt         Mask the prompt in the loss when training--num-layers NUM_LAYERSNumber of layers to fine-tune. Default is 16, use -1 for all.--batch-size BATCH_SIZEMinibatch size.--iters ITERS         Iterations to train for.--val-batches VAL_BATCHESNumber of validation batches, -1 uses the entire validation set.--learning-rate LEARNING_RATEAdam learning rate.--steps-per-report STEPS_PER_REPORTNumber of training steps between loss reporting.--steps-per-eval STEPS_PER_EVALNumber of training steps between validations.--resume-adapter-file RESUME_ADAPTER_FILELoad path to resume training from the given fine-tuned weights.--adapter-path ADAPTER_PATHSave/load path for the fine-tuned weights.--save-every SAVE_EVERYSave the model every N iterations.--test                Evaluate on the test set after training--test-batches TEST_BATCHESNumber of test set batches, -1 uses the entire test set.--max-seq-length MAX_SEQ_LENGTHMaximum sequence length.-c CONFIG, --config CONFIGA YAML configuration file with the training options--grad-checkpoint     Use gradient checkpointing to reduce memory use.--seed SEED           The PRNG seed
(mlx) gaolou@GaodeMacBook-Pro mlx-lm % 

準備數據集

在用mlx_lm.lora 微調工具微調模型時,需要準備數據集。數據集可以是一個目錄,包含 train.jsonl、valid.jsonl和test.jsonl文件,也可以是一個Hugging Face數據集。數據要超過5條。

示例如下:


{"prompt": "你是誰?","completion": "我是7DRESAR性能分析決策模型,我可以幫助你分析系統的性能問題,給出性能分析證據鏈,并提供相應的解決方案。"}
{"prompt": "如何分析操作系統中用戶態CPU使用率高的根本原因?","completion": "根據7DRESAR性能分析決策樹模型,分析us cpu使用率高根本原因的步驟如下:1. 首先要明確是us cpu使用率,而非其他cpu計數器。2. 然后查看us cpu消耗在哪個進程上。3, 再進一步根據進程號查看是哪一個線程消耗了us cpu。注意:如果不是某一個特定線程一直消耗us cpu,而是有多個線程消耗cpu,并且線程號在不斷切換,則需要判斷線程數設置是否合理。4. 當明確了某個線程消耗了us cpu之后,再多次打印線程棧,以確定正在執行的代碼。5. 最后根據線程棧信息,確定是哪個代碼片段消耗了us cpu。在java的應用中,可以用arthas之類的工具來跟蹤方法的執行時間,其他的語言中也有類似的工具。"}
{"prompt": "如何分析操作系統中磁盤IO使用率高的根本原因?","completion": "根據7DRESAR性能分析決策樹模型,分析磁盤IO使用率高的根本原因步驟如下:1. 首先要明確磁盤本身順序、隨機讀寫能力的上下限。也就是需要根據基準測試確定磁盤的最大讀寫能力。2. 然后查看磁盤IO消耗在哪個線程上。這一步在linux中可以直接通過iotop命令做到。3. 可以直接打線程棧,查看是哪一段代碼在讀寫文件。4. 根據讀寫文件的邏輯,判斷是否需要增加讀寫buffer的大小。5. 若讀寫文件不合理,則減少讀寫。"}
{"prompt": "如何分析操作系統中內存使用率高的根本原因?","completion": "根據7DRESAR性能分析決策樹模型,分析內存率高的根本原因步驟如下:1. 對于java語言的應用,查看jvm的gc狀態;對于其他語言開發的應用,則分析物理內存的使用情況。2. 若物理內存使用率高,在linux中可以使用top -Hp pid命令查看進程中哪個線程消耗了內存。3. 可以直接打線程棧,查看是哪一段代碼在申請內存。4. 若申請內存不合理,則減少內存申請。5. 若內存申請合理,則需要考慮增加節點或內存。"}
{"prompt": "如何分析操作系統中網絡是否阻塞?","completion": "根據7DRESAR性能分析決策樹模型,分析網絡是否阻塞步驟如下:1. 在linux中通過命令netstat查看recvq和sendq是否有積壓。2. 若本機recvq有積壓,則是阻塞在本機。3. 若是sendq有積壓,則需要查看tcp連接的對端recvq是否也有積壓,若有,則需要分析對端recvq積壓的原因。"}
{"prompt": "如何分析操作系統中上下文切換是否合理?","completion": "根據7DRESAR性能分析決策樹模型,分析上下文切換是否合理步驟如下:1. 在linux中通過命令vmstat查看上下文切換的次數。2. 若上下文切換次數高,則需要分析上下文切換的原因。3. 若上下文切換的原因是線程數設置不合理,則需要調整線程數。4. 若上下文切換的原因是線程切換的時間片不合理,則需要調整線程切換的時間片。"}

下載模型

你可以到網上下載一個模型權重。這里我之前在本地演示時,訓練過的一個模型權重 Qwen2.5-0.5B-Instruct

注意:模型的選擇要量力而為。

(mlx) gaolou@GaodeMacBook-Pro DeepSeek-R1-1.5B-7dresar % pwd
/Users/gaolou/Desktop/AI研究/AI模型權重/DeepSeek-R1-1.5B-7dresar
(mlx) gaolou@GaodeMacBook-Pro DeepSeek-R1-1.5B-7dresar % tree -h
[ 320]  .
├── [ 392]  Modelfile
├── [ 812]  config.json
├── [ 181]  generation_config.json
├── [3.3G]  model.safetensors
├── [ 485]  special_tokens_map.json
├── [ 11M]  tokenizer.json
├── [6.7K]  tokenizer_config.json
└── [ 16K]  讀取模型文件.md
1 directory, 8 files

微調模型


(mlx) gaolou@GaodeMacBook-Pro mlx-lm % mlx_lm.lora --model /Users/gaolou/.cache/modelscope/hub/models/Qwen/Qwen2.5-0.5B-Instruct --train --data ./dataset
Loading pretrained model
Loading datasets
Training
Trainable parameters: 0.073% (0.360M/494.033M)
Starting training..., iters: 1000
Iter 1: Val loss 3.671, Val took 0.257s
Iter 10: Train loss 3.379, Learning Rate 1.000e-05, It/sec 3.233, Tokens/sec 2062.551, Trained Tokens 6380, Peak mem 3.130 GB
Iter 20: Train loss 2.893, Learning Rate 1.000e-05, It/sec 3.214, Tokens/sec 2050.724, Trained Tokens 12760, Peak mem 3.130 GB
Iter 30: Train loss 2.525, Learning Rate 1.000e-05, It/sec 3.227, Tokens/sec 2058.875, Trained Tokens 19140, Peak mem 3.130 GB
Iter 40: Train loss 2.198, Learning Rate 1.000e-05, It/sec 3.271, Tokens/sec 2086.831, Trained Tokens 25520, Peak mem 3.130 GB
----------刪除了部分輸出日志------------
Iter 990: Train loss 0.009, Learning Rate 1.000e-05, It/sec 3.205, Tokens/sec 2044.611, Trained Tokens 631620, Peak mem 3.136 GB
Iter 1000: Val loss 0.009, Val took 0.162s
Iter 1000: Train loss 0.009, Learning Rate 1.000e-05, It/sec 3.209, Tokens/sec 2047.448, Trained Tokens 638000, Peak mem 3.136 GB
Iter 1000: Saved adapter weights to adapters/adapters.safetensors and adapters/0001000_adapters.safetensors.
Saved final weights to adapters/adapters.safetensors.
(mlx) gaolou@GaodeMacBook-Pro mlx-lm % 

合并模型

(mlx) gaolou@GaodeMacBook-Pro mlx-lm % mlx_lm.fuse --model /Users/gaolou/.cache/modelscope/hub/models/Qwen/Qwen2.5-0.5B-Instruct --adapter-path ./adapters --save-path Qwen2.5-0.5B-7dresar-v0.1
Loading pretrained model
(mlx) gaolou@GaodeMacBook-Pro mlx-lm % ll
total 88
drwxrwxr-x@ 14 gaolou  staff   448  4 12 03:39 tests
-rw-rw-r--@  1 gaolou  staff  1509  4 12 03:39 setup.py
-rw-rw-r--@  1 gaolou  staff    77  4 12 03:39 requirements.txt
drwxrwxr-x@ 29 gaolou  staff   928  4 12 03:39 mlx_lm
-rw-rw-r--@  1 gaolou  staff  9186  4 12 03:39 README.md
-rw-rw-r--@  1 gaolou  staff    56  4 12 03:39 MANIFEST.in
-rw-rw-r--@  1 gaolou  staff  1066  4 12 03:39 LICENSE
-rw-rw-r--@  1 gaolou  staff  2773  4 12 03:39 CONTRIBUTING.md
-rw-rw-r--@  1 gaolou  staff  5544  4 12 03:39 CODE_OF_CONDUCT.md
-rw-rw-r--@  1 gaolou  staff   640  4 12 03:39 ACKNOWLEDGMENTS.md
drwxr-xr-x@  5 gaolou  staff   160  4 12 16:27 dataset
drwxr-xr-x@ 14 gaolou  staff   448  4 12 16:57 adapters
drwxr-xr-x@  8 gaolou  staff   256  4 12 17:03 DeepSeek-R1-1.5B-7dresar-v0.1
drwxr-xr-x@ 12 gaolou  staff   384  4 12 18:35 DeepSeek-R1-8B-7dresar-v0.1
drwxr-xr-x@ 11 gaolou  staff   352  4 12 19:11 Qwen2.5-0.5B-7dresar-v0.1
(mlx) gaolou@GaodeMacBook-Pro mlx-lm % tree -h Qwen2.5-0.5B-7dresar-v0.1
[ 352]  Qwen2.5-0.5B-7dresar-v0.1
├── [ 605]  added_tokens.json
├── [ 710]  config.json
├── [1.6M]  merges.txt
├── [942M]  model.safetensors
├── [ 20K]  model.safetensors.index.json
├── [ 613]  special_tokens_map.json
├── [ 11M]  tokenizer.json
├── [7.2K]  tokenizer_config.json
└── [2.6M]  vocab.json
1 directory, 9 files
(mlx) gaolou@GaodeMacBook-Pro mlx-lm % 

驗證結果

驗證微調前的模型


(mlx) gaolou@GaodeMacBook-Pro mlx-lm % mlx_lm.generate --model /Users/gaolou/.cache/modelscope/hub/models/Qwen/Qwen2.5-0.5B-Instruct --max-tokens 1000 --prompt "如何分析操作系統中用戶態CPU使用率高的根本原因?"
==========
分析操作系統中用戶態CPU使用率高的根本原因,通常需要從以下幾個方面進行深入分析:
1. **系統資源使用情況**:首先,需要了解系統的總資源使用情況,包括CPU、內存、磁盤I/O等。如果系統資源使用率過高,可能意味著系統負載過高,需要進一步分析。
2. **進程和線程管理**:檢查進程和線程的使用情況。如果某些進程或線程占用大量CPU資源,可能是由于它們的運行狀態不穩定或資源分配不當導致的。
3. **內存使用情況**:檢查內存使用情況,包括內存的分配和釋放。如果內存分配過多或釋放不足,可能會導致CPU使用率過高。
4. **磁盤I/O使用情況**:檢查磁盤I/O使用情況,包括磁盤的讀寫速度和磁盤I/O的總請求量。如果磁盤I/O使用率過高,可能是由于磁盤的性能問題或磁盤I/O的調度策略不當導致的。
5. **系統調度和資源管理**:檢查系統調度和資源管理的策略,包括進程調度、內存分配和磁盤I/O調度等。如果這些策略不當,可能會導致CPU使用率過高。
6. **系統優化和調整**:根據上述分析,可以考慮對系統進行優化和調整,例如調整進程和線程的調度策略、優化磁盤I/O調度策略、調整內存分配策略等。
7. **系統監控和日志分析**:通過系統監控和日志分析,可以更深入地了解CPU使用率高的原因,包括異常的CPU使用情況、異常的內存使用情況、異常的磁盤I/O使用情況等。
8. **性能測試和優化**:進行性能測試和優化,找出性能瓶頸,然后針對性地進行優化。
通過上述分析和優化,可以有效地解決用戶態CPU使用率高的問題,提高系統的性能和穩定性。
==========
Prompt: 42 tokens, 1476.203 tokens-per-sec
Generation: 404 tokens, 194.790 tokens-per-sec
Peak memory: 1.044 GB

驗證微調后的模型

(mlx) gaolou@GaodeMacBook-Pro mlx-lm % mlx_lm.generate --model /Users/gaolou/Desktop/AI研究/AI工具集/mlx/mlx-lm/Qwen2.5-0.5B-7dresar-v0.1 --max-tokens 1000 --prompt "如何分析操作系統中用戶態CPU使用率高的 根本原因?"
==========
根據7DRESAR性能分析決策樹模型,分析us cpu使用率高根本原因的步驟如下:
1. 首先要明確是us cpu使用率,而非其他cpu計數器。
2. 然后查看us cpu消耗在哪個進程上。
3, 再進一步根據進程號查看是哪一個線程消耗了us cpu。注意:如果不是某一個特定線程一直消耗us cpu,而是有多個線程消耗cpu,并且線程號在不斷切換,則需要判斷線程數設置是否合理。
4. 當明確了某個線程消耗了us cpu之后,再多次打印線程棧,以確定正在執行的代碼。
5. 最后根據線程棧信息,確定是哪個代碼片段消耗了us cpu。在java的應用中,可以用arthas之類的工具來跟蹤方法的執行時間,其他的語言中也有類似的工具。
==========
Prompt: 42 tokens, 1410.335 tokens-per-sec
Generation: 187 tokens, 196.516 tokens-per-sec
Peak memory: 1.044 GB

以上輸出,格式有整理,其他沒修改。

最后,你想看哪些和AI大模型相關的技術點?可以留言,我們一一拆解。

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

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

相關文章

Docker —— 隔離的基本操作(1)

Docker —— 隔離的基本操作&#xff08;1&#xff09; 1. 用戶和權限隔離2. 進程隔離3. 文件系統隔離4. 資源隔離&#xff08;Cgroups&#xff09;5. 網絡隔離6. 安全增強&#xff08;SELinux/AppArmor&#xff09;7. 容器技術&#xff08;Docker/LXC&#xff09;總結 dd基本語…

PWN基礎-ROP技術-ret2syscall突破NX保護

ROP&#xff08;Return-Oriented Programming&#xff0c;返回導向編程&#xff09;是一種利用程序已有代碼片段來執行任意指令的攻擊技術&#xff0c;常用于繞過現代系統的安全機制&#xff0c;尤其是不可執行棧&#xff08;NX&#xff09;。 常規檢查一下&#xff1a; 32 位…

關于 js:2. 對象與原型鏈

一、對象 對象是&#xff1a; 鍵值對集合 所有非原始類型&#xff08;number、string、boolean、null、undefined、symbol、bigint&#xff09;都是對象 支持動態增刪屬性 每個對象都繼承自 Object.prototype&#xff0c;具備原型鏈結構 1. 對象的創建方式 字面量方式&a…

AtCoder 第404場初級競賽 A~E題解

A Not Found 【題目鏈接】 原題鏈接:A - Not Found 【考點】 枚舉,數組計數法 【題目大意】 找到在26個字母中,未輸出的一個字母,如果有多個,輸出其中一個即可。 【解析】 遍歷字符串,使用數組的記錄對應字母的出現次數,最后遍歷數組為0的下標,輸出對應的字母即…

檢測內存條好壞有工具,推薦幾款內存檢測工具

檢測內存條的好壞其實很重要&#xff0c;這直接就關系到計算機是不是能夠穩定的運行&#xff0c;也有一部分人就會關注內存檢測的工具。你應該如何來選擇的&#xff0c;不如看一下以下的這幾個。 MemTest86是一個比較受到大家喜歡的內存檢測工具&#xff0c;會支持各種類型&…

01Introduction

文本主題 關于協作式多智能體強化學習的簡介 文章目錄 文本主題一、MARL主要框架集中式訓練與執行 (CTE)集中式訓練分布式執行&#xff08;CTDE&#xff09;分布式訓練與執行&#xff08;DTE&#xff09; 二、Dec-POMDPjoint policy V and Q 一、MARL主要框架 MARL當前主流的…

小程序問題(記錄版)

1、樣式不生效 在h5上生效 但是 小程序上沒反應 解決辦法&#xff1a;解除組件樣式隔離 1、isolated 表示啟用樣式隔離&#xff0c;在自定義組件內外&#xff0c;使用 class 指定的樣式將不會相互影響&#xff08;一般情況下的默認值&#xff09; 2、apply-shared 表示頁面 wxs…

排列組合算法:解鎖數據世界的魔法鑰匙

在 C 算法的奇幻世界里&#xff0c;排列和組合算法就像是兩把神奇的魔法鑰匙&#xff0c;能夠幫我們解鎖數據世界中各種復雜問題的大門。今天&#xff0c;作為 C 算法小白的我&#xff0c;就帶大家一起走進排列和組合算法的奇妙天地。 排列算法&#xff1a;創造所有可能的順序…

深入探討 UDP 協議與多線程 HTTP 服務器

深入探討 UDP 協議與多線程 HTTP 服務器 一、UDP 協議&#xff1a;高效但“不羈”的傳輸使者 UDP 協議以其獨特的特性在網絡傳輸中占據一席之地&#xff0c;適用于對實時性要求高、能容忍少量數據丟失的場景。 1. UDP 的特點解析 無連接&#xff1a;無需提前建立連接&…

引用第三方自定義組件——微信小程序學習筆記

1. 使用 npm 安裝第三方包 1.1 下載安裝Node.js 工具 下載地址&#xff1a;Node.js — Download Node.js 1.2 安裝 npm 包 在項目空白處右鍵彈出菜單&#xff0c;選擇“在外部終端窗口打開”&#xff0c;打開命令行工具&#xff0c;輸入以下指令&#xff1a; 1> 初始化:…

數字化轉型是往哪轉?怎么轉?

寫在前面 當下數字化轉型的風還在吹&#xff0c;企業數字化轉型過程中以數字化項目滿足業務化需求&#xff0c;已有相關數字化平臺的話&#xff0c;就搞大平臺、大系統&#xff0c;解決數據孤島。政府數字化轉型亦是如此&#xff0c;某些省市發了系統優化整合的文&#xff0c;旨…

嵌入式學習--江協51單片機day2

今天學的不多&#xff0c;內容為&#xff1a;靜態、動態數碼管的控制&#xff0c;模塊化編程和lcd1602調試工具 數碼管的控制 由于內部電路的設計&#xff0c;數碼管每次只能顯示一個位置的一個數字&#xff0c;動態的實現是基于不同位置的閃爍頻率高。 P2_4,P2_3,P2_2控制位…

《數據結構:二叉搜索樹(Binary Search Tree)》

文章目錄 :red_circle:一、二叉搜索樹的概念:red_circle:二、二叉搜索樹的性能分析:red_circle:三、二叉搜索樹的操作&#xff08;一&#xff09;插入&#xff08;二&#xff09;查找&#xff08;三&#xff09;刪除 :red_circle:四、二叉搜索樹的實現代碼&#xff08;一&#…

【Linux相關】實時查看Nvidia-smi使用情況

【Linux相關】 實時查看Nvidia-smi使用情況 文章目錄 實時查看Nvidia-smi使用情況 實時查看Nvidia-smi使用情況 在本地終端執行下述語句 watch -n 1 nvidia-smi每一秒都會更新&#xff0c;將 1 改為其他數字可以滿足不同需求

Kotlin密封類優化Android狀態管理

Kotlin 的密封類&#xff08;Sealed Class&#xff09;確實是 Android 開發中管理復雜 UI 狀態的利器。它通過類型安全的層次結構&#xff0c;讓狀態管理代碼更加清晰簡潔。讓我們從實際開發場景出發&#xff0c;深入探討其應用&#xff1a; 一、密封類核心優勢 受限的類繼承…

JavaWeb:SpringBootWeb快速入門

介紹 Spring SpringBoot 入門程序 需求 步驟 修改端口 1.新建application.yml #設置端口 server:port: 8081入門程序-分析 為什么main方法能啟動web應用-內嵌tomcat 為什么tomcat能定位HelloController程序 請求先到DisPatcherServlet&#xff0c;根據路徑轉發 小結 1.…

Unity學習筆記二

文章目錄 3D數學公共計算結構體Mathf常用成員三角函數 向量Vector3基本成員點乘叉乘插值運算 四元數引出基本概念Quaternion結構體成員四元數運算 更多的Mono延遲函數協同程序多線程相關協程概念辨析協程本體協程調度器 Resources資源動態加載特殊文件夾Resources同步加載Resou…

為什么Transformer推理需要做KV緩存

一、我們先來回憶一下在transformer中KV在哪里出現過&#xff0c;都有什么作用&#xff1f; α的計算過程&#xff1a; 這里引入三個向量&#xff1a; 圖中的q為Query&#xff0c;用來匹配key值 圖中的k為key,用來被Query匹配 圖中的Value&#xff0c;是用來被進行加權平均的 由…

【大模型面試】大模型(LLMs)高頻面題全面整理(★2025年5月最新版★)

【大模型面試】大模型&#xff08;LLMs&#xff09;高頻面題全面整理&#xff08;★2025年5月最新版★&#xff09; &#x1f31f; 嗨&#xff0c;你好&#xff0c;我是 青松 &#xff01; &#x1f308; 自小刺頭深草里&#xff0c;而今漸覺出蓬蒿。 本筆記適合大模型初學者和…

JAVA:使用 iTextPDF 處理 PDF 的技術詳解

1、簡述 iTextPDF 是一個功能強大的 Java PDF 庫,可以用來創建、修改和處理 PDF 文檔。通過它,我們可以完成如生成 PDF、讀取 PDF 內容、添加水印、合并 PDF 等多種操作。本篇博客將詳細介紹 iTextPDF 的使用方法,并提供一些實踐樣例,幫助開發者快速上手。 樣例代碼: htt…