Feedback gerado por compiladores para Modelos de Linguagem de Grande Escala
Compiler generated feedback for Large Language Models
March 18, 2024
Autores: Dejan Grubisic, Chris Cummins, Volker Seeker, Hugh Leather
cs.AI
Resumo
Apresentamos um novo paradigma em otimização de compiladores impulsionado por Modelos de Linguagem de Grande Escala (LLMs) com feedback do compilador para otimizar o tamanho do código em assembly LLVM. O modelo recebe como entrada um LLVM IR não otimizado e produz um IR otimizado, as melhores passagens de otimização e as contagens de instruções tanto do IR não otimizado quanto do otimizado. Em seguida, compilamos a entrada com as passagens de otimização geradas e avaliamos se a contagem de instruções prevista está correta, se o IR gerado é compilável e se corresponde ao código compilado. Fornecemos esse feedback de volta ao LLM e damos a ele outra chance de otimizar o código. Essa abordagem adiciona uma melhoria extra de 0,53% sobre -Oz ao modelo original. Embora a adição de mais informações com feedback pareça intuitiva, técnicas simples de amostragem alcançam um desempenho muito maior quando são fornecidas 10 ou mais amostras.
English
We introduce a novel paradigm in compiler optimization powered by Large
Language Models with compiler feedback to optimize the code size of LLVM
assembly. The model takes unoptimized LLVM IR as input and produces optimized
IR, the best optimization passes, and instruction counts of both unoptimized
and optimized IRs. Then we compile the input with generated optimization passes
and evaluate if the predicted instruction count is correct, generated IR is
compilable, and corresponds to compiled code. We provide this feedback back to
LLM and give it another chance to optimize code. This approach adds an extra
0.53% improvement over -Oz to the original model. Even though, adding more
information with feedback seems intuitive, simple sampling techniques achieve
much higher performance given 10 or more samples.