Loading Models Without Disk Storage Using InMemoryModelStore
¶
Introduction¶
This tutorial introduces the InMemoryModelStore
class, an alternative to ModelStore
designed for environments with limited disk space. This approach is particularly beneficial when memory is more readily available than disk space or disk access is limited or slow.
InMemoryModelStore
enables model loading directly into memory, bypassing the need for local storage and disk I/O operations.
Using InMemoryModelStore¶
Here's how to use InMemoryModelStore
:
In [ ]:
Copied!
from molfeat.store import InMemoryModelStore
# Initialize the in-memory store
store = InMemoryModelStore(model_store_root="s3://my-modelstore-bucket")
# Load a model directly into memory
model, model_info = store.load("My-Model")
from molfeat.store import InMemoryModelStore
# Initialize the in-memory store
store = InMemoryModelStore(model_store_root="s3://my-modelstore-bucket")
# Load a model directly into memory
model, model_info = store.load("My-Model")
The model is now ready for use without any disk I/O overhead
In [ ]:
Copied!
import datamol as dm
from molfeat.trans.pretrained.hf_transformers import PretrainedHFTransformer
smiles = dm.freesolv().iloc[:100].smiles
transformer = PretrainedHFTransformer(kind=model, notation=model_info.inputs, dtype=float)
features = transformer(smiles)
import datamol as dm
from molfeat.trans.pretrained.hf_transformers import PretrainedHFTransformer
smiles = dm.freesolv().iloc[:100].smiles
transformer = PretrainedHFTransformer(kind=model, notation=model_info.inputs, dtype=float)
features = transformer(smiles)
Benefits and Considerations¶
- Reduced Latency: By loading models directly into memory, you eliminate the time needed for disk reads.
- Efficient Resource Use: Ideal for serverless environments where disk access might be limited or costly.
However, keep in mind that this approach requires sufficient memory to hold the entire model. Ensure your deployment environment has adequate RAM for your model size.