about-billing-for-github-actions
Les comparto los costos y lo que incluye en plan free de github actions 😃
Introducción
¿Qué es el despliegue de modelos y por qué es necesario?
Machine Learning Operations
Historia del MLOps y estado del arte
Flujo de vida de un modelo en producción
Requerimientos para poder hacer MLOps
Presentación del proyecto
Presentación y arquitectura del proyecto MLOps
Revisión de notebooks y modelado
Distribución archivos y contenido
Data Version Control
¿Qué es DVC y por que lo utilizaremos?
Comandos básicos para implementar DVC
Implementando DVC en nuestro proyecto
Desarrollo de pipeline de reentrenamiento: preparación de la data
Desarrollo de pipeline de reentrenamiento: script de entrenamiento
Desarrollo de pipeline de reentrenamiento: validación del modelo
Desarrollo de API con FastAPI
Desarrollo de API con FastAPI
Desarrollo de API con FastAPI: creación de utilidades
Desarrollo de testeo de API
Empaquetando API con Docker
Continuous Integration/Deployment/Training
Presentacion de Github Actions y Continuous Machine Learning
Desarrollo de workflow para testing
Desarrollo de workflow para Continuous Training utilizando CML
Creacion de Servicio en la nube para el despliegue y desarrollo de workflow para CI/CD
Final del proyecto
Prueba tu endpoint
Sigue Aprendiendo
Otras maneras de hacer despliegues de modelos
Conclusiones y recomendaciones para seguir en el MLOps
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 5
Preguntas 7
about-billing-for-github-actions
Les comparto los costos y lo que incluye en plan free de github actions 😃
Bueno, luego de un dia de arduo trabajo, logre emular el proceso usando AWS.
Esta dificil contextualizar un orden adecuado de como lo logre, pero lo logre y ya esta.
Iremos como jack el distripador, por partes.
Primero quisiera anexarles mi archivo .yaml, el mismo tiene algunas variantes, ya que yo no use algunas cosas usadas en el curso, el que haya visto mis comentarios en la parte de aportes sabra que es asi, al final mi archivo quedo asi:
name: Testing API
on:
workflow_dispatch:
push:
branches:
- workflow_testing_api
pull_request:
branches:
- workflow_testing_api
permissions:
id-token: write # need this for OIDC
contents: read
jobs:
testing-api:
name: Testing-api in Github Actions
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
steps:
- name: Checkout the repo
uses: actions/[email protected]
- name: Set AWS credentials
uses: aws-actions/[email protected]
with:
role-session-name: aws_testing_session
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Creating and activating pipenv
run: |
pip install pipenv
pipenv install
pipenv run python
- name: Installing dependencies
run: |
pip install dvc[s3]
pip install -r requirements_test.txt
- name: Test API
run: |
dvc pull model/model.pkl -r model-tracker
pytest tests/tests_api.py
Debo hacer ciertas acotaciones, cosas como usar el dependabot en secredos de github, ya no se puede, arroja mil errores, de eeso se pueden enterar aca:
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/
Estuve realizando el curso apenas ahora. A la fecha actions/[email protected]
da problemas. Es necesario cambiarlo por actions/[email protected]
Para AWS al parecer el proceso que realizamos se emula con IAM role, no pude realizarlo ya que no consegui en la web como emularlo y no me atrevi por tener la tarjeta sociada a AWS, si vi que al parecer se le puede dar control acceso del s3 entre otros parametros. Por si alguien lo realiza a corto plazo dejo este checkpoints.
Llevo 3 dias con este error y no doy con el chiste
Local funcionan los tests pero usando github actions falla 😦
__________________________ ERROR collecting tests.py ___________________________
tests.py:2: in <module>
from api.main import app
api/main.py:3: in <module>
from .app.views import get_prediction
api/app/views.py:4: in <module>
model = get_model()
api/app/utils.py:11: in get_model
model = joblib.load(BytesIO(model_file.read()))
../../../.local/lib/python3.8/site-packages/joblib/numpy_pickle.py:577: in load
obj = _unpickle(fobj)
../../../.local/lib/python3.8/site-packages/joblib/numpy_pickle.py:506: in _unpickle
obj = unpickler.load()
/usr/lib/python3.8/pickle.py:1212: in load
dispatch[key[0]](self)
/usr/lib/python3.8/pickle.py:1505: in load_obj
args = self.pop_mark()
/usr/lib/python3.8/pickle.py:1219: in pop_mark
self.stack = self.metastack.pop()
E IndexError: pop from empty list
=========================== short test summary info ============================
ERROR tests.py - IndexError: pop from empty list
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 1.30s ===============================
Error: Process completed with exit code 2.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.