Små språkmodeller slår jättarna
Baserad på forskning av Kilian Kier, Alessandro Giagnorio, Omar AbedelKader, Oleksandr Zaitsev, Robert Peharz
De flesta utvecklare litar på stora språkmodeller för att få hjälp med att slutföra sin kod, men denna teknik tar i stort sett inte hänsyn till programmeringsspråk med mindre community. Om du kodar i Pharo, ett språk inspirerat av Smalltalk, är du hänvisad till primitiva förslag som består av en enda token, medan mainstream-språk njuter av sofistikerat AI-stöd. Denna klyfta lämnar hela utvecklargrupper bakom sig, kämpande med verktyg som inte förstår nyanserna i deras föredragna syntax.
Forskare har nu visat hur man kan överbrygga denna klyfta genom att lära in LLM:er att hantera språk med få resurser. De har byggt en slut-i-slut-pipeline som samlar in Pharo-specifik data, varefter de fortsätter med förträning och finjustering av öppna kodmodeller. För att mäta framgången skapade de nya benchmark-tester för att undersöka om modellerna kan lära sig Pharo-syntax och korrekt slutföra kodsnuttar från verkliga GitHub-repositorier. Denna metodik går utöver generisk träning och fokuserar specifikt på de unika kraven i en niche-programmeringsmiljö.
Resultaten utmanar antagandet att endast enorma modeller kan ge högkvalitativt stöd. De specialiserade Pharo-modellerna överträffade sina ursprungliga basversioner avsevärt och överträffade till och med noggrannheten hos betydligt större allmänna kod-LLM:er. Avgörande nog är dessa optimerade modeller små nog att köras i realtid inom ett integrerat utvecklingsmiljö. Detta bevisar att målinriktad finjustering kan leverera kraftfullt, omedelbart kodstöd utan att kräva enorma beräkningsresurser.
Studien bekräftar att det inte bara är genomförbart, utan också mycket effektivt, att ta med starka LLM-baserade kodkompletteringar till språk med få resurser. Genom att fokusera på specifik data och målinriktad träning kan utvecklare njuta av AI-stöd som mäts med mainstream-verktygen. Detta genombrott erbjuder en tydlig väg framåt för att utöka intelligent kodstöd till mångsidiga programmeringscommunity som har förbisetts hittills.