FuseChat: Knowledge Fusion of Chat Models
Paper • 2408.07990 • Published • 15
How to use BruhzWater/Liliths-Whisper-L3.3-70b-0.2a with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="BruhzWater/Liliths-Whisper-L3.3-70b-0.2a")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("BruhzWater/Liliths-Whisper-L3.3-70b-0.2a")
model = AutoModelForCausalLM.from_pretrained("BruhzWater/Liliths-Whisper-L3.3-70b-0.2a", device_map="auto")
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 BruhzWater/Liliths-Whisper-L3.3-70b-0.2a with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "BruhzWater/Liliths-Whisper-L3.3-70b-0.2a"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "BruhzWater/Liliths-Whisper-L3.3-70b-0.2a",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/BruhzWater/Liliths-Whisper-L3.3-70b-0.2a
How to use BruhzWater/Liliths-Whisper-L3.3-70b-0.2a with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "BruhzWater/Liliths-Whisper-L3.3-70b-0.2a" \
--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": "BruhzWater/Liliths-Whisper-L3.3-70b-0.2a",
"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 "BruhzWater/Liliths-Whisper-L3.3-70b-0.2a" \
--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": "BruhzWater/Liliths-Whisper-L3.3-70b-0.2a",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use BruhzWater/Liliths-Whisper-L3.3-70b-0.2a with Docker Model Runner:
docker model run hf.co/BruhzWater/Liliths-Whisper-L3.3-70b-0.2a
RP model merge.
If you like this model, go support the original creators!
This model was merged using the SCE merge method using BruhzWater/Eden-L3.3-70b-0.4a as a base.
The following models were included in the merge:
The following YAML configuration was used to produce this model:
models:
- model: /workspace/cache/models--Delta-Vector--Shimamura-70B/snapshots/1106f197a3ea1424512c30a8576bd718313b57c3
- model: /workspace/cache/models--ArliAI--Llama-3.3-70B-ArliAI-RPMax-v2/snapshots/3a47eabeb5861db09dad26fcf0fb0d57114e40d3
- model: /workspace/cache/models--Sao10K--L3.3-70B-Euryale-v2.3/snapshots/e5737724a37ae00926e95acf663ca73d430dc8ad
- model: /workspace/cache/models--ReadyArt--L3.3-The-Omega-Directive-70B-Unslop-v2.1/snapshots/61e03f3fe59b3b22b7e9e17e9bbe807f434da16d
- model: /workspace/cache/models--TheDrummer--Fallen-Llama-3.3-70B-v1/snapshots/d46ef2629f1c3cd46789a55793c5ff0af60de3e8
base_model: /workspace/prototype-0.4x295
select_topk: 0.24
merge_method: sce
tokenizer:
source: base
chat_template: llama3
pad_to_multiple_of: 8
int8_mask: true
dtype: float32
Llama3
Deep Cogito - https://huggingface.co/deepcogito/cogito-v1-preview-llama-70B
{{- '<|begin_of_text|>' }}
{%- if not tools is defined %}
{%- set tools = none %}
{%- endif %}
{%- if not enable_thinking is defined %}
{%- set enable_thinking = false %}
{%- endif %}
{#- This block extracts the system message, so we can slot it into the right place. #}
{%- if messages[0]['role'] == 'system' %}
{%- set system_message = messages[0]['content']|trim %}
{%- set messages = messages[1:] %}
{%- else %}
{%- set system_message = "" %}
{%- endif %}
{#- Set the system message. If enable_thinking is true, add the "Enable deep thinking subroutine." #}
{%- if enable_thinking %}
{%- if system_message != "" %}
{%- set system_message = "Enable deep thinking subroutine.
" ~ system_message %}
{%- else %}
{%- set system_message = "Enable deep thinking subroutine." %}
{%- endif %}
{%- endif %}
{#- Set the system message. In case there are tools present, add them to the system message. #}
{%- if tools is not none or system_message != '' %}
{{- "<|start_header_id|>system<|end_header_id|>
" }}
{{- system_message }}
{%- if tools is not none %}
{%- if system_message != "" %}
{{- "
" }}
{%- endif %}
{{- "Available Tools:
" }}
{%- for t in tools %}
{{- t | tojson(indent=4) }}
{{- "
" }}
{%- endfor %}
{%- endif %}
{{- "<|eot_id|>" }}
{%- endif %}
{#- Rest of the messages #}
{%- for message in messages %}
{#- The special cases are when the message is from a tool (via role ipython/tool/tool_results) or when the message is from the assistant, but has "tool_calls". If not, we add the message directly as usual. #}
{#- Case 1 - Usual, non tool related message. #}
{%- if not (message.role == "ipython" or message.role == "tool" or message.role == "tool_results" or (message.tool_calls is defined and message.tool_calls is not none)) %}
{{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>
' }}
{%- if message['content'] is string %}
{{- message['content'] | trim }}
{%- else %}
{%- for item in message['content'] %}
{%- if item.type == 'text' %}
{{- item.text | trim }}
{%- endif %}
{%- endfor %}
{%- endif %}
{{- '<|eot_id|>' }}
{#- Case 2 - the response is from the assistant, but has a tool call returned. The assistant may also have returned some content along with the tool call. #}
{%- elif message.tool_calls is defined and message.tool_calls is not none %}
{{- "<|start_header_id|>assistant<|end_header_id|>
" }}
{%- if message['content'] is string %}
{{- message['content'] | trim }}
{%- else %}
{%- for item in message['content'] %}
{%- if item.type == 'text' %}
{{- item.text | trim }}
{%- if item.text | trim != "" %}
{{- "
" }}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- endif %}
{{- "[" }}
{%- for tool_call in message.tool_calls %}
{%- set out = tool_call.function|tojson %}
{%- if not tool_call.id is defined %}
{{- out }}
{%- else %}
{{- out[:-1] }}
{{- ', "id": "' + tool_call.id + '"}' }}
{%- endif %}
{%- if not loop.last %}
{{- ", " }}
{%- else %}
{{- "]<|eot_id|>" }}
{%- endif %}
{%- endfor %}
{#- Case 3 - the response is from a tool call. The tool call may have an id associated with it as well. If it does, we add it to the prompt. #}
{%- elif message.role == "ipython" or message["role"] == "tool_results" or message["role"] == "tool" %}
{{- "<|start_header_id|>ipython<|end_header_id|>
" }}
{%- if message.tool_call_id is defined and message.tool_call_id != '' %}
{{- '{"content": ' + (message.content | tojson) + ', "call_id": "' + message.tool_call_id + '"}' }}
{%- else %}
{{- '{"content": ' + (message.content | tojson) + '}' }}
{%- endif %}
{{- "<|eot_id|>" }}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|start_header_id|>assistant<|end_header_id|>
' }}
{%- endif %}