Skip to content

Commit ae76ef8

Browse files
committed
first commit with Liascript
1 parent ee3c312 commit ae76ef8

File tree

6,730 files changed

+1678139
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

6,730 files changed

+1678139
-2
lines changed

CFCB_IA.code-workspace

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"folders": [
3+
{
4+
"path": "."
5+
}
6+
]
7+
}

IA_de_vinci.pdf

8.6 MB
Binary file not shown.

_site/.Rhistory

Whitespace-only changes.

_site/definitions.md

+190
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
::::::::::::::::: {#quarto-document-content .content .quarto-banner-title-block role="main"}
2+
::: {#larges-modèles-de-langage-llm .section .level1}
3+
# Larges Modèles de Langage (LLM)
4+
5+
Un LLM permet de réaliser une série de calculs sur la langue. Je peux
6+
par exemple savoir où se trouve un mot ou une phrase dans un espace
7+
linguistique particulier, calculer sa distance par rapport à d'autres
8+
mots ou d'autres phrases et donc chercher des synonymes, des contraires,
9+
etc. Je peux chercher un mot ou une phrase qui a une position semblable
10+
dans une autre langue et donc essayer de trouver une traduction, etc. Je
11+
peux par exemple prendre une série de mots et chercher les mots les plus
12+
probables qui suivent ces mots ([Vitali-Rosati
13+
([2024](#ref-vitali-rosatiChatGPTTronconneuse2024a){role="doc-biblioref"})]{.citation
14+
cites="vitali-rosatiChatGPTTronconneuse2024a"})
15+
:::
16+
17+
::: {#chatbot .section .level1}
18+
# Chatbot
19+
20+
Souvent utilisé pour désigner l'ensemble de l'application (le chatbot et
21+
le LLM), le chatbot, au sens strict, ne désigne que l'interpréteur de
22+
prompt qui va interroger le LLM. Ainsi dans le cas de ChatGPT, le LLM
23+
est GPT et le chatbot chatGPT. Le chatbot prend l'apparence d'une
24+
interface graphique.
25+
:::
26+
27+
::: {#entraînement .section .level1}
28+
# Entraînement
29+
30+
Un modèle est dit pré-entraîné c'est à dire qu'il se base sur des
31+
grandes masses de données pour devenir plus statistiquement pertinent.
32+
Une phase postérieure d'apprentissage renforcé complète cet
33+
entraînement. L'apprentissage renforcé consiste à faire des requêtes et
34+
à évaluer les résultats afin d'orienter le modèle vers de meilleures
35+
réponses (meilleures selon le but poursuivi par les concepteurs).
36+
L'apprentissage renforcé permet d'atténuer certains biais présents dans
37+
le corpus ou supprimer toutes les réponses jugées inappropriées (il est
38+
arrivé par le passé qu'en entrant ses symptomes sur un chatbot, un
39+
usager ait reçu comme réponse que la meilleure option thérapeutique pour
40+
lui consistait à se suicider ; on veut évidemment se prémunier au
41+
maximum contre cette éventualité). Les personnes sollicitées pour les
42+
périodes de renforcement sont la plupart du temps des personnes très mal
43+
rémunérées et dont l'exposition à des contenus problématiques est très
44+
peu prise en compte par les firmes qui développent les modèles.
45+
:::
46+
47+
:::: {#jetons-tokens .section .level1}
48+
# Jetons (tokens)
49+
50+
Le token (et non la page ou la ligne) est l'unité de base pour mesurer
51+
les quantités de données qui ont servi à entraîner un LLM ou les
52+
quantités de données qui sont générées par un chatbot (cette quantité
53+
est d'ailleurs souvent paramétrable). Statistiquement, le token
54+
constitue entre les 2/3 et les 3/4 d'un mot. Le procédé qui consiste à
55+
convertir une ligne de texte ou de code en tokens s'appelle la
56+
tokenisation.
57+
58+
Un LLM comme codeqwen est entraîné avec des trillions (milliers de
59+
milliards) de tokens. La phrase suivante : "longtemps je me suis couché
60+
de bonne heure" comporte 8 mots, 42 caractères mais -pour [le LLM
61+
GPT4](https://platform.openai.com/tokenizer)- 10 tokens :
62+
63+
1 2 3 4 5 6 7 8 9 10
64+
------ ------- ---- ---- ------ ----- ----- ---- ------- -------
65+
long temps je me suis cou ché de bonne heure
66+
67+
Le propre d'un LLM est de calculer les probabilités qu'un token se
68+
retrouve proche d'un autre token (par exemple que "cou" soit suivi de
69+
"ché" et non pas de "per" ou de "rrier")
70+
71+
[Vittascience](https://fr.vittascience.com/) permet de relancer un
72+
prompt à partir d'un token, y compris, au milieu d'un mot. Vittascience
73+
mesure également le degré de probabilité qu'un token survienne après le
74+
précédent. Cette probabilité peut être augmentée ou au contraire
75+
diminuée (pour intégrer plus d'alea dans la génération, c'est ce qu'on
76+
appelle la [température](#température).
77+
78+
::: {#activité .section .level2}
79+
## Activité : {.anchored anchor-id="activité"}
80+
81+
Aller sur Vittascience
82+
83+
Lancer un prompt (garder Mixtral, le LLM par défaut sur Vittascience).
84+
Compter le nombre de tokens obtenu. Relancer la génération à partir d'un
85+
token qui se termine en milieu de mot et relancer la génération du
86+
prompt à partir d'une proposition statistiquement moins élevée.
87+
:::
88+
::::
89+
90+
::::: {#température .section .level1}
91+
# Température
92+
93+
Part d'aléatoire plus ou moins grande et souvent paramétrable pour
94+
l'usager dans la succession des tokens. Plus l'aléatoire (température)
95+
est faible et plus la suite de caractères est déterministe et s'éloigne
96+
très peu des cas majoritaires dans les données d'entraînement. (Dans
97+
Vittascience, les jetons les plus déterministes sont en vert foncé).
98+
Plus cet aléatoire est grand et plus le résultat sera éloigné de ce
99+
déterminisme. On aura des textes plus "créatifs" souvent illisibles
100+
quand la température est poussée à son maximum.
101+
102+
:::: {#activité-1 .section .level2}
103+
## Activité : {.anchored anchor-id="activité-1"}
104+
105+
Dans Vittascience, faire un haïku sur un sujet de votre choix (par
106+
exemple la pluie en Bretagne) avec une température faible (20%) et
107+
envoyez la même instruction avec une température élevée (75%) ; comparez
108+
les résultats. Lequel préférez-vous ?
109+
110+
::: {.quarto-figure .quarto-figure-center}
111+
<figure class="figure">
112+
<p><img src="images/haikus.png" class="img-fluid figure-img" /></p>
113+
<figcaption>haikus réalisés par Mixtral</figcaption>
114+
</figure>
115+
:::
116+
117+
Les token verts manifestent les probabilités les plus hautes, les tokens
118+
rouges, les probabilités les plus basses (le vert clair et le rose
119+
correspondent à des valeurs médianes entre ces deux extrêmes). Plus la
120+
température est haute, plus le rose et le rouge abondent.
121+
122+
Question : si je souhaite publier ces haïkus, est-ce que je peux le
123+
faire et toucher des droits d'auteur sur ma publication ? Qui est auteur
124+
dans ce cas :
125+
126+
- moi en tant qu'auteur du prompt ?
127+
128+
- vittascience en tant que concepteur du site ?
129+
130+
- Mistral en tant que concepteur du LLM Mixtral avec lequel j'ai
131+
généré le prompt ?
132+
133+
voir [enjeux sociaux, juridiques et
134+
environnementaux](./enjeux_ethiques_environnementaux.html)
135+
::::
136+
:::::
137+
138+
:::: {#vectorisation .section .level1}
139+
# Vectorisation
140+
141+
Un LLM est une "calculette de mots" qui fonctionne sur la base de
142+
rapprochements statistiques entre des mots qui se retrouvent dans des
143+
contextes identiques. Cela implique que tous les [tokens](#jetons)
144+
soient convertissables en nombres.
145+
146+
Par exemple, ce prompt généré par Mistral avec le Chatbot de
147+
[Vittascience](https://fr.vittascience.com/) :
148+
149+
![](images/mistral1.png){width="150%"}
150+
151+
correspond dans le LLM Mistral à cette suite de nombres :
152+
153+
![](images/mistral2.png){width="150%"}
154+
155+
Le terme "la" correspond à deux tokens différents : - l'adjectif ou le
156+
pronom la avec un l minuscule (token id = 1675) - l'adjectif (plus
157+
rarement le pronom) La avec un L majuscule (token id = 2486) Le point
158+
correspond au token id 13. Après le token ID 13 (le point), la
159+
probabilité que survienne le la minuscule est bien plus réduite que
160+
celle que survienne le La majuscule. Comme tenu que la question posée
161+
était : "quelle est la première femme à avoir été dans l'espace ?" La
162+
probabilité que la réponse commence par "La première femmme, etc." est
163+
importante, mais plus forte encore que la réponse commence par un *L*
164+
majuscule après un point. En l'occurrence, le modèle statistiquement ne
165+
permettait pas de débuter la réponse autrement que par un *La*, un *Le*
166+
ou un *L'*
167+
168+
::: {.quarto-figure .quarto-figure-center}
169+
<figure class="figure">
170+
<p><img src="images/mistral3.png" class="img-fluid figure-img" /></p>
171+
<figcaption>en jaune, le tokenID de “*“, en orange, le tokeID
172+
de”La”</figcaption>
173+
</figure>
174+
:::
175+
::::
176+
177+
:::::: {#quarto-appendix .default}
178+
::::: {#quarto-bibliography .section .quarto-appendix-contents role="doc-bibliography"}
179+
## References {#references .anchored .quarto-appendix-heading}
180+
181+
:::: {#refs .references .csl-bib-body .hanging-indent entry-spacing="0" line-spacing="2" role="list"}
182+
::: {#ref-vitali-rosatiChatGPTTronconneuse2024a .csl-entry role="listitem"}
183+
Vitali-Rosati, M. (2024, September 20). *ChatGPT et la tronçonneuse*.
184+
Culture numérique. Pour une philosophie du numérique.
185+
<http://blog.sens-public.org/marcellovitalirosati/chatgpttronconneuse.html>
186+
:::
187+
::::
188+
:::::
189+
::::::
190+
:::::::::::::::::

allChartImages2.zip

214 KB
Binary file not shown.

charts/question1.png

15.4 KB
Loading

charts/question2.png

12.2 KB
Loading

charts/question3.png

12.5 KB
Loading

charts/question4.png

12.8 KB
Loading

0 commit comments

Comments
 (0)