I'm making a python package where the main functionality is using a model that I've trained. I want it to be as easy as possible to access the model for end users so they can just use the main functions without needing to actively go find and download the model separately.
I initially thought I would just include the model file in the package but it is on the large side (~95MB) and Github warns me about it so my feeling is I should try find an alternative way.
I've tried compressing the model by zipping it but that doesn't make much of a dent in the file size. The model itself is fixed so I can't reduce the size by training an alternative version with different hyperparameters.
My solution at the moment is to not include the model and instead download it from s3 when the relevant class is used (this is an internal package, so everybody using it would hypothetically have access to the s3 bucket). However, I don't really like this solution because it requires users to have things set up to access AWS with a specific role, and even if I include examples / documentation / hints in error messaging, I can imagine the experience not being ideal. They also have the option of passing a file path if they have the model saved somewhere, but again that requires some initial setup.
I've tried researching ways to access / package models but haven't come up with much.
So my questions are:

Is there a way to include this model in the package?
Are there other ways to access the model that I haven't thought about?
Is there a way to include this model in the package?

Yes, you can include any file—no matter the size—in a Python package.

Are there other ways to access the model that I haven't thought about?

If the user is going to have to download it anyway, why not in the package?
One reason: if the model rarely changes, but the code around it does, the users will have to repeatedly download a large package.
Could you have two Python packages?  One that is just the model and the other that is the code?  That way the user will only need to download the model again if a new version is available.
Accessing model when creating new python package