| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import os
- import sys
- from tqdm import tqdm
- import requests
- if len(sys.argv) < 3:
- print("Usage: download-pth.py dir-model model-type\n")
- print(" model-type: Available models 7B, 13B, 30B or 65B")
- sys.exit(1)
- modelsDir = sys.argv[1]
- model = sys.argv[2]
- num = {
- "7B": 1,
- "13B": 2,
- "30B": 4,
- "65B": 8,
- }
- if model not in num:
- print(f"Error: model {model} is not valid, provide 7B, 13B, 30B or 65B")
- sys.exit(1)
- print(f"Downloading model {model}")
- files = ["checklist.chk", "params.json"]
- for i in range(num[model]):
- files.append(f"consolidated.0{i}.pth")
- resolved_path = os.path.abspath(os.path.join(modelsDir, model))
- os.makedirs(resolved_path, exist_ok=True)
- for file in files:
- dest_path = os.path.join(resolved_path, file)
-
- if os.path.exists(dest_path):
- print(f"Skip file download, it already exists: {file}")
- continue
- url = f"https://agi.gpt4.org/llama/LLaMA/{model}/{file}"
- response = requests.get(url, stream=True)
- with open(dest_path, 'wb') as f:
- with tqdm(unit='B', unit_scale=True, miniters=1, desc=file) as t:
- for chunk in response.iter_content(chunk_size=1024):
- if chunk:
- f.write(chunk)
- t.update(len(chunk))
- files2 = ["tokenizer_checklist.chk", "tokenizer.model"]
- for file in files2:
- dest_path = os.path.join(modelsDir, file)
-
- if os.path.exists(dest_path):
- print(f"Skip file download, it already exists: {file}")
- continue
-
- url = f"https://agi.gpt4.org/llama/LLaMA/{file}"
- response = requests.get(url, stream=True)
- with open(dest_path, 'wb') as f:
- with tqdm(unit='B', unit_scale=True, miniters=1, desc=file) as t:
- for chunk in response.iter_content(chunk_size=1024):
- if chunk:
- f.write(chunk)
- t.update(len(chunk))
|