|
|
--- |
|
|
base_model: google/gemma-2-9b |
|
|
license: cc-by-nc-sa-4.0 |
|
|
language: |
|
|
- de |
|
|
- nl |
|
|
- is |
|
|
- es |
|
|
- fr |
|
|
- pt |
|
|
- uk |
|
|
- hi |
|
|
- zh |
|
|
- ru |
|
|
- cs |
|
|
- ko |
|
|
- ja |
|
|
- it |
|
|
- en |
|
|
- da |
|
|
- pl |
|
|
- hu |
|
|
- sv |
|
|
- 'no' |
|
|
- ro |
|
|
- fi |
|
|
library_name: transformers |
|
|
--- |
|
|
|
|
|
# Model Card for Model ID |
|
|
|
|
|
<!-- Provide a quick summary of what the model is/does. --> |
|
|
A fairly effective attempt at uncensoring Tower Plus, while maintaining some core functionality. |
|
|
Below is taken directly from Unbabel/Tower-Plus-9B |
|
|
|
|
|
# Usage: |
|
|
|
|
|
When using the model, make sure your prompt is formated correctly! |
|
|
|
|
|
Also, we recommend using VLLM rather than Hugging Face. |
|
|
|
|
|
### Using on VLLM: |
|
|
|
|
|
```python |
|
|
# pip install vllm |
|
|
# Gemma by default only uses 4k context. You need to set the following variables: |
|
|
# export VLLM_WORKER_MULTIPROC_METHOD=spawn |
|
|
# export VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 |
|
|
|
|
|
from vllm import LLM, SamplingParams |
|
|
|
|
|
sampling_params = SamplingParams( |
|
|
best_of=1, |
|
|
temperature=0, |
|
|
max_tokens=8192, |
|
|
) |
|
|
llm = LLM(model="Unbabel/Tower-Plus-9B", tensor_parallel_size=1) |
|
|
messages = [{"role": "user", "content": "Translate the following English source text to Portuguese (Portugal):\nEnglish: Hello world!\nPortuguese (Portugal): "}] |
|
|
outputs = llm.chat(messages, sampling_params) |
|
|
# Make sure your prompt_token_ids look like this |
|
|
print (outputs[0].outputs[0].text) |
|
|
# > Olá, mundo! |
|
|
``` |
|
|
|
|
|
### Using on Transformers: |
|
|
|
|
|
```python |
|
|
# Install transformers from source - only needed for versions <= v4.34 |
|
|
# pip install git+https://github.com/huggingface/transformers.git |
|
|
# pip install accelerate |
|
|
import torch |
|
|
from transformers import pipeline |
|
|
|
|
|
pipe = pipeline("text-generation", model="Unbabel/Tower-Plus-9B", device_map="auto") |
|
|
# We use the tokenizer’s chat template to format each message - see https://huggingface.co/docs/transformers/main/en/chat_templating |
|
|
messages = [{"role": "user", "content": "Translate the following English source text to Portuguese (Portugal):\nEnglish: Hello world!\nPortuguese (Portugal): "}] |
|
|
input_ids = pipe.tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True) |
|
|
outputs = pipe(messages, max_new_tokens=256, do_sample=False) |
|
|
print(outputs[0]["generated_text"]) |
|
|
``` |
|
|
|
|
|
# Citation |
|
|
|
|
|
``` |
|
|
@misc{rei2025towerplus, |
|
|
title={Tower+: Bridging Generality and Translation Specialization in Multilingual LLMs}, |
|
|
author={Ricardo Rei and Nuno M. Guerreiro and José Pombal and João Alves and Pedro Teixeirinha and Amin Farajian and André F. T. Martins}, |
|
|
year={2025}, |
|
|
eprint={2506.17080}, |
|
|
archivePrefix={arXiv}, |
|
|
primaryClass={cs.CL}, |
|
|
url={https://arxiv.org/abs/2506.17080}, |
|
|
} |
|
|
``` |