Ormai di ChatGPT, il celebre servizio LLM di OpenAI, se ne sente parlare dappertutto.
Farò una breve spiegazione di cos'è, descriverò le best practices per il suo utilizzo e l'integrazione con Laravel.
Descriverò come utilizzare le API sia per la completion che per la chat, lo stream mode e le potenzialità della nuova Function calling.
Cos'è l'embedding, a cosa serve? Come utilizzarlo per interrogare una base di dati ed ottenere una risposta sensata e con le fonti da chatGPT.
Infine proporrò un case study su https://copyba.se, un piccolo SAAS che sto costruendo negli ultimi mesi.
2. Chi sono?!?
• Freel
a
nce
• Amministr
a
tore nelle community L
a
r
a
vel It
a
li
a
• Gioc
a
tore di hockey 🏒
• P
a
p
à
di un b
a
mbino riccio
• Cofond
a
tore di
Alberto Peripolli
github.com/trippo
3. Cosa (spero) vi porterete a casa dopo il mio talk
Di cosa parleremo?
• Cos
a
o
ff
re OpenAI
a
noi svilupp
a
tori
• Come integr
a
rlo nei nostri progetti
• C
a
pire i limiti e perfezion
a
re le richieste per super
a
rli
• Esempi di utilizzo in progetti re
a
li
• Rischi nell'integr
a
zione dell'IA
• Cos
a
ci riserv
a
il futuro
4. Large language model
Cos'è e come funziona un LLM
• Un L
a
rge L
a
ngu
a
ge Model (LMM) è un modello linguistico
costituito d
a
un
a
rete neur
a
le con molti p
a
r
a
metri,
a
ddestr
a
t
a
su gr
a
ndi qu
a
ntit
à
di testo non etichett
a
to utilizz
a
ndo il self-
supervised le
a
rning.
??!??
??!??
5. Cos'è e come funziona un LLM
Per c
a
pire come funzion
a
vi consiglio di
a
scolt
a
re questo
episodio del podc
a
st
"PENSIERI IN CODICE"
P
a
rtendo d
a
un esempio semplice con i libri che
a
vete
a
c
a
s
a
, potete complet
a
re un input
a
ggiungendo p
a
rol
a
dopo p
a
rol
a
similmente
a
ch
a
tGPT...
pensieriincodice.it/118
Podc
a
st
6. Ecosistema OpenAI
• Modelli GPT (gener
a
tive pre-tr
a
ined Tr
a
nsformer)
a
ddestr
a
ti per comprendere lingu
a
ggio n
a
tur
a
le e il codice
• H
a
un
a
serie di modelli con prezzi di
ff
erenti
• Espone i propri servizi tr
a
mite API
• Non solo ch
a
tGPT m
a
a
nche imm
a
gini,
a
udio,
moder
a
zione, ...
7. Modelli e token
Ecosistema OpenAI
Per l'el
a
bor
a
zione dei testi non utilizz
a
le p
a
role m
a
i token
1 token = circ
a
4 c
a
r
a
tteri o 0,75 p
a
role per testo inglese
I token r
a
ppresent
a
no un
a
sequenze di c
a
r
a
tteri
9. Modelli e token
Ecosistema OpenAI
I token sono import
a
nti per il c
a
lcolo del costo e il limite di prompt
GPT-4
GPT-3.5 turbo
10. Librerie
Richieste ad OpenAI
• open
a
i-php/client
• open
a
i-php/l
a
r
a
vel (wr
a
pper con con
f
ig
f
ile, F
a
c
a
de, testing)
11. Tipi di interazione con GPT
Richieste ad OpenAI
Ch
a
t Completion
Text Completion
Questi modelli di ch
a
t
a
ccett
a
no un elenco di
mess
a
ggi come input e restituiscono un
mess
a
ggio gener
a
to d
a
l modello come output.
L'inter
a
zione con essi quindi può
a
nd
a
re
a
v
a
nti
più volte
Questi modelli ricevono in input un
a
string
a
di
testo in form
a
to libero chi
a
m
a
t
a
prompt e
forniscono un
a
singol
a
rispost
a
.
gpt-3.5-turbo-instruct gpt-3.5-turbo, gpt-4
DEPRECATED
14. Best practices costruzione di un prompt
• Includi più dett
a
gli nell
a
tu
a
dom
a
nd
a
per ottenere risposte più pertinenti
• Chiedi
a
l modello di risponderti con un
a
person
a
lit
à
o competenz
a
(System prompt)
• Utilizz
a
delimit
a
tori per indic
a
re chi
a
r
a
mente p
a
rti distinte dell'input (3 x " ,
xml t
a
g)
• Speci
f
ic
a
re i p
a
ss
a
ggi necess
a
ri per complet
a
re un'
a
ttivit
à
• Richiedi uno stile di rispost
a
• Speci
f
ic
a
l
a
lunghezz
a
desider
a
t
a
dell'output
• Fornisci degli esempi
• Chiedi
a
l modello di rispondere utilizz
a
ndo un testo di riferimento
Summ
a
rize the text delimited by triple quotes
with
a
h
a
iku. """insert text here"""
How do I
a
dd numbers in Excel?
How do I
a
dd up
a
row of doll
a
r
a
mounts in
Excel? I w
a
nt to do this
a
utom
a
tic
a
lly for
a
whole sheet of rows with
a
ll the tot
a
ls ending up
on the right in
a
column c
a
lled "Tot
a
l".
You
a
re
a
L
a
r
a
vel tests expert, ple
a
se write
a
test for this cl
a
ss...
Use the following step-by-step instructions to respond to
user inputs.
Step 1 - The user will provide you with text in triple quotes...
Step 2 - Tr
a
nsl
a
te the summ
a
ry from Step 1 into Sp
a
nish...
15. Tempi di risposta delle API
V
a
ri
a
bili
a
second
a
del modello, lunghezz
a
del prompt
e disponibilit
à
server l
a
to OpenAI
• GPT-3.5 più veloce di GPT-4
• I tempi v
a
nno d
a
1
a
20 secondi
• Ci possono essere dei timeout
22. Limiti
Richieste a GPT
• Non si
a
mo sicuri dell
a
correttezz
a
delle risposte
• Non esiste un modo per c
a
pire o cit
a
re le fonti utilizz
a
te nelle risposte
• I d
a
ti che possi
a
mo p
a
ss
a
re
a
GPT sono limit
a
ti:
Modello Limite token P
a
gine di un libro
gpt-3.5-turbo 4 097 9
gpt-3.5-turbo-16k 16 385 38
gpt-4 8 192 19
gpt-4-32k 32 768 77
24. Come funziona
Embedding
1. Dividi
a
mo il contenuto in sezioni o chunks (es. sotto c
a
pitoli di un libro)
2. Converti
a
mo ogni sezione con il modello di embedding in vettori
3. S
a
lvi
a
mo il contenuto dell
a
sezione e il vettore in d
a
t
a
b
a
se
4. Otteni
a
mo un
a
richiest
a
d
a
p
a
rte dell'utente
5. C
a
lcoli
a
mo l'embedding dell
a
richiest
a
6. Confronti
a
mo il vettore dell
a
richiest
a
con quelli del nostro d
a
t
a
b
a
se (
a
lg. cosine simil
a
rity)
7. P
a
ssi
a
mo il contenuto delle N sezioni più simil
a
ri
a
GPT insieme
a
ll
a
richiest
a
8. Otteni
a
mo l
a
rispost
a
d
a
GPT
27. Limiti
Richieste a GPT
• Non si
a
mo sempre certi del form
a
to o del tipo di risposte che ci
fornisce GPT
• Le inform
a
zioni imm
a
g
a
zzin
a
te nei modelli ris
a
lgono
a
Settembre 2021
34. Esempio: utilizzo del modello trainato
Fine Tuning
The GrUSP te
a
m,
a
group of young
a
nd bold boys/girls
Wh
a
t's l
a
r
a
veld
a
y?
The only d
a
y of the ye
a
r when you c
a
n put bot
a
nd hum
a
n in the s
a
me room
35. Caratteristiche
Fine Tuning
• Risult
a
ti di qu
a
lit
à
superiore
• Utilizzo di meno token nel prompt (in qu
a
nto il modello s
a
r
à
gi
à
a
llen
a
to sui nostri esempi)
• Richieste con l
a
tenz
a
inferiore
36. Casi d'uso
Fine Tuning
• Impost
a
zione dello stile, del tono, del form
a
to o di
a
ltri
a
spetti qu
a
lit
a
tivi
• Correggere gli errori nel seguire istruzioni complesse
• Gestire molti c
a
si limite in modi speci
f
ici
• Eseguire un
a
nuov
a
a
bilit
à
o
a
ttivit
à
di
ff
icile d
a
richiedere in un prompt
37. Avvertenze
Fine Tuning
• È f
a
ticos
a
e lent
a
d
a
re
a
lizz
a
re
• Molte volte si può r
a
ggiungere un risult
a
to p
a
r
a
gon
a
bile miglior
a
ndo il prompt
• Agendo sul prompt si h
a
un feedb
a
ck più cost
a
nte sui risult
a
ti
• Cost
a
8 volte l
a
completion
38. Limiti
Richieste a GPT
M
a
nc
a
nz
a
di conoscenz
a
del presente...
• Che tempo f
a
a
Venezi
a
?
• Mi f
a
i un ri
a
ssunto di questo sito https://www.l
a
r
a
veld
a
y.it?
• H
a
vinto il Mil
a
n nell'ultim
a
p
a
rtit
a
?
Non posso rispondere
a
quest
a
dom
a
nd
a
in modo
a
ccur
a
to poiché ....
39. Come funziona?
Function Call
1. Richiest
a
di ch
a
t completion p
a
ss
a
ndo
a
nche le de
f
inizioni delle funzioni che rendi
a
mo
disponibili
a
GPT
2. Il modello potrebbe scegliere di chi
a
m
a
re un
a
funzione rispondendo con un JSON form
a
tt
a
to
con tutti i p
a
r
a
metri
3. L
a
to
a
pplic
a
tivo richi
a
mi
a
mo l
a
nostr
a
funzione con i p
a
r
a
metri p
a
ss
a
ti d
a
GPT
4. Rif
a
cci
a
mo l
a
richiest
a
a
ggiungendo
a
nche l
a
rispost
a
dell
a
funzione
5. Otteni
a
mo l
a
rispost
a
d
a
GPT
43. Cosa possiamo fare?
Function Call
• Recuper
a
re d
a
ti d
a
internet (scr
a
ping) o d
a
API esterne
• Ottenere inform
a
zioni d
a
ll
a
nostr
a
b
a
se d
a
ti
• Eseguire
a
zioni esterne (invio noti
f
iche,
a
cquisti, cre
a
re post,...)
• Eseguire funzioni custom
• Cre
a
re un
a
ssistente virtu
a
le
44. Avvertenze
Function Call
• Le p
a
rti testu
a
li destin
a
te
a
ll
a
dichi
a
r
a
zione delle functions vengono conteggi
a
te
come tokens
• Chiedete sempre conferm
a
a
ll'utente prim
a
di l
a
nci
a
re
a
zioni import
a
nti in m
a
nier
a
a
utom
a
tic
a
45. Esempi di utilizzo in progetti reali
• Gener
a
zione di contenuti
• Ri
a
ssunti di contenuti
• Sentiment An
a
lysis
• Miglior
a
re esperienz
a
utente richi
a
m
a
ndo funzion
a
lit
à
d
a
l testo
• Spieg
a
zione di codice
• Cre
a
zione di codice
• Richieste di inform
a
zioni su un contenuto
• Molto
a
ltro
Cosa possiamo farci con chatGPT?
46. What The Di
f
Esempi di utilizzo in progetti reali
• Wh
a
t The Di
ff
scrive
a
utom
a
tic
a
mente le descrizioni delle pull request, invi
a
noti
f
iche di riepilogo per tenere
a
ggiorn
a
te le p
a
rti interess
a
te non tecniche
e ti
a
iut
a
a
eseguire il ref
a
ctoring di problemi minori dur
a
nte l
a
revisione.
47. ChatGPT Plugin with Laravel
Esempi di utilizzo in progetti reali
• Esempio di come cre
a
re un plugin per l'interf
a
cci
a
di Ch
a
tGPT di OpenAI
che ritorn
a
l'html di un
a
p
a
gin
a
web
48. smousss.com
Esempi di utilizzo in progetti reali
Smousss, un
a
ssistente b
a
s
a
to sull'IA per gli svilupp
a
tori L
a
r
a
vel.
• Rendi tr
a
ducibili i tuoi progetti L
a
r
a
vel
• Gener
a
Model f
a
ctories m
a
nc
a
nti
• Gener
a
p
a
nnelli di
a
mministr
a
zione di L
a
r
a
vel Nov
a
• Gener
a
migr
a
zioni m
a
nc
a
nti
• Migr
a
re d
a
PHPUnit
a
Pest 2
49. Fix your Laravel exceptions with AI
Esempi di utilizzo in progetti reali
• Aggiungere
a
ll
a
p
a
gin
a
di errore di ignition un
a
spieg
a
zione
dell'errore gener
a
t
a
d
a
GPT b
a
s
a
t
a
sullo st
a
cktr
a
ce di errore
50. ChatGPT Mock API Generator for Laravel
Esempi di utilizzo in progetti reali
• P
a
cchetto L
a
r
a
vel che permette di gener
a
re un mock per API
utilizz
a
ndo dei prompt Ch
a
tGPT
51. Saying goodbye to WIP commit messages
Esempi di utilizzo in progetti reali
• Utilizzo di GPT per compil
a
re l
a
descrizione del commit
a
p
a
rtire
d
a
ll'output di "git di
ff
"
52. Rischi nell'integrazione dell'IA
• Non si è m
a
i certi dell
a
correttezz
a
dell
a
rispost
a
ottenut
a
• Allucin
a
zioni
• Bi
a
s
• D
a
t
a
Priv
a
cy
• Security (Prompt Injection, J
a
ilbre
a
king, Session Hij
a
cking)
53. Gioco Gandalf
Rischi nell'integrazione dell'IA
• https://g
a
nd
a
lf.l
a
ker
a
.
a
i
• Gioco inter
a
ttivo in cui bisogn
a
cerc
a
re di scoprire l
a
p
a
ssword custodit
a
d
a
G
a
nd
a
lf tr
a
mite un prompt con livelli increment
a
li di di
ff
icolt
à
54. Il nostro futuro con l'IA
• Lo sviluppo e miglior
a
mento dell'IA
a
umenter
à
sempre più velocemente...
Ultim
a
notizi
a
del 6 Novembre... OpenAI present
a
in bet
a
Assist
a
nts API e GPT-4-TURBO
• D
a
t
a
set
a
ggiorn
a
to
a
d Aprile 2023
• Contesto 128K token
• Costi ridotti per tutte le nuove versioni dei modelli
• Function c
a
ll multiple
• Possibilit
à
di ricevere e c
a
pire imm
a
gini (Vision)
• JSON mode
55. Il nostro futuro con l'IA
• IA s
a
r
à
d
a
ppertutto
• Ogni svilupp
a
tore dovr
à
imp
a
r
a
re
a
d integr
a
rl
a
e utilizz
a
rl
a
• I modelli LLM ottimizz
a
ti sul codice sostituir
a
nno molti junior developer
• LLM sostituir
a
nno molte API
• Ch
a
tbot o
a
ssistenti virtu
a
li sostituir
a
nno molte UI
56. Tutto questo è st
a
to studi
a
to e speriment
a
to giorno dopo giorno costruendo