论文笔记--Llama 2: Open Foundation and Fine-Tuned Chat Models

news2025/4/8 5:48:26

论文笔记--Llama 2: Open Foundation and Fine-Tuned Chat Models

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 预训练Pretraining
      • 3.1.1 预训练细节
      • 3.1.2 Llama2模型评估
    • 3.2 微调Fine-tuning
      • 3.2.1 Supervised Fine-Tuning(FT)
      • 3.2.2 Reinforcement Learning with Human Feedback(RLHF)
        • 3.2.2.1 偏好数据
        • 3.2.2.2 Reward Modeling(RM)
        • 3.2.2.3 Iterative Fine-Tuning
      • 3.2.3 多轮对话一致性
      • 3.2.4 RLHF结果
    • 3.3 Safety
      • 3.3.1 Safety in Pretraining
      • 3.3.2 Safety Fine-Tuning
      • 3.3.3 Red Teaming
      • 3.3.4 Safety评估
  • 4. 文章亮点
  • 5. 原文传送门
  • 6. References

1. 文章简介

  • 标题:Llama 2: Open Foundation and Fine-Tuned Chat Models
  • 作者:Touvron H, Martin L, Stone K, et al.
  • 日期:2023
  • 期刊:arxiv preprint

2. 文章概括

  文章训练并开源了模型Llama2系列模型。文章对Llama2做了大量的安全和有用性的微调,并进行了大量的数值试验,实验证明,Llama2-chat比其它被比较的开源的chat模型(BLOOM,LLaMa1,Falcon)效果好,且有潜力成为一些未开源chat模型(ChatGPT,BARD)的替代。meta公司发行了如下开源模型

  • LLAMA2模型:LLAMA1[1]的更新版本,包含7B,13B,70B参数三个版本
  • LLAMA2-CHAT模型:在LLAMA2之上对对话场景进行微调的chat模型,包含7B,13B,70B参数三个版本。文章整体框架如下图
    整体框架

  由于文章内容比较多,笔者挑选了其中重点的部分进行介绍。全部数值实验结果可参见原文。(这篇文章读起来和写起来真的很费力😣,因为文章很长,细节很多,而且好多技术细节写的好晦涩啊)

3 文章重点技术

3.1 预训练Pretraining

3.1.1 预训练细节

  文章使用自回归Transformer模型,在LLAMA1[1]的基础之上进行了一些增强,具体包括

  1. 增加数据:Llama的语料库包含2trillion个tokens,且全部为公共可用数据,不包含Meta自己的数据集
  2. 增加40%的token数
  3. 增加上下文长度从2048到4096
  4. 修改attention为Grouped-query attention(GQA),以提升推理效率
      具体差异可见下表
    llama2模型参数量

3.1.2 Llama2模型评估

  文章对上述Llama2模型与Llama1,MosaicML,Falcon这些开源模型效果进行了评估、比对。文章选择了包含代码、常识推理、世界知识、阅读理解、数学、MMLU等benchmarks进行了数值实验。如下表所示,Llama2模型效果超过了Llama1,且超过所有其他被比较的开源模型。
llama2开源模型数值试验
  此外,文章将Llama2模型与GPT-3.5、GPT-4,PaLM,PaLM-2-L这些闭源模型进行了比较,通过调用这些模型的API来获得在benchmarks上面的数值实验结果。从下表可以看出,在Llama2 70B和GPT-4等闭源模型中还是有一定的性能差距的。
llama2闭源模型数值试验

3.2 微调Fine-tuning

3.2.1 Supervised Fine-Tuning(FT)

  类似于LIMA[2]的结论,文章发现少量高质量的SFT数据的效果超过使用大量无法保证质量的三方数据。文章发现,大约几万条高质量的SFT标注就可以实现高精度的结果,最终文章标注了27540条SFT数据

3.2.2 Reinforcement Learning with Human Feedback(RLHF)

3.2.2.1 偏好数据

  类似InstructGPT[3],文章尝试收集人类偏好数据,并通过RLHF来将模型和人类偏好和指令遵循进行对齐。
  首先,文章通过如下程序收集人类偏好数据:1) 标记员写一个prompt 2) 让模型基于该prompt生成两个回答 3) 标记员基于给定的标准进行二选一 4) 标记员给出两个回答的差异程度:significantly better, better, slightly better或者unsure。按照如上程序,文章每周迭代收集helpfulness和safety两个基准的偏好数据,从而迭代训练llama2-chat模型。
  此外,标记员需要给出一个安全性的标签,标签指向三个类别:1) 被选择的答案是安全的,另一个答案不安全 2) 两个答案都是安全的 3) 两个答案都是不安全的。结果表明三种选择的占比分别为18%, 47%和35%。文章将上述第一个分类的数据移除,因为安全的回答自然会被人类偏爱。

3.2.2.2 Reward Modeling(RM)

  接下来,文章利用上述helpfulness, safety偏好数据分别训练两个奖励模型Helpfulness RMSafety RM。文章利用预训练的chat模型作为RM的初始化参数,这样可以包含预训练阶段学习到的知识,模型参数和架构与预训练阶段一致,除了将用于预测token的分类head修改为一个计算奖励的份的回归head。
  为了学习人类偏好数据,文章参考InstructGPT[3]中的ranking损失函数 L r a n k i n g = − log ⁡ ( σ ( r θ ( x , y c ) − r θ ( x , y r ) ) ) \mathcal{L}_{ranking} = - \log (\sigma (r_{\theta} (x, y_c) - r_{\theta}(x, y_r))) Lranking=log(σ(rθ(x,yc)rθ(x,yr))),其中 x x x为prompt, y c y_c yc为被选择的回答, y r y_r yr为被拒绝的回答, r θ r_{\theta} rθ表示奖励模型的输出分值。上述损失函数旨在令被偏好的回答 y c y_c yc的得分尽可能高于被拒绝的回答 y r y_r yr的得分。在此基础上,文章将收集到的偏好程度数据囊括进来: L r a n k i n g = − log ⁡ ( σ ( r θ ( x , y c ) − r θ ( x , y r ) ) − m ( r ) ) \mathcal{L}_{ranking} = - \log (\sigma (r_{\theta} (x, y_c) - r_{\theta}(x, y_r))-m(r)) Lranking=log(σ(rθ(x,yc)rθ(x,yr))m(r)),其中 m ( r ) m(r) m(r)表示偏好程度(前面收集的significantly better, better, slightly better或者unsure), m ( r ) m(r) m(r)越大表示被选择的回答被人类的偏好程度越明显,从而两个回答之间的得分差异要更大。
  最后,将Helpfulness RM和Safety RM模型分别在Meta Helpfulness data和Meta Safety data上训练得到连个奖励模型。RM满足scaling law,即在相同的数据集上,模型越大,效果越好:
RM scaling law

3.2.2.3 Iterative Fine-Tuning

  由于Meta的人类偏好数据按周更新,从而可通过更新的数据迭代训练模型:RLHF-V1, …, RLHF-V5。具体来说,每个版本的RLHF模型可通过下述两种策略进行微调的:

  • PPO(proximal Policy Optimization):标准RLHF策略,第 t t t步的样本为 t − 1 t-1 t1步的更新策略的函数。PPO的目的是最大化奖励函数的期望,奖励函数定义如下: R ( g ∣ p ) = R ~ c ( g ∣ p ) − β D K L ( π θ ( g ∣ p ) ∥ π 0 ( g ∣ p ) ) R(g|p) = \tilde{R}_c(g|p) - \beta D_{KL} (\pi_{\theta} (g|p) \Vert \pi_0 (g|p)) R(gp)=R~c(gp)βDKL(πθ(gp)π0(gp)),其中 π 0 ( g ∣ p ) \pi_0 (g|p) π0(gp)表示初始化的策略,公式第二项的作用为限制当前策略距离最初策略不要太远, R ~ c \tilde{R}_c R~c表示奖励函数得分的logits+白化,定义如下: R ~ c ( g ∣ p ) = WHITEN ( LOGIT ( R c ( g ∣ p ) ) ) R c ( g ∣ p ) = { R s ( g ∣ p ) ,  if IS_SAFETY ( p )  or  R s ( g ∣ p ) < 0.15 R h ( g ∣ p ) ,  otherwise \tilde{R}_c(g|p) = \text{WHITEN}(\text{LOGIT} (R_c(g|p)))\\ R_c(g|p) = \begin{cases} R_s(g|p), \ \text{if}\ \text{IS\_SAFETY}(p)\ \text{or} \ R_s(g|p) < 0.15\\ R_h(g|p) , \ \text{otherwise}\end{cases} R~c(gp)=WHITEN(LOGIT(Rc(gp)))Rc(gp)={Rs(gp), if IS_SAFETY(p) or Rs(gp)<0.15Rh(gp), otherwise,简单解释下上式,IS_SAFETY就是代表模型中可能引发不安全回答的prompt p p p,即对不安全的prompt或safety RM模型 R s R_s Rs给出得分小于0.15的prompt,我们让RLHF优先学习安全奖励模型,对其它prompt才学习有用性模型 R h R_h Rh
  • Rejection Sampling fine-tuning(RSFT):从模型输出中采样K个样本,通过RM选择最好的候选作为新的gold standard,在这些样本上对模型进行梯度更新。文章只对70B的模型进行RSFT,对7B和13B的模型,文章通过70B的rejection sample进行微调,相当于对大模型的蒸馏。

  在V4版本之前,文章通过RSFT进行微调,在V4之后,文章通过两个策略结合(先应用RSFT,再应用PPO)进行微调。此外,文章发现,迭代过程中模型出现了遗忘。为了解决此问题,文章每次都会将早期版本的样本包含进入微调的数据集。

3.2.3 多轮对话一致性

  作者发现,在多轮对话之后,RHLF模型很容易忘记最初的指令。为此文章提出了Ghost Attention(GAtt)。给定消息序列 [ u 1 , a 1 , … , u n , a n ] [u_1, a_1, \dots, u_n, a_n] [u1,a1,,un,an],其中 u i u_i ui代表用户在第 i i i轮给出的信息, a i a_i ai为对应的模型回答。假设用户在最初的时候给出了指令inst(比如act as …)。为使模型在每一轮对话中遵循该指令,一种简单的方法是将inst直接拼接到每一个user信息中,即 [ u 1 + i n s t , a 1 , u 2 + i n s t , a 2 , … , u n + i n s t , a n ] [u_1+inst, a_1, u_2+inst, a_2, \dots, u_n+inst, a_n] [u1+inst,a1,u2+inst,a2,,un+inst,an]。然后文章通过Rejection Sampling的到上述数据的回答(作为标记数据?);结下来在学习该标记数据时,只在第一轮增加inst,即 [ u 1 + i n s t , a 1 , u 2 , a 2 , … , u n , a n ] [u_1+inst, a_1, u_2, a_2, \dots, u_n, a_n] [u1+inst,a1,u2,a2,,un,an]还原到真实状态,但这样得到的结果会造成其与标记数据的mismatch,从而文章在训练每一轮对话的时候将该轮对话之前的token loss全部设置为0。
  GAtt的效果非常好,实验发现GAtt下的inst可以持续到20+轮次的对话,直至达到最大的context长度。

3.2.4 RLHF结果

  首先文章基于模型对RLHF进行自动评估。为了确定RW自动评估的效果是否准确,文章收集了一系列的包含有用性和安全性的prompts测试机,然后让标记员评估回答的Likert Score。我们发现RM给出的分数和人类的Likert score强相关。基于RM对不同阶段的模型结果进行评估,文章发现RM模型和ChatGPT模型对llama2-chat模型评估效果都很好,在V3之后helpfulness和safety指标上都高于ChatGPT(50%),如下图所示。
llama2-chat自动评估
  文章又进行了人工评估:令人类标记员在4000个单轮+多轮对话上对主要模型版本的回答质量进行打分(多轮对话当作整体)。如下图所示,llama2-chat模型在单轮对话和多轮对话上表现均优于所有开源模型
llama2-chat人类评估

3.3 Safety

3.3.1 Safety in Pretraining

  首先文章预训练数据集未包含任何包含个人信息的数据,且未使用meta自己用户的数据,除此之外未进行其它过滤。
  文章对预训练语料库进行了统计分析

  • 在英语语料中,He出现的次数相比于She出现的要多,从而学习到的模型很可能会生成更多的He相关的语句
  • 文章考虑了宗教、性别、国际、种族和性取向这5种敏感话题,并计算语料库中每个话题的top5元素,如下表所示。可以看到,female出现次数更多(尽管she出现次数少),这说明这些词之间的表达语境可能不同。在国籍上,语料库中包含更多的西方国家。
    top5 terms in 5 axes
  • 文章通过HateBERT评估了英语语料中的有毒语料(toxicity),发现仅0.2%的文档中可能包含有毒文本(似然分数>=0.5)
  • 文章使用fastText来进行语言检测,超过0.5似然分数的认为属于该语言。最终检测结果表明89.7%的语料,从而针对其它语言要谨慎使用llama2。

  此外,文章通过safety benchmarks来对预训练模型进行安全分析,具体包含以下benchmarks:

  • Truthfulness:通过TruthfulQA数据来检测模型输出是否可靠、真实、符合常理。
  • Toxicity:通过ToxiGen来检测有毒回答
  • Bias:通过BOLD检测模型生成是否有政治倾向

  如下表所示,相比于llama1-7B,llama2-7B提升了21.37%的truthfulness,降低了7.61%的toxicity,且bias有提升。但相比于其它开源模型,llama2的toxicity还是很高,这是因为文章用到的数据集未经系统的过滤。但增加过滤之后模型很难再执行一些诸如hate speech的任务了。
safety benchmarks

3.3.2 Safety Fine-Tuning

  接下来文章介绍了在FT阶段的safety策略,主要包含以下几种

  • Supervised Safety FT:首先将adversarial prompts(用户选择的可能造成不安全回答的prompts)和安全的生成内容结合,将该数据放入SFT数据中。从而模型可以在RLHF之前就和安全指导对齐。
  • Safety RLHF:在RLHF阶段,文章训练了一个安全的safety RM来指导模型生成安全的回答。Safety RLHF的效果如下图所示,可以看到,下图左的Safety RM分值在应用safety RLHF之后(y轴)相比于之前(x轴)有明显的提升,且下图右的helpfulness RM分值在应用safety RLHF之后(y轴)相比于之前(x轴)未发生明显降低。
    safety RLHF
  • Safety Context Distillation:最后,文章将一个preprompt作为前文介绍的inst(比如:you are a safe and responsible preprompt )和prompt结合,让模型生成安全的回答。

  此外,文章证明了,当helpfulness数据不变时,safety数据越多,模型处理不安全prompts的能力越强,且低安全性的回答越少(ligher score),如下图所示
safety data scaling
  为了判断模型是否有false refusal(拒绝安全的prompts),文章在helpfulness数据集和精心设计的安全的但包含一些敏感词的prompts上(borderline dataset)进行评估,结果发现在helpfulness数据上false refusal大约仅有0.05%,占比很低。但在精心设计的borderline dataset上大的多(20%以上),说明llama2-chat针对此类数据的判断能力仍需提高。

3.3.3 Red Teaming

  文章组建了一个red teaming组,包含各个领域的专家来对不同风险分类进行模拟风险,从而减少模型的安全性问题。参与者需要标注出对话的风险领域、风险等级,作者会根据标注结果进行训练策略调整。
  定义模型的鲁棒性指标为 γ \gamma γ,文章发现在几轮red teaming 和模型优化之后,模型鲁棒性有所提升: γ : 1.8 → 0.45 \gamma : 1.8 \to 0.45 γ:1.80.45

3.3.4 Safety评估

  文章收集了2000个adversial prompts来进行人工评估,其中1351个是单轮对话,623个是多轮对话。然后人工对模型的安全性进行打分:1~5,分数越高表示越安全且有用。考虑打分1-2为violation,则如下图左所示,llama-整体的violation在所比较的模型中最低,且下图右表明llama2整体的整体打分也高于其它模型。
safety measures

4. 文章亮点

  文章训练并发行了一系列llama2模型,其中llama2-chat是迄今为止开源的chat模型中表现最好的。且文章给出的llama2给出了一系列安全性增强策略,可供其它LLM参考。

5. 原文传送门

Llama 2: Open Foundation and Fine-Tuned Chat Models
llama2 模型
llama2 代码

6. References

[1] 论文笔记–LLaMA: Open and Efficient Foundation Language Models
[2] 论文笔记–LIMA: Less Is More for Alignment
[3] 论文笔记–Training language models to follow instructions with human feedback
[4] GAtt示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/869274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql 技术总结

一、mysql 索引&#xff08;左小右大&#xff09; 下图中为二叉树 mysql索引类型以及数据结构 BTREE结构 BTree又叫多路平衡搜索树&#xff0c;一颗m叉的BTree特性如下&#xff1a; 树中每个节点最多包含m个孩子。 除根节点与叶子节点外&#xff0c;每个节点至少有[ceil(m/2…

SSH连接阿里服务器搭建JAVA环境

远程连接ssh windows利用PowerShell远程连接ssh 1.打开PowerShell 方法1 1&#xff09;.同时按下Windows R键以弹出“运行”对话框 2&#xff09;.在框中键入PowerShell&#xff0c;然后单击OK(确定)按钮 方法2 1&#xff09;在任意目录下&#xff0c;shift右键&#…

每日一题——寻找旋转排序数组中的最小值(I)

寻找旋转排序数组中的最小值——I 题目链接 思路 首先我们以数组[1,2,3,4,5,6,7]举个例子&#xff0c;经过旋转后它无非就这两种情况&#xff1a; 情况一&#xff1a;旋转过后数组变成两段有序数列&#xff1a; 情况二&#xff1a;旋转过后数组不变&#xff0c;仍然有序&…

流量,日志分析--理论

提供资料&#xff1a; Wireshark 基本语法&#xff0c;基本使用方法&#xff0c;及包过虑规则 : https://blog.csdn.net/qq_17457175/article/det ails/53019490 ctf 常见流量分析题目类型 : https://ctf-wiki.org/misc/traffic/introduction/ windows 日志 : https://jone…

内网横向移动—ARP攻击图片捕捉数据劫持DNS劫持

内网横向移动—ARP攻击&图片捕捉&数据劫持&DNS劫持 1. ARP1.1. APR介绍1.1.1. ARP工作原理1.1.2. APR欺骗工作原理 1.2. 环境准备1.3. 适用场景 2. ARP断网攻击演示2.1. 使用kali进行演示2.1.1. nmap判断存活2.1.2. 安装工具2.1.3. 攻击Windows 10虚拟机2.1.3.1. 查…

VMware 16 Pro将电脑里的文件移动到虚拟机中【附带可能出现的问题和解决】

VMware 16 Pro将电脑里的文件移动到虚拟机中 1.使用VM tools 打开VM ware会出现下面的&#xff0c;直接点击安装。 点击下一步 选哪个都行 之后会重启虚拟机&#xff0c;然后就可以使用了。 我没有程序可以打开压缩包&#xff0c;显示我的虚拟机网络没法用&#xff0c;点击…

Redis实战案例26-签到功能

1. BitMap 假如用户数量为一千万&#xff0c;平均每人每年签到次数为 10 次&#xff0c;则这张表一年的数据量为 1 亿条&#xff1b; 而每签到一次需要使用&#xff08;8 8 1 1 3 1&#xff09;共 22 字节的内存&#xff0c;一个月则最多需要 600 多字节&#xff0c;如果是…

配置Arduino+ESP32走过的巨坑

项目场景&#xff1a; 前几天去淘宝买了块ESP32拿来用&#xff0c;配置Arduino最新版ESP32 2.0.11走过的巨坑。 问题描述 先安装好了ArduinoIDE最新版&#xff08;教程里介绍去官网下&#xff09;&#xff0c;然后配置ESP32开发板&#xff0c;后面发现安装速度惊人。 去找加速…

SpringBoot项目(验证码整合)——springboot整合email springboot整合阿里云短信服务

目录 引出springboot整合email配置邮箱导入依赖application.yml配置email业务类测试类 springboot整合阿里云短信服务申请阿里云短信服务测试短信服务获取阿里云的accessKeyspringboot整合阿里云短信导包工具类 总结 引出 1.springboot整合email&#xff0c;qq邮箱&#xff0c;…

分布式 - 消息队列Kafka:Kafka消费者分区再均衡(Rebalance)

文章目录 01. Kafka 消费者分区再均衡是什么&#xff1f;02. Kafka 消费者分区再均衡的触发条件&#xff1f;03. Kafka 消费者分区再均衡的过程&#xff1f;04. Kafka 如何判定消费者已经死亡&#xff1f;05. Kafka 如何避免消费者的分区再均衡?06. Kafka 消费者分区再均衡有什…

Matlab绘制圆形(rectangle函数、viscircles函数和圆的参数方程)

基于matlab绘制圆形 一、rectangle函数 对于绘制圆心坐标为&#xff08;x&#xff0c;y&#xff09;半径为r的圆形&#xff0c;函数为&#xff1a; x0; y0; r1; rectangle(Position, [x-r,y-r,2*r,2*r], Curvature, [1 1],EdgeColor, r); axis equalEdgeColor表示颜色 二、…

STM32F429IGT6使用CubeMX配置串口通信配置DMA

1、硬件电路 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置USART1引脚 4、生成工程配置 5、部分代码 /* USER CODE BEGIN 0 */ volatile uint8_t rx_len 0; //接收一帧数据的长度 volatile uint8_t recv_end_flag 0; //一帧数据接收完成标志 uint8…

42. range函数—生成器函数-更新

【目录】 文章目录 1. range( )函数是什么&#xff1f;2. 知识回顾-列表的切片3. range( )函数的语法3.1 range( )函数语法3.2 参数说明3.3 列表切片和range函数的区别 4. 实操练习4.1 参数为一个正整数4.2 参数为04.3 参数为一个负整数4.4 有2个参数4.5 有3个参数4.6 步长为负…

【Freertos基础入门】freertos任务的优先级

文章目录 前言一、任务优先级1.Tick2.修改任务优先级 总结 前言 本系列基于stm32系列单片机来使用freerots 任务管理是实时操作系统&#xff08;RTOS&#xff09;的核心功能之一&#xff0c;它允许开发者以并发的方式组织和管理多个任务。FreeRTOS 是一个流行的开源RTOS&…

使用关键词一站式精准搜索指定期刊或会议论文集中的论文

问题描述 如题&#xff0c;例如&#xff0c;想要找点某主题的相关文献&#xff0c;当然要看本领域权威刊物了&#xff0c;假如你想从CCF人工智能类A级期刊找点文本相似度的论文&#xff0c;逐个点开期刊主页进行搜索&#xff0c;那就有点繁琐&#xff0c;不是一站式。 解决方…

小程序商城开发制作

当开发一个商城小程序时&#xff0c;费用是一个非常重要的考虑因素。然而&#xff0c;准确回答这个问题是有一定困难的&#xff0c;因为开发商城小程序的费用取决于多个因素。以下是一些可能影响价格的主要因素&#xff1a; 1. 功能需求&#xff1a;商城小程序的复杂程度和功能…

华为:为员工提供高质量住宿和配套服务,不对外经营房地产业务

华为官方发布声明指出&#xff0c;东莞棠雅实业投资有限公司是一家专门负责建设和管理华为员工园区配套人才房的公司&#xff0c;而不是从事房地产业务的企业。这意味着该公司的主要职责是为华为数万名员工提供高质量的住宿和配套服务&#xff0c;为其创造舒适便利的工作和生活…

[SpringBoot3]基础篇

二、SpringBoot基础篇 2.1什么是SpringBoot SpringBoot是目前流行的微服务框架&#xff0c;倡导“约定优于配置”&#xff0c;其目的是用来简化新Spring应用的初始化搭建以及开发过程。SpringBoot提供了很多核心的功能&#xff0c;比如自动化配置starter&#xff08;启动器&a…

【配置环境】Linux下安装MySQL

目录 一&#xff0c;环境 二&#xff0c;安装步骤 1.使用包管理器安装MySQL 2.配置MySQL的安全选项 3.设置root用户使用密码进行身份验证&#xff08;可选&#xff09; 三&#xff0c;拓展知识 1.如何修改MySQL的密码策略&#xff1f; 一&#xff0c;环境 VMware Workst…

Linux —— 文件系统

目录 一&#xff0c;背景 二&#xff0c;文件系统 一&#xff0c;磁盘简介 磁盘分为SSD、机械磁盘&#xff1b;机械磁盘&#xff0c;即磁盘高速转动&#xff0c;磁头移动到读写扇区所在磁道&#xff0c;让磁头在目标扇区上划过&#xff0c;即可完成对扇区的读写操作&#xff…