LightGBM¶
关于此页面
这是 BentoML 中使用 LightGBM 的 API 参考。有关如何在 BentoML 中使用 LightGBM 的更多信息,请参阅 /frameworks/lightgbm。
- bentoml.lightgbm.save_model(name: Tag | str, model: lgb.basic.Booster, *, signatures: dict[str, ModelSignatureDict] | 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 ¶
将 LightGBM 模型实例保存到 BentoML 模型仓库。
- 参数:
name (
str
) – 在 BentoML 仓库中赋予模型的名称。这必须是一个有效的Tag
名称。model (
Booster
) – 要保存的 LightGBM 模型 (booster)。signatures (
dict[str, ModelSignatureDict]
, optional) – 要使用的预测方法的签名。如果未提供,签名默认为{"predict": {"batchable": False}}
。有关更多详情,请参阅ModelSignature
。labels (
dict[str, str]
, optional) – 与模型关联的默认管理标签集。例如{"training-set": "data-1"}
。custom_objects (
dict[str, Any]
, optional) –与模型一起保存的自定义对象。例如
{"my-normalizer": normalizer}
。自定义对象目前使用 cloudpickle 进行序列化,但此实现可能会更改。
external_modules (
List[ModuleType]
, optional, default toNone
) – 与模型或自定义对象一起保存的用户定义的额外 python 模块,例如分词器模块、预处理器模块、模型配置模块metadata (
dict[str, Any]
, optional) –与模型关联的元数据。例如
{"max_depth": 2}
。元数据用于在模型管理 UI 中显示,因此必须是默认的 Python 类型,例如
str
或int
。
- 返回:
一个格式为 name:version 的
tag
,其中 name 是用户定义的模型名称,version 是由 BentoML 生成的版本。- 返回类型:
Tag
示例
import bentoml import lightgbm as lgb import pandas as pd # load a dataset df_train = pd.read_csv("regression.train", header=None, sep=" ") df_test = pd.read_csv("regression.test", header=None, sep=" ") y_train = df_train[0] y_test = df_test[0] X_train = df_train.drop(0, axis=1) X_test = df_test.drop(0, axis=1) # create dataset for lightgbm lgb_train = lgb.Dataset(X_train, y_train) lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train) # specify your configurations as a dict params = { "boosting_type": "gbdt", "objective": "regression", "metric": {"l2", "l1"}, "num_leaves": 31, "learning_rate": 0.05, } # train gbm = lgb.train( params, lgb_train, num_boost_round=20, valid_sets=lgb_eval ) # save the booster to BentoML modelstore: bento_model = bentoml.lightgbm.save_model("my_lightgbm_model", gbm, booster_params=params)
- bentoml.lightgbm.load_model(bento_model: str | Tag | Model) lightgbm.basic.Booster ¶
从本地 BentoML 模型仓库加载具有给定 tag 的 LightGBM 模型。
- 参数:
bento_model (
str
|
Tag
|
Model
) – 要从仓库中获取的模型 tag,或从中加载模型的 BentoML ~bentoml.Model 实例。- 返回:
从模型仓库或 BentoML
Model
加载的 LightGBM 模型。- 返回类型:
Booster
示例
import bentoml gbm = bentoml.lightgbm.load("my_lightgbm_model:latest")
- bentoml.lightgbm.get(tag: t.Union[Tag, str], *, _model_store: ModelStore = <simple_di.providers.SingletonFactory object>, model_aliases: t.Dict[str, str] = <simple_di.providers.Static object>) Model ¶
按 tag 获取模型。如果 tag 是字符串,将在 model_aliases 字典中查找。
- bentoml.lightgbm.get_service(model_name: str, **config: Unpack[ServiceConfig]) Service[t.Any] ¶
从 LightGBM 模型获取 BentoML 服务实例。
- 参数:
model_name (
str
) – 获取服务所对应的模型名称。**config (
Unpack[ServiceConfig]
) – 服务的配置选项。
- 返回:
一个包装 LightGBM 模型的 BentoML 服务实例。
示例
import bentoml service = bentoml.lightgbm.get_service("my_lightgbm_model")