|
--- |
|
library_name: peft |
|
base_model: meta-llama/Llama-2-7b-chat-hf |
|
--- |
|
|
|
# Model Card for Model ID |
|
|
|
<!-- Provide a quick summary of what the model is/does. --> |
|
|
|
|
|
|
|
## Model Details |
|
|
|
### Model Description |
|
|
|
<!-- Provide a longer summary of what this model is. --> |
|
|
|
|
|
|
|
- **Developed by:** [More Information Needed] |
|
- **Funded by [optional]:** [More Information Needed] |
|
- **Shared by [optional]:** [More Information Needed] |
|
- **Model type:** [More Information Needed] |
|
- **Language(s) (NLP):** [More Information Needed] |
|
- **License:** [More Information Needed] |
|
- **Finetuned from model [optional]:** [More Information Needed] |
|
|
|
### Model Sources [optional] |
|
|
|
<!-- Provide the basic links for the model. --> |
|
|
|
- **Repository:** [More Information Needed] |
|
- **Paper [optional]:** [More Information Needed] |
|
- **Demo [optional]:** [More Information Needed] |
|
|
|
### Infrence Function |
|
|
|
#### for keyword brand |
|
|
|
|
|
def generate_brand(keyword): |
|
# Define the roles and markers |
|
B_INST, E_INST = "[INST]", "[/INST]" |
|
B_KW, E_KW = "[KW]", "[/KW]" |
|
# Format your prompt template |
|
prompt = f"""{B_INST} Extract the brand from keyword related to brand loyalty intent.{E_INST}\n |
|
{B_KW} {keyword} {E_KW} |
|
""" |
|
# print("Prompt:") |
|
# print(prompt) |
|
encoding = tokenizer(prompt, return_tensors="pt").to("cuda:0") |
|
output =model.generate(input_ids=encoding.input_ids, |
|
attention_mask=encoding.attention_mask, |
|
max_new_tokens=20, |
|
do_sample=True, |
|
temperature=0.01, |
|
eos_token_id=tokenizer.eos_token_id, |
|
top_k=0) |
|
#print() |
|
# Subtract the length of input_ids from output to get only the model's response |
|
output_text = tokenizer.decode(output[0, len(encoding.input_ids[0]):], skip_special_tokens=False) |
|
output_text = re.sub('\n+', '\n', output_text) # remove excessive newline characters |
|
#print("Generated Assistant Response:") |
|
return output_text |
|
|
|
#### for keyword category |
|
|
|
def generate_cat(list_cat,keyword): |
|
# Define the roles and markers |
|
B_INST, E_INST = "[INST]", "[/INST]" |
|
B_KW, E_KW = "[KW]", "[/KW]" |
|
# Format your prompt template |
|
prompt = f"""{B_INST} Analyze the following keyword searched on amazon with intent of shopping. Identify the product category from the list {list_cat} {E_INST}\n |
|
{B_KW} {keyword} {E_KW} |
|
""" |
|
# print("Prompt:") |
|
# print(prompt) |
|
encoding = tokenizer(prompt, return_tensors="pt").to("cuda:0") |
|
output =model.generate(input_ids=encoding.input_ids, |
|
attention_mask=encoding.attention_mask, |
|
max_new_tokens=20, |
|
do_sample=True, |
|
temperature=0.01, |
|
eos_token_id=tokenizer.eos_token_id, |
|
top_k=0) |
|
#print() |
|
# Subtract the length of input_ids from output to get only the model's response |
|
output_text = tokenizer.decode(output[0, len(encoding.input_ids[0]):], skip_special_tokens=False) |
|
output_text = re.sub('\n+', '\n', output_text) # remove excessive newline characters |
|
#print("Generated Assistant Response:") |
|
return output_text |
|
|
|
#### for keyword category and brand |
|
|
|
def generate_cat(list_cat,keyword): |
|
# Define the roles and markers |
|
B_INST, E_INST = "[INST]", "[/INST]" |
|
B_KW, E_KW = "[KW]", "[/KW]" |
|
# Format your prompt template |
|
prompt = f"""{B_INST} Analyze the following keyword searched on amazon with intent of shopping. Identify the product category from the list {list_cat}. |
|
Extract the brand from keyword related to brand loyalty intent. Output in JSON with keyword, product category, brand as keys.{E_INST}\n |
|
{B_KW} {keyword} {E_KW} |
|
""" |
|
# print("Prompt:") |
|
# print(prompt) |
|
encoding = tokenizer(prompt, return_tensors="pt").to("cuda:0") |
|
output =model.generate(input_ids=encoding.input_ids, |
|
attention_mask=encoding.attention_mask, |
|
max_new_tokens=20, |
|
do_sample=True, |
|
temperature=0.01, |
|
eos_token_id=tokenizer.eos_token_id, |
|
top_k=0) |
|
#print() |
|
# Subtract the length of input_ids from output to get only the model's response |
|
output_text = tokenizer.decode(output[0, len(encoding.input_ids[0]):], skip_special_tokens=False) |
|
output_text = re.sub('\n+', '\n', output_text) # remove excessive newline characters |
|
#print("Generated Assistant Response:") |
|
return output_text |
|
|