news 2026/5/9 14:19:33

无监督模型评估新范式:可靠性-完整性曲线与AURCC指标详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
无监督模型评估新范式:可靠性-完整性曲线与AURCC指标详解

1. 项目概述:当模型评估遇上“无米之炊”

在机器学习项目的落地过程中,我们总会遇到一个经典的“鸡生蛋还是蛋生鸡”的困境:要评估一个模型的性能好坏,你需要有高质量的标注数据;但很多时候,获取这些标注数据的成本高得惊人,尤其是在医疗影像、病理分析、金融风控等领域。我们习惯依赖的AUROC、准确率、F1分数等指标,在缺乏“标准答案”(即真实标签)的情况下,瞬间就失去了用武之地。这就好比让一位大厨在没有试吃员的情况下,仅凭食材和烹饪过程来判断一道菜是否美味,充满了不确定性。

这正是“可靠性-完整性曲线”及其衍生指标AURCC所要解决的核心问题。它不是为了替代传统指标,而是为模型评估开辟了一条全新的“无监督”或“半监督”路径。其核心思想非常巧妙:既然我们无法直接知道模型预测的对错,那我们就去评估模型预测的“自信程度”是否可靠,以及我们能多大程度上“信任”这些预测来填补数据的缺失。这背后对应着两个关键维度:可靠性完整性。可靠性衡量的是,当我们基于模型的预测置信度做出一个分类决策时,这个决策有多大可能是正确的;完整性则衡量的是,我们利用模型能够对多大比例的无标签数据做出这种“可信”的预测。

想象一下在医疗场景中,一个AI系统需要从海量的病理切片中筛选出可疑的病例。医生没有时间逐一标注。这时,我们可以让模型对每张切片输出一个“是癌症”的概率。可靠性-完整性方法要回答的就是:如果我们只相信那些概率极高(比如>0.95)的“癌症”预测,那么这些预测的准确率(可靠性)会非常高,但可能只覆盖了1%的切片(完整性很低)。反之,如果我们把阈值放宽到概率>0.5,我们能覆盖的切片(完整性)大大增加,但其中混入错误预测的风险(可靠性降低)也会显著上升。这条描绘了“可靠性”与“完整性”此消彼长关系的曲线,就是可靠性-完整性曲线,而曲线下的面积就是AURCC,它综合反映了模型在无标签数据上做出“可信且有用”预测的整体能力。

2. 核心原理拆解:从SUDO到AURCC的构建逻辑

要理解可靠性-完整性曲线,我们必须先深入其基石:SUDO度量。SUDO并非直接度量准确率,而是度量一个概率区间内的“类别污染”程度。这是一个非常关键的视角转换。

2.1 SUDO:无标签评估的“探针”

在二分类问题中,模型会为每个样本输出一个属于正类的概率p。传统有监督评估中,我们通过对比p和真实标签y来计算损失或指标。但在无标签情况下,y是未知的。SUDO的思路是,我们不直接找p和y的关系,而是去分析p的分布所隐含的“纯度”。

假设我们设定一个高概率阈值β(例如0.9)。我们认为所有p ≥ β的样本,模型都非常自信地预测为正类。在一个理想的、完美校准的模型中,这些样本应该全部都是真正的正类。但现实中,这个集合里可能会混入一些实际是负类的样本,这就是“类别污染”。SUDO通过一种巧妙的间接方式来估计这种污染程度,它通常依赖于一些额外的、未充分利用的“监督信号”,比如在生存分析中,不同预测类别患者的生存时间分布差异。SUDO(β)的绝对值越大,表示在概率阈值β附近做出的正类预测,其类别纯度越高,可靠性也就越高。对于低概率阈值α(如0.1)下的负类预测,逻辑是相同的。

注意:SUDO的具体计算方式可能因任务和可用信息而异。在原文的医疗场景中,它利用了患者的生存时间数据作为“代理信号”。在其它领域,可能需要寻找类似的、与预测目标相关的替代指标(如用户活跃度、设备运行时长等),这是应用该方法时需要因地制宜设计的核心环节。

2.2 可靠性计算:量化“可信度”

有了SUDO这把尺子,我们就可以量化在特定决策规则下的预测可靠性。决策规则由一对阈值集合(A, B)定义,其中A是一组低概率阈值(用于判定负类),B是一组高概率阈值(用于判定正类)。对于任意α∈A, β∈B,决策规则是:

  • 若 p ≤ α,则预测为负类 (ŷ=0)。
  • 若 p ≥ β,则预测为正类 (ŷ=1)。
  • 若 α < p < β,则视为“不确定”,不做预测。

那么,采用这组阈值(A, B)所做预测的整体可靠性RA,B,就可以定义为所有阈值点SUDO绝对值的平均:

RA,B = 1/(2·|A||B|) * Σ (|SUDO(α)| + |SUDO(β)|)

这个公式的直观理解是:我们分别在“很可能是负类”和“很可能是正类”的区域采样了多个阈值点,计算每个点预测的“纯度”(SUDO绝对值),然后取平均。这个平均值越高,意味着基于这组阈值做出的预测,整体可信度越高。

2.3 完整性计算:量化“覆盖率”

可靠性高了,往往意味着我们只敢对少数非常确定的样本做预测。完整性CA,B就是来衡量这个“覆盖率”的。它计算的是,在所有无标签样本中,有多少比例落入了我们可以做出明确预测的区域(即p ≤ max(A) 或 p ≥ min(B)):

CA,B = (1/M) * Σ 1[pj ≤ max(A) or pj ≥ min(B)]

这里,max(A)是负类判断中最宽松的阈值,min(B)是正类判断中最严格的阈值。这个区间以外的样本,因为概率处于模糊地带,我们选择放弃预测以保障可靠性。因此,CA,B直观反映了模型在保证当前可靠性水平下,能够“消化”掉的无标签数据比例。

2.4 绘制曲线与计算AURCC:综合评估

现在,我们通过系统性地变化阈值集合(A, B),就能得到一系列(CA,B, RA,B)点。例如,我们可以从非常保守的阈值开始(A很小,B很大),此时可靠性RA,B很高,但完整性CA,B很低。然后逐步放宽标准(增大A,减小B),我们会得到可靠性缓慢下降,而完整性快速提升的更多点。将这些点连接起来,就得到了可靠性-完整性曲线

这条曲线与ROC曲线在形态上颇有神似之处,只不过横纵坐标从“假正率-真正率”换成了“完整性-可靠性”。同样地,曲线下的面积——AURCC,成为了一个综合性的标量指标。AURCC越接近1,说明模型在保持高可靠性的同时,还能覆盖更多的无标签数据,其整体性能越优秀。这使得我们可以在完全没有真实标签的情况下,比较不同模型的优劣:选择AURCC更高的模型。

3. 实操全流程:从数据准备到AURCC产出

理解了原理,我们来看如何一步步实现它。我将以一个简化的医疗文本分类任务为例(例如,从电子病历中预测患者是否患有某种疾病),假设我们有大量无标签病历,以及一个与疾病相关的、可获取的“代理信号”,比如患者后续的住院次数(这是一个连续变量,可能与疾病严重程度相关)。

3.1 第一步:模型训练与概率预测

首先,你需要一个已经训练好的分类模型。这个模型可以是在一个小规模有标签数据集上训练的,也可以是通过自监督、迁移学习得到的。关键是要确保模型能输出校准良好的概率预测,而非仅仅是一个硬标签。

# 伪代码示例:获取模型对无标签数据的预测概率 import pandas as pd from your_model_module import YourTrainedModel # 加载无标签数据 unlabeled_data = pd.read_csv('unlabeled_clinical_notes.csv') # 加载你的模型 model = YourTrainedModel.load('pretrained_model.pth') # 获取概率预测 # 假设模型输出shape为 (n_samples, 2),两列分别对应负类和正类的概率 prob_outputs = model.predict_proba(unlabeled_data['text']) # 取正类的概率 positive_probs = prob_outputs[:, 1]

3.2 第二步:计算SUDO度量

这是最具领域特异性的步骤。你需要为每一个待评估的概率阈值(一系列α和β),计算其SUDO值。在我们的例子中,我们利用“后续住院次数”作为代理信号。

  1. 定义阈值网格:生成一系列低阈值α(例如从0.01到0.5,步长0.05)和高阈值β(例如从0.5到0.99,步长0.05)。
  2. 分组与计算:对于每个阈值α,将所有p ≤ α的样本划分为“预测负类组”;对于每个阈值β,将所有p ≥ β的样本划分为“预测正类组”。
  3. 利用代理信号:计算“预测负类组”和“预测正类组”的代理信号(住院次数)的分布统计量,例如中位数。
  4. 计算SUDO:SUDO可以被定义为两组代理信号统计量之差的某种标准化形式。例如,一个简单的版本可以是:SUDO(α) = (median_negative_group - overall_median) / overall_stdSUDO(β) = (median_positive_group - overall_median) / overall_std其原理是,如果预测是可靠的,那么被预测为正类的组,其住院次数中位数应显著高于总体中位数(SUDO(β)为正且较大),而被预测为负类的组则应显著低于总体中位数(SUDO(α)为负且绝对值较大)。
# 伪代码示例:计算SUDO import numpy as np def calculate_sudo(probs, proxy_signal, thresholds, group='low'): """ probs: 模型预测的正类概率数组 proxy_signal: 代理信号数组(如住院次数) thresholds: 阈值列表 group: 'low' 对应负类阈值α, 'high' 对应正类阈值β """ sudo_values = [] overall_median = np.median(proxy_signal) overall_std = np.std(proxy_signal) for th in thresholds: if group == 'low': # 预测为负类的样本索引 idx = probs <= th else: # 'high' # 预测为正类的样本索引 idx = probs >= th if np.sum(idx) > 10: # 确保有足够样本 group_median = np.median(proxy_signal[idx]) sudo = (group_median - overall_median) / overall_std sudo_values.append(sudo) else: sudo_values.append(np.nan) # 样本太少,记为NaN return np.array(sudo_values) # 假设已有代理信号数组 `hospitalizations` alpha_thresholds = np.arange(0.05, 0.5, 0.05) beta_thresholds = np.arange(0.55, 0.95, 0.05) sudo_alphas = calculate_sudo(positive_probs, hospitalizations, alpha_thresholds, 'low') sudo_betas = calculate_sudo(positive_probs, hospitalizations, beta_thresholds, 'high')

3.3 第三步:生成阈值对与计算(R, C)点

我们不直接使用所有单个阈值,而是生成阈值对集合(A, B)。一种简单有效的方法是:

  • alpha_thresholds中随机抽取m个阈值构成集合A。
  • beta_thresholds中随机抽取n个阈值构成集合B。
  • 确保max(A) < min(B),以保证负类和正类的判断区间不重叠。
  • 重复K次(例如K=100),生成K个不同的(A, B)对。

对于每一对(A, B),利用公式(2)和(3)计算其可靠性R和完整性C。

# 伪代码示例:生成RC曲线上的点 def generate_rc_points(probs, sudo_alphas, sudo_betas, alpha_list, beta_list, K=100): rc_points = [] m, n = 3, 3 # 每个集合中随机抽取的阈值数量 for _ in range(K): # 随机抽取阈值集合 A = np.random.choice(alpha_list, size=m, replace=False) B = np.random.choice(beta_list, size=n, replace=False) # 确保不重叠 if np.max(A) >= np.min(B): continue # 计算可靠性 R R = 0 count = 0 for alpha in A: idx_alpha = np.where(alpha_list == alpha)[0][0] for beta in B: idx_beta = np.where(beta_list == beta)[0][0] R += (np.abs(sudo_alphas[idx_alpha]) + np.abs(sudo_betas[idx_beta])) count += 1 R = R / (2 * count) if count > 0 else 0 # 计算完整性 C mask = (probs <= np.max(A)) | (probs >= np.min(B)) C = np.mean(mask) rc_points.append((C, R)) return np.array(rc_points) rc_points = generate_rc_points(positive_probs, sudo_alphas, sudo_betas, alpha_thresholds, beta_thresholds, K=150)

3.4 第四步:绘制曲线与计算AURCC

将得到的(C, R)点按照完整性C从小到大排序,然后绘制折线图,即得到可靠性-完整性曲线。AURCC的计算类似于梯形法则求曲线下面积。

# 伪代码示例:绘制曲线并计算AURCC import matplotlib.pyplot as plt # 按完整性排序 rc_points_sorted = rc_points[rc_points[:, 0].argsort()] C_sorted = rc_points_sorted[:, 0] R_sorted = rc_points_sorted[:, 1] # 计算AURCC aurcc = 0 for i in range(len(C_sorted) - 1): delta_C = C_sorted[i+1] - C_sorted[i] avg_R = (R_sorted[i] + R_sorted[i+1]) / 2 aurcc += avg_R * delta_C # AURCC理论上在[0,1]区间,这里可能因R的定义略超范围,可考虑归一化或直接使用。 print(f"计算得到的AURCC值为: {aurcc:.4f}") # 绘图 plt.figure(figsize=(8, 6)) plt.plot(C_sorted, R_sorted, 'b-o', linewidth=2, markersize=4) plt.fill_between(C_sorted, 0, R_sorted, alpha=0.2, color='blue') plt.xlabel('Completeness (C)', fontsize=12) plt.ylabel('Reliability (R)', fontsize=12) plt.title('Reliability-Completeness Curve', fontsize=14) plt.grid(True, linestyle='--', alpha=0.7) plt.xlim([0, 1]) plt.ylim([0, max(R_sorted)*1.1]) plt.show()

实操心得:在实际运行中,你可能会发现曲线起始部分(低完整性区域)的可靠性波动较大。这是因为在极端阈值下(如β=0.99),符合条件的样本数可能非常少,导致SUDO估计不稳定。一个实用的技巧是设置一个最小样本量阈值(如上述代码中的np.sum(idx) > 10),低于此阈值的点不参与计算或进行平滑处理。此外,多次随机采样(A, B)对(即较大的K值)有助于得到更平滑、更稳定的曲线。

4. 关键参数选择与调优经验

可靠性-完整性曲线的形态和AURCC的值,受到几个关键参数选择的显著影响。理解并合理设置这些参数,是让该方法发挥效力的关键。

4.1 代理信号的选择与处理

这是整个方法的“灵魂”。代理信号必须与模型的预测目标有强相关性,但它不必是完美的替代标签。

  • 选择标准:优先选择易于获取、客观连续、且与预测类别存在明确理论或经验关联的变量。在医疗中,生存时间、住院时长、某项关键实验室指标的变化值都是好选择。在金融风控中,可以是后续的逾期天数(连续值)而非简单的“是否逾期”(二值,这又成了需要评估的标签)。
  • 处理技巧:对于代理信号,通常需要检查其分布并进行必要的预处理。例如,对于严重偏态的住院次数,可以考虑取对数变换。更重要的是,要分析预测为正/负的组与总体在代理信号分布上的差异是否显著(例如使用秩和检验),这本身就是对SUDO有效性的一个初步验证。

4.2 概率阈值网格的划分

α和β的取值区间和密度,决定了曲线的“分辨率”。

  • 区间设定:α通常应在[0, 0.5]区间内选择,β在[0.5, 1]区间内选择。确保max(α网格) < min(β网格),留出“不确定区间”,这是方法的核心设计。
  • 密度选择:步长不宜过小,否则计算开销大且相邻阈值SUDO值可能高度相关;也不宜过大,否则会丢失曲线细节。从0.05或0.1的步长开始尝试是一个合理的起点。可以尝试非均匀网格,在0.5附近(模型最不确定的区域)设置更密的阈值,以更精细地观察可靠性下降的过程。

4.3 随机集合(A, B)的生成策略

原文中提到“迭代过K组A和B”,这是一种蒙特卡洛采样的思想,旨在更稳健地估计整个阈值空间下的(R, C)关系。

  • 集合大小:|A|和|B|的大小(即m和n)不宜过大,通常3-5即可。过大会使R的计算偏向于所有阈值的全局平均,削弱了不同(C, R)点之间的差异性。
  • 采样次数K:K越大,生成的曲线点越多,曲线越平滑,AURCC估计越稳定,但计算成本也越高。建议至少100次,可视计算资源调整到500或1000次。
  • 去重与排序:在计算AURCC前,务必对所有采样点按C排序。由于是随机采样,可能会出现C值非常接近的点,可以考虑轻微的滑动窗口平均来平滑曲线。

4.4 模型概率校准的重要性

该方法严重依赖模型输出概率的“校准度”。一个校准良好的模型,其输出的概率p应真实反映样本属于正类的可能性(例如,100个被预测概率为0.7的样本中,应有大约70个是正类)。如果模型概率严重失准(例如过于自信或过于保守),那么基于概率阈值做出的可靠性估计将完全偏离实际情况。

  • 校准检查:在有少量标签数据的情况下,务必绘制校准曲线(可靠性图)来检查模型校准情况。
  • 后处理校准:如果发现模型概率失准,可以对模型输出的概率进行后处理校准,例如使用Platt Scaling或Isotonic Regression。这一步能显著提升可靠性-完整性评估的有效性。

5. 典型应用场景与避坑指南

5.1 场景一:医疗AI模型的外部验证

在医疗领域,我们常在某个医院的数据上训练模型,但需要评估其在另一家医院(数据分布可能不同)的无标签数据上的表现。传统方法需要对新数据做昂贵标注。此时,可以利用新医院已有的、与疾病相关的纵向数据(如后续复查结果、治疗方案调整记录)作为代理信号,计算AURCC,快速评估模型在新环境的性能衰减程度,而无需等待新标注。

避坑点:必须确保代理信号在新旧数据源中的定义和测量方式一致。例如,不同医院的“住院次数”统计口径可能不同(是否包含急诊留观?),需要进行严格的变量对齐。

5.2 场景二:半监督学习中的迭代模型选择

在半监督学习过程中,我们可能会用不同的算法或超参数训练多个模型。利用无标签数据本身计算每个模型的AURCC,可以选出在当前数据上“潜力最大”的模型进行后续的主动学习或自训练,从而高效利用标注预算。

避坑点:在半监督场景下,用于计算SUDO的代理信号需要谨慎选择,最好是与初始有标签数据无关的信号,以避免评估过程中的信息泄露和过拟合乐观估计。

5.3 场景三:NLP领域的情感分析模型迁移

将在一个领域(如电影评论)上训练的情感分析模型,迁移到另一个领域(如电子产品评论)。目标领域没有标签,但可能有“用户评分”(1-5星)作为连续代理信号。我们可以将高评分(4-5星)视为潜在正面情感,低评分(1-2星)视为潜在负面情感,但中间评分(3星)模糊不清。此时,模型输出的情感概率与用户评分的相关性,可以通过SUDO和RC曲线来评估,从而判断模型迁移的有效性。

避坑点:用户评分本身是有噪声的,且与情感并非严格线性对应。这种情况下,SUDO度量的绝对值可能不高,但相对比较不同模型的AURCC仍有意义。重点在于观察趋势和差异。

5.4 常见问题排查表

问题现象可能原因排查与解决思路
RC曲线是一条接近水平的直线,且R值很低1. 代理信号与模型预测目标完全不相关。
2. 模型概率完全未校准,输出集中在0.5附近。
1. 检查代理信号与预测任务的理论关联性,更换代理信号。
2. 检查模型输出的概率分布,使用少量标签数据评估校准性,并进行概率校准。
曲线起始点(低C)的R值异常高或剧烈波动在极端阈值下(如β=0.99),样本量极少,SUDO估计方差极大。设置最小样本量过滤(如至少20个样本)。对阈值网格进行调整,剔除样本过少的极端阈值点。增加随机采样次数K以平滑曲线。
AURCC值大于1或为负可靠性R的定义可能导致其值域超出[0,1]。例如,SUDO若使用标准化均值差,其绝对值可能大于1。这是定义问题,不影响模型间比较。若需标准化,可在计算AURCC前,将所有R值除以观察到的最大值,将其缩放至[0,1]区间。
不同模型AURCC差异很小,难以区分1. 模型性能确实接近。
2. 代理信号区分力不足。
3. 阈值网格或采样策略过于粗糙。
1. 结合其他无监督指标(如预测熵的分布)综合判断。
2. 尝试寻找更强相关的代理信号。
3. 细化阈值网格,增加采样次数K,观察曲线局部形态的差异。
计算耗时过长无标签数据量巨大,且对每个阈值都需要计算代理信号的组统计量。1. 对无标签数据进行随机采样,使用一个足够大的子集进行计算。
2. 优化SUDO计算代码,使用向量化操作。
3. 适当增大阈值步长,减少随机采样次数K。

6. 方法局限性与未来扩展思考

没有任何方法是银弹,可靠性-完整性曲线也不例外。认识到它的边界,才能更好地应用它。

核心局限性

  1. 对代理信号的强依赖:方法的有效性完全取决于代理信号的质量。如果找不到合适的代理信号,该方法无法使用。
  2. 评估的是“可靠性-完整性”权衡,而非绝对精度:AURCC高只意味着模型在“自信”的时候预测得准,且能覆盖较多数据。它不直接告诉你模型在全体数据上的准确率。一个AURCC高的模型,可能对60%的数据做出95%可靠的预测,但对剩下40%的数据完全弃之不理。
  3. 适用于二分类问题:当前框架主要针对二分类。扩展到多分类需要更复杂的设计,例如为每个类别定义一对阈值,并考虑类别间的竞争关系。

扩展与变体思考

  1. 多代理信号融合:当存在多个潜在的弱相关代理信号时,可以探索如何将它们的信息融合到一个更稳健的SUDO度量中,例如通过加权平均或学习一个元预测器。
  2. 动态阈值选择:与其使用固定的全局阈值,未来可以探索基于样本特定属性的动态阈值,从而在个体层面优化可靠性-完整性的权衡。
  3. 与主动学习结合:RC曲线天然指出了“不确定区间”。可以主动对这些区间内的样本进行标注,用最小的标注成本最大程度地提升模型整体性能,形成“评估-标注-再训练”的闭环。

在我个人的多次尝试中,这个方法最大的价值在于它提供了一种系统性的思考框架。它迫使我们在没有金标准时,依然要去寻找和定义什么是“成功”的预测。这个过程本身,往往能加深我们对业务问题、数据特性和模型行为的理解。当你为一个项目费尽心力找到那个合适的代理信号,并看到一条漂亮的RC曲线时,那种对模型在未知数据上表现产生的“可控的洞察感”,是单纯等待标注结果无法比拟的。它让模型评估从一个被动的、依赖外部资源的环节,变成了一个主动的、可内部驱动的分析过程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 14:18:04

CANN社区新建仓与仓开放操作指引

CANN社区新建仓与仓开放操作指引 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库&#xff0c;包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://gitcode.com/cann/community 本指引结合TSC、PMC会议时间&#xff0c;为…

作者头像 李华
网站建设 2026/5/9 14:17:23

基于AI的CAD/CFD自动化形状优化:Anvil工具实战指南

1. 项目概述&#xff1a;当CAD遇上CFD&#xff0c;如何用AI实现自动化形状优化&#xff1f;在工程设计与仿真领域&#xff0c;CAD&#xff08;计算机辅助设计&#xff09;和CFD&#xff08;计算流体动力学&#xff09;是工程师手中不可或缺的两把利器。前者负责构建和修改产品的…

作者头像 李华
网站建设 2026/5/9 14:15:29

2025届学术党必备的五大AI写作神器实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 依托自然语言处理跟学术知识图谱技术的AI开题报告工具&#xff0c;有着强大功能&#xff0c…

作者头像 李华
网站建设 2026/5/9 14:11:49

AI赋能敏捷开发:从需求到部署的智能化实践与效率革命

1. 项目概述&#xff1a;当敏捷遇上AI&#xff0c;一场效率革命正在发生在软件开发的战场上&#xff0c;敏捷方法论早已不是新鲜词汇。Scrum站会、看板墙、用户故事、冲刺规划……这些实践在过去二十年里重塑了无数团队的交付节奏。然而&#xff0c;作为一名在敏捷转型和一线开…

作者头像 李华
网站建设 2026/5/9 14:06:06

CANN/ge GE架构文档

GE 架构文档 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前…

作者头像 李华