Proqram təminatı niyə hələ də yavaşdır? Den Lunun arqumenti
Mühəndis Den Lu bildirir ki, əvvəllər nadir bacarıqlı mütəxəssislərin işi hesab olunan performans optimizasiyası artıq bir neçə cümlə yaza bilən hər kəs üçün əlçatandır.
İllər boyu yavaş proqram təminatı ekspertiza iqtisadiyyatı ilə izah olunurdu: proqramı sürətli etmək üçün nadir bacarıqlara malik mühəndislər lazım idi və layihələrin çoxu bu işi görmədən buraxılırdı. Mühəndis Den Lu yeni yazısında bu tarazlığın pozulduğunu iddia edir: kodlaşdırma agentləri optimizasiyanın maya dəyərini dəfələrlə aşağı salıb.
Arqument
Yazı, dil modellərinin yaratdığı "şişirdilmiş" kodu tənqid edənlərin hər şey "super-optimallaşdırılmış assembler"lə yenidən yazıldıqda utanacağını iddia edən viral tezislə başlayır. Lu bu qədər irəli getmir: hər şeyi əl ilə assembler yazmağa qayıtmırıq, lakin əvvəllər nadir bacarıqlara malik bir şəxs və ya komanda tələb edən optimizasiyaları indi bir neçə cümlə yaza bilən hər kəs həyata keçirə bilir. Onun təxmininə görə, insan əməyinin xərci "tez-tez 1000, 10 000, hətta 1 000 000 dəfə" azalıb; dollar ifadəsində isə bu, bir vaxtlar Bing-in axtarış indeksinin kompilyatorlarını və JIT-lərini yazan mühəndislə müqayisədə təxminən 1000 dəfədir.
Konkret rəqəmlər: regex və ripgrep
Müəllif bunu FRE regex mühərriki üzərində apardığı təcrübələrlə əsaslandırır. FRE, bir agentin rebar bençmark dəsti üzərində bir ay dövrə ilə işləməsi nəticəsində yaradılmışdı. Həddindən artıq uyğunlaşma o qədər güclü idi ki, optimizasiyaların ümumiləşməsi üçün agentə holdout dəstinin mövcudluğunu demək lazım gəldi. Təcrübələrdən birində ripgrep şablonları arxa plandakı axında yerli koda kompilyasiya edir və kompilyasiya bitəndə həmin yola keçirdi: bir neçə uzun və sadə sorğuda 2–4 dəfə sürətlənmə, yerli yolun tətbiq olunduğu təmsiledici holdout sorğularında isə təxminən 7% qazanc — qısa sorğuların yavaşlaması hesabına.
Bir iş yükünə uyğunlaşdırılmış proqram
Mark Bruker bu tendensiyanı FFTW və demosena fəndlərinə bənzətdi: kod problemin sinfinə deyil, konkret bir problemə uyğunlaşdırılır. Onun proqnozuna görə, "dinamik, iş yükünə xas proqram təminatı" genişlənəcək. pgrust üzərində çalışan Maykl Malis isə əlavə edir: "kod yazmaq heç vaxt çətin hissə olmayıb" fikri yalnız bəzi sahələrdə doğrudur — JIT kompilyatorları nadirdir, çünki onların yazılması əvvəllər sərfəli olmayacaq qədər baha idi; verilənlər bazaları isə tarixən qurulması ən çətin proqramlar sayılırdı. Lu özü SIGIR-də ən yaxşı məqalə mükafatını qazanan Bing-in axtarış indeksi BitFunnel üzərində işləyib; Bing versiyasında bir neçə JIT kompilyatoru var — bu, artıq "bunu həftəsonu edərəm" demək mümkün olan miqyasdır.
Nə dəyişmir
Lu sərhədləri də qeyd edir. Nəticəni dəyişən optimizasiyalar üçün dəyişikliyin sərfəli olub-olmadığını ölçmək lazımdır və müasir ən yaxşı modellər eksperiment dizaynında zəifdir — ona görə qiymətləndirmə çərçivəsini hələ də insan qurmalıdır. Həddindən artıq uyğunlaşma riski də qalır: konkret iş yükünə görə tənzimlənmiş optimizasiya iş yükü dəyişdikdə pozulur. Yalnız "optimallaşdır" deyilən agent isə səhv işlər görəcək və bunları tutmaq lazım gələcək. Buna baxmayaraq, Lunun nəticəsi belədir: məqbul performans artıq ixtisaslaşdırılmış bacarıq deyil — kodlaşdırma agentlərindən ciddi istifadə edən hər kəs üçün ağlabatan gözləntidir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.