Kæmper du med AI eller full-stack-udvikling? Vores eksperter er her for at vejlede dig: skræddersyet rådgivning, teknisk integration og meget mere. Kontakt os på [email protected].

En instruktørversion af GPT-J ved hjælp af Stanford Alpacas datasæt

I NLP Cloud ønskede vi at se, om GPT-J kunne finjusteres som en instruktionsmodel for at forstå menneskelige instruktioner i naturligt sprog korrekt uden brug af few-shot learning. Andre forsøg har givet interessante resultater i open source-fællesskabet, såsom Flan-T5, BloomZ eller Stanford Alpaca, så vi ønskede at gøre det samme på GPT-J ved hjælp af Alpacas datasæt. Resultaterne er meget gode!

Stanford Alpaca

Læring med få skud VS instruktioner i naturligt sprog

Generative AI-modeller er som standard ikke gode til at forstå menneskelige anmodninger.

For at få disse tekstgenereringsmodeller til at forstå det, du ønsker, er den bedste løsning at bruge indlæring af få skud. Vi har lavet en særlig vejledning om few-shot learning du kan finde den her. GPT-J er et godt eksempel på en meget dygtig model, der kun fungerer korrekt ved hjælp af indlæring af få skud.

Selv om det normalt ikke tager alt for lang tid at opbygge disse eksempler, er det stadig meget forvirrende for nybegyndere, der ønsker at bruge disse AI-modeller korrekt. Det er meget nemmere at spørge om ting på en naturlig måde, som man ville gøre det med et menneske.

Lad os f.eks. sige, at du vil rette stavefejl med GPT-J. Her er et eksempel på en prompt, som du skal bruge:

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 det ikke kompliceret, men heller ikke ligetil. Hvis man finjusterer GPT-J korrekt, kan det blive til en "instruktionsmodel", hvilket betyder, at man nu kan stille følgende spørgsmål:

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

Og det ville give følgende:

I do not want to go.

Meget bedre, ikke sandt? Hvordan kan vi opnå dette?

Stanford Alpaca

Stanford Alpaca er blevet udgivet for et par dage siden. Der er tale om en finjusteret version af Llama-modellen, der er udviklet af Facebook. Se mere om dette projekt her.

Det lykkedes Stanford Alpaca-holdet at finde frem til en state-of-the-art instruktionsmodel ved at finjustere Llama på et forholdsvis lille datasæt (52.000 eksempler) bestående af menneskelige instruktioner. Det interessante er, at de genererede dette datasæt programmatisk ved hjælp af en større sprogmodel (GPT-3). Du kan downloade datasættet her.

I NLP Cloud forsøgte vi at finjustere GPT-J ved hjælp af dette datasæt, og vi fik overraskende gode resultater!

Instruere GPT-J

Den nye Instruct GPT-J-model, som vi har lavet, er nu tilgængelig på Hugging Face Hub, så du nemt kan bruge den: Klik her for at se modellen.

Sådan kan du bruge modellen ved hjælp af 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 nogle opfordringer, som 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

Bemærk, at du på grund af den måde, hvorpå denne model blev finjusteret, altid skal bruge nye linjer i slutningen af dine instruktioner.

Krav til hardware

Denne model er en fp16-version af vores finjusterede model, som fungerer meget godt på en GPU med 16 GB VRAM som f.eks. en NVIDIA Tesla T4.

Vi bemærkede ikke nogen forskel mellem fp32- og fp16-versionerne med hensyn til kvalitet.

Konklusion

GPT-J var allerede en meget god model, og den er nu endnu bedre, når den anvendes som instruktionsmodel.

Enhver kan nu forvandle sin AI generative model til en instruktionsmodel takket være denne teknik!

Hvis du har spørgsmål eller kommentarer til ovenstående, så tøv ikke med at kontakte os!.

François
Dataforsker hos NLP Cloud