wooden-dusk-90720
12/06/2022, 8:06 PMpyproject.toml file into the @conda decorator and it's spewing lots of conflictsvictorious-lawyer-58417
12/06/2022, 8:09 PMmamba? Mamba tends to give nicer error messages than condawooden-dusk-90720
12/06/2022, 8:13 PMvictorious-lawyer-58417
12/06/2022, 8:16 PMvictorious-lawyer-58417
12/06/2022, 8:16 PM"METAFLOW_CONDA_DEPENDENCY_RESOLVER": "mamba" in your Metaflow configwooden-dusk-90720
12/06/2022, 8:17 PMCONDA_CHANNELS=anaconda,conda-forge,default?ancient-application-36103
12/06/2022, 8:17 PMdry-beach-38304
12/06/2022, 8:29 PMwooden-dusk-90720
12/06/2022, 8:30 PMwooden-dusk-90720
12/06/2022, 11:21 PMvictorious-lawyer-58417
12/06/2022, 11:35 PMwooden-dusk-90720
12/06/2022, 11:36 PM--quiet flag and added some logs. This is what i see:
Bootstrapping conda environment...(this could take a few minutes)
/Users/pownissa/mambaforge/bin/mamba ['info']
/Users/pownissa/mambaforge/bin/mamba ['info']
/Users/pownissa/mambaforge/bin/mamba ['info']
/Users/pownissa/mambaforge/bin/mamba ['info']
/Users/pownissa/mambaforge/bin/mamba ['env', 'remove', '--name', 'metaflow_ModelBuilder_osx-64_9d3a3ba046824a40c12d92a065706f31c28664ed', '--yes']
/Users/pownissa/mambaforge/bin/mamba ['create', '--yes', '--no-default-packages', '--name', 'metaflow_ModelBuilder_osx-64_9d3a3ba046824a40c12d92a065706f31c28664ed', b'python==3.10', b'requests==2.27.1', b'boto3==1.24.28', b'click==8.0.3', b'coverage==6.3', b'Jinja2==3.1.2', b'awswrangler==2.17.0', b'bunch==1.0.1', b'cachetools==5.2.0', b'flatten-dict==0.4.2', b'numba==0.56.4', b'numpy==1.23.4', b'omegaconf==2.2.3', b'orjson==3.8.1', b'pydash==5.1.1', b'pytorch-lightning==1.7.7', b'sagemaker-python-sdk==2.77.1', b'scikit-learn==1.1.3', b'scipy==1.9.3', b'tenacity==8.1.0', b'pytorch==1.12.1', b'tqdm==4.64.1']
/Users/pownissa/mambaforge/bin/mamba ['info']
/Users/pownissa/mambaforge/bin/mamba ['list', '--name', 'metaflow_ModelBuilder_osx-64_9d3a3ba046824a40c12d92a065706f31c28664ed', '--explicit']
/Users/pownissa/mambaforge/bin/mamba ['info']victorious-lawyer-58417
12/06/2022, 11:45 PMvictorious-lawyer-58417
12/06/2022, 11:45 PMvictorious-lawyer-58417
12/06/2022, 11:46 PMmamba create -n testenv python==3.10 requests==2.27.1 boto3==1.24.28 click==8.0.3 coverage==6.3 Jinja2==3.1.2 awswrangler==2.17.0 bunch==1.0.1 cachetools==5.2.0 flatten-dict==0.4.2 numba==0.56.4 numpy==1.23.4 omegaconf==2.2.3 orjson==3.8.1 pydash==5.1.1 pytorch-lightning==1.7.7 sagemaker-python-sdk==2.77.1 scikit-learn==1.1.3 scipy==1.9.3 tenacity==8.1.0 pytorch==1.12.1 tqdm==4.64.1
and it took a few minutes to create, so it doesn't seem that resolving the dependencies is the issuewooden-dusk-90720
12/06/2022, 11:46 PMvictorious-lawyer-58417
12/06/2022, 11:46 PMwooden-dusk-90720
12/06/2022, 11:47 PMwooden-dusk-90720
12/06/2022, 11:48 PMMETAFLOW_CONDA_DEPENDENCY_RESOLVER=mamba CONDA_CHANNELS=anaconda,conda-forge,default TEST_DATA_PATH=small.parquet python model_builder.py --environment=conda run --base_cfg ./conf/models/Lightsabre/Base.yaml --override_cfg ./conf/test.yamlvictorious-lawyer-58417
12/06/2022, 11:55 PMwooden-dusk-90720
12/06/2022, 11:59 PMfrom metaflow import (
FlowSpec,
step,
batch,
retry,
schedule,
timeout,
project,
conda_base,
Parameter,
JSONType,
)
from datetime import datetime, timedelta
import json
@schedule(hourly=True)
@project(name="model_builder")
@conda_base(
libraries={
"boto3": "1.24.28",
"click": "8.0.3",
"coverage": "6.3",
"requests": "2.27.1",
"Jinja2": "3.1.2",
"awswrangler": "2.17.0",
"bunch": "1.0.1",
"cachetools": "5.2.0",
"flatten-dict": "0.4.2",
"numba": "0.56.4",
"numpy": "1.23.4",
"omegaconf": "2.2.3",
"orjson": "3.8.1",
"pydash": "5.1.1",
"pytorch-lightning": "1.7.7",
"sagemaker-python-sdk": "2.77.1",
"scikit-learn": "1.1.3",
"scipy": "1.9.3",
"tenacity": "8.1.0",
"pytorch": "1.12.1",
"tqdm": "4.64.1",
},
python="3.10",
)
class ModelBuilder(FlowSpec):
base_cfg = Parameter("base_cfg", default="./conf/models/Lightsabre/Base.yaml")
override_cfg = Parameter("override_cfg", default="./conf/test.yaml")
@step
def start(self):
self.run_date = datetime.utcnow().replace(microsecond=0, second=0, minute=0)
self.next(self.preprocess_data)
@timeout(minutes=180)
@batch(cpu=96, memory=256_000)
@step
def preprocess_data(self):
self.next(self.train_model)
@timeout(minutes=60)
@batch(gpu=1)
@step
def train_model(self):
self.next(self.deploy_model)
@retry(times=4)
@step
def deploy_model(self):
self.next(self.end)
@step
def end(self):
pass
if __name__ == "__main__":
ModelBuilder()wooden-dusk-90720
12/07/2022, 12:00 AMPython 3.10.6 | packaged by conda-forge | (main, Aug 22 2022, 20:41:54) [Clang 13.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import metaflow
metaf>>> metaflow.__version__
'2.7.15'victorious-lawyer-58417
12/07/2022, 12:16 AMconda 4.9.2 but seems to work fine with mamba 1.0.0victorious-lawyer-58417
12/07/2022, 12:16 AMmamba?wooden-dusk-90720
12/07/2022, 12:16 AMmamba --version
mamba 1.0.0
conda 22.9.0wooden-dusk-90720
12/07/2022, 12:17 AMactive environment : base
active env location : /Users/pownissa/mambaforge
shell level : 1
user config file : /Users/pownissa/.condarc
populated config files : /Users/pownissa/mambaforge/.condarc
/Users/pownissa/.condarc
conda version : 22.9.0
conda-build version : not installed
python version : 3.10.6.final.0
virtual packages : __osx=13.0=0
__unix=0=0
__archspec=1=x86_64
base environment : /Users/pownissa/mambaforge (writable)
conda av data dir : /Users/pownissa/mambaforge/etc/conda
conda av metadata url : None
channel URLs : <https://conda.anaconda.org/conda-forge/osx-64>
<https://conda.anaconda.org/conda-forge/noarch>
<https://repo.anaconda.com/pkgs/main/osx-64>
<https://repo.anaconda.com/pkgs/main/noarch>
<https://repo.anaconda.com/pkgs/r/osx-64>
<https://repo.anaconda.com/pkgs/r/noarch>
package cache : /Users/pownissa/mambaforge/pkgs
/Users/pownissa/.conda/pkgs
envs directories : /Users/pownissa/mambaforge/envs
/Users/pownissa/.conda/envs
platform : osx-64
user-agent : conda/22.9.0 requests/2.28.1 CPython/3.10.6 Darwin/22.1.0 OSX/13.0
UID:GID : 93773924:1896053708
netrc file : None
offline mode : Falsevictorious-lawyer-58417
12/07/2022, 12:28 AMMETAFLOW_CONDA_DEPENDENCY_RESOLVER=mamba CONDA_CHANNELS=anaconda,conda-forge,defaults python flow.py --environment=conda --datastore=local --metadata=local runwooden-dusk-90720
12/07/2022, 12:29 AMAWS Batch error:
The @batch decorator requires --datastore=s3.victorious-lawyer-58417
12/07/2022, 12:29 AM@batch to test itwooden-dusk-90720
12/07/2022, 12:32 AMvictorious-lawyer-58417
12/07/2022, 12:33 AM@conda to make sure your AWS/S3 config works otherwise?wooden-dusk-90720
12/07/2022, 12:34 AM@batch decorator), so guess it's just my internetvictorious-lawyer-58417
12/07/2022, 12:34 AMwooden-dusk-90720
12/07/2022, 12:35 AMwooden-dusk-90720
12/07/2022, 12:39 AMnumba 0.56.4) wasn't satisfying. How do people work around this?
Step: start, Error: command '['/local/home/pownissa/mambaforge/bin/mamba', 'create', '--yes', '--no-default-packages', '--name', 'metaflow_ModelBuilder_linux-64_9d3a3ba046824a40c12d92a065706f31c28664ed', '--quiet', b'python==3.10', b'requests==2.27.1', b'boto3==1.24.28', b'click==8.0.3', b'coverage==6.3', b'Jinja2==3.1.2', b'awswrangler==2.17.0', b'bunch==1.0.1', b'cachetools==5.2.0', b'flatten-dict==0.4.2', b'numba==0.56.4', b'numpy==1.23.4', b'omegaconf==2.2.3', b'orjson==3.8.1', b'pydash==5.1.1', b'pytorch-lightning==1.7.7', b'sagemaker-python-sdk==2.77.1', b'scikit-learn==1.1.3', b'scipy==1.9.3', b'tenacity==8.1.0', b'pytorch==1.12.1', b'tqdm==4.64.1']' returned error (1): b'Encountered problems while solving:\n - nothing provides requested numba 0.56.4\n\n{\n "success": false\n}\n', stderr=b''victorious-lawyer-58417
12/07/2022, 12:42 AM@batch locally in your case:
1. you could bake in the dependencies in a Docker image and use @batch(image=...)
2. you could use a local editor with EC2 as a remote backend
3. use a cloud workstation (Google colab / Sagemaker / Metaflow sandbox etc)wooden-dusk-90720
12/07/2022, 12:45 AMpython? so i have to install all the deps globally?victorious-lawyer-58417
12/07/2022, 12:48 AMpython in that environmentvictorious-lawyer-58417
12/07/2022, 12:49 AMwooden-dusk-90720
12/07/2022, 12:51 AMvictorious-lawyer-58417
12/07/2022, 12:53 AM@conda does, except that it resolves the required packages only once which makes things much faster (imagine having a foreach with many tasks, all of which have to resolve all dependencies from scratch)
the issue here is that the environment is large enough that uploading from your local laptop seems to cause hiccups 😢victorious-lawyer-58417
12/07/2022, 1:04 AMsubprocess.call(“pip install…”) n your step code as a workaroundvictorious-lawyer-58417
12/07/2022, 1:04 AMwooden-dusk-90720
12/07/2022, 1:10 AM@conda dict for that right?victorious-lawyer-58417
12/07/2022, 1:28 AMstart step running locally but foreach running on @batch - where would the resolution happen in that casevictorious-lawyer-58417
12/07/2022, 6:19 PMsubprocess.call("pip install") approach? It might be the easiest solution in your case?wooden-dusk-90720
12/07/2022, 6:19 PMvictorious-lawyer-58417
12/07/2022, 6:20 PMvictorious-lawyer-58417
12/07/2022, 6:20 PM