当提到 AI 应用开发,大部分人第一时间想到的应该是大模型应用开发。目前的大模型应用开发确实是最热的。AI 应用还有很多其他的应用场景,包括图像分类,文本分类和对象识别等。目前来说,运行不同 AI 任务的难度降低了很多,不再是机器学习专家才能完成的。这得益于很多类似 Hugging Face 这样的开发平台,以及 Transformers 这样的开源库。我们只需要在开放平台上找到合适的模型,利用开源库运行模型,把输入提供给模型,模型会给出相应的输出。
网上可以找到很多与运行 AI 模型相关的文档,不过绝大部分都是用 Python 写的,毕竟 Python 在这一领域占据主导地位 。实际上,这些应用也可以用 Java 来写,只需要使用 ONNX Runtime 即可。
ONNX Runtime 提供了 Java 的支持。这里通过一个具体的实例来说明。这个实例的作用是鸟类分类,输入是一张鸟类的图片,输出是这只鸟的类别。
在开发应用之前,首先需要找到合适的模型。Hugging Face 上有很多可用的模型。可以只看 ONNX 类型的模型。有些模型直接提供了 ONNX 文件可供下载。如果模型没有提供 ONNX 文件,可以使用 Transformers 库进行转换。
这里选择的是 Hugging Face 上的 Birds-Classifier-EfficientNetB2 模型。这个模型自身提供了 ONNX 文件,模型文件 model.onnx 大小只有 33.7M,直接下载即可。除了模型文件之外,还需要下载 config.json 文件,其中包含了获取结果所需的元数据。