Trying to load the model ‘sentence-transformers/sentence-t5-xl’
model = SentenceTransformer(‘sentence-transformers/sentence-t5-xl’)
tmp_dir = “sentence-t5-xl”
model.save(tmp_dir)
import boto3
s3 = boto3.client(‘s3’)
bucket = “bucket_name”
s3_prefix = “models/sentence-t5-xl”
import os
for root, _, files in os.walk(tmp_dir):
for file in files:
local_path = os.path.join(root, file)
s3_path = os.path.join(s3_prefix, os.path.relpath(local_path, tmp_dir))
s3.upload_file(local_path, bucket, s3_path)
print(f"Model uploaded to s3://{bucket}/{s3_prefix}")
model saved but failed to load
def download_s3_directory(bucket_name, s3_prefix, local_dir):
# Create an S3 client
s3_client = boto3.client(‘s3’)
# List objects in the S3 directory (prefix)
response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=s3_prefix)
import os
# Ensure the local directory exists
if not os.path.exists(local_dir):
os.makedirs(local_dir)
# Iterate over the files and download them
for obj in response.get('Contents', []):
s3_key = obj['Key']
file_name = os.path.basename(s3_key) # Get the file name from the S3 key
local_file_path = os.path.join(local_dir, file_name)
if not file_name: # Skip directories in S3
continue
print(f"Downloading {s3_key} -> {local_file_path}...")
s3_client.download_file(bucket_name, s3_key, local_file_path)
def load_model_from_s3(bucket, model_path, local_dir=“/tmp/sentence-t5-xl”):
import os
if not os.path.exists(local_dir):
download_s3_directory(bucket, model_path, local_dir)
os.environ[“TRANSFORMERS_OFFLINE”] = “1”
os.environ[“HF_DATASETS_OFFLINE”] = “1”
os.environ[“HF_HUB_OFFLINE”] = “1”
import torch
torch.set_grad_enabled(False)
return SentenceTransformer(local_dir, local_files_only=True)
model = load_model_from_s3(bucket, sbert_model_path)
shows the error
modules, self.module_kwargs = self._load_sbert_model(
File “/home/hadoop/environment/lib64/python3.9/site-packages/sentence_transformers/SentenceTransformer.py”, line 1736, in _load_sbert_model
module_path = load_dir_path(
File “/home/hadoop/environment/lib64/python3.9/site-packages/sentence_transformers/util.py”, line 1399, in load_dir_path
repo_path = snapshot_download(**download_kwargs)
File “/home/hadoop/environment/lib64/python3.9/site-packages/huggingface_hub/utils/_validators.py”, line 114, in _inner_fn
return fn(*args, **kwargs)
File “/home/hadoop/environment/lib64/python3.9/site-packages/huggingface_hub/_snapshot_download.py”, line 219, in snapshot_download
raise LocalEntryNotFoundError(
huggingface_hub.errors.LocalEntryNotFoundError: Cannot find an appropriate cached snapshot folder for the specified revision on the local disk and outgoing traffic has been disabled. To enable repo look-ups and downloads online, pass ‘local_files_only=False’ as input.
Not sure what is the problem
sentence-transformers==3.3.1