跳到主要内容

模型管理

EdgeModelKit 提供模型下载、缓存和设备层级 helper。

下载已注册模型

import EdgeInference
import EdgeModelKit

guard let config = ModelConfig.find(modelID: "qwen3.5-9b-4bit") else {
throw EdgeRuntimeError.modelNotFound("qwen3.5-9b-4bit")
}

try await HFDownloader.shared.download(config: config) { progress in
print("Download progress:", progress)
}

从缓存加载

let cachedURL = ModelCache.shared.cachedURL(for: config)

let engine = LLMEngine()
try await engine.loadLocal(directory: cachedURL)

检查缓存状态

if ModelCache.shared.isCached(config) {
print("Cached at:", ModelCache.shared.cachedURL(for: config))
}

print("Model cache bytes:", ModelCache.shared.cacheSize(for: config))
print("Total cache bytes:", ModelCache.shared.totalCacheSize())

驱逐模型

try ModelCache.shared.evict(config)
try ModelCache.shared.evictAll()

设备层级

ModelTierManager 会基于当前设备推荐层级。

import EdgeModelKit

let manager = ModelTierManager.shared
manager.refresh()

print(manager.currentTier)
print(manager.availableTiers)
print(manager.currentConfig)

模型类别

ModelCategory.detect(from:) 读取 config.json 并选择 engine 类别。

let category = ModelCategory.detect(from: cachedURL)

switch category {
case .llm:
print("Use LLMEngine")
case .vlm:
print("Use VLMEngine")
case .tts:
print("Use TTSEngine")
case .stt:
print("Use STTEngine")
}

加载策略

来源适用场景
本地路径你已经在磁盘上有模型 bundle。
模型缓存app 下载了已注册模型。
Edge Studio 导出你在 Edge Studio 中优化或准备了模型。
App bundle 或 ODRapp 通过 iOS 分发来携带或下载模型。