KTO: Model Alignment as Prospect Theoretic Optimization
Paper • 2402.01306 • Published • 22
How to use willyli/Seed-Coder-8B-Instruct-KTO with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="willyli/Seed-Coder-8B-Instruct-KTO")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("willyli/Seed-Coder-8B-Instruct-KTO")
model = AutoModelForCausalLM.from_pretrained("willyli/Seed-Coder-8B-Instruct-KTO")
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 willyli/Seed-Coder-8B-Instruct-KTO with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "willyli/Seed-Coder-8B-Instruct-KTO"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "willyli/Seed-Coder-8B-Instruct-KTO",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/willyli/Seed-Coder-8B-Instruct-KTO
How to use willyli/Seed-Coder-8B-Instruct-KTO with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "willyli/Seed-Coder-8B-Instruct-KTO" \
--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": "willyli/Seed-Coder-8B-Instruct-KTO",
"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 "willyli/Seed-Coder-8B-Instruct-KTO" \
--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": "willyli/Seed-Coder-8B-Instruct-KTO",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use willyli/Seed-Coder-8B-Instruct-KTO with Docker Model Runner:
docker model run hf.co/willyli/Seed-Coder-8B-Instruct-KTO
This model is a fine-tuned version for price prediction in Thailand as requested by GDX. It has been trained using TRL. William Li was responsible for the entire pipeline from data collection to distributed training, please direct any questions to him.
from transformers import pipeline
question = "If you had a time machine, but could only go to the past or the future once and never return, which would you choose and why?"
generator = pipeline("text-generation", model="willyli/Seed-Coder-8B-Instruct-KTO", device="cuda")
output = generator([{"role": "user", "content": question}], max_new_tokens=128, return_full_text=False)[0]
print(output["generated_text"])
This model was trained with KTO, a method introduced in KTO: Model Alignment as Prospect Theoretic Optimization.
Cite KTO as:
@article{ethayarajh2024kto,
title = {{KTO: Model Alignment as Prospect Theoretic Optimization}},
author = {Kawin Ethayarajh and Winnie Xu and Niklas Muennighoff and Dan Jurafsky and Douwe Kiela},
year = 2024,
eprint = {arXiv:2402.01306},
}
Cite TRL as:
@misc{vonwerra2022trl,
title = {{TRL: Transformer Reinforcement Learning}},
author = {Leandro von Werra and Younes Belkada and Lewis Tunstall and Edward Beeching and Tristan Thrush and Nathan Lambert and Shengyi Huang and Kashif Rasul and Quentin Gallou{\'e}dec},
year = 2020,
journal = {GitHub repository},
publisher = {GitHub},
howpublished = {\url{https://github.com/huggingface/trl}}
}
Base model
ByteDance-Seed/Seed-Coder-8B-Base
docker model run hf.co/willyli/Seed-Coder-8B-Instruct-KTO