SLIMER-IT: Show Less Instruct More Entity Recognition - Italian language
SLIMER-IT is an LLM specifically instructed for zero-shot NER on Italian language.
Github repository: https://github.com/andrewzamai/SLIMER_IT
Instructed on a reduced number of tags (PER, ORG, LOC), it is designed to tackle never-seen-before Named Entity tags by leveraging a prompt enriched with a DEFINITION and GUIDELINES for the NE to be extracted.
Built with Meta Llama 3, based on the Italian instruction-tuned version swap-uniba/LLaMAntino-3-ANITA-8B-Inst-DPO-ITA
Instruction Tuning Prompt
Ti viene fornito un input di testo (delimitato da tre virgolette) e un'istruzione.
Leggi il testo e rispondi all'istruzione alla fine.
"""
{input di testo}
"""
Istruzione: Estrai tutte le entità di tipo ENTITÀ MITOLOGICA dal testo che hai letto.
Ti vengono fornite una DEFINIZIONE e alcune LINEE GUIDA.
DEFINIZIONE: ENTITÀ MITOLOGICA denota personaggi, divinità, creature o figure mitologiche provenienti da tradizioni religiose, miti, leggende o folklore.
LINEE GUIDA: Assicurati di non etichettare come ENTITÀ MITOLOGICA personaggi storici o letterari reali. Ad esempio, 'Alessandro Magno' è un personaggio storico, non una figura mitologica. Inoltre, fai attenzione a distinguere nomi comuni o nomi di luoghi che possono riferirsi anche a figure mitologiche, come 'Diana', che può essere un nome proprio e il nome della dea romana della caccia.
Restituisci una lista JSON di istanze di questo tipo. Restituisci una lista vuota se non sono presenti istanze.
JSON Template
JSON SLIMER-IT prompt
{
"description": "SLIMER prompt for Italian",
"prompt_input": "<|start_header_id|>system<|end_header_id|>\n\n Sei un utile assistente.<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nTi viene fornito un input di testo (delimitato da tre virgolette) e un'istruzione. \nLeggi il testo e rispondi all'istruzione alla fine.\n\"\"\"\n{input}\n\"\"\"\nIstruzione: Estrai tutte le entità di tipo {NE_name} dal testo che hai letto. Ti vengono fornite una DEFINIZIONE e alcune LINEE GUIDA.\nDEFINIZIONE: {definition}\nLINEE GUIDA: {guidelines}\nRestituisci una lista JSON di istanze di questo tipo. Restituisci una lista vuota se non sono presenti istanze.<|eot_id|>\n<|start_header_id|>assistant<|end_header_id|>\n\n"
}
from vllm import LLM, SamplingParams
vllm_model = LLM(model="expertai/SLIMER-IT")
sampling_params = SamplingParams(temperature=0, max_tokens=128)
prompts = [prompter.generate_prompt(instruction, input) for instruction, input in instruction_input_pairs]
responses = vllm_model.generate(prompts, sampling_params)
Citation
If you find SLIMER-IT useful in your research or work, please cite the following paper:
@misc{zamai2024slimeritzeroshotneritalian,
title={SLIMER-IT: Zero-Shot NER on Italian Language},
author={Andrew Zamai and Leonardo Rigutini and Marco Maggini and Andrea Zugarini},
year={2024},
eprint={2409.15933},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2409.15933},
}