""" | |
A script that is run when the server starts. | |
""" | |
import os | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
DOWNLOADED_MODELS_DIR = os.path.join(os.path.dirname(__file__), 'models') | |
def download_model(model_name: str): | |
""" | |
Downloads a model from hugging face hub to the disk but not to the RAM. | |
:param model_name: The name of the model to download. | |
""" | |
print(f"Downloading model: {model_name}") | |
model = AutoModelForCausalLM.from_pretrained(model_name) | |
del model | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
del tokenizer | |
print(f"Downloaded model: {model_name}") | |
def download_useful_models(): | |
""" | |
Downloads the models that are useful for this project. | |
So that the user doesn't have to wait for the models to download when they first use the app. | |
""" | |
print("Downloading useful models...") | |
os.makedirs(DOWNLOADED_MODELS_DIR, exist_ok=True) | |
useful_models = ( | |
"gpt2", | |
"EleutherAI/gpt-j-6B", | |
"sberbank-ai/mGPT", | |
"facebook/opt-125m", | |
) | |
for model_name in useful_models: | |
download_model(model_name) | |
def main(): | |
download_useful_models() | |
if __name__ == "__main__": | |
main() | |