Blog

AI kodlash benchmarklarini qanday o‘qish va qog‘ozdagi g‘olibni tanlashdan qanday qochish kerak

Markdown

HumanEval va SWE-bench nimani o‘lchashi, shuningdek AI kodlash reytinglarini ko‘rib chiqishda agent qobig‘i, shartlar, vazifalarning yangiligi, natijalar o‘zgaruvchanligi va xarajatni qanday hisobga olish haqida.

Maqolani to‘liq o‘qish

Qisqasi: “vazifalarning 76 foizini yechadi” degan raqamning o‘zi deyarli hech narsani anglatmaydi. Muhimi, bu natijani qaysi vazifalar to‘plami bergani, qaysi model va agent qobig‘i birgalikda hisoblangani, vazifalar yangi yoki eski ekani va bu qancha xarajat qilgani. Bu shartlarsiz foiz reklama banneri uchun yaxshi, ammo vosita tanlash uchun yaramaydi.

Keyin ikki asosiy kodlash benchmarki nimani o‘lchashini, jadvallarda qanday tuzoq yashiringanini va istalgan reytingga tayanishdan oldin uni bir daqiqada qanday tekshirishni sodda qilib tushuntiraman. Quyida tarixiy benchmark ta’riflari ko‘riladi. Jonli juft reyting snapshot’i berilmagan; joriy ball yoki narx taqqoslashiga alohida havolali jadval, sana va konfiguratsiya kerak.

Modellar bilan ishlash haqida ko‘proq ma’lumotni Ailoot hujjatlaridan o‘qing.

Benchmark foizi aslida nimani ko‘rsatadi?

Asosiy xulosa

Benchmark foizi — muayyan vosita muayyan sharoitlarda ishlaydigan natija bilan bajargan, aniq bir to‘plamdagi vazifalar ulushi. Vazifalar avtomatik testlar bilan tekshiriladi: kod testdan o‘tadi yoki o‘tmaydi; baholash xolis, “qisman” degan narsa yo‘q. Ammo vazifalar to‘plami doimo tor va oldindan ma’lum bo‘ladi, o‘lchash shartlari esa hamma uchun har xil. Shuning uchun bu raqam “Bu vosita shu tarzda ushbu vazifalardan nechtasini yechdi?” degan savolga javob beradi. “U mening ishimni bajara oladimi?” degan savolga esa javob bermaydi.

Benchmark oddiy ishlaydi. Dasturlash vazifalarining tayyor ro‘yxati bo‘ladi. Vosita har bir vazifani oladi, kodni qaytaradi va tizim yechim ishlashini tekshirish uchun avtomatik testlarni ishga tushiradi. Testlardan o‘tgan vazifalar ulushi jadvalda ko‘rsatilgan foizdir.

Bu yondashuvning kuchli tomoni — baholash xolis. Test yo yashil, yo qizil; hech kim “ko‘z chamasi” bilan baho bermaydi. Shu jihatdan benchmarklar har qanday sharh yoki tavsiyadan xolisroq.

Zaif tomoni ham aynan shu. Vazifalar to‘plami cheklangan va oldindan hammaga, jumladan modellarni o‘qitayotganlarga ham ma’lum. Har bir o‘lchovning o‘z shartlari bor. To‘plamdagi vazifalar esa deyarli aniq siz qiladigan ishlarga o‘xshamaydi. Quyida muhokama qiladigan barcha tuzoqlar shundan kelib chiqadi. Foiz vositaning boshqa birovning yopiq vazifalar ro‘yxatidagi xatti-harakatini tasvirlaydi va uni loyihangizga bevosita tatbiq qilib bo‘lmaydi.

HumanEval nimani o‘lchaydi va nega endi unga qarab tanlab bo‘lmaydi?

Asosiy xulosa

HumanEval — Python tilidagi 164 ta kichik vazifadan iborat eski to‘plam: modellarga funksiya tavsifi beriladi, ular kod yozadi, avtomatik testlar esa vazifani tekshiradi. 2021-yilda chiqarilganida, ilk Codex bir urinishda vazifalarning 28.8 foizini yechgan. Bugun kuchli modellar uning deyarli barchasini bajara oladi, shu sabab u endi ularni bir-biridan ajrata olmaydi. Bundan tashqari, vazifalar o‘yinchoq misollar: tavsifdan bitta funksiya yozish katta, amaldagi loyiha ustida ishlashdan juda yiroq. 2026-yilda HumanEval’da yuqori ball olish deyarli hech narsani anglatmaydi.

HumanEval OpenAI’da yaratilgan va 2021-yilda Codex modeli bilan birga chiqarilgan. U Python tilidagi 164 ta kichik vazifani o‘z ichiga oladi: modellarga funksiya matnli tavsifi beriladi, ular uning tanasini yozadi, so‘ng avtomatik testlar to‘plami uning to‘g‘ri ishlashini tekshiradi.

O‘sha paytda u vositalarni yaxshi farqlardi. Mualliflar o‘z maqolalarida quyidagi raqamni keltiradi: ilk Codex bir urinishda vazifalarning 28.8 foizini yechgan, oddiy GPT-3 esa birortasini ham yechmagan.

HumanEval’da modelimiz masalalarning 28.8 foizini yechadi, GPT-3 esa 0 foizini, GPT-J esa 11.4 foizini yechadi.

— OpenAI, “Kod asosida o‘qitilgan katta til modellarini baholash” maqolasi

O‘shandan beri modellar rivojlandi va bugun kuchlilari HumanEval’ning deyarli barchasini bajaradi. Hamma 100 foizga yaqin ball olganda, jadval endi hech narsani farqlamaydi: vositalar orasidagi tafovutlar ko‘rinmay qoladi. Bu benchmarkning to‘yinish holati deyiladi va HumanEval anchadan beri shu holatda.

Ikkinchi kamchiligi jiddiyroq. Vazifalar juda kichik: tavsifdan bitta funksiya yozish. Haqiqiy ishingiz esa boshqacha — tarixi bor katta loyiha bilan ishlash, birov yozgan kodni tushunish, xatoni topish va yonidagi kodni buzib qo‘ymaslik kerak. “Noldan funksiya yozish” bilan “amaldagi loyihadagi xatoni tuzatish” o‘rtasida katta jarlik bor. Demak, bugun HumanEval’dagi yuqori ball endi vosita tanlash uchun sabab emas; u ko‘proq “asosiy ko‘nikmalar bor” degan belgidir.

SWE-bench nimani o‘lchaydi va u haqiqiy ishga qanday yaqinroq?

Asosiy xulosa

SWE-bench mashhur GitHub loyihalaridagi haqiqiy xatolardan tuzilgan: 12 ta Python repozitoriyasidan olingan 2,294 ta vazifa. Vosita muammo tavsifini oladi, kodni tahrirlaydi va tizim o‘zgarishdan oldin muvaffaqiyatsiz bo‘lgan, tuzatishdan keyin esa o‘tishi kerak bo‘lgan testlarni ishga tushiradi. Bu HumanEval’dan ko‘ra haqiqiy ishga ancha yaqin, shu bois jiddiy vositalarni taqqoslashda ishlatiladi. Uning qiyinligi tarixidan ayon: ilk sodda yondashuv vazifalarning ikki foizidan ham kamini yechgan.

SWE-bench tubdan boshqacha va shu sababli qiziqroq. U mashhur GitHub loyihalaridagi haqiqiy issue’lar va pull request’lar asosida tuzilgan. Mualliflarning aytishicha, u 12 ta yirik Python repozitoriyasidan olingan 2,294 ta vazifani o‘z ichiga oladi va 2023-yil oktabrida chiqarilgan.

Baholash mantiqi xolis. Ular haqiqiy xato bo‘lgan loyiha holati va o‘sha paytda muvaffaqiyatsiz bo‘lgan testlar to‘plamini oladi. Vosita muammo tavsifini oladi va kodni tahrirlaydi. Keyin o‘sha testlar qayta ishga tushiriladi: yashil bo‘lsa, vazifa rostdan ham yechilgan; bu yerda hech kim og‘zaki va’dalarga ishonmaydi.

Biz 12 ta mashhur Python repozitoriyasidagi pull request va issue’larni ko‘rib chiqib, 2,294 ta vazifa to‘pladik. Har bir vazifa issue bilan bog‘langan va testga aloqador kamida bitta faylni o‘zgartiradigan pull request asosida tuzilgan.

— SWE-bench, rasmiy benchmark sayti

Dastlabki raqamlar bu o‘yinchoq vazifalardan qanchalik qiyin ekanini ko‘rsatadi. SWE-bench’dagi ilk boshlang‘ich yondashuv atigi 1.96 foiz ball olgan, ilk agent esa 12.47 foizga erishgan. Boshqacha aytganda, haqiqiy kodlash ishiga yaqinlashishning o‘zi qiyin bo‘lgan; foizlar keyin o‘sgan, ammo boshlanishi nolga yaqin edi.

Shuning uchun bugun AI kodlash agentlari reytingida katta raqamlarni ko‘rsangiz, ular ko‘pincha SWE-bench yoki uning inson tomonidan tekshirilgan, 500 ta vazifadan iborat SWE-bench Verified to‘plamidan olingan bo‘ladi. Bu o‘rinli benchmark. Ammo unda ham foizni chalg‘ituvchi qiladigan shartlar bor; keyin shu haqda gaplashaman.

Jadvaldagi eng xolis benchmark ham loyihangizda olingan natija degani emas. Natija vosita bilan qanday ishlashingizga bog‘liq, reytingdagi eng yuqori qator esa juda kam narsani belgilaydi. Ishonchli ishlash uchun uyg‘unlik muhim: AI klon, Second Brain va kontekst muhandisligi. Toza kontekst shaxsiy muvaffaqiyat darajangizni jadvaldan model tanlashga qaraganda ancha sezilarli oshiradi.

Nega bir xil model turli foiz ko‘rsatadi?

Asosiy xulosa

Chunki natija faqat modelga bog‘liq emas. Har qanday o‘lchovda kamida uchta omil qatnashadi: modelning o‘zi, uning atrofidagi agent qobig‘i va yoqilgan fikrlash darajasi. Reasoning sozlamasi bir xil model va qobiq uchun boshqa qatorlar berishi mumkin. Harness nomi, tahriri, sozlama va sanali manbasiz bu qatorlar sonli taqqoslashni asoslamaydi. Shuning uchun to‘liq uyg‘unliklarni taqqoslash kerak; model brendining o‘zi ko‘p narsani belgilamaydi.

Benchmarkni o‘qishda eng ko‘p uchraydigan xato shu yerda yashiringan. Odamlar jadvalni modellar reytingi sifatida o‘qiydi: bu model narigisidan ikki foiz aqlliroq. Ammo foizga uchta narsa ta’sir qiladi va model ulardan faqat bittasi.

Birinchisi — modelning o‘zi. Ikkinchisi — uning atrofidagi agent qobig‘i: modelga fayllarni ko‘rish, buyruqlarni ishga tushirish, xatolarni o‘qish va kodni qayta yozish imkonini beradigan dastur. Bir xil model aqlli qobiqda va sodda qobiqda har xil natija ko‘rsatadi, chunki qobiq modelning loyiha bilan qanday ishlashini belgilaydi. Uchinchisi — fikrlash darajasi, ya’ni model har bir qadamni qanchalik chuqur o‘ylab ko‘rishi. U qancha uzoq o‘ylasa, foiz odatda shuncha yuqori, xarajat ham shuncha katta bo‘ladi.

Takrorlanadigan taqqoslash to‘liq setup’ni saqlashi kerak. Quyidagini o‘lchangan reyting emas, hisobot shabloni deb oling:

MaydonA urinishB urinish
Model va aniq versiyaSinalgan versiyaNazoratli taqqoslashda o‘sha versiya
Agent harness va tahrirRepo va commitO‘sha harness va commit
Vazifalar va baholashQism va baholash tahririO‘sha to‘plam va baholash
ReasoningA sozlamaB sozlama
Natija va dalilYechilgan son, maxraj, log, sanaYechilgan son, maxraj, log, sana

Bu nima o‘zgargani va aynan reasoning ajratilganini ko‘rsatadi. Avvalgi havolasiz sonli misol o‘lchangan natija deb olinmaydi.

Qoida shunday: yaxshi reytingda qaysi model, qaysi qobiq va qaysi fikrlash darajasi ishlatilgani doimo ko‘rsatiladi. Jadvalda faqat model nomi va foiz bo‘lib, qobiq ko‘rsatilmagan bo‘lsa, unga ishonish qiyin: aslida nima o‘lchanganini bilmaysiz. “Model va qobiq” uyg‘unligi nimalardan tuzilishi AI kodlash agentlari reytingi haqidagi maqolada batafsil tushuntirilgan.

Bu, shuningdek, eng yuqori ball olgan vosita nega sizda ba’zan qiynalishini ham tushuntiradi. Benchmark modelni birovning sayqallangan qobig‘ida, birovning vazifalarida o‘lchaydi. Sizning qobig‘ingiz, loyihangiz va modelga beradigan kontekstingiz boshqacha. Loyihangizdagi natija kontekstga bog‘liq; jadvaldagi qator esa ikkinchi darajali.

Vazifalar nega “eskiradi” va o‘qitish ma’lumotlariga sizib kirish nima?

Asosiy xulosa

Modellar internetdagi ulkan matn va kod to‘plamlarida o‘qitiladi, mashhur benchmarklar esa ommaga ochiq. Vazifalar va ularning yechimlari o‘qitish ma’lumotlariga kirgan bo‘lsa, model ularni yodlab olgan bo‘lishi va baholash paytida yechish o‘rniga yodlaganini shunchaki qaytarishi mumkin. Bu vazifalarning o‘qitish ma’lumotlariga sizib kirishi deyiladi. To‘plam qanchalik eski va mashhur bo‘lsa, xavf shunchalik yuqori: eski benchmark modelning fikrlash qobiliyatidan ko‘ra xotirasini ko‘rsatishi ehtimoli katta. Yangi va yopiq vazifalar to‘plamlari eski va ochiq to‘plamlardan ishonchliroq.

Mana rasmning o‘zida ko‘rinmaydigan, lekin uni eng ko‘p ishonchsiz qiladigan jihat. Modellar internetdan yig‘ilgan ulkan matn va kod hajmlarida o‘qitiladi. Kodlash benchmarklarining deyarli barchasi esa ommaga ochiq: vazifalar, testlar va namunaviy yechimlar.

Mexanizmi oddiy. Vazifa va uning to‘g‘ri yechimi o‘qitish ma’lumotlariga kirgan bo‘lsa, model ularni yodlab olgan bo‘lishi mumkin. Baholash paytida u vazifani yechishdan ko‘ra, xotirasidan tanish javobni chiqaradi. Bu yechimga o‘xshaydi, lekin shunchaki xotiradir. Bu o‘qitish jarayoniga sizib kirish yoki ma’lumotlarning ifloslanishi deyiladi.

Vazifalar to‘plami qanchalik eski va mashhur bo‘lsa, xavf shunchalik yuqori. HumanEval 2021-yildan beri internetda; u qayta yozilgan, tahlil qilingan va son-sanoqsiz ma’lumotlar to‘plamlariga ko‘p marta kiritilgan. Zamonaviy model uni “ko‘rmagan” deb kutish g‘alati bo‘lardi. Shu sababli vazifalarning yangiligi benchmark sifatining alohida ko‘rsatkichidir. Yaxshi to‘plam muntazam yangilanadi yoki ayrim vazifalarni yopiq saqlaydi, shunda ular oldindan o‘rganib olinmaydi.

Reytingni o‘qiyotganda nima qilish kerak? Vazifalar sanasini va to‘plam yangilanib turish-turmasligini tekshiring. Benchmark so‘nggi oylardagi yangi xatolardan tuzilgan bo‘lsa, unga ko‘proq ishonish mumkin. Agar u besh yil oldingi to‘plam bo‘lsa, undagi yuqori foiz modelning yangi vazifangizni yechish qobiliyatidan ko‘ra yaxshi xotirasi haqida ko‘proq ma’lumot beradi. Bu ta’sir vazifalari ataylab yangi bo‘lgan yangi FrontierCode benchmarki haqidagi maqolada aniq misol bilan ko‘rsatilgan.

Nega bir necha foiz punkt farq ko‘pincha hech narsani anglatmaydi?

Asosiy xulosa

Benchmark natijalarida o‘zgaruvchanlik bor: ayni vosita ayni vazifalarda turli ishga tushirishlarda biroz boshqacha natija beradi, chunki model har safar bir xil javob bermaydi. Shu sababli reytingdagi qo‘shni qatorlar orasidagi bir yoki ikki punkt farq ko‘pincha shovqinda yo‘qoladi va haqiqiy ustunlikni bildirmaydi. Narxni ham alohida tekshiring: o‘xshash foizlar ko‘p baravar farqli xarajatga tushishi mumkin. Narxni faqat ikkala to‘liq setup, muvaffaqiyat ulushi, billing farazlari va xarajat maxraji ko‘rsatilganda solishtiring.

Jadvaldagi eng yuqori o‘rinni chalg‘ituvchi qiladigan yana bir jihat: model har safar bir xil javob bermaydi. Bir xil so‘rov matniga u biroz boshqacha mulohaza yo‘lini tanlashi mumkin. Shu bois bitta vazifalar to‘plamida bir vositani bir necha marta ishga tushirsangiz, foiz ishga tushirishdan ishga tushirishga ozgina o‘zgaradi; bu tebranish natijalar o‘zgaruvchanligi deyiladi.

Amaliy xulosa oddiy. Reytingdagi ikki qator bir yoki ikki foizga farq qilsa, bu shunchaki shovqin bo‘lishi mumkin. “Ikki foiz yuqoriroq” vositani quvish befoyda: keyingi ishga tushirishda ularning o‘rni osongina almashishi mumkin. Farq katta vazifalar to‘plamida sezilarli bo‘lib, izchil saqlansa, uni jiddiy deb hisoblash mumkin; bir necha punkt bu mezonga javob bermaydi.

Oxirgi jihat, deyarli doimo foizning o‘zidan muhimroq bo‘ladigani — narx. O‘xshash natijalar juda har xil xarajatga tushishi mumkin. Narx taqqoslashiga ikkala model+harness konfiguratsiyasi va barcha sinovlar, jumladan muvaffaqiyatsizlar jami sarfi kerak. Urinish narxiga barcha vazifalar, yechim narxiga yechilganlari soniga bo‘ling va qaysi birini olganingizni yozing. Maqolada manbali juft narx o‘lchovi berilmagan. Shuning uchun reytingdagi qatorni doimo narxi bilan birga o‘qing, chunki foizning o‘zi kam narsani anglatadi. Yechilgan bitta vazifa narxi haqidagi maqola vositalarni xarajat bo‘yicha xolis taqqoslashni tushuntiradi.

Istalgan benchmark jadvalini bir daqiqada qanday o‘qish mumkin?

Asosiy xulosa

Reytingga tayanishdan oldin unga yetti savol bering: Qaysi vazifalar to‘plami? Vazifalar yangimi yoki eskimi? Qaysi model? Qaysi agent qobig‘i? Qaysi fikrlash darajasi? Har bir vazifa qancha turadi? Natijalar o‘zgaruvchanligi qanchalik katta? Jadval bu savollarning kamida yarmiga javob bermasa, unga ishonib bo‘lmaydi: u ehtimol reklama. To‘plamdagi vazifalar haqiqiy ishingizga o‘xshash-o‘xshamasligini alohida tekshiring, chunki birovning vazifalarida olingan xolis foiz ham loyihangizga ko‘chmaydi.

Hammasini qisqa ro‘yxatga jamlayman. Istalgan reyting jadvalini ochib, quyidagi yetti bandni ketma-ket tekshiring.

  1. Qaysi vazifalar to‘plami? Bugun HumanEval zaif; SWE-bench esa haqiqiy ishga yaqinroq. To‘plam nomi umuman ko‘rsatilmagan bo‘lsa, o‘qishni davom ettirish shart emas.
  2. Vazifalar yangimi yoki eskimi? Yangi yoki qisman yopiq to‘plam model o‘rganib olgan bo‘lishi mumkin bo‘lgan eski ochiq to‘plamdan ishonchliroq.
  3. Qaysi model o‘lchangan? Mavhum “AI” yoki model oilasi nomi emas, aniq nomi va versiyasi.
  4. Qaysi agent qobig‘i? Foiz “model va qobiq” uyg‘unligiga tegishli. Qobiq ko‘rsatilmagan bo‘lsa, nima o‘lchanganini bilmaysiz.
  5. Qaysi fikrlash darajasi? Bitta model turli darajalarda turli foiz va xarajat beradi.
  6. Bitta vazifa qancha turadi? O‘xshash natijalarning narxi bir necha baravar farq qilishi mumkin. Foizni xarajat bilan birga ko‘ring.
  7. Natijalar o‘zgaruvchanligi qanday? Qatorlar orasidagi bir yoki ikki punkt farq ko‘pincha shunchaki shovqindir.

Sakkizinchi savol ham bor va u siz haqingizda: To‘plamdagi vazifalar sizning ishingizga o‘xshaydimi? Python vazifalari benchmarki boshqa vositalar to‘plamida sayt yoki bot qurayotgan odamga kam narsa aytadi. Birovning vazifalaridagi xolis raqam ham loyihangizda natija bo‘lishini kafolatlamaydi. Tekshirishning yagona ishonchli yo‘li — odatiy vazifalaringizdan bir nechtasini vositada bajarib, natijani o‘zingiz ko‘rish. AI yaratgan kodni qanday tekshirish haqidagi maqolada dasturlashni bilmasangiz kod ishlashini qanday aniqlashni tushuntiradi.

Xo‘sh, oxir-oqibat nimaga qarash kerak?

Asosiy xulosa

Reytingdagi eng yuqori qatorning o‘ziga emas, uning ostidagi shartlarga qarang: vazifalar to‘plami va uning yangiligi, “model va qobiq” uyg‘unligi, fikrlash darajasi, har bir vazifa narxi va natijalar o‘zgaruvchanligi. Bularsiz yalang‘och raqam hech narsani isbotlamaydi. Shuni ham yodda tutingki, birovning vazifalaridagi xolis foiz ham loyihangizga ko‘chmaydi: yakuniy so‘z doimo o‘z haqiqiy vazifalaringiz bilan sinab ko‘rishga tegishli, ulardagi natijangiz esa reytingdagi o‘rningizdan ko‘ra vosita bilan qanday ishlashingizga ko‘proq bog‘liq.

Butun maqolaning asosiy fikri qisqa: reytingdagi o‘rin vositaga diqqat bilanroq qarash uchun sabab, ammo qolganini o‘zingiz tekshirishingiz kerak. Katta raqam faqat vosita muayyan yopiq vazifalar ro‘yxatini muayyan sharoitlarda durust bajarganini bildiradi. Foiz bu shartlar siznikiga mos kelish-kelmasligini ko‘rsatmaydi.

Shuning uchun reyting qatori ostidagilarni o‘qing: vazifalar qaysilar, ular qanchalik yangi, qaysi model va qobiq uyg‘unligi ishlatilgan, fikrlash darajasi qanday, xarajati qancha va farq shovqinda yo‘qoladimi. Bu savollarga javob bermaydigan jadval reklama banneriga mos. 2026-yilda qaysi vosita bilan kod yozish sharhi vazifalaringiz uchun avvalo qaysi vositani tanlashni tushuntiradi.

Va benchmarkdan ham muhimroq jihat mana shu. Reytingdagi eng yaxshi vosita ham tartibsiz kontekstda qiynaladi, toza kontekst bilan esa yaxshi ishlaydi. Shaxsiy muvaffaqiyat darajangiz modelga nimalar berishingiz va vazifani qanday ifodalashingizga bog‘liq; jadvaldagi qator ikkinchi darajali. Reyting yaqqol zaif variantlarni chiqarib tashlashga yordam beradi, ammo natijani siz yaratasiz.

Manbalar

Reytingdagi o‘rin zaif variantlarni chiqarib tashlaydi, ammo loyihangizdagi natijalar uslubga bog‘liq: AI klon, Second Brain va kontekst muhandisligi.

Keyingi ishlar uchun — Ailoot.

Batafsil

Ko‘p beriladigan savollar

Ikki benchmark qatorini solishtirishdan oldin nima yoziladi?

Aniq model, harness va tahriri, reasoning sozlamasi, vazifa qismi, baholash usuli, sana va bevosita natija manbasini yozing. Bularsiz ball farqini bitta o‘zgarishdan kelib chiqdi deb bo‘lmaydi.

Urinish narxi va yechilgan vazifa narxi bir xilmi?

Yo‘q. Jami baholash sarfini barcha urinishlarga bo‘lsangiz urinish narxi, yechilgan vazifalarga bo‘lsangiz yechim narxi chiqadi. Muvaffaqiyatsiz sarfni qo‘shing va narxni solishtirishdan oldin maxrajni belgilang.

Barcha maqolalar