RedHitMark commited on
Commit
fd9b06d
·
verified ·
1 Parent(s): f283ba7

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +83 -1
README.md CHANGED
@@ -23,4 +23,86 @@ The complete text simplification pipeline follows eight sequential steps:
23
  6. [nominalizations](https://huggingface.co/VerbACxSS/sempl-it-v3-nominalizations-awq) (this)
24
  7. [verbs](https://huggingface.co/VerbACxSS/sempl-it-v3-verbs-awq)
25
  8. [sentence-reorganizer](https://huggingface.co/VerbACxSS/sempl-it-v3-sentence-reorganizer-awq)
26
- 9. [explain](https://huggingface.co/VerbACxSS/sempl-it-v3-explain-awq)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  6. [nominalizations](https://huggingface.co/VerbACxSS/sempl-it-v3-nominalizations-awq) (this)
24
  7. [verbs](https://huggingface.co/VerbACxSS/sempl-it-v3-verbs-awq)
25
  8. [sentence-reorganizer](https://huggingface.co/VerbACxSS/sempl-it-v3-sentence-reorganizer-awq)
26
+ 9. [explain](https://huggingface.co/VerbACxSS/sempl-it-v3-explain-awq)
27
+
28
+
29
+ ## Usage
30
+ Install the following dependencies:
31
+ ```sh
32
+ pip install transformers==4.49.0
33
+ pip install autoawq==0.2.9
34
+ pip install peft==0.15.0
35
+ ```
36
+
37
+ Define the system prompt and the text to simplify:
38
+ ```py
39
+ PROMPT = """Sei un esperto redattore di documenti istituzionali italiani.
40
+
41
+ Trasforma le nominalizzazioni deverbali. **Non alterare il contenuto e lo stile del testo originale**.
42
+
43
+ # Steps
44
+ 1. Leggi attentamente il testo istituzionale.
45
+ 2. Individua tutti i sostantivi che derivano da un verbo (nominalizzazioni deverbali).
46
+ 3. Escludi dalla ricerca i participi passati dei verbi
47
+ 4. Escludi dalla ricerca le forme passive.
48
+ 5. Escludi dalla ricerca i termini con effetto giuridico.
49
+ 6. Trasforma, quando possibile, le nominalizzazioni deverbali individuate.
50
+ 7. Non introdurre errori grammaticali e mantieni la coerenza del testo.
51
+
52
+ # Output Format
53
+ Il testo modificato con l'originale formattazione e suddivisione in sezioni e paragrafi.
54
+
55
+ # Examples
56
+ - **Input**: L'ufficio si occuperà della redazione dei documenti.
57
+ **Output**: L'ufficio si occuperà di redigere i documenti.
58
+ - **Input**: È necessaria la compilazione del modulo.
59
+ **Output**: È necessario compilare il modulo.
60
+
61
+ # Notes
62
+ - Il testo fornito può essere complesso e richiede attenzione ai dettagli.
63
+ - Esegui solamente le operazioni descritte, **non eliminare e non modificare altri contenuti**.
64
+ - Assicurati che le implicazioni giuridiche e legali del documento siano mantenute.
65
+ - Non modificare il testo tra virgolette."""
66
+
67
+ TEXT_TO_SIMPLIFY = """Il documento individua le esigenze di sviluppo necessarie per assicurare che i principi delineati dalla Legge Regionale 23 dicembre 2004, n. 29 e dai successivi atti normativi, sulla essenziale funzione della ricerca e innovazione nelle Aziende Sanitarie della Regione Emilia-Romagna, si traducano in azioni concrete nel Servizio Sanitario Regionale.
68
+
69
+ Alla luce delle evidenze della letteratura internazionale, delle indicazioni della normativa nazionale e della valutazione di quanto già attuato a livello regionale negli anni passati, vengono individuati gli obiettivi di sviluppo e le linee per il raggiungimento dei suddetti obiettivi."""
70
+ ```
71
+
72
+ Load SEMPL-IT model and tokenizer:
73
+ ```py
74
+ from transformers import AutoModelForCausalLM, AutoTokenizer
75
+
76
+ tokenizer = AutoTokenizer.from_pretrained("VerbACxSS/sempl-it-v3-nominalizations-awq")
77
+ model = AutoModelForCausalLM.from_pretrained("VerbACxSS/sempl-it-v3-nominalizations-awq").to("cuda")
78
+ ```
79
+
80
+ Define and apply chat template:
81
+ ```py
82
+ chat = [
83
+ {"role": "system", "content": PROMPT},
84
+ {"role": "assistant", "content": TEXT_TO_SIMPLIFY},
85
+ ]
86
+
87
+ formatted_chat = tokenizer.apply_chat_template(
88
+ chat,
89
+ tokenize=False,
90
+ add_generation_prompt=True
91
+ )
92
+ model_inputs = tokenizer([formatted_chat], return_tensors="pt").to("cuda")
93
+ ```
94
+
95
+ Use SEMPL_IT model with following sampling parameters to generate `simplified_text`:
96
+ ```py
97
+ generated_ids = model.generate(
98
+ **model_inputs,
99
+ max_new_tokens=4096,
100
+ temperature=0.1,
101
+ top_p=0.2
102
+ )
103
+ simplified_text = tokenizer.decode(generated_ids[0][len(model_inputs.input_ids[0]):], skip_special_tokens=True)
104
+ print(simplified_text)
105
+ ```
106
+
107
+ ## Acknowledgements
108
+ This contribution is a result of the research conducted within the framework of the PRIN 2020 (Progetti di Rilevante Interesse Nazionale) "VerbACxSS: on analytic verbs, complexity, synthetic verbs, and simplification. For accessibility" (Prot. 2020BJKB9M), funded by the Italian Ministero dell'Università e della Ricerca.