This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Pre-process and model building | |
name: F1 Prediction MLOps | |
on: | |
workflow_dispatch | |
jobs: | |
build: | |
runs-on: ubuntu-latest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from metaflow import FlowSpec, step, current | |
from comet_ml import API, Experiment | |
import os | |
import random | |
try: | |
from dotenv import load_dotenv | |
load_dotenv(verbose=True, dotenv_path='.env') | |
except: | |
print("No dotenv package") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@step | |
def model_training(self): | |
""" | |
Model training | |
- now training starts, first we specify the Docker image for the required algorithm, in this case linear learner | |
- create an estimator with the specified parameters, | |
- set the static hyperparameters, and SageMaker will automatically calculate those set as 'auto' | |
- calling fit() starts the training process, upto the specified number of epochs | |
- the save the model name and location for the next steps | |
- take note that we have to specify an instance for training, which may be different from the endpoint instance |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def getLabelsOfImage(bucket_name, number_labels, image): | |
# Use boto3 call detect_labels to get Amazon Rekognition labels | |
client = boto3.client("rekognition") | |
response = client.detect_labels( | |
Image={"S3Object": {"Bucket": bucket_name, "Name": image}}, | |
MaxLabels=number_labels, | |
MinConfidence=98 | |
) | |
return response["Labels"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def getCustomLabelsOfImage(model_arn, bucket_name, image): | |
# Use boto3 call detect_custom_labels API call to get Rekognition Custom Labels | |
client = boto3.client("rekognition") | |
response = client.detect_custom_labels( | |
ProjectVersionArn=model_arn, | |
Image={"S3Object": {"Bucket": bucket_name, "Name": image}}, | |
MinConfidence=98, | |
) | |
return response["CustomLabels"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import boto3 | |
from generators.generate_users_json import generate_users_json | |
bucket = "cevo-shopping-demo" | |
users_filename = "./generators/users.csv" | |
generate_users_json() | |
boto3.Session(profile_name=<aws-profile-replace-me>, region_name="ap-southeast-2").resource( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import boto3 | |
from generators.generate_items_and_interactions_personalize import generate_interactions | |
bucket = "cevo-shopping-demo" | |
interactions_filename = "./generators/interactions.csv" | |
generate_interactions() | |
boto3.Session(profile_name=<aws-profile-replace-me>, region_name="ap-southeast-2").resource( | |
"s3" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import boto3 | |
from generators.generate_items_and_interactions_personalize import generate_user_items | |
bucket = "cevo-shopping-demo" | |
products_filename = "./generators/items.csv" | |
generate_user_items() | |
boto3.Session(profile_name=<aws-profile-replace-me>, region_name="ap-southeast-2").resource( | |
"s3" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def get_recommended_items(user_id): | |
ssm = boto3.client("ssm") | |
recommenderArn = ssm.get_parameter( | |
Name="/cevo-shopping-demo/recommender/arn-retaildemostore-recommended-for-you", | |
WithDecryption=False, | |
) | |
response = personalizeRuntime.get_recommendations( | |
recommenderArn=recommenderArn["Parameter"]["Value"], | |
userId=user_id, | |
numResults=30, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def get_popular_items(user_id="x"): | |
ssm = boto3.client("ssm") | |
recommenderArn = ssm.get_parameter( | |
Name="/cevo-shopping-demo/recommender/arn-retaildemostore-popular-items", | |
WithDecryption=False, | |
) | |
response = personalizeRuntime.get_recommendations( | |
recommenderArn=recommenderArn["Parameter"]["Value"], | |
userId=user_id, | |
numResults=100, |
OlderNewer