机器学习:识别AI,GraphRAG,LoRA,线性变换,特征

14 篇文章 0 订阅

1.AI识别

  • 1.bitgrit 生成式 AI API 文档
    生成式 AI 假图像检测 API 可用于以编程方式检测假图像(即由生成式 AI 创建的图像)。
  • 2.X Virality Prediction API 旨在预测推文的潜在病毒式传播力。
  • https://bitgrit.net/api/docs/x_virality_prediction

2.GraphRAG

所有性能改进技术都有一个缺陷:token 的使用和推理时间都会增加。
支持 GraphRAG 的基本流程是建立在先前对图机器学习的研究和代码库上的:LLM 处理全部私有数据集,为源数据中所有实体和关系创建引用,并将其用于创建 LLM 生成的知识图谱。利用生成的图谱创建自下而上的聚类,将数据分层并组织成语义聚类(在图三中由颜色标识)。这种划分让预先总结语义概念和主题成为可能,从而更全面地理解数据集。在查询时,两种结构均被用于填充 LLM 回答问题时的上下文窗口。

3.什么是低秩自适应(LoRA)?

LoRA 是一种加速 LLM 微调同时消耗更少内存的技术。
在这里插入图片描述

这不涉及对整个基础模型进行微调,因为这可能需要耗费大量的时间和金钱。

相反,它会向模型中添加少量可训练参数,同时保持原始模型参数不变。

为什么选择 LoRA?

尽管我们使用 LoRA 为模型添加了更多层,但它实际上有助于节省内存。

这是因为与大模型相比,较小的层(A 和 B)需要学习的参数较少,而可训练参数较少意味着需要存储的优化器变量较少。

因此,尽管整体模型看起来更大,但就内存使用而言实际上更高效。

什么是等级?
秩决定了添加到 LLM 原始权重的可训练矩阵的维度。它控制微调的表达能力和精度。

等级越高 = 可能的变化越详细,可训练的参数越多
等级越低 = 计算开销越少,但适应的精度可能会更低

任何人工智能问题中最重要的因素是数据

4. 线性变换

在这里插入图片描述

线性变换是两个向量空间之间的映射V → W,保留向量加法和标量乘法的运算。

实际上,将矩阵A应用于向量x以获得另一个向量y(通过操作Ax = y)是一种线性变换。

import numpy as np
import matplotlib.pyplot as plt

# Linear Transformation of a Square
T = np.array([[1, 2], [2, 1]])  # Transformation matrix
square = np.array([[0, 0, 1, 1, 0], [0, 1, 1, 0, 0]])  # Original square
transformed_square = np.dot(T, square)  # Apply transformation

# Plot Original and Transformed Square
plt.figure(figsize=(8, 4))

# Original Square
plt.subplot(1, 2, 1)
plt.plot(square[0], square[1], 'o-', color='blue')
plt.title('Original Square')
plt.xlim(-1, 3)
plt.ylim(-1, 3)
plt.axhline(0, color='grey', linewidth=0.5)
plt.axvline(0, color='grey', linewidth=0.5)
plt.grid(True)

# Transformed Square
plt.subplot(1, 2, 2)
plt.plot(transformed_square[0], transformed_square[1], 'o-', color='red')
plt.title('Transformed Square')
plt.xlim(-1, 3)
plt.ylim(-1, 3)
plt.axhline(0, color='grey', linewidth=0.5)
plt.axvline(0, color='grey', linewidth=0.5)
plt.grid(True)

plt.show()

在这里插入图片描述

线性变换经常用于:
降维:PCA利用线性变换将高维数据映射到低维空间
数据变换:对数据集进行规范化或标准化是一种线性变换
特征工程:通过组合现有特征来创建新特征。

5. 特征向量和特征值

特征向量和特征值表示变换的“轴”。

特征向量是经过线性变换后方向不变的输入。即使方向不变,大小也可能变。这个大小,即特征向量放大或缩小的量,就是特征值。

想象一下当你旋转地球仪时,除了两极之外,每个位置都朝向一个新的方向。它们的方向不会改变。

这是特征向量的直观示例。
在这里插入图片描述
形式上,对于矩阵A和向量v,如果Av = λv,则λ是特征值,v是A的特征向量。

import numpy as np
import matplotlib.pyplot as plt

# Eigenvectors and Eigenvalues
A = np.array([[1, 2], [2, 3]])
eigenvalues, eigenvectors = np.linalg.eig(A)

print_matrix(A)

# Plotting
fig, ax = plt.subplots()

# Origin
origin = [0, 0]

# Plot each eigenvector
for i in range(len(eigenvalues)):
    ax.quiver(*origin, eigenvectors[0, i], eigenvectors[1, i], scale=3, scale_units='xy', angles='xy')

ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_aspect('equal')
ax.grid(True)
ax.set_title('Eigenvectors of A')

plt.show()

在这里插入图片描述

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值