Sliter du med AI eller fullstack-utvikling? Ekspertene våre er her for å veilede deg: skreddersydde råd, teknisk integrasjon og mer. Ta kontakt på [email protected].

En instruksjonsversjon av GPT-J ved hjelp av Stanford Alpacas datasett

På NLP Cloud ønsket vi å se om GPT-J kunne finjusteres som en instruksjonsmodell for å forstå menneskelige instruksjoner på naturlig språk, uten å bruke få skuddlæring. Andre forsøk har gitt interessante resultater i åpen kildekode-samfunnet, som Flan-T5, BloomZ eller Stanford Alpaca, så vi ønsket å gjøre det samme på GPT-J ved å bruke Alpacas datasett. Resultatene er veldig gode!

Stanford Alpaca

Få-skudd-læring VS instruksjoner på naturlig språk

Generative AI-modeller er som standard ikke gode til å forstå menneskelige forespørsler.

For å få disse tekstgenereringsmodellene til å forstå hva du ønsker, er den beste løsningen å bruke "few-shot learning". Vi har laget en egen veiledning om læring med få skudd. du finner den her. GPT-J er et godt eksempel på en svært kapabel modell som bare fungerer riktig med få-skuddslæring.

Selv om det vanligvis ikke tar for mye tid å bygge disse eksemplene, er det fortsatt veldig forvirrende for nykommere som ønsker å bruke disse AI-modellene riktig. Det er mye lettere å spørre ting naturlig slik du ville gjort med et menneske.

La oss for eksempel si at du vil rette stavefeil med GPT-J. Her er et eksempel på en ledetekst du må bruke:

I love goin to the beach.
Correction: I love going to the beach.
###
Let me hav it!
Correction: Let me have it!
###
It have too many drawbacks.
Correction: It has too many drawbacks.
###
I do not wan to go
Correction:

Som du kan se, er dette ikke komplisert, men heller ikke enkelt. Hvis du finjusterer GPT-J på riktig måte, kan den gjøres om til en "instruere"-modell, noe som betyr at du nå kan spørre om følgende:

Correct spelling and grammar from the following text.
I do not wan to go

Og det ville returnere følgende:

I do not want to go.

Mye bedre, ikke sant? Hvordan kan vi oppnå dette?

Stanford Alpaca

Stanford Alpaca ble lansert for et par dager siden. Dette er en finjustert versjon av Llama-modellen, utviklet av Facebook. Se mer om dette prosjektet her.

I utgangspunktet klarte Stanford Alpaca-teamet å komme opp med en toppmoderne instruksjonsmodell ved å finjustere Llama på et ganske lite datasett (52 000 eksempler) bestående av menneskelige instruksjoner. Det interessante er at de genererte dette datasettet programmatisk ved hjelp av en større språkmodell (GPT-3). Du kan laste ned datasettet her.

På NLP Cloud prøvde vi å finjustere GPT-J ved hjelp av dette datasettet, og vi fikk overraskende gode resultater!

Instruere GPT-J

Den nye Instruct GPT-J-modellen vi opprettet er nå på Hugging Face Hub, slik at du enkelt kan bruke den: Klikk her for å se modellen.

Slik kan du bruke modellen ved hjelp av Hugging Face Transformers:

from transformers import pipeline
import torch

generator = pipeline(model="nlpcloud/instruct-gpt-j-fp16", torch_dtype=torch.float16, device=0)

prompt = "Correct spelling and grammar from the following text.\nI do not wan to go\n"

print(generator(prompt))

Her er noen spørsmål du kan prøve:

Write a short story about space.\n

Generate a C++ program that sorts a list of integers in ascending order.\n

Paraphrase the following text.\nAfter a war lasting 20 years, following the decision taken first by President Trump and then by President Biden to withdraw American troops, Kabul, the capital of Afghanistan, fell within a few hours to the Taliban, without resistance.\n

Summarize the following text.\nFor all its whizz-bang caper-gone-wrong energy, and for all its subsequent emotional troughs, this week’s Succession finale might have been the most important in its entire run. Because, unless I am very much wrong, Succession – a show about people trying to forcefully mount a succession – just had its succession. And now everything has to change. The episode ended with Logan Roy defying his children by selling Waystar Royco to idiosyncratic Swedish tech bro Lukas Matsson. It’s an unexpected twist, like if King Lear contained a weird new beat where Lear hands the British crown to Jack Dorsey for a laugh, but it sets up a bold new future for the show. What will happen in season four? Here are some theories. Season three of Succession picked up seconds after season two ended. It was a smart move, showing the immediate swirl of confusion that followed Kendall Roy’s decision to undo his father, and something similar could happen here. This week’s episode ended with three of the Roy siblings heartbroken and angry at their father’s grand betrayal. Perhaps season four could pick up at that precise moment, and show their efforts to reorganise their rebellion against him. This is something that Succession undoubtedly does very well – for the most part, its greatest moments have been those heart-thumping scenes where Kendall scraps for support to unseat his dad – and Jesse Armstrong has more than enough dramatic clout to centre the entire season around the battle to stop the Matsson deal dead in its tracks.\n

Merk at på grunn av måten denne modellen ble finjustert på, bør du alltid bruke nye linjer på slutten av instruksjonene.

Krav til maskinvare

Denne modellen er en fp16-versjon av vår finjusterte modell, som fungerer veldig bra på en GPU med 16 GB VRAM som en NVIDIA Tesla T4.

Vi la ikke merke til noen forskjell mellom fp32- og fp16-versjonene når det gjelder kvalitet.

Konklusjon

GPT-J var allerede en veldig god modell, og den er nå enda bedre når den brukes som instruksjonsmodell.

Hvem som helst kan nå gjøre sin generative AI-modell om til en instruksjonsmodell takket være denne teknikken!

Hvis du har spørsmål eller kommentarer til det ovennevnte, ikke nøl med å ta kontakt!.

François
Dataforsker hos NLP Cloud