Edit model card

SLIM-NER

slim-ner is part of the SLIM ("Structured Language Instruction Model") model series, consisting of 1b parameter small, specialized decoder-based models, fine-tuned for function-calling.

slim-ner 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.

SLIM models can be used 'out of the box' for rapid prototyping in most general purpose use cases, and are designed to serve as a solid base that can be easily fine-tuned and adapted for specialized production use cases.

Each slim model has a 'quantized tool' version, e.g., 'slim-ner-tool'.

Prompt format:

function = "classify"
params = "people, organization, location"
prompt = "<human> " + {text} + "\n" +
                      "<{function}> " + {params} + "</{function}>" + "\n<bot>:"

Transformers Script
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)
Using as Function Call in LLMWare
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)

Model Card Contact

Darren Oberst & llmware team

Join us on Discord

Downloads last month
199
Inference API
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Space using llmware/slim-ner 1

Collection including llmware/slim-ner