mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-25 02:44:36 +00:00
2af23d3043
* feat: dockerize llamacpp * feat: split build & runtime stages * split dockerfile into main & tools * add quantize into tool docker image * Update .devops/tools.sh Co-authored-by: Georgi Gerganov <ggerganov@gmail.com> * add docker action pipeline * change CI to publish at github docker registry * fix name runs-on macOS-latest is macos-latest (lowercase) * include docker versioned images * fix github action docker * fix docker.yml * feat: include all-in-one command tool & update readme.md --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
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)) |