@@ -181,46 +181,31 @@ The example is illustrated using an AutoMLx model.
181
181
182
182
.. code-block :: python3
183
183
184
- import automl
185
- import ads
186
- from automl import init
187
- from sklearn.datasets import fetch_openml
188
- from sklearn.model_selection import train_test_split
184
+ import tempfile
185
+ from ads import set_auth
189
186
from ads.model import GenericModel
187
+ from sklearn.datasets import load_iris
188
+ from sklearn.linear_model import LogisticRegression
189
+ from sklearn.model_selection import train_test_split
190
190
191
- dataset = fetch_openml(name='adult', as_frame=True)
192
- df, y = dataset.data, dataset.target
193
-
194
- # Several of the columns are incorrectly labeled as category type in the original dataset
195
- numeric_columns = ['age', 'capitalgain', 'capitalloss', 'hoursperweek']
196
- for col in df.columns:
197
- if col in numeric_columns:
198
- df[col] = df[col].astype(int)
199
-
200
-
201
- X_train, X_test, y_train, y_test = train_test_split(df,
202
- y.map({'>50K': 1, '<=50K': 0}).astype(int),
203
- train_size=0.7,
204
- random_state=0)
205
-
206
- X_train.shape, X_test.shape
207
-
208
- # create a AutoMLx model
209
- init(engine='local')
191
+ set_auth(auth="resource_principal")
210
192
211
- est = automl.Pipeline(task='classification')
212
- est.fit(X_train, y_train)
193
+ # Load dataset and Prepare train and test split
194
+ iris = load_iris()
195
+ X, y = iris.data, iris.target
196
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
213
197
214
- # Authentication
215
- ads.set_auth(auth="resource_principal")
198
+ # Train a LogisticRegression model
199
+ sklearn_estimator = LogisticRegression()
200
+ sklearn_estimator.fit(X_train, y_train)
216
201
217
202
# Serialize your model. You can choose your own way to serialize your model.
218
203
import cloudpickle
219
204
with open("./model.pkl", "wb") as f:
220
- cloudpickle.dump(est , f)
205
+ cloudpickle.dump(sklearn_estimator , f)
221
206
222
- model = GenericModel(est , artifact_dir = "model_artifact_folder", serialize=False)
223
- model.prepare(inference_conda_env="automlx_p38_cpu_v1 ",force_overwrite=True, model_file_name="model.pkl", X_sample=X_test)
207
+ model = GenericModel(sklearn_estimator , artifact_dir = "model_artifact_folder", serialize=False)
208
+ model.prepare(inference_conda_env="generalml_p38_cpu_v1 ",force_overwrite=True, model_file_name="model.pkl", X_sample=X_test)
224
209
225
210
Now copy the model.pkl file and paste into the ``model_artifact_folder `` folder. And open the score.py in the ``model_artifact_folder `` folder to add implementation of the ``load_model `` function. You can also add your preprocessing steps in ``pre_inference `` function and postprocessing steps in ``post_inference `` function. Below is an example implementation of the score.py.
226
211
Replace your score.py with the code below.
@@ -378,15 +363,15 @@ Save the score.py and now call ``.verify()`` to check if it works locally.
378
363
379
364
.. code-block :: python3
380
365
381
- model.verify(X_test.iloc [:2], auto_serialize_data=True)
366
+ model.verify(X_test[:2], auto_serialize_data=True)
382
367
383
368
After verify run successfully, you can save the model to model catalog, deploy and call predict to invoke the endpoint.
384
369
385
370
.. code-block :: python3
386
371
387
372
model_id = model.save(display_name='Demo AutoMLModel model')
388
373
deploy = model.deploy(display_name='Demo AutoMLModel deployment')
389
- model.predict(X_test.iloc [:2].to_json ())
374
+ model.predict(X_test[:2].tolist ())
390
375
391
376
You can also use the shortcut ``.prepare_save_deploy() `` instead of calling ``.prepare() ``, ``.save() `` and ``.deploy() `` seperately.
392
377
0 commit comments