in fastchat/serve/huggingface_api.py [0:0]
def main(args):
# Load model
model, tokenizer = load_model(
args.model_path,
device=args.device,
num_gpus=args.num_gpus,
max_gpu_memory=args.max_gpu_memory,
load_8bit=args.load_8bit,
cpu_offloading=args.cpu_offloading,
revision=args.revision,
debug=args.debug,
)
# Build the prompt with a conversation template
msg = args.message
conv = get_conversation_template(args.model_path)
conv.append_message(conv.roles[0], msg)
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()
# Run inference
inputs = tokenizer([prompt], return_tensors="pt").to(args.device)
output_ids = model.generate(
**inputs,
do_sample=True if args.temperature > 1e-5 else False,
temperature=args.temperature,
repetition_penalty=args.repetition_penalty,
max_new_tokens=args.max_new_tokens,
)
if model.config.is_encoder_decoder:
output_ids = output_ids[0]
else:
output_ids = output_ids[0][len(inputs["input_ids"][0]) :]
outputs = tokenizer.decode(
output_ids, skip_special_tokens=True, spaces_between_special_tokens=False
)
# Print results
print(f"{conv.roles[0]}: {msg}")
print(f"{conv.roles[1]}: {outputs}")