--- license: mit license_link: https://huggingface.co./huihui-ai/Phi-4-multimodal-instruct-abliterated/resolve/main/LICENSE language: - multilingual - ar - zh - cs - da - nl - en - fi - fr - de - he - hu - it - ja - ko - no - pl - pt - ru - es - sv - th - tr - uk tags: - nlp - code - audio - automatic-speech-recognition - speech-summarization - speech-translation - visual-question-answering - phi-4-multimodal - phi - phi-4-mini - abliterated - uncensored widget: - example_title: Librispeech sample 1 src: https://cdn-media.huggingface.co/speech_samples/sample1.flac - example_title: Librispeech sample 2 src: https://cdn-media.huggingface.co/speech_samples/sample2.flac - messages: - role: user content: Can you provide ways to eat combinations of bananas and dragonfruits? library_name: transformers --- # huihui-ai/Phi-4-multimodal-instruct-abliterated This is an uncensored version of [microsoft/Phi-4-multimodal-instruct](https://huggingface.co./microsoft/Phi-4-multimodal-instruct) created with abliteration (see [remove-refusals-with-transformers](https://github.com/Sumandora/remove-refusals-with-transformers) to know more about it). This is a crude, proof-of-concept implementation to remove refusals from an LLM model without using TransformerLens. It was only the text part that was processed, not the image part. ## Usage You can use this model in your applications by loading it with Hugging Face's `transformers` library: ```python import os import requests import torch from PIL import Image import soundfile from transformers import AutoModelForCausalLM, AutoProcessor, GenerationConfig model_path = 'huihui-ai/Phi-4-multimodal-instruct-abliterated' kwargs = {} kwargs['torch_dtype'] = torch.bfloat16 processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True) print(processor.tokenizer) model = AutoModelForCausalLM.from_pretrained( model_path, trust_remote_code=True, torch_dtype='auto', _attn_implementation='flash_attention_2', ).cuda() print("model.config._attn_implementation:", model.config._attn_implementation) generation_config = GenerationConfig.from_pretrained(model_path, 'generation_config.json') user_prompt = '<|user|>' assistant_prompt = '<|assistant|>' prompt_suffix = '<|end|>' #################################################### text-only #################################################### prompt = f'{user_prompt}what is the answer for 1+1? Explain it.{prompt_suffix}{assistant_prompt}' print(f'>>> Prompt\n{prompt}') inputs = processor(prompt, images=None, return_tensors='pt').to('cuda:0') generate_ids = model.generate( **inputs, max_new_tokens=1000, generation_config=generation_config, ) generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :] response = processor.batch_decode( generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False )[0] print(f'>>> Response\n{response}') ``` ### Donation If you like it, please click 'like' and follow us for more updates. You can follow [x.com/support_huihui](https://x.com/support_huihui) to get the latest model information from huihui.ai. ##### Your donation helps us continue our further development and improvement, a cup of coffee can do it. - bitcoin: ``` bc1qqnkhuchxw0zqjh2ku3lu4hq45hc6gy84uk70ge ```