Model Stock: All we need is just a few fine-tuned models
Paper • 2403.19522 • Published • 15
How to use Novaciano/Proto_RP-Gemma2-2B with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="Novaciano/Proto_RP-Gemma2-2B")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Novaciano/Proto_RP-Gemma2-2B")
model = AutoModelForCausalLM.from_pretrained("Novaciano/Proto_RP-Gemma2-2B")
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 Novaciano/Proto_RP-Gemma2-2B with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "Novaciano/Proto_RP-Gemma2-2B"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Novaciano/Proto_RP-Gemma2-2B",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/Novaciano/Proto_RP-Gemma2-2B
How to use Novaciano/Proto_RP-Gemma2-2B with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "Novaciano/Proto_RP-Gemma2-2B" \
--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": "Novaciano/Proto_RP-Gemma2-2B",
"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 "Novaciano/Proto_RP-Gemma2-2B" \
--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": "Novaciano/Proto_RP-Gemma2-2B",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use Novaciano/Proto_RP-Gemma2-2B with Docker Model Runner:
docker model run hf.co/Novaciano/Proto_RP-Gemma2-2B
This garbage still has heavy censorship; I still need to figure out how to remove it. Maybe I can manage it with future remixes.
The prototype is ideal for creating stories with dialogue, but... it's still not suitable for creating sexual stories.
This model was merged using the Model Stock merge method using TheDrummer/Gemmasutra-Mini-2B-v1 as a base.
The following models were included in the merge:
The following YAML configuration was used to produce this model:
merge_method: model_stock
dtype: bfloat16
out_dtype: bfloat16
# Base model: provides narrative richness, sensory detail, and RP flow
base_model: TheDrummer/Gemmasutra-Mini-2B-v1
parameters:
t:
- 0.95 # ChiKoi7/Gemma-2-Llama-Swallow-2b-it-v0.1-Heretic
# Dominant driver: heretic alignment, reduced refusals, breaks moral consensus
- 0.55 # ArliAI/Gemma-2-2B-ArliAI-RPMax-v1.1
# Structural RP reinforcement: dialogue consistency, character stability
- 0.35 # akashgoel-id/En_RP_DPO-gemma2_2b_64X32_test
# Light DPO stabilization: conversational smoothness without enforcing censorship
models:
- model: ChiKoi7/Gemma-2-Llama-Swallow-2b-it-v0.1-Heretic
- model: ArliAI/Gemma-2-2B-ArliAI-RPMax-v1.1
- model: akashgoel-id/En_RP_DPO-gemma2_2b_64X32_test