Estás leyendo la publicación: Cree, entrene, rastree y comparta sus modelos ML con Layer AI
La capa es una plataforma colaborativa de aprendizaje automático que permite a los usuarios crear, entrenar, rastrear y compartir modelos de aprendizaje automático. Permite la colaboración con el control de versiones semántico, el registro completo de artefactos y la generación de informes dinámicos, al mismo tiempo que ayuda a los usuarios a crear canalizaciones de aprendizaje automático de nivel de producción con una transición fluida de lo local a la nube. Este artículo se centra en la creación, el entrenamiento y el seguimiento de modelos de aprendizaje automático con la plataforma Layer AI. Los siguientes son los temas que se tratarán en este artículo.
Tabla de contenido
- Instalación de capa
- Conexión a la API de capa
- Construyendo el modelo
- Registro del modelo en Layer
- Entrenamiento remoto
En este artículo, construiremos un modelo de regresión en un conjunto de datos relacionado con la música incluida en el top 2000 de Spotify desde 2000 hasta 2019.
Instalación de capa
Este artículo usa un cuaderno de Colab, por lo que para instalar la capa, la sintaxis sería similar a la siguiente.
!pip capa de instalación
¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.
Conexión a la API de capa
Una vez que se complete el registro en la página web de Layer AI, cree un proyecto y luego conecte el portátil a Layer.
importar capa capa.login()
Se necesita la clave para conectar el cuaderno a la API para eso, simplemente haga clic en el clic que da la capa en la salida y copie el código en el portapapeles y péguelo en el portal de salida.
Una vez conectado a la API, inicie el proyecto utilizando el siguiente código
capa.init(“experimento-1”)
La capa proporcionará un enlace al proyecto iniciado y todas las actividades de la sesión actual se registrarán aquí.
Construyendo el modelo
Construcción de un modelo de regresión para predecir la popularidad de las canciones en función de las diferentes características. Para este artículo usando el algoritmo de impulso XG para la predicción
Importar bibliotecas necesarias
importar pandas como pd importar numpy como np importar seaborn como sns importar matplotlib.pyplot como plt
Leer y preprocesar los datos.
data=pd.read_csv(‘/content/drive/MyDrive/Datasets/songs_normalize.csv’) datos[:5]
Los datos utilizados están relacionados con la industria musical. Se trata de las 2000 mejores canciones del 2000 al 2019 según Spotify. La columna de destino calcula la popularidad de la canción. Aquí hay una descripción detallada de las características.
Codificación de la variable categórica para procesar los datos como un conjunto de entrenamiento.
codificador=LabelEncoder() datos[‘explicit_enc’]=codificador.fit_transform(datos[‘explicit’]) X=datos.drop([‘artist’, ‘song’, ‘genre’, ‘popularity’,’explicit’],eje=1) y=datos[‘popularity’]
Ya que hay características relacionadas con la medición y la medición tiene una unidad de medida diferente. Entonces, necesito convertir los datos en forma estándar. Para este propósito, use Standard Scaler de la biblioteca sklearn.
std_scale=StandardScaler() X_scaler=std_scale.fit_transform(X) X_scaled = pd.DataFrame(X_scaler, column = X.columns) X_scaled.head()
Dividir los datos en conjuntos de prueba y entrenamiento usando la división estándar de 30:70 respectivamente.
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.30, random_state=42)
Entrenando al modelo
import xgboost from sklearn.metrics import mean_squared_error,r2_score xgb_model = xgboost.XGBRegressor() xgb_model.fit(X_train, y_train) predicciones = xgb_model.predict(X_test) rmse = np.sqrt(mean_squared_error(y_test, predicciones)) r_score = r2_score( y_test,predicciones) print(“Error cuadrático medio = “,np.round(rmse,3)) print(“R2 score = “,np.round(r_score,3))
Registro del modelo en Layer
Simplemente agregue el decorador “@model” a su función de entrenamiento. El modelo entrenado devuelto se registrará en su Layer Project. Para permitir el seguimiento de experimentos, reemplace “imprimir” con “capa.log”.
@model(“experiment_model”) def train_model(): xgb_model = xgboost.XGBRegressor() xgb_model.fit(X_train, y_train) predicciones = xgb_model.predict(X_test) table = pd.DataFrame(zip(predictions,y_test),columns=[‘Predicted Popularity’, “Actual Popularity”]) rmse = np.sqrt(mean_squared_error(y_test, predicciones)) r_score = r2_score(y_test,predictions) plt.figure(figsize=(10,6)) reg_plot=sns.regplot(x=predictions, y=y_test).figure plt.xlabel(“Popularidad prevista”) plt.ylabel(“Popularidad real”) layer.log({“Error cuadrático medio”: rmse}) layer.log({“Puntaje R2”:r_score}) layer.log( {“Gráfico de regresión”:reg_plot}) layer.log({“Predicciones vs Real”:table[:50]}) devuelve xgb_model xgb_model = train_model()
El decorador “@model” se utilizará para proporcionar el nombre del modelo para que se pueda guardar y compartir o reutilizar en otro proyecto. Es necesario proporcionar toda la información relacionada con el modelo en una función. Una vez completado, se generaría un enlace donde se almacenaría todo el seguimiento de las versiones del modelo y otros detalles. Uno puede visitar manualmente la misma página continuando en la sección del modelo en el proyecto conectado a la computadora portátil.
Al usar el “registro ()”, todos los datos se almacenan en el servidor API y se puede acceder a ellos en cualquier momento visitando la sección de modelos en el proyecto.
Entrenamiento remoto
La capa es un repositorio de metadatos sofisticado donde uno puede guardar sus modelos, conjuntos de datos y procesos. La canalización de aprendizaje automático podría registrarse y ejecutarse en Layer de la misma manera en que se registra a través del cuaderno. Esto es particularmente beneficioso cuando:
- Los datos de entrenamiento son demasiado grandes para que los maneje la máquina local.
- El modelo necesita infrarrojos especializados, como una GPU de gama alta, que no está disponible en la máquina local.
En lugar de ejecutar la función de tren directamente, use “layer.run()” para dárselo a la capa. La capa decapará y ejecutará la función en Layer infra.
capa.ejecutar([train_model])
Conclusión
La capa es un repositorio de metadatos sofisticado donde puede guardar sus modelos, conjuntos de datos y procesos. Con este artículo hemos entendido la construcción, entrenamiento y registro de un modelo ML con la plataforma Layer AI.