Galactic-2.5-Mini / infer.py
openmodelai's picture
Upload 10 files
1440c49 verified
Raw History Blame Contribute Delete
1.4 kB
"""Uncurated text completion; this checkpoint is NOT an instruction/chat model."""
import argparse
from pathlib import Path
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, set_seed
p = argparse.ArgumentParser()
p.add_argument('--model', default=str(Path(__file__).resolve().parent/'model'))
p.add_argument('--prompt', default='Однажды вечером')
p.add_argument('--max-new-tokens', type=int, default=64)
p.add_argument('--seed', type=int, default=42)
a = p.parse_args()
set_seed(a.seed)
torch.set_num_threads(2)
device = 'cuda' if torch.cuda.is_available() else 'cpu'
tok = AutoTokenizer.from_pretrained(a.model, trust_remote_code=False)
model = AutoModelForCausalLM.from_pretrained(a.model, trust_remote_code=False,
torch_dtype=torch.float16 if device == 'cuda' else torch.float32).to(device).eval()
if not 1 <= a.max_new_tokens < model.config.n_positions:
raise ValueError('max-new-tokens must be between 1 and 511')
inputs = tok(a.prompt, return_tensors='pt', truncation=True,
max_length=model.config.n_positions-a.max_new_tokens).to(device)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=a.max_new_tokens,
do_sample=True, temperature=.8, top_p=.9, repetition_penalty=1.1,
pad_token_id=tok.pad_token_id, eos_token_id=tok.eos_token_id)
print(tok.decode(output[0], skip_special_tokens=True))