Editing Models with Task Arithmetic
Paper • 2212.04089 • Published • 8
How to use AlexCuadron/dpo_task_vio with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="AlexCuadron/dpo_task_vio")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("AlexCuadron/dpo_task_vio")
model = AutoModelForCausalLM.from_pretrained("AlexCuadron/dpo_task_vio")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))How to use AlexCuadron/dpo_task_vio with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "AlexCuadron/dpo_task_vio"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "AlexCuadron/dpo_task_vio",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/AlexCuadron/dpo_task_vio
How to use AlexCuadron/dpo_task_vio with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "AlexCuadron/dpo_task_vio" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "AlexCuadron/dpo_task_vio",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "AlexCuadron/dpo_task_vio" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "AlexCuadron/dpo_task_vio",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use AlexCuadron/dpo_task_vio with Docker Model Runner:
docker model run hf.co/AlexCuadron/dpo_task_vio
This is a merge of pre-trained language models created using mergekit.
This model was merged using the Task Arithmetic merge method using Nitral-AI/Captain-Eris_Violet-V0.420-12B as a base.
The following models were included in the merge:
The following YAML configuration was used to produce this model:
# MergeKit Configuration for merging alignment-DPO with roleplay capabilities
merge_method: task_arithmetic
# Define the base model (your alignment model)
base_model:
model: Nitral-AI/Captain-Eris_Violet-V0.420-12B # Nitral-AI/Community_Request-02-12B # Path to your DPO-trained alignment model
# If your model is in Hugging Face format, you could use:
model_type: huggingface
# If it's a local model, just use the path:
# model: /path/to/alex_dpo
# Models to merge with the base model
models:
- model: AlexCuadron/chai-ddpo
# Modify if needed:
model_type: huggingface
parameters:
weight: 0.2 # Adjust between 0.2-0.4 based on how much roleplay vs alignment you want
# Output settings
dtype: bfloat16 # Or bfloat16 if your GPU supports it
output_dir: ./aligned_roleplay_model
# Optional: include parameters you want to skip or include specifically
# parameters_settings:
# include: [".*"] # Include all parameters, or specify patterns to include
# exclude: [] # No exclusions, or specify patterns to exclude
# Add this if you want to save disk space
output_optimizations:
safetensors: true # Save in safetensors format (more secure and efficient)
# set to false if you want to keep intermediate models
skip_saving_intermediate_models: true