HY-MT2-1.8B-GGUF / model.py
playmak3r's picture
Update model.py
b882f87 verified
Raw
History Blame Contribute Delete
2.03 kB
from llama_cpp import Llama
from huggingface_hub import hf_hub_download
# tencent/HY-MT2-1.8B
repo_id = "tencent/HY-MT2-1.8B-GGUF"
filename = "Hy-MT2-1.8B-Q4_K_M.gguf"
local_dir = "./model"
model_path = hf_hub_download(repo_id=repo_id, filename=filename, local_dir=local_dir)
llm = Llama(
model_path=model_path,
n_ctx=4096, # Corresponde ao -n 4096
verbose=False # Reduz o log excessivo no console
)
def run(
text = "It’s on the house.",
target_language = "Portuguese",
temperature = 0.3,
):
"""
Translate a short text segment to a target language using a Llama model.
This function builds a simple prompt and sends it to the module-level `llm`
instance to obtain a direct translation of the provided text. The returned
value is the translated text string, without additional explanation.
Parameters:
- text (str): Text to be translated — a sentence or short paragraph.
- target_language (str): Target language (e.g., "Portuguese", "Spanish").
- temperature (float): Controls the randomness of the output; lower values
make the translation more deterministic.
Returns:
- str: Translated text (trimmed with `strip()`), ready for use.
Notes and considerations:
- The `stop=["\n"]` parameter is set to attempt to stop at the first
newline; for multi-line translations consider adjusting or removing `stop`.
Example:
translated = run("It's on the house.", "Portuguese", temperature=0.2)
"""
prompt = f"Translate the following segment into {target_language}, without additional explanation.\n\n{text}"
output = llm(
prompt,
max_tokens=4096,
temperature=temperature, # --temp 0.7
top_k=20, # --top-k 20
top_p=0.6, # --top-p 0.6
repeat_penalty=1.05, # --repeat-penalty 1.05
stop=["\n"] # Opcional: para parar após a tradução
)
result = output["choices"][0]["text"].strip()
return result