You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sonoma系统CoreML模型生成速度较Ventura大幅变慢,求解决方法

解决方案

性能下降优化

  • 强制指定计算单元:Sonoma默认可能限制了CoreML的资源调度策略,在模型参数中添加computationUnits配置,强制调用所有可用硬件资源:

    let params_boosted = MLBoostedTreeRegressor.ModelParameters(
        maxIterations: 10000,
        computationUnits: .all
    )
    

    该配置会让模型充分利用M1的Neural Engine、GPU和CPU,避免系统保守调度导致的性能损失。

  • 优化训练数据加载:如果训练数据是磁盘惰性加载模式,Sonoma的文件系统优化可能拖慢数据读取速度,改为全内存加载:

    // 禁用内存映射,将数据完全加载到内存中
    let inMemoryTrainingData = try MLDataTable(contentsOf: trainingDataURL, memoryMap: false)
    
  • Game Mode无负面影响:Game Mode的作用是提升前台应用的资源优先级,不会导致性能下降。反而可以开启后测试,看是否能拉高你的应用调度优先级。

恢复Verbose训练日志

Sonoma调整了CoreML的默认日志级别,可通过Xcode Scheme设置恢复详细输出:

  1. 打开Product > Scheme > Edit Scheme
  2. 切换到Run > Arguments > Environment Variables
  3. 添加环境变量COREML_DEBUG,值设为3(最高日志级别)
  4. 重新运行代码,终端会显示每轮迭代的耗时、偏差等信息

也可以在代码中手动输出关键训练日志:

import os.log

let trainingLog = OSLog(subsystem: "your.app.bundle.id", category: "CoreMLTraining")
os_log(.info, log: trainingLog, "Training started with %d iterations", 10000)

额外排查动作

  • 升级Xcode到15及以上版本:旧版Xcode在Sonoma上存在兼容性问题,适配新版本可解决部分底层调度bug
  • 小迭代测试:将maxIterations改为1000,测试耗时比例是否依旧异常,排除大迭代次数下的调度差异
  • 清理CoreML缓存:删除~/Library/Caches/com.apple.CoreML目录,清除旧系统残留的缓存文件

内容的提问来源于stack exchange,提问作者frankthechicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:12:43