Практычныя нататкі: як насамрэч працуюць LLM — токены, трансформеры і наступны токен
Практычны разбор тэмы «як працуюць LLM: токены, трансформеры і прадказанне наступнага токена»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.
Крыніцы: How LLMs Actually Work: Tokens, Transformers and Next-Token Prediction!
У гэтым карыце парадоксальнае выкананне шляху ад сыр'ёў да рабочай сістэмы для кнігі «Як насправдзе працуюць LLM: токены, трансфармэры і прыкладзенне наступнага токена!». Акцэнт ставіцца на практычныя крокі, чыстае перакананне і код, які можна проста дадзіць у рэпазітарый без неабяснення меты. У стадзіі агляду неабяжна практычна візначыць інпуты, адпаведальную особу за крок і крытэрыі завершэння пры перамены коду. Аперацыйныя працавікі павінны магчымае перадзягнуць крок з вядомага пункта контролю без неабяснення схованага стану. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына нехацкага рэзультата павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцоўкі задач.
Што такое LLM?
Калі працюеце над этапам «Што такое LLM», спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі спіс контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрэцьвуйце гэты этап як угоду межа данымі і перакананымі выходамі. Дайце назву рэзультатам, задаце крытэрыя успеху і не прымайце часткова завершэння без паведамлення. Зберагачвайце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача таго ж самога прамэра ёсць частым выклікам затрат рэсурсаў.
Шаг 1: Тэкст перакладаецца у токены
Калі працуеце над этапам 1, спачатку запісайце умовы контракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі спіс контроля дапамагае заліцвачыць змяны ў кодзе пазнейшаю часам. Запісвайце час выканання і кост токена або запыту праза функцыйнальнымі рэзултатамі. Відразлівасць коста з самага пачатку запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя асяроддзя. Зберагаеце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзесланне ідэнтычных прамаўляючых частак — частая прычына некальканадзесятых вітрацоў.
"I" → token 1
"love" → token 2
"AI" → token 3
"unbelievable"
"un" + "believ" + "able"
Этап 2: Токены стаюць цыфрамі
Калі працуеце над крокам 2, калі токены стаюць стэйджамі, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частковыя неудачы. Такі спіс пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Зберагаеце настройкі за межамі коду прыемлі. Файлы сераўнавання, храненні секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аўдыт без неабяжлівага чытання всей структуры. Кэшавайце стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзесланне ідэнтычных прамаўляючых частак — частая прычына вітрацыў. Калі працуеце над крокам 2, калі токены стаюць стэйджамі, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частковыя неудачы. Такі спіс пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптаў. Калі якісь крок не выйшоў, неудача должна вказваць на адну адпаведальнасць, а не на заплутаны працэс.
"I" → [0.12, -0.45, 0.78, ...]
"love" → [0.91, 0.13, -0.22, ...]
"AI" → [0.31, 0.72, 0.04, ...]
Шаг 3: Transformer разумее кантэкст
Этап шага 3, калі Transformer працуе як меравальная суперфіс, дае найлепыя рэзультаты. Перш чым расшырваць масштаб, зафіксавайце адна ідэальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану. Спрытывайце этап як кантракт межу вхіднымі данымі і паўнастацэннымі выходамі. Дайце назвы артыфактам, задаць крытэрыя успеху і не падзеўляйцеся частым, некомплектным выкананнем задачы. Задаць ліміт токенав на кожны рунд і на кожную сесію. Агентныя інструменты агрэсывна расшырваюць кантэкст; строгі ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі.
The dog chased the ball because it was excited.
↑ ↑
└──────────── related ─────────────────┘
Шаг 4: Праўдзібна прыгадаць наступны токен
Этап 4 «Прагназаванне этапы» працюе наяўна, калі яго розглядаць як вімерную плошчу. Зафіксавайце адны «золаты» прыклад працы, адны прыклад неудачы і запіс пра вярнэнне да поперадньага стану пры расшырэнні масштаба. Запісвайце часы выканання і кост токеноў або запытаў па боку ад функцыйнальных рэзультатаў. Візуабельнасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя сераўы. Задазвайце бюджэт токеноў на кожны раунд і на кожную сесію. Інструменты з агентным падходам агрэсіўна расшырваюць кантэкст; строгі ліміты не дазволяюць дэмаверсіям ператварыцца на неспакойныя рахункі.
mat → 45%
floor → 20%
chair → 10%
table → 5%
...
Read context
↓
Predict next token
↓
Add token to text
↓
Read updated context
↓
Predict next token
↓
Repeat...
Тады як AI адпавядае на складныя запытанні?
Тады як жа AI-этап працюе найкрашча, калі яго спрыяваць як меркаваную паверхню? Зберагчыце адны ідэальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Зберагчыце настройкі параду ўнутры коду прыемлівання. Файлы сераўнавальнага сяродавішча, хранілішчы секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль, не чытаяўшы весь лянцуг. Задаеце ліміт токенав на кожны рунд і на кожную сесыю. Інструменты-агенты агрэсіўна расшырваюць кантэкст; жорсткія ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі. Тады як жа AI-этап працюе найкрашча, калі яго спрыяваць як меркаваную паверхню? Зберагчыце адны ідэальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача должна вказваць на адну адпаведальнасць, а не на заплутаны лянцуг задач.
Полная картына
Для этапы «Паўная картына» неабходна прадзефінаваць вхідныя даны, адпаведальную особу за выкананне крока і крытэрыя завершэння пры перадзмене коду. Аперацыйныя працавнікі должны магчымае перадзначыць выкананне крока з вядомай точкі контролю, не прабуючы спадарацца пра схованы стан. Спрыяйце цій этапы як даговору межаў вхідных даных і перакананых выходных рэзультатаў. Даць назвы артыфактам, прадзефінаваць пераканання ў успеху і адмовіцца ад беззвучнага частковага завершэння. Калі наступны крок — гэта код або вызов інструмента, валідаваць структураваныя выходныя даны за дапамою схемы, а не простае тэкстовае выказванне.
Your text
↓
Tokenization
↓
Tokens
↓
Numbers / Embeddings
↓
Transformer
↓
Understand relationships + context
↓
Predict next token
↓
Add token to response
↓
Predict again
↓
Repeat until the answer is complete
Адна важлівая рэч, яку трэба памятаць
Для таго, каб усё працавало правільна, перш чым зменяць код, неабходна ясная візначэння: што ўваходзіць у працэс, хто яўляецца власнікам крока і якія крытэрыя завершэння. Аператары должны магчымае запускаць крок з вядомай точкі контролю, не прабуючы спадараць прыхованы стан. Запісвайце час выканання і вартасьць токена або запытку праза функцыйнальныя рэзултаты. Відразувая візуабельнасьць вартасцей, можна ухіліцца ад неспакою, калі працэс пераходзіць з дэмовай асяроддзя ў спяльнаваныя сераўеры. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходны даныя з перакананням схемы, чым вольныя тэкстовыя опісы.
Ёсць ўдачнага кодавання
Для этапы «Ёсць кодаўчыння» неабходна пазначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перадзваніць крок з вядомай точкі контролю, не падозрываючы схованы стан. Конфігурацыю трэба залічыць паза кодам прыкладнення. Файлы сераўіса, хранальнікі секрэтных даных і флагі функцый належаць у аднам месца, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг задач. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, чым вольныя тэкстовыя апісанні.
Чэк-ліст аперацый
Стадыя чэк-ліста аперацый работае наўзям лепш, калі яе спрыймаюць як мерыемую плошчу. Перад расшырэнням масштаба трэба зафіксаваць адну ідэальную транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану.
Неабходна адначасова задокументаваць «ёсць пат» і «пат вярнэння». Перапрыбуткі, людзкія контрольныя пункты і обработка некорэктных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам.
Бюджэт токенаў на адны раунд і на адну сесію. Агентныя інструменты актыўна расшыроюць кантэкст; строгі ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі.
Размешчайце стан разам з компонентам, які керуе мутацыямі. Пераклад чаго-небудзь у глобальны хранільнік ускладняе выявленне проблем з часам адпаведнай дзеяння.
Напісце кароткі посібнік: як зменяць канты, як спрачыць чэргу, як анулюваць пярэдній працэс прыемкі дадзеных.
Запісвайце час адпаведных дзеянняў і косць токенаў чы роезыкаў праза функцыйнае рэзультат. Відкрытыя даныя пра косці з’являюцца рана, таму не будзе неспакоўных рахункоў, калі працэс перайдзе з дэмы ў спакульнаныя сераўеры.
Перш чым пераводзіць стак на вышэйшы ранг, заморозьце версіі, зафіксуйце ідэальны транскрыпт для крытычнага пату і паказваце крокі анулювання. У спакульных сераўерах неабходны ліміты частоты запытоў, перакананні ў правах на выкарыстоўванне рэсурсоў і чыста вялікі адпаведальны за змену секрэтных даных. Валіце простую надзейнасць працы над крэатывнымі, але разовымі дэмамі.
Запіска параграфу c36dcb448406: не трэба кантрацяваць ключы прадастоўцаў у рэпазітарыі, задаць максімальную кантэйнернасць токена на сесію, а таксама зберагчы транскрыпціі празаўседле з фікстурамі ацэнкі, каб пазнейшыя замены мадэляў заставаліся пораўнанымі.