stolovi lijeve strane
2 COCOGEN: Predstavljanje Commonsense struktura kodom i 2.1 Pretvaranje (T, G) u Python kod
2.2 Nekoliko promptinga za generiranje G
3 Procjena i 3.1 Eksperimentalna postavka
3.2 Generacija scenarija: Proscript
3.3 Slijedi stanje entiteta: PROPARA
3.4 Generacija grafika argumenta: EXPLAGRAPHS
6 Zaključak, priznanja, ograničenja i reference
Procjenjuje se veličina nekoliko modela
G Dizajn Python klase za strukturirani zadatak
2 COCOGEN: Predstavljanje Commonsense struktura kodom
Koncentriramo se na zadatke strukturirane generacije općeg razuma. Svaki primjer obuke za takve zadatke nalazi se u obliku (T, G), gdje je T uvodni tekst, a G je struktura koja se generira (obično graf). Ključna ideja COCOGEN-a je transformacija izlaznog grafika G u semantički ekvivalentni program Gc napisan u programskom jeziku opće namjene. U ovom smo radu odabrali Python zbog njegove popularnosti u podacima o obuci suvremenih CodeLLM-a (Xu et al., 2022), ali naš je pristup agnostičan prema programskom jeziku. Kodični transformirani grafiti u svom su formatu slični podacima iz predtreninga Code-MLL-a i tako služe kao lakše generalizirati obuke ili nekoliko primjeraka
Koristimo zadatak stvaranja skripta (PROSCRIPT, Slika 1) kao primjer za motiviranje naše metode: stvaranje skripta ima za cilj stvaranje skripta (G) kako bi se postigao određeni cilj visoke razine (T).
2.1 Pretvaranje (T, G) u Python kod
Opći postupak uključuje dodavanje ulaznog teksta T na početku koda kao atributa klase ili opisnog komentara i kodiranje strukture G koristeći standardne konstrukte za predstavljanje strukture u kodu (npr. hashmaps, atributi objekta) ili funkcije poziva.
Na primjer, za zadatak stvaranja skripta, pretvaramo par (T, G) u klasu Tree (slika 1b). Cilj T se dodaje kao atribut klase (cilj), a skripto G se dodaje tako da se pojedinačno popisuju čvorovi i rubovi. Najprije instantiziramo popis čvorova kao objekte klase Node. Zatim se rubovi dodaju kao atribut djeca za svaki čvor (slika 1b). Na primjer, instantiziramo čvor "Izvaditi nekoliko ploča" kao take_out_several_plates = Node(), a zatim ga dodamo kao dijete čvorova take_pies_out_to_cool.
Iako postoji nekoliko načina za predstavljanje primjera obuke kao klase Pythona, empirički smo otkrili da je ovaj relativno jednostavan format najučinkovitiji, posebno s većim modelima.
2.2 Nekoliko promptinga za generiranje G
U našim eksperimentima, koristili smo CODEX (Chen et al., 2021a) i otkrili da gotovo uvijek generira sintaktički valjan Python. Tako se generirani kod može lako pretvoriti natrag u grafikon i ocijeniti pomoću standardne, izvorne, metrike skupova podataka.
Ovaj dokument je dostupan na arhivu pod licencom CC BY 4.0 DEED.
SvijetOvaj papir jeDostupno u ArhivuPod licencom CC BY 4.0 DEED.
Autori :
Svijet(1) Aman Madaan, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]);
Svijet(2) Shuyan Zhou, Institut za jezične tehnologije, Carnegie Mellon University, SAD ([email protected]);
Svijet(3) Uri Alon, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]);
Svijet(4) Yiming Yang, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]);
Svijet(5) Graham Neubig, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]).
SvijetAuthors:
(1) Aman Madaan, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]);
(2) Shuyan Zhou, Institut za jezične tehnologije, Carnegie Mellon University, SAD ([email protected]);
(3) Uri Alon, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]);
(4) Yiming Yang, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]);
(5) Graham Neubig, Institut za jezične tehnologije, Sveučilište Carnegie Mellon, SAD ([email protected]).