En instruerad version av GPT-J med hjälp av Stanford Alpacas datamängd

På NLP Cloud ville vi se om GPT-J kunde finjusteras som en instruktionsmodell för att korrekt förstå mänskliga instruktioner i naturligt språk, utan att använda inlärning med få skott. Andra försök har gett intressanta resultat i öppen källkodssamhället, som Flan-T5, BloomZ eller Stanford Alpaca, så vi ville göra samma sak med GPT-J med hjälp av Alpacas dataset. Resultaten är mycket bra!

Stanford Alpaca

Inlärning med få skott VS instruktioner i naturligt språk

Generativa AI-modeller är inte bra på att förstå mänskliga förfrågningar.

För att få dessa textgenereringsmodeller att förstå vad du vill ha är den bästa lösningen att använda inlärning med några få skott. Vi har gjort en särskild guide om few-shot learning. du kan hitta den här. GPT-J är ett bra exempel på en mycket kapabel modell som endast fungerar korrekt med inlärning med få skott.

Även om det vanligtvis inte tar alltför lång tid att bygga dessa exempel är det fortfarande mycket förvirrande för nykomlingar som vill använda dessa AI-modeller på rätt sätt. Det är mycket enklare att ställa frågor på ett naturligt sätt, som man skulle göra med en människa.

Låt oss till exempel säga att du vill korrigera stavfel med GPT-J. Här är ett exempel på en uppmaning som du måste använda:

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 är detta inte komplicerat men inte heller enkelt. Om du finjusterar GPT-J på rätt sätt kan den förvandlas till en "instruktionsmodell", vilket innebär att du nu kan ställa följande frågor:

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

Och den skulle ge följande svar:

I do not want to go.

Det är mycket bättre, eller hur? Hur kan vi uppnå detta?

Stanford Alpaca

Stanford Alpaca släpptes för några dagar sedan. Detta är en finjusterad version av Llama-modellen, som utvecklats av Facebook. Läs mer om detta projekt här.

I princip lyckades Stanford Alpaca-teamet ta fram en toppmodern instruktionsmodell genom att finjustera Llama på ett ganska litet dataset (52 000 exempel) bestående av mänskliga instruktioner. Det intressanta är att de genererade detta dataset programmatiskt med hjälp av en större språkmodell (GPT-3). Du kan ladda ner datasetet här.

På NLP Cloud försökte vi finjustera GPT-J med hjälp av detta dataset, och vi fick förvånansvärt bra resultat!

Instruera GPT-J

Den nya Instruct GPT-J-modellen som vi skapade finns nu på Hugging Face Hub så att du enkelt kan använda den: Klicka här för att se modellen.

Så här kan du använda modellen med hjälp 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))

Här är några förslag som du kan prova:

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

Observera att på grund av det sätt på vilket denna modell har finjusterats bör du alltid använda nya rader i slutet av dina instruktioner.

Maskinvarukrav

Den här modellen är en fp16-version av vår finjusterade modell, som fungerar mycket bra på en GPU med 16 GB VRAM som en NVIDIA Tesla T4.

Vi märkte ingen skillnad mellan fp32- och fp16-versionerna när det gäller kvaliteten.

Slutsats

GPT-J var redan en mycket bra modell, och den är nu ännu bättre när den används som instruktionsmodell.

Vem som helst kan nu omvandla sin AI-modell till en instruktionsmodell tack vare den här tekniken!

Om du har frågor eller kommentarer om ovanstående, tveka inte att kontakta oss!.

François
Datavetare på NLP Cloud