Niclas
Я бы посоветовал вам попробовать BentoML .
BentoML - это платформа с открытым исходным кодом для обслуживания высокопроизводительных моделей. Она превращает модель ML в конечную точку производственного API с помощью всего лишь нескольких строк кода.
Для вашего случая использования:
В вашей записной книжке на Sagemaker после обучения модели вы можете определить служба прогнозирования spe c с BentoML. Этот код создает BentoService, который ожидает PickleArtifact, предоставляет конечную точку API с именем предиката и автоматически включает зависимости pip
%%write my_service.py
from bentoml import api, BentoService, artifacts, env
from bentoml.artifacts import PickleArtifact
from bentoml.handlers import DataFrameHandler
@env(auto_pip_dependencies=True)
@artifacts([PickleArtifact('my_model')]
class MyTextClassifier(BentoService):
def preprocess(self, raw_data):
...
return processed_data;
@api(DataframeHandler)
def predict(self, df):
processed_data = self.preprocess(df)
return self.artifacts.my_model.predict(processed_data)
В следующей ячейке загрузите класс, определенный из предыдущей ячейки, и сохраните модель.
from my_service import MyTextClassification
service = MyTextClassification()
service.pack('my_model', trained_model)
service.save()
# could also saved the model to S3 bucket
# service.save('s3://my_bucket')
Вы можете легко развернуть Sagemaker в блокноте.
!bentoml sagemaker deploy my-deployment -b {service.name}:{service.version} --api-name predict
Вот пример этого. В этом примере он использует Keras для построения модели классификации текста, а затем развертывает модель в Sagemaker для обслуживания модели.
https://github.com/bentoml/gallery/blob/master/keras/text-classification/keras-text-classification.ipynb
Отказ от ответственности: я один из авторов BentoML.