-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment models on Google AI Platform with ML_DSL
Anna Safonova edited this page Jun 29, 2020
·
1 revision
There are two ways to fit a model on Google AI Platform: using API or jupyter magic functions.
from com.griddynamics.dsl.ml.executors.executors import AIPlatformJobExecutor
from com.griddynamics.dsl.ml.settings.profiles import AIDeployProfile
from com.griddynamics.dsl.ml.jobs.builder import JobBuilder
from com.griddynamics.dsl.ml.sessions import SessionFactory
from com.griddynamics.dsl.ml.settings.description import Platform
from com.griddynamics.dsl.ml.settings.arguments import Arguments
define Profile for job
profile = DeployAIProfile(bucket='bucket', cluster='cluster', region='global', job_prefix='deploy',
root_path='demo/deploy', project='project',
ai_region='us-central1', job_async=False,
runtime_version='1.15', python_version='3.7',
version_name='v1', is_new_model=True,
path_to_saved_model='gs://ai4ops/model_path/')
set python script
script_name = 'train_script.py'
model_name = 'demo_model'
define arguments for training job
output_path = 'gs://test_bucket/models'
args_dct = {
'--framework': 'TENSORFLOW'
}
Set arguments of job as Argument class instance
arguments = Arguments()
arguments.set_args(**args_dct)
Define ModelBuilder class instance
m_builder = ModelBuilder()
m_builder = m_builder.name(model)
.files_root(profile.root_path)
deployment_artifacts = []
model = m_builder.artifacts(deployment_artifacts)
.is_tuning(False)
.build()
AIJobBuilder instance
ai_job_builder = AIJobBuilder()
ai_job_builder = ai_job_builder.model(model)
.package_dst(profile.package_dst)
if args[0].package_src is not None:
ai_job_builder = ai_job_builder.package_src(args[0].package_src)
ai_job = ai_job_builder.deploy_input(args_dct).build()
Session instance for submitting train job to AI Platform
session = SessionFactory(platform=Platform.GCP)
.build_session(job_bucket=profile.bucket,
job_region=profile.region,
cluster=profile.cluster,
job_project_id=profile.project,
ml_region=profile.ai_region)
Executor instance for submitting deployment job to AI Platform
executor = AIPlatformJobExecutor(session, ai_job)
if profile.is_new_model:
response = executor.submit_deploy_model_job(profile.version_name,
create_new_model=True)
else:
response = executor.submit_deploy_model_job(profile.version_name)
from com.griddynamics.dsl.ml.settings.profiles import AIDeployProfile
from com.griddynamics.dsl.ml.settings.description import Platform
define Profile for job and platform
platform = Platform.GCP
profile = DeployAIProfile(bucket='ai4ops', cluster='ai4ops', region='global', job_prefix='deploy',
root_path='demo/deploy', project='gd-gcp-techlead-experiments',
ai_region='us-central1', job_async=False,
runtime_version='1.15', python_version='3.7',
version_name='v1', is_new_model=True,
path_to_saved_model='gs://ai4ops/mldsl/train_1592767608/saved_model/')
profile.arguments = {
"framework": "TENSORFLOW"
}
DeployAIProfile.set('AIProfile', profile)
Deployment using magic function %py_deploy:
%py_deploy -n model_name -p AIProfile -pm $platform