FastVLM|理解工作原理及使用用法

了解 Apple 最新开源的 FastVLM 视觉模型,并在 Xcode 项目中使用它。

FastVLM|理解工作原理及使用用法

两个核心文件

两个核心文件:

  • FastVLM
  • FastVLMModel

这个 FastVLMModel 文件本质上是一个 ViewModel,封装了对底层 FastVLM 模型的所有访问:

  • 处理模型加载和初始化
  • 管理模型运行状态
  • 协调异步操作
  • 处理输入输出转换

FastVLMModel 作为中间层,将复杂的 VLM 模型操作简化为几个简单的 API (load/generate/cancel),同时提供了状态属性(running/output/evaluationState 等)让 UI 层可以轻松使用。

我将 FastVLMModel 重命名为 FastVLMViewModel,以便更好的集成到项目中。

FastVLMViewModel 文件

MLX-Libraries 库

在初始化方法中,FastVLM.register 注册了一个 modelFactory 参数。

进一步查看,发现它是一个 ModelFactory 类,是属于 mlx-libraries 库的一部分:

所以,在上面这部分代码中,FastVLM 注册了 VLMModelFactory,这是一个工厂类,负责创建和管理视觉语言模型的实例。