--- language: - it pipeline_tag: text-generation license: llama3 tags: - facebook - meta - pythorch - llama - llama-3 - llamantino - zero-shot NER - NER base_model: swap-uniba/LLaMAntino-3-ANITA-8B-Inst-DPO-ITA --- # 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
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"
  }
```python 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: ``` latex @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}, } ```