Siz sorğu göndərirsiniz və bir saniyə sonra terminalda cavab yığılmağa başlayır. Bütöv halda birdən peyda olmur, məhz yığılır: parça-parça, sanki kimsə onu elə indi yazır. Bəzən bundan əvvəl ekranda Thinking asılı qalır, cavab xeyli gec gəlir, amma daha ağıllı olur.

Bunların hamısı eyni mexanizmin nəticəsidir. Gəlin böyük dil modelinin necə qurulduğunu araşdıraq: o, mətninizlə nə edir, onun uzunluğunu nə ilə ölçür, bilikləri haradan gəlir və düşündüyü o saniyələrdə nə baş verir. Enter-ə basmaq üçün bu faktların heç biri lazım deyil. Amma birlikdə onlar cavabdan nə gözlədiyinizi xeyli dəyişir.

Komiks: insan hasarı rəngləyir və robota bunun necə edildiyini göstərir, robot isə hər taxtanı rəngləmək əvəzinə fırça izlərinin naxışını təkrarlayır
Bütün bunlar nə dərəcədə sadələşdirilib

Material qəsdən sadələşdirilib. Belə o, tez oxunur və ekranınızda nə baş verdiyi sualına cavab verir. Burada dəqiq təhlil yoxdur və ola da bilməz - təkcə transformer bloku ayrıca bir işin mövzusudur.

Dil modeli davamı qiymətləndirir

Mövzunun özündən başlayaq. Böyük dil modeli, yəni LLM (large language model), pəncərəsi və düymələri olan proqram deyil, çat da deyil. Bu, müraciət edilən bir mexanizmdir: ona söhbətin mətnini verirlər, o isə davamını qaytarır. Claude Code, veb-çat, redaktordakı təkliflər - bunların hamısı belə müraciətin ətrafındakı qabıqdır və hər birində qabıq fərqlidir.

Model isə bir şey bacarır: mətnin əvvəlinə baxıb hansı davamın daha ehtimallı olduğunu qiymətləndirmək. Doğru cavabı tapmaq yox, məhz ehtimalı qiymətləndirmək, həm də bir variant üçün yox, lüğətində olan hər variant üçün.

Bunu qısa bir ifadədə tutmaq ən asandır. Ucadan davam etdirin: "Qəhvəni içirəm, ancaq..." Ağla ilk "şəkərsiz" gəlir, ardınca "südsüz", "internetsiz" isə ora heç oturmur, halbuki qrammatika baxımından hər şey qaydasındadır. Siz bunu saniyənin bir hissəsində, heç düşünmədən çəkib-çevirdiniz. Model də eyni şeyi edir, sadəcə formal şəkildə və sona qədər: bütün lüğəti gəzir və hər namizədə bir ədəd qoyur.

Model ifadənin davam variantlarını qiymətləndirir: "Qəhvəni içirəm, ancaq" ifadəsindən sonra "şəkərsiz" variantı çox ehtimallıdır, "südsüz" də olur, "internetsiz" isə demək olar ki, heç vaxtİfadənin əvvəliQəhvəni içirəm, ancaqşəkərsizçox ehtimallısüdsüzbu da olurinternetsizaz qala heç vaxt
Hər variantın öz qiyməti var. Onların heç birində "doğru" işarəsi yoxdur

Diaqramda nəyin olmadığına diqqət edin. Heç bir variant doğru kimi işarələnməyib: yalnız daha çox və daha az ehtimallı davamlar var. Bu ədədlər də belə birləşmənin mətnlərdə neçə dəfə rast gəlindiyini saymaqla alınmır - belə işləyən tamam başqa, xeyli sadə bir texnologiya idi və ondan indiki modellərdən çox-çox əvvəl imtina ediblər. Ehtimal modelin içində öyrədilmə zamanı möhkəmlənmiş qanunauyğunluqlara görə hesablanır. Elə buna görə də o, sizdən əvvəl heç kimin yazmadığı ifadə üçün də alınır.

LLM çatdan və agentdən nə ilə fərqlənir

Bu üç sözü çox vaxt sinonim kimi işlədirlər, halbuki onlar sistemin fərqli qatlarını təsvir edir.

  • LLM - dil modelinin özü. Konteksti alır və növbəti mesajı generasiya edir.
  • Çat - LLM-in ətrafındakı interfeys və proqram. Tarixçəni saxlayır, sorğunu yığır, onu modelə göndərir və cavabı göstərir.
  • Agent - məqsədi, iş dövrü və alətləri olan LLM. O, proqramdan faylı oxumağı, axtarış etməyi və ya testi işə salmağı xahiş edə, nəticəyə baxa və növbəti addımı seçə bilər.
Bir-birinin içində olan üç qatın sadələşdirilmiş sxemi: agentin içində çat, çatın içində isə dil modeli yerləşir. LLM mesajı generasiya edir, çat tarixçə və interfeys əlavə edir, agent isə məqsəd, iş dövrü, alətlər və icazələr əlavə edirAgentməqsəd · iş dövrü · alətlər · icazələrÇatinterfeys · tarixçə · kontekstin yığılmasıLLMkontekst → sonrakı mesajHər xarici qat modelin ətrafına imkanlar əlavə edir
LLM - nüvədir; çat və agent modelin ətrafına öz imkanlarını əlavə edir

Qısaca: LLM həll təklif edir, çat söhbəti təşkil edir, agent isə modelin qərarlarını xarici dünyadakı əməllərlə bağlayır.

Sözlər yox, tokenlər

Yuxarıdakı sxemə bir düzəliş lazımdır: sözlər orada bütöv halda yalnız əyanilik üçün durur. Əslində model mətni tokenlərə - öz lüğətindəki parçalara ayırır. Token bütöv söz, sözün bir hissəsi və ya durğu işarəsi ola bilər, boşluq isə adətən növbəti tokenin içinə keçir və ayrıca vahid sayılmır.

Lüğəti əvvəlcədən, böyük mətn toplusu üzərində yığırlar, həm də tədricən: alqoritm tez-tez rast gəlinən simvol ardıcıllıqlarını axtarır və onları daha iri parçalara yapışdırır. Tez-tez rast gələn nə varsa, öz tokenini də o alır. Ona görə də hazır lüğətdə bütöv sözlər və söz qırıntıları qarışıq yaşayır.

Lüğətdə hər tokenin öz nömrəsi var və mətn modelin içinə artıq ədədlər şəklində daxil olur: əvvəlcə sətir parçalara kəsilir, sonra hər parça öz nömrəsi ilə əvəz olunur. Cavab da oxunaqlı mətnə geri həmin lüğətlə açılır.

Eyni fikir iki dildə: ingiliscə coffee every morning ifadəsi üç tokenə bölünür, azərbaycanca hər səhər qəhvə ifadəsi isə eyni üç sözlə beş tokenə. Boşluq qarşısında durduğu tokenin içində boz düzbucaqlı ilə göstərilibİngiliscə3 söz, 3 tokenAzərbaycanca3 söz, tokenlər isə artıq 5coffeeeverymorninghərsəhərqəhvə
Boz düzbucaqlı boşluqdur: o heç yerə itmir, sadəcə növbəti tokenin içinə keçir. Bölgü təxminidir, hər modelin öz lüğəti var

Buradan yadda saxlamağa dəyən iki şey çıxır. Birincisi: hər model ailəsinin öz lüğəti var və eyni sətri onlar eyni cür kəsmir, "token təxminən sözün dörddə üçüdür" kimi hesablamalar isə ingiliscə üçün kobud bir bələdçidir, vəssalam. İkincisi: ilkin mətnlərdə az olan dil daha xırda kəsilir. Azərbaycanca söz ingiliscə sözün bir tokenə sığdığı yerdə tez-tez iki-üç tokenə parçalanır.

Bunu oxumaqdansa bir dəfə görmək asandır. The Tokenizer Playground saytını açın, ora adi sorğularınızdan bir-ikisini yapışdırın, ardınca eyni mətni ingiliscə - və sətrin hansı parçalara dağıldığı, neçə parça alındığı dərhal görünür. Bircə qeyd: oradakı tokenizer konkret bir modelə məxsusdur, sizin işlədiyiniz modeldə bölgü başqa olacaq. Ora dəqiq rəqəm üçün yox, hadisənin özünü görmək üçün getməyə dəyər.

Bunun praktik nəticəsi gözlənilməzdir. Model hərfləri yox, parçaları görür və hərflərlə bağlı suallar ona məna ilə bağlı suallardan xeyli çətin gəlir. Uzun bir sözdə neçə "o" hərfi olduğunu saymağı xahiş edin, cavab səhv çıxa bilər. Tapşırıq çətin olduğu üçün yox, söz modelə iki parça halında çatdığı və onların içində ayrı-ayrı hərflər onun üçün olmadığı üçün.

Cavab tokenlərdən necə yığılır

İndi mexanizmi bütövlükdə yığaq, o, düşündüyünüzdən də sadə çıxacaq. Model variantları qiymətləndirir, onlardan biri seçilir və mətnin sonuna əlavə olunur. Bundan sonra hər şey yenidən başlayır - həmin mətnlə, sadəcə bir token uzun.

Ardıcıl üç generasiya addımı: "Qəhvəni içirəm, ancaq" ifadəsinə şəkərsiz tokeni əlavə olunur, alınan ifadəyə - və tokeni, sonra südsüz tokeniArtıq yazılanNövbəti tokenSeçilən hər token növbəti addımın şərtinə qayıdırQəhvəni içirəm, ancaqQəhvəni içirəm, ancaq şəkərsizQəhvəni içirəm, ancaq şəkərsiz vəşəkərsizvəsüdsüz
Cavab hazır götürülmür: o, bir-bir token artaraq böyüyür və hər yeni token növbətisinə təsir edir

Hazır cavab heç yerdə durmurdu və heç yerdən çıxarılmırdı - o, içində neçə token varsa, o qədər addımda yığılıb. Proses taymerlə də bitmir: nə vaxtsa ən ehtimallı davam "burada son" mənalı xüsusi token olur və generasiya dayanır.

Həmin şəkildən daha bir detal çıxır. Model yazılanı silə bilmir: mətnə düşən token orada qalır və hər növbəti addımın şərtinə daxil olur. Düzəliş etməyi isə o, söhbətdəki insan kimi bacarır - növbəti cümlə ilə.

Çoxlarını təəccübləndirən nəticə isə budur: eyni sual iki dəfə verilsə, iki fərqli cavab ala bilər. Hər addımda seçim mütləq ən ehtimallı variantın üzərinə düşmür, fərqlənən bir token isə özündən sonra gələn hər şeyi arxasınca aparır. Çox vaxt yalnız ifadə tərzi dəyişir, amma bəzən təklif olunan həll də.

Terminalda nə baş verir

Cavabın Claude Code pəncərəsində tədricən üzə çıxması yüklənmə göstəricisi deyil, generasiya addımlarının özüdür: model tokenləri seçdikcə ötürür, proqram isə onları dərhal ekrana çıxarır. Ona görə də uzun cavab fasilədən sonra birdən bütöv yaranmır, tədricən görünür.

Modeli niyə böyük adlandırırlar

"Böyük" sözü haradasa duran faylın çəkisini təsvir etmir. Onun arxasında tamam başqa iki miqyas dayanır və hər ikisini düzgün təsəvvür etmək faydalıdır.

Birincisi - modelin öyrədilmə zamanı keçdiyi mətnin həcmi: kitablar, məqalələr, sənədlər, forumlar, kod, özü də bir insanın bir neçə ömürdə oxuya bilməyəcəyi miqdarda. İkincisi - parametrlərin sayı. Parametr modelin içindəki bir ədəddir, öyrədilmə zamanı tənzimlənən sazlamalardan biri. Onlar milyardlarladır. Açıq modellərdə bu say birbaşa ada çıxarılır: 7B, 14B, 70B, burada B - billion, yəni milyard deməkdir.

Səhv etmək asan olan yer isə bundan sonra gəlir. Parametrlərin sayı keyfiyyət reytinqi deyil. Nəticəyə həm modelin öyrəndiyi məlumatlar, həm onun quruluşu, həm hansı tapşırıqlar üçün hazırlandığı, həm də haradasa yerləşsin deyə necə sıxıldığı təsir edir. Daha kiçik model konkret işdə daha iri modeli rahatlıqla ötə bilər. Addakı böyük rəqəm özlüyündə heç nə vəd etmir.

Belə miqyasda sanki öz-özünə alınan daha bir şey var. Yıxılan test haqqında ifadəni rəvan davam etdirmək üçün hansı sözlərin adətən yan-yana durduğunu bilmək azdır. Testlərin necə qurulduğunu da tutmaq lazımdır. Model sözləri təxmin etməyi öyrənirdi, yol üstündə isə onun parametrlərində bu sözlərlə təsvir olunanlar da möhkəmləndi. Məlumatlılıq hissi də buradan yaranır, halbuki mexanizm bir addım da dəyişməyib.

Modelin bilikləri haradan gəlir

Mənbə düz ikidir və onları qarışdırmaq baha başa gəlir.

Birincisi - parametrlər. Onlarda öyrədilmə zamanı mənimsənilmiş qanunauyğunluqlar möhkəmlənib. Bu, hər qeydinin yanında mənbəyi yazılmış kartoteka deyil: bilik çoxlu ədədin arasına yayılıb və oradan dəqiq sitat çıxarmaq olmur. Ona görə də model az qala doğru olanı verə bilir: forma düzgündür, ad tanışdır, konkret detal isə o deyil.

İkincisi - elə indi söhbətdə olanlar: sizin sorğunuz, ondan əvvəl deyilən hər şey, açıq faylların məzmunu, işə salınmış əmrlərin çıxışı. Bu mənbə dəqiqdir, amma ömrü qısadır. O, parametrlərə keçmir və növbəti söhbət artıq onun haqqında heç nə bilmir.

Ayrıca mənbə adlandırmaq istədiyiniz qalan hər şey - yaddaş faylı, tapılmış sənədlər, kənar servisin cavabı - elə bu yolla gəlir: əvvəlcə söhbətə düşür, yalnız sonra cavaba təsir edir. Modelin layihəyə və ya internetə öz qapısı yoxdur.

Birinci mənbənin tarixi var, bu tarixin də adı var - knowledge cutoff. Bu, modelin daxili biliklərinin adətən hansı ana qədər aktual olduğunu göstərən bir bələdçidir. Bu tarixdən sonra çıxan kitabxana haqqında model yalnız cari söhbətə qoyulduğu qədər bilir.

Buradakı qeyd tarixin özündən vacibdir. Cutoff o demək deyil ki, model bu günə qədər hər şeyi, sonra isə heç nə bilir. Boşluqlar dövrün içində də olur: nə haqdasa mətn az idi, harasa mətnlər bir-birinə zidd idi, nəsə isə öyrədilmə məlumatlarına sadəcə düşməyib. Tarix yuxarı sərhədi qoyur, ondan aşağıda tamlıq vəd etmir.

Və kiçik, amma faydalı bir məqam. Cutoff-u modelin özündən soruşmaq o qədər də yaxşı fikir deyil: bu suala o, generasiya ilə, yəni inandırıcı görünən bir şey seçərək cavab verəcək. Dəqiq tarix konkret versiyanın sənədlərində yazılır və eyni ailənin qonşu modellərində o, tamamilə fərqli ola bilər.

Thinking nə deməkdir

Ekranda Thinking görünəndə model şüurun hansısa başqa rejiminə keçmir. Ona sadəcə cavab verməyə başlamazdan əvvəl düşünmək üçün yer verilib. Texniki baxımdan bu, həmin generasiyanın özüdür: model əvvəlcə özü üçün qaralama yazır - tapşırığı təhlil edir, variantları götür-qoy edir, özü ilə mübahisə edir - və yalnız sonra yekun mətni verir. Nə qədər düşünmək lazım olduğunu müasir modellər çox vaxt özləri həll edir: sadə sualda qaralama qısa olur və ya heç olmur, dolaşıq sualda daha uzun.

Bir sorğu dərhal tez cavaba keçə və ya yekun cavabdan əvvəl tapşırığın təhlilindən və yoxlamadan keçə bilərBir sorğu - cavaba qədər fərqli büdcəTezSorğuTez cavabThinkingSorğuTəhlilYoxlamaCavabİkinci yol yekun cavaba qədər daha çox vaxt və token xərcləyir
Eyni sorğu ya tez cavab, ya da təhlil və yoxlama üçün əlavə vaxt ala bilər

Bunun nəyə lazım olduğu nümunədə görünür. Agent yıxılan testin səbəbini axtarır. İlk inandırıcı izah xarici servisin klientini göstərir, amma qonşu test və xəta mətni başqa şey deyir: məsələ məlumatların təhlilindədir. Ehtiyat yer olanda model bu ziddiyyəti düzəliş təklif etməzdən əvvəl görüb istiqaməti dəyişməyə macal tapır. Qazanc burada mühakimənin uzunluğunda deyil, yoxlamanın növbəti addımı dəyişməsindədir.

Ümumiyyətlə, ilk izah çox vaxt doğru olmur. O, inandırıcıdır, amma mexanizm onu elə inandırıcılıq meyarına görə seçmişdi.

İndi isə əlavə mühakimənin nə vaxt özünü doğrultduğu barədə. Onun qiyməti vaxtdır və hər xırda iş üçün onu işə salmağa ehtiyac yoxdur.

Adətən tez cavab kifayətdirMühakiməyə yer vermək dəyər
ekrandakı kod parçasının nə etdiyini izah etməkbir neçə fayl iştirak edəndə testin yıxılma səbəbini tapmaq
yazı xətasını və ya formatı düzəltməkiki həlli məhdudiyyətləri ilə birlikdə müqayisə etmək
indicə verdiyiniz mətni qısaca danışmaqaddımları bir-birindən asılı olan yenidən işləməni planlaşdırmaq

Bələdçi sadədir: tapşırıqda nə qədər çox yol ayrıcı və asılılıq varsa, modelə açılmağa imkan vermək o qədər faydalıdır. Dəyişənin adını dəyişəndə hazır nəticəyə baxmaq onun haqqındakı mühakiməni oxumaqdan tez olacaq.

Və dürüst bir sərhəd. Göstərilən mühakimə içəridə baş verənlərin dəqiq qeydi deyil; çox vaxt bu, oxucu üçün yığılmış bir təkrar danışmadır. Uzun və səliqəli zəncir yanlış ilkin fərziyyədən də böyüyə bilər və elə buna görə olduğundan daha etibarlı görünər. Əksi də olur: cavab artıq tapılıb, amma model şübhə etməyə davam edir, dövrə vurur və özünü çaşdırır. Bunun hətta adı da var - overthinking.

"Yaxşıca düşün" xahişindən daha yaxşı işləyən nədir

Daha uzun düşünmək xahişi zəif bir rıçaqdır: qaralamanın uzunluğu özlüyündə heç nəyi yaxşılaşdırmır. Aydın məqsəd, adı çəkilmiş məhdudiyyətlər və tapşırığın həll olunduğunu göstərən anlaşılan əlamət xeyli güclü işləyir. Onda modelin öz mühakiməsində yoxlamalı bir şeyi olur.

Model nəyi bacarmır

Siyahı qısadır və onu canlı tapşırıqda aşkar etməkdənsə, əvvəlcədən bilmək yaxşıdır.

  • Faktın doğru olduğuna zəmanət vermək. Mexanizm ehtimallı davamı seçir, iddianı mənbə ilə tutuşdurmur. Uydurulmuş, amma inandırıcı detallara hallüsinasiya deyirlər.
  • İfadə tərzindən asılı olmamaq. Yerini dəyişmiş sözlər və əlavə edilmiş dəqiqləşdirmə cavabı dəyişir, çünki hər şeyi bu yerdən əvvəl duran mətn həll edir.
  • Yeni şeyləri özü öyrənmək. Xarici mənbələr olmadan daxili biliklər yenilənmir: kitabxananın dünənki relizi haqqında model yalnız ona göstərilənləri bilir.
  • Sözbəsöz təkrarlanmaq. Eyni sorğu fərqli nəticə verə bilər və bu, nasazlıq yox, mexanizmin xassəsidir.
  • İlkin mətnlərin əyintilərindən azad olmaq. Orada birtərəfli təsvir olunan və ya heç təsvir olunmayan nə varsa, cavablarda da əks-səda verəcək.

Modellərin ətrafında yaranan demək olar ki, hər şey bu siyahının hansısa bəndinə cavabdır. Axtarış və sənədlərlə iş ona görə yarandı ki, daxili biliklər köhnəlir. Alətlər və agentlər isə ona görə ki, model özlüyündə yalnız danışmağı bacarır.

Bu, agentin davranışında nəyi izah edir

Bu mexanizmdən Claude Code ekranında birbaşa görünənlər bunlardır:

  • cavab parça-parça yığılır, çünki o, elə belə yaranır. Bu, bəzək yox, prosesdir;
  • iki eyni sorğu fərqli cavablar verdi - belə də olmalıdır, generasiya özünü sözbəsöz təkrarlamır. Əvvəlki nəticə lazımdırsa, yenidən soruşmaqdansa artıq alınmış cavaba qayıtmaq daha etibarlıdır;
  • Thinking qaralama üçün yer verir, doğruluğa zəmanət yox. Çoxaddımlı tapşırığın təhlilində o, özünü doğruldur, dəyişənin adını dəyişəndə isə çox vaxt mane olur;
  • agent faylı oxuyana qədər həmin fayl haqqında cavab ümumi qanunauyğunluqlara söykənir. Söhbətə düşən hər şey parametrlərdə möhkəmlənmiş hər şeydən ağır gəlir;
  • kitabxanaların təzə versiyaları haqqında model standart olaraq az bilir və bunu düzəltməyin ən asan yolu söhbətə qoyulmuş sənədlərdir;
  • cavab yanlış tərəfə gedibsə, xahişi eyni sözlərlə təkrarlamaqdansa çatışmayanı əlavə etmək daha faydalıdır. Mexanizm israra deyil, cavabdan əvvəlki mətnə əsaslanır.

Mexanizmi bilmək modeli olduğundan pis etmir. Sadəcə ondan nə gözləmək lazım olduğunu izah edir: zəmanətli məlumat kitabçası yox, əvvəlini sizin verdiyiniz mətnin çox yaxşı davamçısı.

Video: həmin mexanika şəkillərdə

3Blue1Brown kanalında əsas məqamları bir əyani animasiyada toplayan qısa bir video var: tokenlər, növbəti sözün ehtimalları, attention və modelin parametrlərinin ümumiyyətlə haradan gəldiyi. Onun adı Large Language Models explained briefly.

Orijinal ingilis dilindədir, amma videonun tərcüməli bir neçə audio izi var, onları pleyerin ayarlarında dəyişmək olur. Lazımi dilin izi yoxdursa, videonu birbaşa YouTube-da açın: veb-pleyerdə seçim daha genişdir.

Kanal bu videodan ibarət deyil. Orada neyron şəbəkələri, transformerlər və attention haqqında bütöv bir seriya da var - həmin fikirlər, sadəcə daha ətraflı və riyaziyyatla. Məqalədən sonra "nə baş verir" yox, "bu ümumiyyətlə niyə işləyir" sualını anlamaq istəsəniz, oradan başlamağa dəyər.