Views
No views yet
transformers library:1import os
2import requests
3import torch
4from PIL import Image
5import soundfile
6from transformers import AutoModelForCausalLM, AutoProcessor, GenerationConfig
7
8model_path = 'huihui-ai/Phi-4-multimodal-instruct-abliterated'
9
10kwargs = {}
11kwargs['torch_dtype'] = torch.bfloat16
12
13processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
14print(processor.tokenizer)
15
16model = AutoModelForCausalLM.from_pretrained(
17 model_path,
18 trust_remote_code=True,
19 torch_dtype='auto',
20 _attn_implementation='flash_attention_2',
21).cuda()
22print("model.config._attn_implementation:", model.config._attn_implementation)
23
24generation_config = GenerationConfig.from_pretrained(model_path, 'generation_config.json')
25
26user_prompt = '<|user|>'
27assistant_prompt = '<|assistant|>'
28prompt_suffix = '<|end|>'
29
30#################################################### text-only ####################################################
31prompt = f'{user_prompt}what is the answer for 1+1? Explain it.{prompt_suffix}{assistant_prompt}'
32print(f'>>> Prompt\n{prompt}')
33inputs = processor(prompt, images=None, return_tensors='pt').to('cuda:0')
34
35generate_ids = model.generate(
36 **inputs,
37 max_new_tokens=1000,
38 generation_config=generation_config,
39)
40generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
41response = processor.batch_decode(
42 generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
43)[0]
44
45print(f'>>> Response\n{response}') bc1qqnkhuchxw0zqjh2ku3lu4hq45hc6gy84uk70ge