File size: 2,866 Bytes
20ae344 ab571b8 20ae344 b2a2fc5 9e24246 b2a2fc5 eb4cdff b2a2fc5 eb4cdff b2a2fc5 e063483 b2a2fc5 9e24246 b2a2fc5 eb4cdff b2a2fc5 ab571b8 b2a2fc5 ab571b8 eb4cdff ab571b8 b2a2fc5 ab571b8 b2a2fc5 eb4cdff b2a2fc5 ab571b8 eb4cdff b2a2fc5 eb4cdff ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 eb4cdff b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 ab571b8 b2a2fc5 |
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 |
---
license: apache-2.0
inference: false
---
# SLIM-NER
<!-- Provide a quick summary of what the model is/does. -->
**slim-ner** is part of the SLIM ("**S**tructured **L**anguage **I**nstruction **M**odel") model series, consisting of small, specialized decoder-based models, fine-tuned for function-calling.
slim-sentiment has been fine-tuned for **named entity extraction** function calls, generating output consisting of a python dictionary corresponding to specified keys, e.g.:
`{"people": ["..."], "organization":["..."], "location": ["..."]}`
SLIM models are designed to generate structured outputs that can be used programmatically as part of a multi-step, multi-model LLM-based automation workflow.
Each slim model has a 'quantized tool' version, e.g., [**'slim-ner-tool'**](https://huggingface.co/llmware/slim-ner-tool).
## Prompt format:
`function = "classify"`
`params = "people, organization, location"`
`prompt = "<human> " + {text} + "\n" + `
`"<{function}> " + {params} + "</{function}>" + "\n<bot>:"`
<details>
<summary>Transformers Script </summary>
model = AutoModelForCausalLM.from_pretrained("llmware/slim-ner")
tokenizer = AutoTokenizer.from_pretrained("llmware/slim-ner")
function = "classify"
params = "people, organization, location"
text = "Yesterday, in Redmond, Satya Nadella announced that Microsoft would be launching a new AI strategy."
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-ner")
response = slim_model.function_call(text,params=["people","organization","location"], function="classify")
print("llmware - llm_response: ", response)
</details>
## Model Card Contact
Darren Oberst & llmware team
[Join us on Discord](https://discord.gg/MhZn5Nc39h)
|