LoRA (Low-Rank Adaptation) 的核心与原理

LoRA (Low-Rank Adaptation) 的核心与原理

flyfish

1. 背景与动机

1.1 模型微调的挑战

深度学习中大型模型(如 GPT 等)的参数量巨大(通常在数十亿甚至数千亿级别)。对这些模型进行微调时,主要面临以下挑战:

  • 计算成本高:全参数微调需要优化所有参数,这对存储和计算资源要求极高。
  • 数据适配难度大:不同任务的数据分布可能大不相同,对全参数微调需要更多的数据和训练时间。
  • 存储开销大:每个任务都需要保存一整套模型权重,导致存储压力巨大。
1.2 低秩近似的启发

LoRA 的灵感来自 矩阵低秩近似 的思想。大型模型的权重矩阵通常具有冗余性,可以通过低秩分解减少参数量,同时保留大部分信息。因此,LoRA 提出了以低秩矩阵更新权重的思路。


2. LoRA 的核心思想

2.1 参数分解

假设我们需要微调的权重矩阵为 W W W(形状为 d × k d \times k d×k),其更新形式通常为:
W ′ = W + Δ W W' = W + \Delta W W=W+ΔW
其中 Δ W \Delta W ΔW 是要优化的权重更新矩阵。

LoRA 的核心是将 Δ W \Delta W ΔW 分解为两个低秩矩阵 A A A B B B 的乘积:
Δ W = A B \Delta W = A B ΔW=AB
其中:

  • A ∈ R d × r A \in \mathbb{R}^{d \times r} ARd×r B ∈ R r × k B \in \mathbb{R}^{r \times k} BRr×k
  • r ≪ min ⁡ ( d , k ) r \ll \min(d, k) rmin(d,k) 是低秩的维度,远小于 W W W 的原始维度;
  • 原始参数 W W W 不变,只更新小规模的 A A A B B B
2.2 权重更新形式

将低秩分解融入到模型训练中后,权重矩阵的更新可以写为:
W ′ = W + A B W' = W + A B W=W+AB
这种形式仅需要优化 A A A B B B,极大地减少了训练时的参数量和内存开销。


3. 数学原理

3.1 矩阵低秩近似

LoRA 的核心原理基于矩阵低秩近似。对于一个高维矩阵 W W W,我们假设它的更新 Δ W \Delta W ΔW 存在低秩结构,即:
Δ W ≈ A B \Delta W \approx A B ΔWAB
这种假设来源于高维数据中普遍存在的冗余性。例如,在自然语言处理任务中,词向量或句子向量的分布通常在低维子空间中具有主要的变化方向。

3.2 奇异值分解 (SVD)

低秩近似的数学基础是 奇异值分解 (SVD)。假设矩阵 W W W 的 SVD 为:
W = U Σ V ⊤ W = U \Sigma V^\top W=UΣV

  • U U U V V V 是正交矩阵,表示正交方向;
  • Σ \Sigma Σ 是对角矩阵,其对角线上的奇异值表示矩阵的拉伸强度。

通过截断 Σ \Sigma Σ 中较小的奇异值,矩阵可以被近似为低秩形式。这一思想为 LoRA 提供了理论依据。

3.3 优化形式

在训练过程中,LoRA 只优化 A A A B B B,而不是完整的 W W W。这种分解形式有效减少了参数量,优化问题的搜索空间从 d × k d \times k d×k 减少到 r × ( d + k ) r \times (d + k) r×(d+k)


4. LoRA 的实现细节

4.1 插入位置

LoRA 通常插入到模型的特定层,例如 Transformer 的注意力层或前馈网络层。具体来说:

  1. 注意力层的投影矩阵:用于计算 Q , K , V Q, K, V Q,K,V 的权重矩阵适合作为低秩分解的目标;
  2. 前馈网络的线性层:这些权重矩阵也可通过 LoRA 进行优化。
4.2 参数化形式

以自注意力机制中的权重矩阵 W q W_q Wq(用于生成 Query 向量)为例,LoRA 的更新形式为:
W q ′ = W q + Δ W q , Δ W q = A q B q W_q' = W_q + \Delta W_q, \quad \Delta W_q = A_q B_q Wq=Wq+ΔWq,ΔWq=AqBq
其中 A q ∈ R d × r A_q \in \mathbb{R}^{d \times r} AqRd×r B q ∈ R r × k B_q \in \mathbb{R}^{r \times k} BqRr×k

4.3 零初始化

为了避免影响模型初始性能,LoRA 通常将 A A A B B B 在初始化时设置为零矩阵。这样,初始权重矩阵 W W W 完全保持原样。

名词解释

名词解释

1. 奇异值 (Singular Value) 的例子

假设我们有一个矩阵 W W W

W = [ 3 2 2 3 ] W = \begin{bmatrix} 3 & 2 \\ 2 & 3 \end{bmatrix} W=[3223]

对其进行奇异值分解,得到:

W = U Σ V ⊤ W = U \Sigma V^\top W=UΣV
其中:

  • U = [ 1 / 2 − 1 / 2 1 / 2 1 / 2 ] U = \begin{bmatrix} 1/\sqrt{2} & -1/\sqrt{2} \\ 1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix} U=[1/2 1/2 1/2 1/2 ]
    (输入方向的正交基)
  • Σ = [ 5 0 0 1 ] \Sigma = \begin{bmatrix} 5 & 0 \\ 0 & 1 \end{bmatrix} Σ=[5001]
    (奇异值对角矩阵)
  • V ⊤ = [ 1 / 2 1 / 2 − 1 / 2 1 / 2 ] V^\top = \begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ -1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix} V=[1/2 1/2 1/2 1/2 ]
    (输出方向的正交基)

直观理解:

  1. 奇异值 σ 1 = 5 , σ 2 = 1 \sigma_1 = 5, \sigma_2 = 1 σ1=5,σ2=1
    • σ 1 = 5 \sigma_1 = 5 σ1=5表示 W W W沿着某个特定方向放大了数据的长度 5 倍;
    • σ 2 = 1 \sigma_2 = 1 σ2=1表示另一个方向上,数据的长度没有被拉伸或压缩。
  2. 大的奇异值表示该方向上的信息贡献更大,小的奇异值方向上的信息较少。

2. 特征值 (Eigenvalue) 的例子

假设我们有一个方阵 A A A

A = [ 4 2 1 3 ] A = \begin{bmatrix} 4 & 2 \\ 1 & 3 \end{bmatrix} A=[4123]

计算特征值,解特征方程 det ⁡ ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(AλI)=0

λ 1 = 5 , λ 2 = 2 \lambda_1 = 5, \quad \lambda_2 = 2 λ1=5,λ2=2

计算特征向量:

  • 对应 λ 1 = 5 \lambda_1 = 5 λ1=5,特征向量为 v 1 = [ 2 1 ] v_1 = \begin{bmatrix} 2 \\ 1 \end{bmatrix} v1=[21]
  • 对应 λ 2 = 2 \lambda_2 = 2 λ2=2,特征向量为 v 2 = [ − 1 1 ] v_2 = \begin{bmatrix} -1 \\ 1 \end{bmatrix} v2=[11]

直观理解:

  1. 特征值表示矩阵沿着特定方向拉伸或缩放的强度:
    • λ 1 = 5 \lambda_1 = 5 λ1=5:在方向 v 1 v_1 v1上被拉伸 5 倍;
    • λ 2 = 2 \lambda_2 = 2 λ2=2:在方向 v 2 v_2 v2上被拉伸 2 倍。
  2. 特征向量定义了不改变方向的变换轴。

3. 低秩子空间 (Low-Rank Subspace) 的例子

假设有一个矩阵 M M M

M = [ 1 2 2 4 ] M = \begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix} M=[1224]

计算矩阵的秩(行和列的线性独立数):

  • 第二行是第一行的 2 倍,所以矩阵的秩为 1。

这意味着矩阵的所有信息都集中在一个一维子空间上。

低秩近似:

M M M分解为 U Σ V ⊤ U \Sigma V^\top UΣV,保留最大的奇异值 σ 1 = 5 \sigma_1 = 5 σ1=5,得到:
M ≈ [ 1 2 ] [ 1 2 ] = [ 1 2 2 4 ] M \approx \begin{bmatrix} 1 \\ 2 \end{bmatrix} \begin{bmatrix} 1 & 2 \end{bmatrix} =\begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix} M[12][12]=[1224]
即,矩阵的信息都能被一个一维向量描述。

直观理解:

低秩子空间表示矩阵的信息被压缩到一个低维空间中。矩阵的复杂度减少,但主要信息得以保留。


4. 正交矩阵 (Orthogonal Matrix) 的例子

假设有一个正交矩阵 Q Q Q
Q = [ 1 / 2 1 / 2 − 1 / 2 1 / 2 ] Q = \begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ -1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix} Q=[1/2 1/2 1/2 1/2 ]

验证正交性:
Q ⊤ Q = [ 1 / 2 − 1 / 2 1 / 2 1 / 2 ] [ 1 / 2 1 / 2 − 1 / 2 1 / 2 ] = [ 1 0 0 1 ] = I Q^\top Q = \begin{bmatrix} 1/\sqrt{2} & -1/\sqrt{2} \\ 1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix} \begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ -1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix} =\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = I QQ=[1/2 1/2 1/2 1/2 ][1/2 1/2 1/2 1/2 ]=[1001]=I

直观理解:

正交矩阵的列(或行)是相互垂直的单位向量,表示不同方向上的独立特征。它们不会失真地改变矩阵变换后的数据方向。


5. 奇异值矩阵 (Singular Value Matrix) 的例子

假设奇异值矩阵为:
Σ = [ 3 0 0 0 2 0 0 0 0 ] \Sigma = \begin{bmatrix} 3 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 0 \end{bmatrix} Σ= 300020000

这表示矩阵的变换具有以下特性:

  1. 沿着第一个方向拉伸 3 倍;
  2. 沿着第二个方向拉伸 2 倍;
  3. 沿着第三个方向,信息为零。

按照定义的方式理解

正交基 (Orthogonal Basis)

定义
正交基是一组相互 正交(即两两垂直,内积为 0)且 标准化(每个向量的长度为 1) 的向量,构成一个向量空间的基。

假设 V V V 是一个 n n n-维向量空间,那么正交基是 V V V 的一组基向量:
{ v 1 , v 2 , … , v n } \{v_1, v_2, \ldots, v_n\} {v1,v2,,vn}
满足:

  1. 正交性:对任意 i ≠ j i \neq j i=j ⟨ v i , v j ⟩ = 0 \langle v_i, v_j \rangle = 0 vi,vj=0
  2. 标准化:对任意 i i i ∥ v i ∥ = 1 \|v_i\| = 1 vi=1

直观理解

正交基可以看作是一组坐标轴,每个轴之间互相垂直。例如二维空间中的标准单位基:
[ 1 0 ] 和 [ 0 1 ] \begin{bmatrix} 1 \\ 0 \end{bmatrix} \quad \text{和} \quad \begin{bmatrix} 0 \\ 1 \end{bmatrix} [10][01]
是一个正交基。


奇异值和特征值的关系与区别

  1. 相同点

    • 二者都描述了矩阵的拉伸或缩放特性。
    • 对于方阵,奇异值和特征值在某些情况下有直接联系。
  2. 不同点

    • 适用范围
      • 特征值只适用于方阵;
      • 奇异值适用于任意矩阵(包括非方阵)。
    • 计算方式
      • 奇异值通过奇异值分解 W = U Σ V ⊤ W = U \Sigma V^\top W=UΣV 得到,对应 W ⊤ W W^\top W WW W W ⊤ W W^\top WW 的特征值平方根;
      • 特征值通过特征方程 det ⁡ ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(AλI)=0 计算。
    • 物理意义
      • 奇异值表示矩阵沿正交方向的拉伸强度;
      • 特征值表示矩阵沿特征向量方向的缩放强度。

对角矩阵 (Diagonal Matrix)

定义
对角矩阵是指只有主对角线上的元素非零,其余元素全为零的矩阵。
形式为:
Σ = [ σ 1 0 0 ⋯ 0 0 σ 2 0 ⋯ 0 0 0 σ 3 ⋯ 0 ⋮ ⋮ ⋮ ⋱ 0 0 0 0 ⋯ σ n ] \Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 & \cdots & 0 \\ 0 & \sigma_2 & 0 & \cdots & 0 \\ 0 & 0 & \sigma_3 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & 0 & 0 & \cdots & \sigma_n \end{bmatrix} Σ= σ10000σ20000σ300000σn

其中, σ 1 , σ 2 , … , σ n \sigma_1, \sigma_2, \ldots, \sigma_n σ1,σ2,,σn 是主对角线上的非零元素。

直观理解

  • 对角矩阵仅对数据的每个方向做独立拉伸或压缩。
  • 它是一种最简单的矩阵形式,因为它没有“交叉作用”(非对角线元素为 0)。

结合 SVD 理解

在奇异值分解中,矩阵 W W W 被分解为:
W = U Σ V ⊤ W = U \Sigma V^\top W=UΣV
其中:

  1. U U U V V V:正交矩阵,其列向量是正交基,表示输入和输出空间的方向;
  2. Σ \Sigma Σ:对角矩阵,其对角线上的奇异值表示沿正交基方向的拉伸强度。

例子

假设:
W = [ 3 0 4 0 ] W = \begin{bmatrix} 3 & 0 \\ 4 & 0 \end{bmatrix} W=[3400]

SVD 分解为:
W = U Σ V ⊤ , 其中: W = U \Sigma V^\top, \quad \text{其中:} W=UΣV,其中:

  1. U = [ 0.6 − 0.8 0.8 0.6 ] U = \begin{bmatrix} 0.6 & -0.8 \\ 0.8 & 0.6 \end{bmatrix} U=[0.60.80.80.6]:输入方向的正交基;
  2. V = [ 1 0 0 1 ] V = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} V=[1001]:输出方向的正交基;
  3. Σ = [ 5 0 0 0 ] \Sigma = \begin{bmatrix} 5 & 0 \\ 0 & 0 \end{bmatrix} Σ=[5000]:奇异值矩阵,表示仅在某一方向上拉伸 5 倍。

1. 奇异值 (Singular Value)

定义
奇异值是描述一个矩阵变换特性的标量,它体现了矩阵在不同方向上对数据的拉伸或压缩程度。

对于一个矩阵 W ∈ R m × n W \in \mathbb{R}^{m \times n} WRm×n,通过 奇异值分解(SVD) 得到:
W = U Σ V ⊤ W = U \Sigma V^\top W=UΣV

  • Σ \Sigma Σ 是对角矩阵,其对角线上的值称为矩阵 W W W奇异值,按从大到小排列。

物理意义

  1. 方向变换强度:奇异值告诉我们,矩阵 W W W 对某些方向的作用有多大。例如,大的奇异值方向上,数据被放大较多;小的奇异值方向上,数据被压缩或忽略。
  2. 信息贡献:大的奇异值对应重要信息,小的奇异值对应冗余或噪声。

2. 特征值 (Eigenvalue)

定义
特征值是线性变换的一个标量,用于描述变换后的向量如何被拉伸或缩放。对于一个方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} ARn×n,其特征值 λ \lambda λ 满足:
A v = λ v A v = \lambda v Av=λv
其中 v ≠ 0 v \neq 0 v=0 是对应的特征向量。

奇异值与特征值的关系

  • 奇异值是特征值的广义形式,适用于非方阵。
  • 如果 W W W 是方阵,则 W W W 的奇异值是 W ⊤ W W^\top W WW W W ⊤ W W^\top WW 的特征值的平方根。

3. 低秩子空间 (Low-Rank Subspace)

秩的定义
矩阵的秩(Rank)是其线性独立行或列的最大数量,反映了矩阵的维度和复杂度。

低秩子空间的含义
对于一个高维矩阵 W W W,低秩子空间表示矩阵主要信息的一个低维投影。这是因为:

  • 大多数实际应用中,矩阵的数据存在冗余,秩会远小于矩阵的行列数。
  • 低秩子空间通过保留主要奇异值,捕获了矩阵中最重要的信息。

低秩的实际应用

  • 在 LoRA 中,通过限制矩阵的秩 r r r,将优化限制在一个较小的子空间内,从而实现参数高效化。

4. 正交矩阵 (Orthogonal Matrix)

定义
正交矩阵 Q Q Q 满足:
Q ⊤ Q = I Q^\top Q = I QQ=I
其中 Q ⊤ Q^\top Q Q Q Q 的转置矩阵, I I I 是单位矩阵。

性质

  1. 列向量或行向量两两正交,且每个向量的模长为 1;
  2. 正交矩阵的逆矩阵等于其转置矩阵。

在 SVD 中的作用

  • 奇异值分解中的矩阵 U U U V V V 都是正交矩阵,分别代表输入和输出数据的正交方向。

5. 奇异值矩阵 (Singular Value Matrix)

定义
奇异值矩阵 Σ \Sigma Σ 是一个对角矩阵,形如:
Σ = [ σ 1 0 ⋯ 0 0 σ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ σ r ] \Sigma = \begin{bmatrix} \sigma_1 & 0 & \cdots & 0 \\ 0 & \sigma_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_r \\ \end{bmatrix} Σ= σ1000σ2000σr

  • σ 1 , σ 2 , … , σ r \sigma_1, \sigma_2, \ldots, \sigma_r σ1,σ2,,σr 是矩阵 W W W 的奇异值,按从大到小排列;
  • 非方阵时,剩余对角线元素为零。

作用
奇异值矩阵表示矩阵的“拉伸程度”,它决定了矩阵在不同方向上的变化幅度。


联系与直观理解

  1. 奇异值 vs 特征值

    • 奇异值描述矩阵对向量的拉伸或压缩强度,是所有矩阵都适用的性质;
    • 特征值是特定方向上矩阵的缩放因子,只适用于方阵。
  2. 低秩子空间

    • 大的奇异值对应的方向是矩阵的核心信息,定义了低秩子空间;
    • LoRA 通过限制在低秩子空间优化,节约计算和存储成本。
  3. 正交矩阵与奇异值矩阵

    • 奇异值分解用正交矩阵 U U U V V V 描述了矩阵的方向,用奇异值矩阵 Σ \Sigma Σ 描述了各方向的强度。

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

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

相关文章

Python酷库之旅-第三方库Pandas(154)

目录 一、用法精讲 701、pandas.Timestamp.utcnow方法 701-1、语法 701-2、参数 701-3、功能 701-4、返回值 701-5、说明 701-6、用法 701-6-1、数据准备 701-6-2、代码示例 701-6-3、结果输出 702、pandas.Timestamp.utcoffset方法 702-1、语法 702-2、参数 70…

如何启动神通数据库?神通数据库的启动方式一共有几种?

简单总结,神通数据库启动有三种方式: 1、dba管理工具方式 2、服务方式 (1)service oscardb_OSRDBd restart (2)/etc/init.d/oscardb_OSRDBd restart (3)systemctl start oscardb_OS…

Modbus Poll的使用

最近从串口调试助手接触到了Modbus Poll,一开始用的时候有些生疏,了解之后不得不说真香。 相对于串口调试助手,有些设备厂家会给一些点表和指令码,有些也可以通过modbus协议解析出来,相对来说,使用Modbus …

第四学期-智能数据分析-期末复习题

智能数据分析期末复习(2024春) 【考试形式】:闭卷,90分钟,笔试 【题型分布】: 单选题10题,每题3分,共计30分 判断题10题,每题2分,共计20分 填空题5题&…

总结的一些MySql面试题

目录 一:基础篇 二:索引原理和SQL优化 三:事务原理 四:缓存策略 一:基础篇 1:定义:按照数据结构来组织、存储和管理数据的仓库;是一个长期存储在计算机内的、有组织的、可共享 的…

C#实现一个HttpClient集成通义千问-开发前准备

集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…

python游戏设计---飞机大战

1.前言 上次做飞机大战游戏有人这么说: 好好好!今天必须整一个,今天我们来详细讲解一下,底部找素材文件下载!!! 2.游戏制作 目录如下: 1.导入的包 import pygame import sys imp…

Final Vision Get Picture Pos Send 2 Python Control Robot

import tkinter as tk from tkinter import messagebox, filedialog from tkinter import ttk import socket import threading import subprocess from datetime import datetime from PIL import Image, ImageTk import time # 全局变量 client_socket None connected Fal…

Spring框架-IoC的使用(基于XML和注解两种方式)

一、Spring IoC使用-基于XML 1 IoC使用-基于XML 使用SpringIoC组件创建并管理对象 1.1 创建实体类 package com.feng.ioc.bean;import java.util.Date;/*** program: spring-ioc-demo1* description: 学生实体类* author: FF* create: 2024-12-04 18:53**/ public class Stud…

C++编程控制舵机的实现与应用

在嵌入式编程和物联网应用中,舵机是一种非常重要的执行器,广泛应用于机器人、遥控玩具、机械臂、摄像头云台等多个领域。舵机不仅能够精准地控制角度位置,还能在一定的工作范围内持续保持该位置。在本篇文章中,我们将站在 C 编程教…

对于MySQL中视图的相关实验

以下用该表举例: /*Table structure for table employees */ DROP TABLE IF EXISTS employees; CREATE TABLE employees ( employee_id int(6) NOT NULL DEFAULT 0, first_name varchar(20) DEFAULT NULL, last_name varchar(25) NOT NULL, email varc…

day-90 使数组为空的最少操作次数

思路 统计每个数字出现的次数,计算每个数字的操作次数,将所有操作次数累加返回即可 解题过程 对于每个数字(假设出现次数num),如果num等于1,返回-1;如果num%3等于0,返回num/3;如果num%3不等于0…

6.xftp使用教程

xftp用于windows和linux之间进行文件互传 1.先安装xftp软件,并双击打开 2.文件 – 新建 3.配置参数 4.连接 5.把需要的文件扯到右边

[nmap] 端口扫描工具的下载及详细安装使用过程(附有下载文件)

前言 nmap网络连接端扫描软件,用于主机发现、端口扫描、版本侦测、操作系统侦测 namp 链接:https://pan.quark.cn/s/4ea55a2d62c3 提取码:aXnr 下载压缩包后解压 !!安装路径不要有中文 链接失效(可能被官…

详解组合模式

引言 有一种情况,当一组对象具有“整体—部分”关系时,如果我们处理其中一个对象或对象组合(区别对待),就可能会出现牵一发而动全身的情况,造成代码复杂。这个时候,组合模式就是一种可以用一致的…

计算机网络复习——概念强化作业

物理层负责网络通信的二进制传输 用于将MAC地址解析为IP地址的协议为RARP。 一个交换机接收到一帧,其目的地址在它的MAC地址表中查不到,交换机应该向除了来的端口外的所有其它端口转发。 关于ICMP协议,下面的论述中正确的是ICMP可传送IP通信过程中出现的错误信息。 在B类网络…

SQL语法——DQL查询

1.查询: 基础查询: select 列名1,列名2 from 表名; # 输入列名为*时为全查 条件查询: select 列名 from 表名 where 条件; #条件中含字符串时为字符串

Manus手套动作捕捉AI训练灵巧手

随着人工智能(AI)和机器人技术的融合日益紧密,使用真实动作数据AI扩容训练机器人的方式正在被用于开发更富表现力的机器人。Manus手套凭借精准的动作捕捉技术和导出数据的强大兼容性,在灵巧手的研发和应用中发挥了重要作用。 手部…

Altium Designer学习笔记 29 PCB布线_信号线

基于Altium Designer 23学习版,四层板智能小车PCB 更多AD学习笔记:Altium Designer学习笔记 1-5 工程创建_元件库创建Altium Designer学习笔记 6-10 异性元件库创建_原理图绘制Altium Designer学习笔记 11-15 原理图的封装 编译 检查 _PCB封装库的创建Al…

【02】复用松散型栅格切片

栅格切片分三种类型: 松散型、紧凑型v1紧凑型v2 见链接:https://blog.csdn.net/gislaozhang/article/details/144296963 说明:Linux环境或者Windows环境都可以参考类似的思路复用 前提条件:将旧服务切片服务缓存文件拷贝到新机器…