File size: 3,412 Bytes
62d2cc1 7f5503e 62d2cc1 7f5503e dada146 7f5503e dada146 7f5503e abc4c8c 7f5503e dada146 7f5503e dada146 7f5503e dada146 7f5503e dada146 7f5503e dada146 7f5503e dada146 7f5503e 4047087 7f5503e 4047087 7f5503e dada146 7f5503e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
---
license: cc-by-sa-4.0
inference: false
---
# SLIM-TAGS-3B
<!-- Provide a quick summary of what the model is/does. -->
**slim-tags-3b** is a small, specialized function-calling model fine-tuned to extract and generate meaningful tags from a chunk of text.
Tags generally correspond to named entities, but will also include key objects, entities and phrases that contribute meaningfully to the semantic meaning of the text.
The model is invoked as a specialized 'tags' classifier function that outputs a python dictionary in the form of:
`{'tags': ['NASDAQ', 'S&P', 'Dow', 'Verizon', 'Netflix, ... ']}`
with the value items in the list generally being extracted from the source text.
The intended use of the model is to auto-generate tags to text that can be used to enhance search retrieval, categorization, or to extract named entities that can be used programmatically in follow-up queries or prompts. It can also be used for fact-checking as a secondary validation on a longer (separate) LLM output.
This model is fine-tuned on top of [**llmware/bling-stable-lm-3b-4e1t-v0**](https://huggingface.co/llmware/bling-stable-lm-3b-4e1t-v0), which in turn, is a fine-tune of stabilityai/stablelm-3b-4elt.
Each slim model has a 'quantized tool' version, e.g., [**'slim-tags-3b-tool'**](https://huggingface.co/llmware/slim-tags-3b-tool).
## Prompt format:
`function = "classify"`
`params = "tags"`
`prompt = "<human> " + {text} + "\n" + `
`"<{function}> " + {params} + "</{function}>" + "\n<bot>:"`
<details>
<summary>Transformers Script </summary>
model = AutoModelForCausalLM.from_pretrained("llmware/slim-tags-3b")
tokenizer = AutoTokenizer.from_pretrained("llmware/slim-tags-3b")
function = "classify"
params = "tags"
text = "Citibank announced a reduction in its targets for economic growth in France and the UK last week in light of ongoing concerns about inflation and unemployment, especially in large employers such as Airbus."
prompt = "<human>: " + text + "\n" + f"<{function}> {params} </{function}>\n<bot>:"
inputs = tokenizer(prompt, return_tensors="pt")
start_of_input = len(inputs.input_ids[0])
outputs = model.generate(
inputs.input_ids.to('cpu'),
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.eos_token_id,
do_sample=True,
temperature=0.3,
max_new_tokens=100
)
output_only = tokenizer.decode(outputs[0][start_of_input:], skip_special_tokens=True)
print("output only: ", output_only)
# here's the fun part
try:
output_only = ast.literal_eval(llm_string_output)
print("success - converted to python dictionary automatically")
except:
print("fail - could not convert to python dictionary automatically - ", llm_string_output)
</details>
<details>
<summary>Using as Function Call in LLMWare</summary>
from llmware.models import ModelCatalog
slim_model = ModelCatalog().load_model("llmware/slim-tags-3b")
response = slim_model.function_call(text,params=["tags"], function="classify")
print("llmware - llm_response: ", response)
</details>
## Model Card Contact
Darren Oberst & llmware team
[Join us on Discord](https://discord.gg/MhZn5Nc39h) |