Downloads · 30 days
11
6% of all-time downloads
cnmoro/Qwen2.5-0.5B-Portuguese-Prompt-Decomposer
Qwen2.5-0.5B-Portuguese-Prompt-Decomposer is a text generation model from cnmoro. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Este é um finetuning do "cnmoro/Qwen2.5-0.5B-Portuguese-v1" para realizar a decomposição de prompts de usuários em um sistema RAG.
Downloads · 30 days
11
6% of all-time downloads
All-time downloads
173
Public
Parameters
494M
1000 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors988 MB · 98%
From the Hugging Face model README
Este é um finetuning do "cnmoro/Qwen2.5-0.5B-Portuguese-v1" para realizar a decomposição de prompts de usuários em um sistema RAG.
A mensagem de sistema indica o tipo de termos de busca que devem ser extraídos.
Caso queira extrair termos de busca para um search engine textual (Google, Solr e afins), utilizar a seguinte mensagem:
"Você decompõe o texto do usuário em termos de busca textuais, no formato JSON"
Caso queira extrair termos de busca para um banco vetorial (Pinecone, QDrant, Milvus, Chroma, etc), para busca semântica com embeddings, utilizar a seguinte mensagem:
"Você decompõe o texto do usuário em termos de busca semânticos, no formato JSON"
Exemplo:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "cnmoro/Qwen2.5-0.5B-Portuguese-Prompt-Decomposer"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to("cuda")
def decompose_prompt(prompt, _type="textual"):
termos_tipo = "textuais" if _type == "textual" else "semânticos"
messages = [
{
"role": "system",
"content": f"Você decompõe o texto do usuário em termos de busca {termos_tipo}, no formato JSON"
},
{
"role": "user",
"content": prompt
}
]
gen_input = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(gen_input, return_tensors="pt", return_token_type_ids=False).to("cuda")
outputs = model.generate(**inputs, max_new_tokens=384, temperature=0.3, do_sample=True, repetition_penalty=1.2)
input_length = inputs.input_ids.shape[1]
generated_tokens = outputs[0, (input_length):]
return tokenizer.decode(generated_tokens, skip_special_tokens=True)
print(
decompose_prompt(
"Com a edição da Lei n. 12.618/2012, quais foram os principais impactos sobre os servidores públicos, considerando que restaram consolidadas duas situações jurídicas previdenciárias?",
"textual"
)
)
# ```json
# {
# "search_terms": {
# "textual": [
# "Lei 12618",
# "servidor público previdência",
# "impacto lei 12618"
# ]
# }
# }
# ```
#########################
print(
decompose_prompt(
"Com a edição da Lei n. 12.618/2012, quais foram os principais impactos sobre os servidores públicos, considerando que restaram consolidadas duas situações jurídicas previdenciárias?",
"semantic"
)
)
# ```json
# {
# "search_terms": {
# "semantic": [
# "impacto lei servidores",
# "reforma previdência servidores"
# ]
# }
# }
# ```