mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	 2af23d3043
			
		
	
	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)) |