File size: 20,456 Bytes
80df72f
f6687ba
80df72f
f6687ba
80df72f
 
 
 
f6687ba
80df72f
 
2b64e22
 
 
 
 
 
 
 
 
 
80df72f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f6687ba
c959068
f6687ba
 
c959068
 
 
 
 
f6687ba
80df72f
 
 
 
 
c959068
80df72f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c959068
80df72f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c959068
80df72f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c959068
80df72f
 
 
65f29ef
80df72f
f6687ba
80df72f
f6687ba
80df72f
f260f30
 
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# Carte du modèle : Guillaume Tell

[Version française](#Version-française1) / [English version](#English-version)

---
# Version française
---
**Guillaume Tell** est un Large Language Model (LLM) français basé sur Mistral Open-Hermes 2.5 optimisé pour le RAG (Retrieval Augmented Generation) avec traçabilité des sources et explicabilité.

---
## Sommaire
1. [Détails du modèle](#détails-du-modèle)
2. [Utilisation](#utilisation)
    - [Contexte de création](#contexte-de-création)
    - [Finalités et limites du modèle](#finalités-et-limites-du-modèle)
    - [Cas d'usage et utilisateurs](#cas-d’usage-et-utilisateurs)
    - [Exemple](#exemple)
3. [Prompt](#prompt)
4. [Informations sur le finetuning](#informations-sur-le-finetuning)
5. [Utilisation d'Albert pour des tâches de RAG](#utilisation-d’Albert-pour-des-tâches-de-RAG)
5. [Glossaire](#glossaire)
---

## Détails du modèle

### Description du modèle

<!-- Provide a longer summary of what this model is. -->

Le modèle "Guillaume Tell" vise à améliorer la vérifiabilité de la génération de textes basés sur des sources administratives françaises. À partir d'une question et d'une sélection de cinq sources, il génère une réponse sourcée, avec des paramètres spéciaux pour les citations.


- **Développé par :** Etalab (Service du Datalab) - Direction Interministérielle du Numérique 
- **Version:** Guillaume-Tell-base
- **Type de modèle :** Transformers, Text-Generation
- **Licence :** [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html)
- **Entraîné depuis le modèle :** OpenHermes-2.5-Mistral-7B

---
## Utilisation
### Contexte de création
Guillaume Tell a été developpé pour **ALBERT**, l’outil d’IA Générative interministérielle de l’État, et plus particulièrement dans le cadre de [l'expérimentation d'un modèle d'assistance aux conseillers numériques](https://www.france-services.gouv.fr/actualites/experimentation-dun-modele-dassistance-france-services-IA) [France services](#Glossaire) basé sur l’intelligence artificielle. Guillaume Tell vise à répondre aux besoins spécifiques des conseillers face à un LLM, en l'occurence la vérification des réponses générées par Albert pour s'assurer de leur justesse avant de les transmettre à des usagers accueillis en maison France services. 

### Finalités et limites du modèle
Guillaume Tell est un modèle de langage, avec des capacités conversationnelles et de recherche d'information sourcée. Il peut être utilisé pour formuler une réponse à des questions relatives à l'administration française (eg. démarches administratives) en allant récupérer des informations pertinentes dans sa base de connaissances (RAG) et en synthétisant une réponse à partir de celles-ci. 

Guillaume Tell fournit des réponses de premier niveau et n'est pas en capacité de donner des réponses administratives complexes. Il n'est pas en capacité de répondre à des questions sortant du champ administratif français. Il formule des réponses seulement en français. 

### Cas d'usage et utilisateurs
Son usage est prévu par les agents publics des administrations françaises afin de faciliter la recherche d'information administrative. Il est déconseillé de mettre Guillaume Tell directement entre les mains de personnes qui n'ont pas été formées spécifiquement à son usage et qui manquent d'expertise sur les démarches administratives, comme par exemple les usagers des services publics. En effet, comme  tout LLM, Guillaume Tell présente des risques d'erreurs ("hallucinations") ou d'oublis qu'une personne non formée ne sera pas en capacité de détecter. 

### Exemple

<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->

> Question: Quelles sont les étapes de la procédure de rétablissement en cas de surendettement ?
> 
> Sources:
> * **10965c7bc7a8e185_0** : Surendettement : rétablissement personnel avec liquidation judiciaire. La procédure de rétablissement consiste à effacer les dettes d'une personne surendettée…
> * **4c4511d1c0e6dc4c_0** : Surendettement : rétablissement personnel sans liquidation judiciaire. La procédure de rétablissement personnel consiste à effacer les dettes
> * **b8d3342e4ac89fe9_0** : Peut-on être saisi pendant la procédure de surendettement ? Dès le dépôt du dossier de surendettement. Durée de la suspension…
> * **n28e7fcf81deee0ff_0** : Surendettement : rétablissement personnel avec liquidation judiciaire. Conditions. Personnes concernées. Une procédure de rétablissement personnel avec liquidation judiciaire est engagée…
> * **568bebd8fb112ee_0** : Peut-on être saisi pendant la procédure de surendettement ? Dès que le dossier est recevable…
> 
> Résultat :
> La proc&eacute;dure de r&eacute;tablissement en cas de surendettement comporte plusieurs &eacute;tapes. Tout d'abord, la personne concern&eacute;e doit r&eacute;pondre &agrave; certaines conditions pour &ecirc;tre &eacute;ligible &agrave; cette proc&eacute;dure. 
> Ensuite, la commission de surendettement ouvre la proc&eacute;dure avec l'accord du surendett&eacute;. Si le surendett&eacute; poss&egrave;de un patrimoine pouvant &ecirc;tre vendu, une liquidation judiciaire est prononc&eacute;e&lt;ref text=&quot;Lorsque le surendett&eacute; poss&egrave;de un patrimoine pouvant &ecirc;tre vendu, la proc&eacute;dure de r&eacute;tablissement consiste &agrave; effacer les dettes et est prononc&eacute;e avec liquidation judiciaire (vente des biens).&quot;&gt;[28e7fcf81deee0ff_0]&lt;/ref&gt;. 
> Dans le cas contraire, une proc&eacute;dure sans liquidation judiciaire est engag&eacute;e&lt;ref text=&quot;Elle est prononc&eacute;e sans liquidation judiciaire (c'est-&agrave;-dire sans vente des biens) lorsque la personne surendett&eacute;e ne poss&egrave;de pas de patrimoine.&quot;&gt;[4c4511d1c0e6dc4c_0]&lt;/ref&gt;.
>  
> Pendant la proc&eacute;dure, la suspension de toute action juridique contre le surendett&eacute; est possible&lt;ref text=&quot;D&egrave;s le d&eacute;p&ocirc;t du dossier de surendettement. Dur&eacute;e de la suspension. La suspension, si elle est accord&eacute;e, est acquise selon les cas jusqu'&agrave; l'un des &eacute;v&eacute;nements suivants : D&eacute;cision d'irrecevabilit&eacute; du dossier Approbation du plan conventionnel de redressement D&eacute;cision de mesures impos&eacute;es Jugement pronon&ccedil;ant un r&eacute;tablissement personnel sans liquidation judiciaire Jugement d'ouverture d'une proc&eacute;dure de r&eacute;tablissement personnel avec liquidation judiciaire Elle ne peut toutefois pas d&eacute;passer 2 ans.&quot;&gt;[b8d3342e4ac89fe9_0]&lt;/ref&gt;. 
> 
> Enfin, la cl&ocirc;ture de la proc&eacute;dure se fait par jugement qui permet l'effacement des dettes&lt;ref text=&quot;Jugement pronon&ccedil;ant un r&eacute;tablissement personnel sans liquidation judiciaire Jugement d'ouverture d'une proc&eacute;dure de r&eacute;tablissement personnel avec liquidation judiciaire&quot;&gt;[28e7fcf81deee0ff_0]&lt;/ref&gt;.
> 


<!-- Provide the basic links for the model.
### Model Sources [optional]

- **Repository:** 
- **Paper [optional]:** 
- **Demo [optional]:** 
-->


---
## Prompt

<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->

### Format du prompt

<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->

Comme Mistral, Open-Hermes 2.5, la syntaxe de Guillaume Tell est basée sur chatml. Elle nécessite un prompt spécifique, ainsi qu'une syntaxe prédéfinie pour ajouter les sources à la question.

**Exemple de prompt:**
```
<|im_start|>system
Tu es Albert, le chatbot des Maisons France Service qui donne des réponses sourcées.<|im_end|>
<|im_start|>user
Ecrit un texte référencé en réponse à cette question : Quelles sont les étapes de la procédure de rétablissement en cas de surendettement ?

Les références doivent être citées de cette manière : texte rédigé<ref text=\"[passage pertinent dans la référence]\">[\"identifiant de la référence\"]</ref>Si les références ne permettent pas de répondre, qu'il n'y a pas de réponse.

Les cinq références disponibles :

10965c7bc7a8e185_0 :(…)

4c4511d1c0e6dc4c_0 :(…)

b8d3342e4ac89fe9_0 :(…)

28e7fcf81deee0ff_0 :(…)

e568bebd8fb112ee_0 :(…)
```


Guillaume-Tell est actuellement entraîné et testé sur une sélection fixe de cinq sources. Il devrait fonctionner sur un ensemble plus petit ou plus grand, mais cela n'a pas encore été expérimenté.

---

## Informations sur le finetuning

<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->

Guillaume Tell a été fine tuné en utilisant l'approche LORA et une quantization sur 4 bits sur : 
- 3880 instructions RAG synthétiques basées sur les données de service-public.fr ;
- 5000 instructions chatRAG basées sur les données de service-public.fr et d'Open Hermes.

Le code de finetuning `finetuning.py` est disponible dans la section `Files and versions`.

---
## Utilisation d'Albert pour des tâches de [RAG](#Glossaire) 

Il est possible d'utiliser des techniques de RAG afin d'optimiser la pertinence de la réponse du modèle. Nous pouvons ainsi obtenir des réponses basées sur les bonnes données adaptées à la question.
C'est ce que nous faisons actuellement en production avec ALBERT.

À la date de la sortie du modèle, les données pour effectuer le RAG d'ALBERT sont constituées de:
- Fiches service-public.fr decoupées en chunks de 300 mots.

---
## Glossaire

<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->

- **France services** : réseau de structures territoriales qui combinent accueil physique et accompagnement numérique pour aider les publics reçus dans les démarches administratives de plusieurs services publics.
- **LLM** (Large Language Model): modèle de Deep Learning capable de comprendre et de générer du langage humain en traitant de grandes quantités de données textuelles.
- **RAG** (Retrieval Augmented Generation) : Technique améliorant les performances des IA génératives en permettant aux LLM d'utiliser des ressources de données supplémentaires sans besoin de réentraînement.



---
# English version


---
**Guillaume Tell** is a French LLM based on Mistral Open-Hermes 2.5 optimized for RAG (Retrieval Augmented Generation) with source traceability and explicability.

---
## Table of contents
1. [Model details](#Model-details)
2. [Uses](#Uses)
    - [Creation context](#Creation-context)
    - [Purposes and limitations of the model](#Purposes-and-limitations-of-the-model)
    - [Use-cases-and-users](#Use-cases-and-users)
    - [Example](#Example)
3. [Prompt](#Prompt1)
4. [Finetuning information](#Finetuning-information)
5. [Using Albert for RAG tasks](#Using-Albert-for-RAG-tasks)
5. [Glossary](#Glossary)
---

## Model details

### Model Description

<!-- Provide a longer summary of what this model is. -->

Guillaume Tell vise à améliorer la vérifiabilité de la génération de textes basés sur des sources administratives françaises. A partir d'une question et d'une sélection de cinq sources, il génère une réponse sourcée, avec des paramètres spéciaux pour les citations.


- **Developed by:** Etalab (Service du Datalab) - Direction Interministérielle du Numérique 
- **Version:** Guillaume-Tell-base
- **Model type:** Transformers, Text-Generation
- **License:** [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html)
- **Finetuned from model :** OpenHermes-2.5-Mistral-7B

---
## Uses
### Creation context
Guillaume Tell has been developed for **ALBERT**, the French government's interministerial Generative AI tool, and more specifically as part of the [experimentation of a France services advisor assistance model](https://www.france-services.gouv.fr/actualites/experimentation-dun-modele-dassistance-france-services-IA) based on artificial intelligence. Guillaume Tell is designed to meet the specific needs of advisors faced with an LLM, in this case the verification of answers generated by Albert to ensure their accuracy before transmitting them to users welcomed in France services centers. 

### Purposes and limitations of the model
Guillaume Tell is a language model, with conversational and sourced information retrieval capabilities. It can be used to formulate an answer to questions relating to the French administration (eg. administrative procedures) by retrieving relevant information from its knowledge base (RAG) and synthesizing an answer from it. 

Guillaume Tell provides first-level answers and is not able to give complex administrative answers. He is not able to answer questions outside the French administrative field. He provides answers in French only. 

### Use cases and users
It is intended for use by public officials of French administrations to facilitate the search for administrative information. It is not recommended to put Guillaume Tell directly into the hands of people who have not been specifically trained in its use and who lack expertise in administrative procedures, such as users of public services. Indeed, like any LLM, Guillaume Tell presents risks of hallucination or forgetfulness that an untrained person will not be able to detect. 


### Example

<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->

> Question: Quelles sont les étapes de la procédure de rétablissement en cas de surendettement ?
> 
> Sources:
> * **10965c7bc7a8e185_0** : Surendettement : rétablissement personnel avec liquidation judiciaire. La procédure de rétablissement consiste à effacer les dettes d'une personne surendettée…
> * **4c4511d1c0e6dc4c_0** : Surendettement : rétablissement personnel sans liquidation judiciaire. La procédure de rétablissement personnel consiste à effacer les dettes
> * **b8d3342e4ac89fe9_0** : Peut-on être saisi pendant la procédure de surendettement ? Dès le dépôt du dossier de surendettement. Durée de la suspension…
> * **n28e7fcf81deee0ff_0** : Surendettement : rétablissement personnel avec liquidation judiciaire. Conditions. Personnes concernées. Une procédure de rétablissement personnel avec liquidation judiciaire est engagée…
> * **568bebd8fb112ee_0** : Peut-on être saisi pendant la procédure de surendettement ? Dès que le dossier est recevable…
> 
> Result:
> La proc&eacute;dure de r&eacute;tablissement en cas de surendettement comporte plusieurs &eacute;tapes. Tout d'abord, la personne concern&eacute;e doit r&eacute;pondre &agrave; certaines conditions pour &ecirc;tre &eacute;ligible &agrave; cette proc&eacute;dure. 
> Ensuite, la commission de surendettement ouvre la proc&eacute;dure avec l'accord du surendett&eacute;. Si le surendett&eacute; poss&egrave;de un patrimoine pouvant &ecirc;tre vendu, une liquidation judiciaire est prononc&eacute;e&lt;ref text=&quot;Lorsque le surendett&eacute; poss&egrave;de un patrimoine pouvant &ecirc;tre vendu, la proc&eacute;dure de r&eacute;tablissement consiste &agrave; effacer les dettes et est prononc&eacute;e avec liquidation judiciaire (vente des biens).&quot;&gt;[28e7fcf81deee0ff_0]&lt;/ref&gt;. 
> Dans le cas contraire, une proc&eacute;dure sans liquidation judiciaire est engag&eacute;e&lt;ref text=&quot;Elle est prononc&eacute;e sans liquidation judiciaire (c'est-&agrave;-dire sans vente des biens) lorsque la personne surendett&eacute;e ne poss&egrave;de pas de patrimoine.&quot;&gt;[4c4511d1c0e6dc4c_0]&lt;/ref&gt;.
>  
> Pendant la proc&eacute;dure, la suspension de toute action juridique contre le surendett&eacute; est possible&lt;ref text=&quot;D&egrave;s le d&eacute;p&ocirc;t du dossier de surendettement. Dur&eacute;e de la suspension. La suspension, si elle est accord&eacute;e, est acquise selon les cas jusqu'&agrave; l'un des &eacute;v&eacute;nements suivants : D&eacute;cision d'irrecevabilit&eacute; du dossier Approbation du plan conventionnel de redressement D&eacute;cision de mesures impos&eacute;es Jugement pronon&ccedil;ant un r&eacute;tablissement personnel sans liquidation judiciaire Jugement d'ouverture d'une proc&eacute;dure de r&eacute;tablissement personnel avec liquidation judiciaire Elle ne peut toutefois pas d&eacute;passer 2 ans.&quot;&gt;[b8d3342e4ac89fe9_0]&lt;/ref&gt;. 
> 
> Enfin, la cl&ocirc;ture de la proc&eacute;dure se fait par jugement qui permet l'effacement des dettes&lt;ref text=&quot;Jugement pronon&ccedil;ant un r&eacute;tablissement personnel sans liquidation judiciaire Jugement d'ouverture d'une proc&eacute;dure de r&eacute;tablissement personnel avec liquidation judiciaire&quot;&gt;[28e7fcf81deee0ff_0]&lt;/ref&gt;.
> 


<!-- Provide the basic links for the model.
### Model Sources [optional]

- **Repository:** 
- **Paper [optional]:** 
- **Demo [optional]:** 
-->
---
## Prompt

<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->

### Prompt format

<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->

Like Mistral Open-Hermes 2.5, Guillaume Tell's syntax is based on chatml. It requires a specific prompt, as well as a predefined syntax for adding sources to the question.

**Prompt example :**
```
<|im_start|>system
Tu es Albert, le chatbot des Maisons France Service qui donne des réponses sourcées.<|im_end|>
<|im_start|>user
Ecrit un texte référencé en réponse à cette question : Quelles sont les étapes de la procédure de rétablissement en cas de surendettement ?

Les références doivent être citées de cette manière : texte rédigé<ref text=\"[passage pertinent dans la référence]\">[\"identifiant de la référence\"]</ref>Si les références ne permettent pas de répondre, qu'il n'y a pas de réponse.

Les cinq références disponibles :

10965c7bc7a8e185_0 :(…)

4c4511d1c0e6dc4c_0 :(…)

b8d3342e4ac89fe9_0 :(…)

28e7fcf81deee0ff_0 :(…)

e568bebd8fb112ee_0 :(…)
```


Guillaume-Tell is currently being trained and tested on a fixed selection of five sources. It should work on a smaller or larger set, but this has not yet been tested.

---
## Finetuning information

<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->

Guillaume Tell was fine-tuned using the LORA approach and 4-bit quantization on : 
- 3880 synthetic RAG instructions based on service-public.fr data
- 5000 chatRAG instructions based on service-public.fr and Open Hermes data.

The finetuning code `finetuning.py` is available in the `Files and versions` section.

---
## Using Albert for [RAG](#Glossary)  tasks

RAG techniques can be used to optimize the relevance of the model's response. In this way, we can obtain answers based on the right data for the right question.
This is what we are currently doing in production with ALBERT.

At the time of the model's release, the data for ALBERT's RAG consisted of the following:
- service-public.fr sheets cut into 300-word chunks
---
## Glossary

<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
- **France services** : network of local structures that combine physical reception with digital support to help visitors with administrative procedures for several public services.

- **LLM** (Large Language Model): Deep Learning model capable of understanding and generating human language by processing large amounts of textual data.

- **RAG** (Retrieval Augmented Generation): Technique improving the performance of generative AI by enabling LLMs to use additional data resources without the need for retraining.
---
<!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->

<!--

## Evaluation

<!-- This section describes the evaluation protocols and provides the results. -->