Skip to content
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

More improvements to the documentation on model persistence #29011

Merged
merged 2 commits into from
May 14, 2024

Conversation

ogrisel
Copy link
Member

@ogrisel ogrisel commented May 13, 2024

Follow-up on #28889 with further clarifications / fixes and additional info.

Copy link

github-actions bot commented May 13, 2024

✔️ Linting Passed

All linting checks passed. Your pull request is in excellent shape! ☀️

Generated for commit: 1de39b7. Link to the linter CI: here

format, and therefore a sandbox used to serve models using `ONNX` also needs to
safeguard against computational and memory exploits.
format, and it is therefore recommended to serve models using `ONNX` in a
sandboxed environment to safeguard against computational and memory exploits.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@adrinjalali do you have a good reference for the threat model of loading ONNX files from untrusted origins?

It seems that is has some filesystem access (via External Data Files) but overall it seems quite safe to load and run inference on untrusted ONNX files with onnxruntime (assuming no security bugs in onnxruntime itself).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the assessment. It's much better than loading pickle, and the potential issues can be handled if one limits the resources available to the onnxruntime via sandboxing.

Copy link
Member

@adrinjalali adrinjalali left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ogrisel

doc/model_persistence.rst Outdated Show resolved Hide resolved
format, and therefore a sandbox used to serve models using `ONNX` also needs to
safeguard against computational and memory exploits.
format, and it is therefore recommended to serve models using `ONNX` in a
sandboxed environment to safeguard against computational and memory exploits.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the assessment. It's much better than loading pickle, and the potential issues can be handled if one limits the resources available to the onnxruntime via sandboxing.

doc/model_persistence.rst Outdated Show resolved Hide resolved
Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>
@adrinjalali adrinjalali merged commit 94ad8f3 into scikit-learn:main May 14, 2024
30 checks passed
@adrinjalali
Copy link
Member

@jeremiedbb might wanna cherry pick this one as well.

@ogrisel ogrisel deleted the improve-persistence-doc branch May 15, 2024 08:04
@ogrisel
Copy link
Member Author

ogrisel commented May 15, 2024

@adrinjalali I think this new page is a great improvement w.r.t. what we previously had. Maybe we could further improve by rewriting the open section with either:

  • a decision flow diagram;
  • a summary table to make it easier to compare all solutions at a glance.

jeremiedbb pushed a commit to jeremiedbb/scikit-learn that referenced this pull request May 20, 2024
@jeremiedbb jeremiedbb mentioned this pull request May 20, 2024
14 tasks
jeremiedbb pushed a commit that referenced this pull request May 21, 2024
Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants