PAL: Програмно подпомагани езикови модели за надеждна финансова аритметика
След като прекарах известно време с литературата за таблично разсъждение, исках да разбера допълващия подход: вместо да караме LLM да разсъждават върху таблици на естествен език, какво се случва, когато ги оставим да пишат код и да прехвърлят изчисленията изцяло? PAL (Gao et al., 2022, arXiv:2211.10435) е каноничният отговор и той има очевидни последици за всяка система, която трябва надеждно да извършва аритметика върху финансови данни.
Научната публикация
„PAL: Program-Aided Language Models“ (Gao, Madaan, Zhou, Alon, Liu, Yang, Callan, Neubig; ICML 2023) започва от едно просто наблюдение: LLM декомпозират проблемите добре, но изпълняват аритметични действия лошо. Подтикването тип „верига от мисли“ (chain-of-thought) решава първия проблем, но оставя втория непокътнат. Предложеното решение е да се промени това, което LLM генерира като свои „стъпки на разсъждение“ — вместо аритметика на естествен език, той генерира Python код. След това интерпретатор на Python изпълнява този код и връща отговора.
Разделянето на декомпозиция и изпълнение е чисто: LLM се справя с разбирането на проблема и структурата на програмата; интерпретаторът поема всичко числово. Въпрос като „Оливия има 23 долара, купува пет геврека по 3 долара всеки — колко остават?“ се превръща в money_left = 23 - (5 * 3), а не в последователност от текстова аритметика, която моделът може да обърка.