|
--- |
|
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 |
|
base_model: |
|
- microsoft/Phi-4-multimodal-instruct |
|
--- |
|
|
|
# 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. |
|
|
|
The abliterated model will no longer say "I'm sorry, but I cannot provide details or descriptions of images" |
|
|
|
## 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 |
|
``` |