Home 101 Guardar tus modelos Pickle al rescate

Guardar tus modelos Pickle al rescate

Por Felipe Veloso

Respaldar y Guardar Modelos en archivos binarios

Hoy tenemos un post de gran utilidad, dia a dia en tu vida de data scientist procedes a generar modelos con cierta parametría (o hiperparametros ) o una cantidad variable de datos (modelo con 1 giga, 10 gigas o 10 teras), dada esta situación, no es posible generar modelos por cada pedido y en adición es mucho más factible llegar a perder algún modelo por memoria o por algún motivo externo y verse obligado a volver a esperar X horas para la generación de este nuevamente.

Para esta situación presentamos la librería Pickle, la cual en breves comandos nos permite salvaguardar un archivo del tipo que gustes en forma de un binario, el cual puedes consumir o leer nuevamente, así aseguras junto con un versionador como git, mantener administrado y versionado tus modelos evitando quebraderos de cabeza por errores evitables.

Junto con adjuntar el notebook y el resultado, destacaré un par situaciones que resultan importantes.

from sklearn import datasets, metrics
iris = datasets.load_iris()

La importación de dataset pre-armados que nos ofrece sklearn es una herramienta poderosa al momento de iniciar la creación de modelos en machine learning, pueden ver la documentacion aqui.

import pickle
#filename es el nombre que le daremos a nuestro archivo
filename = 'iris_model.pkl'
#Con el comando dump y la instrucción wb nos aseguramos de crear y escribir sobre el 
#archivo creado, otra precaución es lo que deseamos guardar en este caso fue el modelo
pickle.dump(model, open(filename,'wb'))

Dicho lo anterior, para efectos de una mejora en software, podemos crear una función que nos automatice la creación de los modelos asi evitar tener que hacerlo manual y sobreescribir el nombre de los archivos a crear.

filename = 'iris_model.pkl'
loaded_model = pickle.load(open(filename, 'rb'))
result = loaded_model.predict_proba(iris.data[-1:])
print("Prediccion: {}".format(result))

De esto cabe recalcar que es la instrucción contraria, la lectura del archivo recién creado y en adición el consumo natural del archivo como si fuéramos a probar una predicción y tener un resultado como si el modelo existiera desde el mismo script.

Nota adicional, esto se puede ver en yolo cuando descargas los archivos h5 funciona de igual forma.

El notebook lo puedes ver aquí.!!

Lo importante de esta forma de almacenar y consumir los archivos, es eliminar la dependencia del modelo e hiperparametria de tu notebook y poder hacer un consumo desde algún endpoint ( que son tareas más dirigidas al ingeniero de software o de datos) sin tener que iterar horas para obtener una predicción, dado que estas estarán archivadas en un fichero externo listo para su lectura.

You may also like

Deja un Comentario

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More