File size: 6,877 Bytes
7f348f7
 
 
 
 
 
 
 
 
 
 
 
7854bb6
7f348f7
 
 
7854bb6
7f348f7
7854bb6
7f348f7
7854bb6
 
 
 
 
 
 
7f348f7
7854bb6
7f348f7
7854bb6
7f348f7
7854bb6
 
7f348f7
 
7854bb6
 
7f348f7
ad062f1
7f348f7
7854bb6
 
 
 
 
 
 
 
 
7f348f7
 
 
7854bb6
 
7f348f7
 
 
 
 
 
 
 
7854bb6
7f348f7
7854bb6
7f348f7
 
 
 
 
 
 
 
 
 
 
 
cbd307e
7f348f7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7854bb6
7f348f7
 
 
 
 
 
 
 
 
 
 
 
 
 
7854bb6
7f348f7
7854bb6
 
7f348f7
7854bb6
7f348f7
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
---
license: apache-2.0
datasets:
- cosimoiaia/Loquace-102k
language:
- it
tags:
- Italian
- Qlora
- Mistral
- finetuning
---
Model Card per Loquace-7B-Mistral (<u>Questa model card è stata tradotta automaticamente utilizzando Loquace.</u>)

# 🇮🇹 Loquace-7B-Mistral v0.1 🇮🇹 

Loquace è una Intelligenza Artificiale (o un Large Language Model) che parla Italiano, addestrata per seguire istruzioni. 🇮🇹

Loquace-7B-Mistral ha alcune caratteristiche peculiari:

- È abbastanza bravo a seguire istruzioni in Italiano.
- Risponde bene al prompt-engineering.
- Funziona bene in sistemi RAG (Retrival Augmented Generation).
- È stato addestrato su dati relativamente grezzi [Loquace-102K](https://huggingface.co/datasets/cosimoiaia/Loquace-102k) usando il metodo QLoRa e Mistral-7B-Instruct come modello di base.
- L'addestramento è durato solo 4 ore su una 3090, costando leggermente più di <b>1 euro</b>! Sulle GPU di [Genesis Cloud](https://gnsiscld.co/26qhlf)
- È <b><i>Veramente Open Source</i></b>: Sia il modello che i dati e il codice con le istruzioni per replicare i risultati sono completamente disponibili.
- È stato creato in un garage del Sud Italia :-) 

I modelli LLM della famiglia Loquace sono stati creati con lo scopo di democratizzare l'Intelligenza Artificiale e i Large Language Models nel panorama Italiano.

<b> Non è necessario acquistare GPU costosi, ottenere finanziamenti grandiosi o essere un'istituzione accademica elitaria, basta scaricare il codice e addestrare sui tuoi dati sul tuo PC (o sulle GPU di un provider affidabile ed economico come [Genesis Cloud](https://gnsiscld.co/26qhlf) )</b>

### Istruzioni per il Fine-tuning:
Il codice relativo al finetuning si trova su:
https://github.com/cosimoiaia/Loquace

### Versione GGUF per l'utilizzo di CPU (Senza GPU!!!):
La versione 8bit di Loquace puo essere scaricata [qui](https://huggingface.co/cosimoiaia/Loquace-7B-Mistral-GGUF)

Qui c'è una lista incompleta di programmi e librerie che sono conosciute per supportare GGUF (Grazie a [TheBloke](https://huggingface.co/TheBloke) per questa lista e per il suo fantastico lavoro):

* [llama.cpp](https://github.com/ggerganov/llama.cpp). Il progetto primario per il formato GGUF. Fornisce un'interfaccia a riga di comando e una versione server.
* [text- generation-webui](https://github.com/oobabooga/text- generation-webui), L'interfaccia web più usata, con molte funzionalità ed estensioni. Supporta anche GPU locali.
* [KoboldCpp](https://github.com/LostRuins/koboldcpp), un'interfaccia utente Web completa, con accelerazione GPU su tutte le piattaforme e architetture GPU. Particolarmente adatto per raccontare storie.
* [LM Studio](https://lmstudio.ai/), una GUI locale potente e facile da usare per Windows e macOS (Silicon), con accelerazione GPU.
* [Interfaccia utente Web di LoLLMS](https://github.com/ParisNeo/lollms-webui), una fantastica interfaccia utente Web con molte funzionalità interessanti e uniche, inclusa una libreria di modelli completa per una facile selezione del modello.
* [Faraday.dev](https://faraday.dev/), una GUI di chat basata sui caratteri attraente e facile da usare per Windows e macOS (sia Silicon che Intel), con accelerazione GPU.
* [ctransformers](https://github.com/marella/ctransformers), una libreria Python con accelerazione GPU, supporto LangChain e server AI compatibile con OpenAI.
* [llama-cpp-python](https://github.com/abetlen/llama-cpp-python), una libreria Python con accelerazione GPU, supporto LangChain e server API compatibile con OpenAI.
* [candle](https://github.com/huggingface/candle), un framework Rust ML incentrato sulle prestazioni, incluso il supporto GPU e sulla facilità d'uso.

#### Previous releases of the Loquace family:

La Famiglia di Modelli Loquace è nata agli inizi del 2023 con lo scopo di provare che è possibile addestrare un LLM in una lingua diversa da quella del modello di base.
Potete trovare gli altri modelli qui:

- https://huggingface.co/cosimoiaia/Loquace-70m   -   Based on pythia-70m
- https://huggingface.co/cosimoiaia/Loquace-410m  -   Based on pythia-410m
- https://huggingface.co/cosimoiaia/Loquace-7B    -   Based on Falcon-7B
- https://huggingface.co/cosimoiaia/Loquace-12B   -   Based on pythia-12B
- https://huggingface.co/cosimoiaia/Loquace-20B   -   Based on gpt-neox-20B


Questi modelli, seppur non producono risultati accettabili, sono la prova di quanto sia possibile effettuare il finetuning di un LLM in poco tempo, con dati relativamente grezzi e risorse veramente ridotte.

## Utilizzo:

```python
from transformers import MistralForCausalLM, AutoTokenizer


def generate_prompt(instruction):    
   prompt = f"""### Instruction: {instruction}
   
### Response:
"""
   return prompt

model_name = "cosimoiaia/Loquace-7B-Mistral"

model = MistralForCausalLM.from_pretrained(
   model_name,
   device_map="auto",
   torch_dtype=torch.bfloat16                
)

model.config.use_cache = True


tokenizer = AutoTokenizer.from_pretrained(model_name, add_eos_token=False)

prompt = generate_prompt("Chi era Dante Alighieri?")
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")

outputs = model.generate(**inputs, do_sample = True, num_beams = 2, top_k=50, top_p= 0.95, max_new_tokens=2046, early_stopping = True)
print(tokenizer.decode(outputs[0], skip_special_tokens=True).split("Response:")[1].strip())
```

## Esempi di risposta:
```
> Pretendi di essere Dante Alighieri e raccontami la tua vita.
 Sono Dante Alighieri, un poeta e scrittore italiano del XIV secolo. Nacqui a Firenze nel 1265 e ho trascorso gran parte della mia vita viaggiando in Europa e scrivendo poesie. Ho anche scritto la Divina Commedia, una delle opere letterarie più famose di tutti i tempi.

> Quanto fa 7 x 14 - 98 ?
 7 x 14 = 98, quindi la risposta è 0.

> La radice quadrata di 144 ?
 La radice quadrata di 144 è 12.

> Inventa una ricetta pugliese con la polenta.
 La ricetta è chiamata "Polenta al burro di arachidi e formaggio". Per prepararla, inizia bollendo la polenta secondo le istruzioni sulla confezione. Mentre la polenta si cucina, mescola insieme 1/2 tazza di burro di arachidi, 1/4 di tazza di formaggio grattugiato e 1/4 di tazza di parmigiano grattugiato. Una volta che la polenta è cotta, versala su una teglia da forno e distribuire il composto di burro di arachidi e formaggio sopra la polenta. Metti in forno a 350 gradi per 15 minuti o fino a quando la parte superiore è dorata. Servi caldo con un'insalata di pomodoro e basilico fresco.
```

## Limitazioni:

- Loquace-7B potrebbe non gestire bene query complesse o sfumate e potrebbe avere problemi con input ambigui o mal formattati.
- Il modello può generare risposte di fatto errate o prive di senso. Dovrebbe essere usato con cautela e gli output dovrebbero essere attentamente verificati.

## Autore:
Cosimo Iaia <[email protected]>