-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Python 3.10 for SageMaker Studio #104
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be best to have support for issue (#103) resolved in the same pull request to address all dependencies related to adding support for Python 3.10
Update copy_s3_content to ensure the FMBENCH_WRITE_DIR is also created, and fail the whole script if any of the commands error out.
Since debug.sh does an install of dist/*.whl, it should also explicitly remove any old versions' artifacts from this folder - otherwise it fails if it runs in the same environment after pyproject version was incremented.
Since debug.sh rebuilds the wheel, it should also force re-installation of the new wheel rather than allowing cache of the previous version.
Fix aws-samples#103 `Error: need to escape, but no escapechar set` observed on SageMaker Notebook Instance (pandas v2.1.4)
Recently I've been observing wget fails in SMStudio as per: aws/sagemaker-distribution#435 - so to get fmbench debugged successfully in this environment I had to swap out wget for curl calls in the `copy_s3_content` script.
As discussed with @antara678, appreciate the feedback that we need to be clear about what works & does not. Rebased the changes against current Outstanding gap vs the idealThe current proposed change does not by itself make FMBench "nice" to install on SageMaker Studio or NBIs, which is my end goal... The major blocker to that is FMBench is currently pinning so many dependencies to exact versions: See also #105. As discussed at great length on this nice blog post, applications should be specific about pinning package versions to drive reliable deployments - but libraries should be as loosely specified as possible (while still working), so that users can install them on a range of environments. At the moment if you simply ...But I thought #105 was a bit far-reaching to try and address with my first PR to the repo 😅 Was hoping we could just make some incremental progress of being able to install it with complaints. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update looks good
Issue #, if available: #94, #103
Description of changes:
pyproject.toml
to allow Python ^3.10 and re-ranpoetry lock
to resolve the dependenciesexecuted_notebooks/
and.venv/
to gitignore, and tried to start structuring the gitignore a bit since it's becoming largecopy_s3_content.sh
ensure the existence ofFMBENCH_WRITE_DIR
copy_s3_content.sh
anddebug.sh
actually fail (set -e
) if any of its commands fail - rather than the previous default behaviour of just carrying on.debug.sh
actually force re-installation of the wheel on a re-run with same pyproject version, and clean up old wheels if the pyproject version has been incremented (instead of trying to install any the old versions floating around too)wget
forcurl
incopy_s3_content.sh
to work around wget failing in SMStudio with 'Unable to locally verify the issuer's authority' aws/sagemaker-distribution#435Testing done:
To be honest, I find the local debugging procedures for the library a bit sketchy at the moment and still can't get the thing working from source on my laptop. Sharing exact steps I took to verify in different environments:
ml.t3.2xlarge
):ml.t3.2xlarge
, SM Distribution v1.8):In both cases the default/debug benchmark job seems to run successfully and generate reports.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.