初始化项目,由ModelHub XC社区提供模型
Model: jadael/comma-v0.1-2t-GGUF Source: Original Platform
This commit is contained in:
53
convert_comma_to_gguf.py
Normal file
53
convert_comma_to_gguf.py
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Workaround script to convert Comma v0.1-2T to GGUF format.
|
||||
This uses transformers to load the model, then saves it in a format
|
||||
that llama.cpp can better handle.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
try:
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
import torch
|
||||
except ImportError:
|
||||
print("ERROR: Please install transformers: pip install transformers torch")
|
||||
sys.exit(1)
|
||||
|
||||
model_path = Path("comma-v0.1-2t")
|
||||
output_path = Path("comma-v0.1-2t-converted")
|
||||
|
||||
print(f"Loading model from {model_path}...")
|
||||
print("This may take several minutes...")
|
||||
|
||||
# Load model and tokenizer
|
||||
try:
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
str(model_path),
|
||||
torch_dtype=torch.float16,
|
||||
device_map="cpu", # Keep on CPU for conversion
|
||||
low_cpu_mem_usage=True
|
||||
)
|
||||
tokenizer = AutoTokenizer.from_pretrained(str(model_path))
|
||||
|
||||
print(f"Model loaded successfully!")
|
||||
print(f"Vocabulary size: {len(tokenizer)}")
|
||||
print(f"Model parameters: {sum(p.numel() for p in model.parameters()) / 1e9:.2f}B")
|
||||
|
||||
# Save in a clean format
|
||||
output_path.mkdir(exist_ok=True)
|
||||
print(f"\nSaving converted model to {output_path}...")
|
||||
|
||||
model.save_pretrained(str(output_path), safe_serialization=True)
|
||||
tokenizer.save_pretrained(str(output_path))
|
||||
|
||||
print("\nConversion complete!")
|
||||
print(f"Now try: python llama.cpp/convert_hf_to_gguf.py {output_path} --outfile comma-v0.1-2t.gguf --outtype q4_K_M")
|
||||
|
||||
except Exception as e:
|
||||
print(f"ERROR: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user