របៀបដែល LLM ដំណើរការ (សម្រាប់អ្នកសរសេរកម្មវិធី)

Token, ប្រូបាប, temperature, ការ train, embedding, context window, prompt និង hallucination — របៀបដែល large language model ដំណើរការពិតប្រាកដ រៀនតាមរយៈការសាងសង់ model តូចមួយដោយខ្លួនឯង។

មនុស្សគ្រប់គ្នាកំពុងប្រើជំនួយការ AI ហើយស្ទើរតែគ្រប់គ្នាមានសំណួរដូចគ្នា។ តើវាគិតពិតមែនទេ? ហេតុអ្វីពេលខ្លះវាប្រឌិតរឿងឡើងដោយទំនុកចិត្តពេញលេញ? ហេតុអ្វីសំណួរតែមួយផ្តល់ចម្លើយខុសគ្នា រាល់ដង? ហេតុអ្វីវាភ្លេចអ្វីដែលខ្ញុំបាននិយាយកាលពីដប់នាទីមុន? ហេតុអ្វីវាគិតលុយតាមពាក្យ? ប្រសិនបើអ្នកសាងសង់កម្មវិធីក្នុងយុគ AI អ្នកប្រើប្រាស់ មិត្តរួមក្រុម និងសិស្សរបស់អ្នកនឹងសួរ សំណួរទាំងនេះ ដូច្នេះវាជួយឲ្យអ្នកដឹងចម្លើយពិតប្រាកដ ជំនួសឲ្យការទាយ។

ស៊េរីនេះពន្យល់ពីរបៀបដែល large language model (LLM) ដំណើរការ ដោយប្រើភាសាសាមញ្ញ ហើយប្រើកូដ ជំនួសឲ្យគណិតវិទ្យា។ អ្នកនឹងឃើញថាគំនិតស្នូលតូចគួរឲ្យភ្ញាក់ផ្អើល៖ model អានអត្ថបទ ទាយបំណែក បន្ទាប់ បន្ថែមវា ហើយធ្វើម្តងទៀត។ អ្វីៗផ្សេងទៀត (ចម្លើយឆ្លាតវៃ អត្ថបទវែង កូដដែលវាសរសេរ) ដុះចេញពីការធ្វើរឿងតែមួយនោះក្នុងខ្នាតដ៏ធំសម្បើម។ អ្នកនឹងរៀនថា token ជាអ្វី និងហេតុអ្វីវា កំណត់វិក្កយបត្ររបស់អ្នក របៀបដែល model បំប្លែងពិន្ទុទៅជាប្រូបាប អ្វីដែល "temperature" ធ្វើ ពិតប្រាកដ របៀបដែល model រៀនពីអត្ថបទ របៀបដែលពាក្យក្លាយជាលេខ (embedding) ហេតុអ្វី model មានអង្គចងចាំមានកំណត់ (context window) របៀបដែល prompt និង role ណែនាំវា និងហេតុអ្វី hallucination កើតឡើង ហើយអ្នកអាចធ្វើអ្វីបាន។

អ្នកនឹងមិនត្រឹមតែអានអំពីវាទេ។ ពេញមួយស៊េរី អ្នកសាងសង់ llmlab ដែលជា toolkit JavaScript តូចមួយដែលដំណើរការលើកុំព្យូទ័ររបស់អ្នកផ្ទាល់៖ tokenizer ក្លែងក្លាយ, language model តូចមួយដែល សរសេរអត្ថបទ, sampler ជាមួយ temperature, training loop ដែលអ្នកអាចមើលវារៀន, ការស្វែងរកពាក្យស្រដៀងគ្នា, ឧបករណ៍គ្រប់គ្រងអង្គចងចាំនៃការសន្ទនា, ឧបករណ៍បង្កើត prompt និង ឧបករណ៍ពិនិត្យចម្លើយដែលមានមូលដ្ឋាន។ LLM ពិតធំជាងនេះរាប់លានដង ប៉ុន្តែវាធ្វើតាមគំនិតដូចគ្នា ហើយ model ដែលអ្នកសាងសង់ដោយខ្លួនឯង គឺជាវិធីល្អបំផុតដើម្បីយល់ពី model ដែលអ្នកមិនបានសាងសង់។

អ្នកត្រូវការភាពស្រួលជាមួយមូលដ្ឋានគ្រឹះ JavaScript — variable, function, array, object, loop និង import/export — ពី មូលដ្ឋានគ្រឹះ JavaScript និង TypeScript និងជាមួយ terminal ពី មូលដ្ឋានគ្រឹះ Command Line។ ជំពូក មូលដ្ឋានគ្រឹះប្រូបាប ក្នុង Math for Programmers គឺជាការឡើងកម្តៅដ៏មានប្រយោជន៍សម្រាប់ជំពូកទី 3 និង 4។ អ្នកត្រូវការ Node.js (កំណែ LTS) និង code editor ដូចជា Visual Studio Code។ មិនត្រូវការ API key គ្មានគណនី ហើយគ្មានអ្វីត្រូវចំណាយលុយឡើយ។ ស៊េរីបន្ទាប់ Build a Chatbot with an LLM API គឺជាកន្លែងដែលអ្នកហៅ model ពិតដែលបង្ហោះនៅលើ server។

រាល់ជំពូកបញ្ចប់ដោយផ្នែក សំណួរដែលអ្នកនឹងត្រូវគេសួរ៖ ចម្លើយខ្លីៗ និងស្មោះត្រង់ចំពោះសំណួរ ដែលមនុស្សសួរញឹកញាប់បំផុតអំពីប្រធានបទនៃជំពូកនោះ។ ពួកវាត្រូវបានសរសេរដើម្បីឲ្យអ្នកអាចពន្យល់ពី ពួកវាដល់សិស្សក្នុងថ្នាក់ ឬអ្នកស្តាប់នៅសន្និសីទបានដោយទំនុកចិត្ត។

  1. 01តើ LLM ជាអ្វី?large language model គឺជាអ្នកទាយពាក្យបន្ទាប់ដែលដំណើរការក្នុង loop៖ មើលគំនិតទាំងមូលក្នុងកម្មវិធីតូចមួយ រៀនថា LLM ជាអ្វី និងមិនមែនជាអ្វី ហើយរៀបចំ folder Node.js ឈ្មោះ llmlab ដែលយើងសាងសង់ក្នុងគ្រប់ជំពូក។
  2. 02Token និង Tokenizerរបៀបដែលអត្ថបទត្រូវបានកាត់ជា token មុនពេល model ឃើញវា របៀបដែល byte-pair encoding បង្កើតបំណែកទាំងនោះ ហេតុអ្វី token កំណត់វិក្កយបត្រ និងដែនកំណត់របស់អ្នក និងរបៀបបន្ថែម tokenizer ក្លែងក្លាយទៅក្នុង llmlab។
  3. 03បង្កើត Language Model តូចមួយបង្កើត model ទាយពាក្យបន្ទាប់ដែលដំណើរការបាន ក្នុង JavaScript ប្រមាណ ៤០ បន្ទាត់៖ រាប់ថាពាក្យណាមកក្រោយពាក្យណា បំប្លែងចំនួនរាប់ទៅជាប្រូបាប បន្ថែម random number generator ដែលមាន seed បង្កើតអត្ថបទ ហើយមើលថាហេតុអ្វី context កាន់តែច្រើនធ្វើឲ្យអត្ថបទកាន់តែល្អ។
  4. 04ប្រូបាប Temperature និង Samplingរៀនពីរបៀបដែល model បំប្លែងពិន្ទុដើមទៅជាប្រូបាបដោយ softmax អ្វីដែល temperature ធ្វើពិតប្រាកដ របៀបដែល sampling បែប greedy, top-k និង top-p ជ្រើស token បន្ទាប់ និងមូលហេតុដែល prompt ដូចគ្នាអាចផ្តល់ចម្លើយខុសគ្នា។
  5. 05របៀបបង្វឹក Modelមើល model តូចមួយរៀន៖ តារាងលេខ loss ដែលវាស់ថាខុសប៉ុនណា និង gradient descent ដែលរុញលេខទាំងនោះរហូតដល់ loss ធ្លាក់ចុះ ព្រមទាំង pretraining, fine-tuning, preference tuning និងមូលហេតុដែលការបង្វឹកថ្លៃជាងការប្រើ model ច្រើនដង។
  6. 06Embedding និង Attentionបំប្លែងពាក្យទៅជាបញ្ជីលេខដែលពាក្យស្រដៀងគ្នាស្ថិតនៅជិតគ្នា វាស់ភាពជិតដោយ dot product និង cosine similarity រួចសាងសង់ attention demo តូចមួយដែលបង្ហាញពីរបៀបដែលពាក្យមួយលាយព័ត៌មានពីពាក្យជុំវិញវា ដែលជាគំនិតស្នូលនៅខាងក្នុង Transformer។
  7. 07Context Window និងការចងចាំហេតុអ្វី LLM ភ្លេចអ្វីៗទាំងអស់រវាងការហៅម្តងៗ របៀបដែល chat 'ចងចាំ' ដោយផ្ញើការសន្ទនាទាំងមូលម្តងទៀត ថា context window ជាអ្វី ហេតុអ្វីការសន្ទនាវែងថ្លៃជាង និងរបៀបកាត់ សង្ខេប និង cache ប្រវត្តិក្នុង module llmlab តូចមួយ។
  8. 08Prompt, Role និង Structured Outputរបៀបសាងសង់ array messages ជាមួយ role system, user និង assistant ណែនាំម៉ូដែលដោយឧទាហរណ៍ few-shot ទទួលបាន JSON ដែលអាចទុកចិត្តបានដោយ parse validate និង retry និងហេតុអ្វី prompt injection មានន័យថាអត្ថបទដែលមិនគួរឲ្យទុកចិត្តមិនត្រូវបានចាត់ទុកជាការណែនាំឡើយ។
  9. 09ហេតុអ្វីបានជា Model Hallucinateហេតុអ្វី LLM អាចស្តាប់ទៅមានទំនុកចិត្ត ប៉ុន្តែនៅតែខុស៖ វាទាយអត្ថបទដែលទំនងជាពិត មិនមែនអត្ថបទដែលពិតទេ។ មើលវានៅក្នុង toy model បន្ទាប់មកសាងសង់ម៉ាស៊ីនពិនិត្យចម្លើយដែលមានមូលដ្ឋាន និង eval harness តូចមួយដែលចេះនិយាយថាខ្ញុំមិនដឹង។
  10. 10ដែនកំណត់ ថ្លៃដើម និងសំណួរដែលអ្នកនឹងត្រូវគេសួរជំពូកបូកសរុប៖ pipeline LLM ទាំងមូលក្នុងរូបតែមួយ របាយការណ៍ command-line នៃ token ថ្លៃដើម និងការប្រើ context ដំណើរកម្សាន្តដ៏ស្មោះត្រង់អំពីអ្វីដែល LLM ពូកែ និងមិនពូកែ និងចម្លើយត្រង់ៗ 18 សម្រាប់ការនិយាយទៅកាន់សិស្ស និងអ្នកអភិវឌ្ឍន៍។