fast.ai

关于此页

这是关于如何在 BentoML 中使用 FastAI 的 API 参考。有关如何在 BentoML 中使用 FastAI 的更多信息,请参阅 fastai 指南

bentoml.fastai.save_model(name: Tag | str, learner_: learner.Learner, *, signatures: ModelSignaturesType | None = None, labels: dict[str, str] | None = None, custom_objects: dict[str, t.Any] | None = None, external_modules: t.List[ModuleType] | None = None, metadata: dict[str, t.Any] | None = None) bentoml.Model

fastai.learner.Learner 模型实例保存到 BentoML 模型仓库。

如果 save_model() 方法在保存给定的学习器时失败,您的学习器可能包含一个无法 pickle 化的 Callback。所有 FastAI 回调都是有状态的,这使得其中一些无法 pickle 化。使用 Learner.remove_cbs() 来移除无法 pickle 化的回调。

参数:
  • name – 在 BentoML 仓库中给模型命名的名称。这必须是一个有效的 Tag 名称。

  • learner – 要保存的 Learner

  • signatures – 要使用的预测方法的签名。如果未提供,签名默认为 predict。有关更多详情,请参阅 ModelSignature

  • labels – 与模型关联的一组默认管理标签。例如:{"training-set": "data-1"}

  • custom_objects – 要与模型一起保存的自定义对象。例如:{"my-normalizer": normalizer}。自定义对象目前使用 cloudpickle 序列化,但此实现可能会更改。

  • external_modules (List[ModuleType], 可选,默认为 None) – 用户定义的额外 Python 模块,与模型或自定义对象一起保存,例如分词器模块、预处理器模块、模型配置模块

  • metadata – 与模型关联的元数据。例如:{"bias": 4}。元数据旨在用于模型管理 UI 中的显示,因此必须是默认的 Python 类型,例如 strint

返回值:

可用于从 BentoML 模型仓库访问已保存模型的标签。

返回类型:

Tag

示例

from fastai.metrics import accuracy
from fastai.text.data import URLs
from fastai.text.data import untar_data
from fastai.text.data import TextDataLoaders
from fastai.text.models import AWD_LSTM
from fastai.text.learner import text_classifier_learner

dls = TextDataLoaders.from_folder(untar_data(URLs.IMDB), valid="test")

learner = text_classifier_learner(dls, AWD_LSTM, drop_mult=0.5, metrics=accuracy)
learner.fine_tune(4, 1e-2)

# Test run the model
learner.model.eval()
learner.predict("I love that movie!")

# `Save` the model with BentoML
tag = bentoml.fastai.save_model("fai_learner", learner)
bentoml.fastai.load_model(bento_model: str | Tag | bentoml.Model) learner.Learner

从本地 BentoML 模型仓库加载具有给定标签的 fastai.learner.Learner 模型实例。

如果模型使用 mixed_precision,则加载的模型也将转换为 FP32。了解更多关于 混合精度 的信息。

参数:

bento_model – 要从仓库获取的模型标签,或用于加载模型的 BentoML ~bentoml.Model 实例。

返回值:

从模型仓库或 BentoML Model 加载的 fastai.learner.Learner 模型实例。

返回类型:

fastai.learner.Learner

示例

import bentoml

model = bentoml.fastai.load_model("fai_learner")
results = model.predict("some input")
bentoml.fastai.get(tag_like: str | Tag) bentoml.Model

获取具有给定标签的 BentoML 模型。

参数:

tag_like – 要从模型仓库检索的模型的标签。

返回值:

具有匹配标签的 BentoML Model

返回类型:

Model

示例

import bentoml
# target model must be from the BentoML model store
model = bentoml.fastai.get("fai_learner")