Buckets:
| import{s as Xo,n as qo,o as Go}from"../chunks/scheduler.893fe8c9.js";import{S as Lo,i as Ho,e as o,s as n,c as p,h as Eo,a,d as s,b as i,f as Ao,g as c,j as r,k as di,l as Do,m as l,n as M,t as d,o as m,p as y}from"../chunks/index.b1df2166.js";import{C as So,H as Ms,E as Po}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.57faa913.js";import{Y as Fo}from"../chunks/Youtube.ec5d7916.js";import{C as k}from"../chunks/CodeBlock.c009e81b.js";import{C as Yo}from"../chunks/CourseFloatingBanner.c1c08878.js";function Ko(mi){let J,ys,ds,ks,g,Js,j,Ts,f,us,b,yi="ယခင်အပိုင်းတွေမှာ ကျွန်တော်တို့ တွေ့ခဲ့ရတဲ့အတိုင်း၊ tokenization မှာ အဆင့်များစွာ ပါဝင်ပါတယ်။",gs,$,ki="<li>Normalization (မလိုအပ်တဲ့ spaces တွေ ဒါမှမဟုတ် accents တွေ ဖယ်ရှားတာ၊ Unicode normalization စတာတွေလိုမျိုး လိုအပ်တယ်လို့ ယူဆရတဲ့ text ကို သန့်ရှင်းရေးလုပ်ခြင်း)</li> <li>Pre-tokenization (input ကို words တွေအဖြစ် ပိုင်းခြားခြင်း)</li> <li>inputs ကို model ကနေတစ်ဆင့် run ခြင်း (pre-tokenize လုပ်ထားတဲ့ words တွေကို အသုံးပြုပြီး tokens sequence တစ်ခု ထုတ်လုပ်ခြင်း)</li> <li>Post-processing (tokenizer ရဲ့ special tokens တွေ ထည့်သွင်းခြင်း၊ attention mask နဲ့ token type IDs တွေ ထုတ်လုပ်ခြင်း)</li>",js,U,Ji="သတိရစေရန်၊ ဒီမှာ overall process ကို ထပ်ကြည့်ရအောင်။",fs,T,Ti='<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter6/tokenization_pipeline.svg" alt="The tokenization pipeline."/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter6/tokenization_pipeline-dark.svg" alt="The tokenization pipeline."/>',bs,w,ui='🤗 Tokenizers library ကို အဲဒီအဆင့်တစ်ခုစီအတွက် ရွေးချယ်စရာများစွာ ပံ့ပိုးပေးဖို့ တည်ဆောက်ထားပြီး၊ သင်ဟာ ဒါတွေကို ရောနှောပြီး ပေါင်းစပ်နိုင်ပါတယ်။ ဒီအပိုင်းမှာ ကျွန်တော်တို့ <a href="/course/chapter6/2">အပိုင်း ၂</a> မှာ လုပ်ခဲ့သလိုဟောင်းနွမ်းတဲ့ tokenizer တစ်ခုကနေ tokenizer အသစ်တစ်ခုကို train လုပ်မယ့်အစား၊ tokenizer တစ်ခုကို အစကနေ ဘယ်လိုတည်ဆောက်နိုင်လဲဆိုတာ ကြည့်ရပါမယ်။ အဲဒီအခါ သင်စိတ်ကူးနိုင်တဲ့ မည်သည့် tokenizer အမျိုးအစားကိုမဆို တည်ဆောက်နိုင်ပါလိမ့်မယ်။',$s,z,Us,h,gi="ပိုပြီးတိတိကျကျပြောရရင်၊ library ကို ဗဟိုချက်မဖြစ်တဲ့ <code>Tokenizer</code> class ကိုယ်တိုင်နဲ့ building blocks တွေကို submodule တွေအဖြစ် အုပ်စုဖွဲ့ထားပါတယ်။",ws,x,ji='<li><code>normalizers</code> မှာ သင်အသုံးပြုနိုင်တဲ့ <code>Normalizer</code> အမျိုးအစားအားလုံး (အပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/api/normalizers" rel="nofollow">ဒီနေရာမှာ</a> ကြည့်ပါ) ပါဝင်ပါတယ်။</li> <li><code>pre_tokenizers</code> မှာ သင်အသုံးပြုနိုင်တဲ့ <code>PreTokenizer</code> အမျိုးအစားအားလုံး (အပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/api/pre-tokenizers" rel="nofollow">ဒီနေရာမှာ</a> ကြည့်ပါ) ပါဝင်ပါတယ်။</li> <li><code>models</code> မှာ <code>BPE</code>, <code>WordPiece</code>, နဲ့ <code>Unigram</code> လိုမျိုး သင်အသုံးပြုနိုင်တဲ့ <code>Model</code> အမျိုးအစားမျိုးစုံ (အပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/api/models" rel="nofollow">ဒီနေရာမှာ</a> ကြည့်ပါ) ပါဝင်ပါတယ်။</li> <li><code>trainers</code> မှာ သင် corpus တစ်ခုပေါ်မှာ model ကို train လုပ်ဖို့ အသုံးပြုနိုင်တဲ့ <code>Trainer</code> အမျိုးအစားအမျိုးမျိုး (model အမျိုးအစားတစ်ခုစီအတွက် တစ်ခုစီ၊ အပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/api/trainers" rel="nofollow">ဒီနေရာမှာ</a> ကြည့်ပါ) ပါဝင်ပါတယ်။</li> <li><code>post_processors</code> မှာ သင်အသုံးပြုနိုင်တဲ့ <code>PostProcessor</code> အမျိုးအစားမျိုးစုံ (အပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/api/post-processors" rel="nofollow">ဒီနေရာမှာ</a> ကြည့်ပါ) ပါဝင်ပါတယ်။</li> <li><code>decoders</code> မှာ tokenization ရဲ့ outputs တွေကို decode လုပ်ဖို့ သင်အသုံးပြုနိုင်တဲ့ <code>Decoder</code> အမျိုးအစားမျိုးစုံ (အပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/components#decoders" rel="nofollow">ဒီနေရာမှာ</a> ကြည့်ပါ) ပါဝင်ပါတယ်။</li>',zs,I,fi='building blocks တွေရဲ့ စာရင်းအပြည့်အစုံကို <a href="https://huggingface.co/docs/tokenizers/components" rel="nofollow">ဒီနေရာမှာ</a> ရှာတွေ့နိုင်ပါတယ်။',hs,C,xs,Z,bi='ကျွန်တော်တို့ရဲ့ tokenizer အသစ်ကို train လုပ်ဖို့အတွက်၊ သေးငယ်တဲ့ text corpus တစ်ခုကို အသုံးပြုပါမယ် (ဒါမှ ဥပမာတွေက မြန်မြန်ဆန်ဆန် run မှာပါ)။ corpus ရယူခြင်းအဆင့်တွေက <a href="/course/chapter6/2">ဒီအခန်းရဲ့ အစပိုင်း</a> မှာ ကျွန်တော်တို့ လုပ်ခဲ့တဲ့အဆင့်တွေနဲ့ ဆင်တူပါတယ်။ ဒါပေမယ့် ဒီတစ်ကြိမ်မှာတော့ <a href="https://huggingface.co/datasets/wikitext" rel="nofollow">WikiText-2</a> dataset ကို အသုံးပြုပါမယ်။',Is,_,Cs,v,$i="<code>get_training_corpus()</code> function က batches of 1,000 texts တွေကို yield လုပ်မယ့် generator တစ်ခုဖြစ်ပြီး၊ ဒါတွေကို tokenizer ကို train ဖို့ ကျွန်တော်တို့ အသုံးပြုပါမယ်။",Zs,B,Ui="🤗 Tokenizers တွေကို text files တွေပေါ်မှာ တိုက်ရိုက် train လုပ်နိုင်ပါတယ်။ WikiText-2 ကနေ inputs/texts တွေအားလုံး ပါဝင်တဲ့ text file တစ်ခုကို locally အသုံးပြုနိုင်အောင် ဘယ်လို generate လုပ်ရမလဲဆိုတာ ဒီမှာ ဖော်ပြထားပါတယ်။",_s,V,vs,W,wi="နောက်မှာတော့ သင့်ကိုယ်ပိုင် BERT, GPT-2, နဲ့ XLNet tokenizers တွေကို အဆင့်ဆင့် ဘယ်လိုတည်ဆောက်ရမလဲဆိုတာ ပြသပေးပါမယ်။ ဒါက ကျွန်တော်တို့ကို အဓိက tokenization algorithms သုံးခုဖြစ်တဲ့ WordPiece, BPE, နဲ့ Unigram တို့ရဲ့ ဥပမာတစ်ခုစီကို ပေးပါလိမ့်မယ်။ BERT နဲ့ စတင်ကြရအောင်။",Bs,Q,Vs,R,zi="🤗 Tokenizers library နဲ့ tokenizer တစ်ခုတည်ဆောက်ဖို့အတွက်၊ ကျွန်တော်တို့ဟာ <code>models</code> တစ်ခုနဲ့ <code>Tokenizer</code> object တစ်ခုကို instantiate လုပ်ခြင်းဖြင့် စတင်ပြီး၊ ၎င်းရဲ့ <code>normalizer</code>, <code>pre_tokenizer</code>, <code>post_processor</code>, နဲ့ <code>decoder</code> attributes တွေကို ကျွန်တော်တို့ လိုချင်တဲ့ တန်ဖိုးတွေဆီ သတ်မှတ်ပေးပါတယ်။",Ws,N,hi="ဒီဥပမာအတွက်၊ WordPiece model တစ်ခုနဲ့ <code>Tokenizer</code> တစ်ခုကို ကျွန်တော်တို့ ဖန်တီးပါမယ်။",Qs,A,Rs,X,xi="<code>unk_token</code> ကို သတ်မှတ်ပေးရမှာပါ။ ဒါမှ model က မမြင်ဖူးသေးတဲ့ characters တွေ ကြုံတွေ့ရတဲ့အခါ ဘာကို ပြန်ပေးရမလဲဆိုတာ သိမှာပါ။ ဒီနေရာမှာ ကျွန်တော်တို့ သတ်မှတ်နိုင်တဲ့ တခြား arguments တွေကတော့ model ရဲ့ <code>vocab</code> (ကျွန်တော်တို့ model ကို train မှာဖြစ်တဲ့အတွက် ဒါကို သတ်မှတ်ဖို့ မလိုအပ်ပါဘူး) နဲ့ <code>max_input_chars_per_word</code> (word တစ်ခုစီအတွက် အမြင့်ဆုံးအရှည်ကို သတ်မှတ်ပေးပြီး၊ ဒီတန်ဖိုးထက် ပိုရှည်တဲ့ words တွေကို ပိုင်းခြားပါလိမ့်မယ်) တို့ ပါဝင်ပါတယ်။",Ns,q,Ii="tokenization ရဲ့ ပထမအဆင့်က normalization ဖြစ်တာကြောင့်၊ အဲဒါနဲ့ စတင်ကြပါစို့။ BERT ကို အများအားဖြင့် အသုံးပြုတဲ့အတွက် BERT အတွက် သတ်မှတ်နိုင်တဲ့ classic options တွေနဲ့ <code>BertNormalizer</code> တစ်ခုရှိပါတယ်၊ <code>lowercase</code> နဲ့ <code>strip_accents</code> က ရှင်းပြစရာမလိုပါဘူး၊ <code>clean_text</code> က control characters အားလုံးကို ဖယ်ရှားပြီး ထပ်နေတဲ့ spaces တွေကို တစ်ခုတည်းနဲ့ အစားထိုးပါတယ်၊ <code>handle_chinese_chars</code> က Chinese characters တွေပတ်ပတ်လည်မှာ spaces တွေ ထည့်ပေးပါတယ်။ <code>bert-base-uncased</code> tokenizer ကို ပြန်လည်ထုတ်လုပ်ဖို့၊ ဒီ normalizer ကို သတ်မှတ်ပေးနိုင်ပါတယ်။",As,G,Xs,L,Ci="သို့သော်လည်း၊ အထွေထွေအားဖြင့်၊ tokenizer အသစ်တစ်ခု တည်ဆောက်တဲ့အခါ 🤗 Tokenizers library ထဲမှာ အကောင်အထည်ဖော်ထားပြီးသား ဒီလိုအသုံးဝင်တဲ့ normalizer ကို သင်ရရှိမှာ မဟုတ်ပါဘူး၊ ဒါကြောင့် BERT normalizer ကို ကိုယ်တိုင် ဘယ်လိုဖန်တီးရမလဲဆိုတာ ကြည့်ရအောင်။ library က <code>Lowercase</code> normalizer နဲ့ <code>StripAccents</code> normalizer ကို ပံ့ပိုးပေးပြီး၊ <code>Sequence</code> ကို အသုံးပြုပြီး normalizers များစွာကို ပေါင်းစပ်နိုင်ပါတယ်။",qs,H,Gs,E,Zi="ကျွန်တော်တို့ <code>NFD</code> Unicode normalizer ကိုလည်း အသုံးပြုနေပါတယ်၊ ဘာလို့လဲဆိုတော့ မဟုတ်ရင် <code>StripAccents</code> normalizer က accented characters တွေကို မှန်ကန်စွာ မှတ်မိမှာ မဟုတ်ဘဲ ၎င်းတို့ကို ဖယ်ရှားနိုင်မှာ မဟုတ်ပါဘူး။",Ls,D,_i="အရင်က တွေ့ခဲ့ရတဲ့အတိုင်း၊ <code>normalizer</code> ရဲ့ <code>normalize_str()</code> method ကို အသုံးပြုပြီး ပေးထားတဲ့ text ပေါ်မှာ ဒါက ဘယ်လိုအကျိုးသက်ရောက်မှု ရှိလဲဆိုတာ ကြည့်နိုင်ပါတယ်။",Hs,S,Es,P,Ds,u,vi=`<p><strong>ဆက်လက်လေ့လာရန်</strong> ယခင် normalizers ၏ versions နှစ်ခုကို unicode character <code>u"\\u0085"</code> ပါဝင်သော string တစ်ခုပေါ်တွင် စမ်းသပ်ပါက၊ ဤ normalizers နှစ်ခုသည် အတိအကျတူညီခြင်းမရှိသည်ကို သင်သတိထားမိပါလိမ့်မည်။ | |
| <code>normalizers.Sequence</code> ပါသော version ကို အလွန်အမင်း ရှုပ်ထွေးမှုမဖြစ်စေရန်၊ <code>clean_text</code> argument ကို <code>True</code> (၎င်းသည် default behavior ဖြစ်သည်) ဟု သတ်မှတ်ထားသောအခါ <code>BertNormalizer</code> လိုအပ်သည့် Regex replacements များကို ကျွန်ုပ်တို့ ထည့်သွင်းမထားပါ။ သို့သော် စိတ်မပူပါနှင့်၊ အသုံးဝင်သော <code>BertNormalizer</code> ကို အသုံးမပြုဘဲ <code>normalizers.Replace</code> နှစ်ခုကို normalizers sequence တွင် ထပ်ထည့်ခြင်းဖြင့် အတိအကျတူညီသော normalization ကို ရရှိနိုင်ပါသည်။</p>`,Ss,F,Bi="နောက်တစ်ခုက pre-tokenization အဆင့်ပါ။ ထပ်မံပြီး၊ ကျွန်တော်တို့ အသုံးပြုနိုင်တဲ့ prebuilt <code>BertPreTokenizer</code> တစ်ခုရှိပါတယ်။",Ps,Y,Fs,K,Vi="ဒါမှမဟုတ် အစကနေ တည်ဆောက်နိုင်ပါတယ်။",Ys,O,Ks,ee,Wi="<code>Whitespace</code> pre-tokenizer က whitespace နဲ့ letters, digits, ဒါမှမဟုတ် underscore character မဟုတ်တဲ့ characters အားလုံးကို ပိုင်းခြားတာကြောင့်၊ ဒါက နည်းပညာအရ whitespace နဲ့ punctuation တွေပေါ်မှာ ပိုင်းခြားတယ်ဆိုတာ သတိပြုပါ။",Os,te,el,se,tl,le,Qi="အကယ်၍ သင်ဟာ whitespace ပေါ်မှာပဲ ပိုင်းခြားချင်တယ်ဆိုရင်၊ <code>WhitespaceSplit</code> pre-tokenizer ကို အစားအသုံးပြုသင့်ပါတယ်။",sl,ne,ll,ie,nl,oe,Ri="normalizers တွေနဲ့ တူတူပဲ၊ pre-tokenizers များစွာကို ပေါင်းစပ်ဖို့ <code>Sequence</code> ကို အသုံးပြုနိုင်ပါတယ်။",il,ae,ol,re,al,pe,Ni="tokenization pipeline ရဲ့ နောက်တစ်ဆင့်က inputs တွေကို model ကနေတစ်ဆင့် run ခြင်းပါ။ ကျွန်တော်တို့ model ကို initialization မှာ သတ်မှတ်ထားပြီးသားဖြစ်ပေမယ့်၊ ဒါကို train လုပ်ဖို့တော့ လိုအပ်ပါသေးတယ်။ ဒါအတွက် <code>WordPieceTrainer</code> လိုအပ်ပါလိမ့်မယ်။ 🤗 Tokenizers မှာ trainer တစ်ခုကို instantiate လုပ်တဲ့အခါ မှတ်ထားရမယ့် အဓိကအချက်ကတော့ သင်အသုံးပြုဖို့ ရည်ရွယ်ထားတဲ့ special tokens အားလုံးကို ၎င်းဆီ ပေးဖို့ လိုအပ်ပါတယ် — မဟုတ်ရင် ၎င်းတို့ training corpus ထဲမှာ မပါဝင်တဲ့အတွက် vocabulary ထဲကို ထည့်သွင်းပေးမှာ မဟုတ်ပါဘူး။",rl,ce,pl,Me,Ai="<code>vocab_size</code> နဲ့ <code>special_tokens</code> ကို သတ်မှတ်ခြင်းအပြင်၊ <code>min_frequency</code> (token တစ်ခု vocabulary ထဲမှာ ပါဝင်ဖို့ ဘယ်အကြိမ်ရေ အနည်းဆုံး ပေါ်လာရမလဲ) ကို သတ်မှတ်နိုင်ပါတယ် ဒါမှမဟုတ် <code>continuing_subword_prefix</code> ကို ပြောင်းလဲနိုင်ပါတယ် (ကျွန်တော်တို့ <code>##</code> နဲ့ မတူတာတစ်ခုကို အသုံးပြုချင်ရင်)။",cl,de,Xi="ကျွန်တော်တို့ အစောပိုင်းက သတ်မှတ်ခဲ့တဲ့ iterator ကို အသုံးပြုပြီး model ကို train လုပ်ဖို့အတွက်၊ ဒီ command ကို run ရုံပါပဲ။",Ml,me,dl,ye,qi="ကျွန်တော်တို့ tokenizer ကို train လုပ်ဖို့ text files တွေကိုလည်း အသုံးပြုနိုင်ပါတယ်။ ဒါက အောက်ပါအတိုင်း ဖြစ်ပါလိမ့်မယ် (ကျွန်တော်တို့ model ကို အရင်ဆုံး empty <code>WordPiece</code> တစ်ခုနဲ့ reinitialize လုပ်ပါတယ်)-",ml,ke,yl,Je,Gi="ကိစ္စနှစ်ခုလုံးမှာ၊ <code>encode()</code> method ကို ခေါ်ခြင်းဖြင့် tokenizer ကို text တစ်ခုပေါ်မှာ စမ်းသပ်နိုင်ပါတယ်။",kl,Te,Jl,ue,Tl,ge,Li="ရရှိတဲ့ <code>encoding</code> ဟာ <code>Encoding</code> တစ်ခုဖြစ်ပြီး၊ ၎င်းရဲ့ attributes များစွာ ( <code>ids</code>, <code>type_ids</code>, <code>tokens</code>, <code>offsets</code>, <code>attention_mask</code>, <code>special_tokens_mask</code>, နဲ့ <code>overflowing</code>) ထဲမှာ tokenizer ရဲ့ လိုအပ်တဲ့ outputs အားလုံး ပါဝင်ပါတယ်။",ul,je,Hi="tokenization pipeline ရဲ့ နောက်ဆုံးအဆင့်က post-processing ပါ။ ကျွန်တော်တို့ <code>[CLS]</code> token ကို အစမှာ ထည့်သွင်းဖို့နဲ့ <code>[SEP]</code> token ကို အဆုံးမှာ ထည့်သွင်းဖို့ လိုအပ်ပါတယ် (ဒါမှမဟုတ် sentence pair ရှိရင် sentence တစ်ခုစီရဲ့ နောက်မှာ)။ ဒါအတွက် <code>TemplateProcessor</code> ကို ကျွန်တော်တို့ အသုံးပြုပါမယ်၊ ဒါပေမယ့် ပထမဆုံး vocabulary ထဲက <code>[CLS]</code> နဲ့ <code>[SEP]</code> tokens တွေရဲ့ IDs တွေကို သိဖို့ လိုအပ်ပါတယ်။",gl,fe,jl,be,fl,$e,Ei="<code>TemplateProcessor</code> အတွက် template ကို ရေးဖို့၊ single sentence တစ်ခုနဲ့ sentence pair တစ်ခုကို ဘယ်လို ကိုင်တွယ်ရမယ်ဆိုတာ သတ်မှတ်ရပါမယ်။ နှစ်ခုလုံးအတွက်၊ ကျွန်တော်တို့ အသုံးပြုချင်တဲ့ special tokens တွေကို ရေးပါတယ်၊ ပထမ (သို့မဟုတ် single) sentence ကို <code>$A</code> နဲ့ ကိုယ်စားပြုပြီး၊ ဒုတိယ sentence (pair တစ်ခုကို encoding လုပ်ရင်) ကို <code>$B</code> နဲ့ ကိုယ်စားပြုပါတယ်။ ဒါတွေတစ်ခုစီ (special tokens နဲ့ sentences) အတွက်၊ colon နောက်မှာ သက်ဆိုင်ရာ token type ID ကိုလည်း သတ်မှတ်ပါတယ်။",bl,Ue,Di="classic BERT template ကို အောက်ပါအတိုင်း သတ်မှတ်ပါတယ်။",$l,we,Ul,ze,Si="special tokens တွေရဲ့ IDs တွေကို ပေးပို့ဖို့ လိုအပ်တယ်ဆိုတာ သတိပြုပါ။ ဒါမှ tokenizer က ၎င်းတို့ကို ၎င်းတို့ရဲ့ IDs တွေအဖြစ် မှန်ကန်စွာ ပြောင်းလဲနိုင်မှာပါ။",wl,he,Pi="ဒါကို ထည့်သွင်းပြီးတာနဲ့၊ ကျွန်တော်တို့ရဲ့ ယခင်ဥပမာကို ပြန်ကြည့်မယ်ဆိုရင်။",zl,xe,hl,Ie,xl,Ce,Fi="ပြီးတော့ sentence pair တစ်ခုပေါ်မှာဆိုရင်၊ မှန်ကန်တဲ့ ရလဒ်ကို ကျွန်တော်တို့ ရရှိပါတယ်။",Il,Ze,Cl,_e,Zl,ve,Yi="ဒီ tokenizer ကို အစကနေ တည်ဆောက်တာ နီးပါးပြီးစီးပါပြီ — နောက်ဆုံးအဆင့်က decoder တစ်ခု ထည့်သွင်းဖို့ပါ။",_l,Be,vl,Ve,Ki="ကျွန်တော်တို့ရဲ့ ယခင် <code>encoding</code> ပေါ်မှာ စမ်းသပ်ကြည့်ရအောင်…",Bl,We,Vl,Qe,Wl,Re,Oi="ကောင်းပါပြီ! ကျွန်တော်တို့ရဲ့ tokenizer ကို ဒီလို JSON file တစ်ခုတည်းမှာ သိမ်းဆည်းနိုင်ပါတယ်။",Ql,Ne,Rl,Ae,eo="အဲဒီနောက် <code>from_file()</code> method နဲ့ <code>Tokenizer</code> object တစ်ခုထဲကို အဲဒီ file ကို ပြန်လည် load လုပ်နိုင်ပါတယ်။",Nl,Xe,Al,qe,to="ဒီ tokenizer ကို 🤗 Transformers မှာ အသုံးပြုဖို့အတွက်၊ ကျွန်တော်တို့ဟာ ဒါကို <code>PreTrainedTokenizerFast</code> ထဲမှာ wrap လုပ်ရပါမယ်။ ကျွန်တော်တို့ဟာ generic class ကို အသုံးပြုနိုင်ပါတယ် ဒါမှမဟုတ် ကျွန်တော်တို့ရဲ့ tokenizer က လက်ရှိ model တစ်ခုနဲ့ ကိုက်ညီတယ်ဆိုရင် အဲဒီ class ကို အသုံးပြုနိုင်ပါတယ် (ဒီနေရာမှာ <code>BertTokenizerFast</code>)။ သင်ဟာ ဒီသင်ခန်းစာကို tokenizer အသစ်တစ်ခု တည်ဆောက်ဖို့ အသုံးပြုတယ်ဆိုရင်၊ ပထမ option ကို အသုံးပြုရပါလိမ့်မယ်။",Xl,Ge,so="tokenizer ကို <code>PreTrainedTokenizerFast</code> ထဲမှာ wrap လုပ်ဖို့၊ ကျွန်တော်တို့ တည်ဆောက်ခဲ့တဲ့ tokenizer ကို <code>tokenizer_object</code> အဖြစ် ပေးနိုင်ပါတယ် ဒါမှမဟုတ် ကျွန်တော်တို့ သိမ်းဆည်းခဲ့တဲ့ tokenizer file ကို <code>tokenizer_file</code> အဖြစ် ပေးနိုင်ပါတယ်။ အဓိက မှတ်ထားရမယ့်အချက်ကတော့ ကျွန်တော်တို့ special tokens အားလုံးကို ကိုယ်တိုင် သတ်မှတ်ပေးရပါမယ်၊ ဘာလို့လဲဆိုတော့ အဲဒီ class က <code>tokenizer</code> object ကနေ ဘယ် token က mask token လဲ၊ <code>[CLS]</code> token လဲ စတာတွေကို မသိနိုင်လို့ပါ။",ql,Le,Gl,He,lo="အကယ်၍ သင်ဟာ သီးခြား tokenizer class တစ်ခု (ဥပမာ - <code>BertTokenizerFast</code>) ကို အသုံးပြုနေတယ်ဆိုရင်၊ default tokens တွေနဲ့ ကွာခြားတဲ့ special tokens တွေကိုသာ သတ်မှတ်ပေးဖို့ လိုအပ်ပါလိမ့်မယ် (ဒီနေရာမှာတော့ မရှိပါဘူး)။",Ll,Ee,Hl,De,no="အဲဒီနောက် ဒီ tokenizer ကို တခြား 🤗 Transformers tokenizer တွေလိုပဲ သင်အသုံးပြုနိုင်ပါတယ်။ <code>save_pretrained()</code> method နဲ့ သိမ်းဆည်းနိုင်ပါတယ် ဒါမှမဟုတ် <code>push_to_hub()</code> method နဲ့ Hub ကို upload လုပ်နိုင်ပါတယ်။",El,Se,io="ကျွန်တော်တို့ WordPiece tokenizer တစ်ခုကို ဘယ်လိုတည်ဆောက်ရမယ်ဆိုတာ မြင်တွေ့ခဲ့ရပြီဆိုတော့၊ BPE tokenizer တစ်ခုအတွက်လည်း အတူတူလုပ်ကြစို့။ သင်အဆင့်တွေအားလုံးကို သိပြီးသားဖြစ်တဲ့အတွက် နည်းနည်းပိုမြန်မြန် သွားပါမယ်၊ ခြားနားချက်တွေကိုပဲ မီးမောင်းထိုးပြပါမယ်။",Dl,Pe,Sl,Fe,oo="အခု GPT-2 tokenizer တစ်ခု တည်ဆောက်ကြစို့။ BERT tokenizer အတွက်လိုပဲ၊ BPE model တစ်ခုနဲ့ <code>Tokenizer</code> တစ်ခုကို initialize လုပ်ခြင်းဖြင့် စတင်ပါမယ်။",Pl,Ye,Fl,Ke,ao="BERT အတွက်လိုပဲ၊ ကျွန်တော်တို့မှာ vocabulary ရှိရင် (ဒီကိစ္စမှာ <code>vocab</code> နဲ့ <code>merges</code> ကို ပေးဖို့ လိုပါလိမ့်မယ်) ဒီ model ကို vocabulary နဲ့ initialize လုပ်နိုင်ပါတယ်။ ဒါပေမယ့် ကျွန်တော်တို့ အစကနေ train မှာဖြစ်တဲ့အတွက်၊ ဒါကို လုပ်ဖို့မလိုအပ်ပါဘူး။ GPT-2 က byte-level BPE ကို အသုံးပြုပြီး ဒါက <code>unk_token</code> မလိုအပ်တဲ့အတွက် <code>unk_token</code> ကို သတ်မှတ်ပေးဖို့လည်း ကျွန်တော်တို့ မလိုအပ်ပါဘူး။",Yl,Oe,ro="GPT-2 က normalizer ကို အသုံးမပြုတာကြောင့်၊ အဲဒီအဆင့်ကို ကျော်ပြီး pre-tokenization ကို တိုက်ရိုက်သွားပါမယ်-",Kl,et,Ol,tt,po="ဒီနေရာမှာ <code>ByteLevel</code> ကို ကျွန်တော်တို့ ထည့်သွင်းခဲ့တဲ့ option က sentence အစမှာ space မထည့်ဖို့ပါပဲ (ဒါက default အားဖြင့် ထည့်ပါတယ်)။ အရင်ကလို ဥပမာ text တစ်ခုရဲ့ pre-tokenization ကို ကြည့်နိုင်ပါတယ်။",en,st,tn,lt,sn,nt,co="နောက်တစ်ခုက training လိုအပ်တဲ့ model ပါ။ GPT-2 အတွက်၊ တစ်ခုတည်းသော special token က end-of-text token ပါ။",ln,it,nn,ot,Mo="<code>WordPieceTrainer</code> နဲ့ တူတူပဲ၊ <code>vocab_size</code> နဲ့ <code>special_tokens</code> အပြင်၊ ကျွန်တော်တို့ လိုအပ်ရင် <code>min_frequency</code> ကို သတ်မှတ်နိုင်ပါတယ်၊ ဒါမှမဟုတ် end-of-word suffix ( <code></w></code> လိုမျိုး) ရှိရင် <code>end_of_word_suffix</code> နဲ့ သတ်မှတ်နိုင်ပါတယ်။",on,at,mo="ဒီ tokenizer ကို text files တွေပေါ်မှာလည်း train လုပ်နိုင်ပါတယ်။",an,rt,rn,pt,yo="sample text တစ်ခုရဲ့ tokenization ကို ကြည့်ရအောင်-",pn,ct,cn,Mt,Mn,dt,ko="GPT-2 tokenizer အတွက် byte-level post-processing ကို အောက်ပါအတိုင်း ကျွန်တော်တို့ အသုံးပြုပါတယ်။",dn,mt,mn,yt,Jo="<code>trim_offsets = False</code> option က post-processor ကို ‘Ġ’ နဲ့ စတင်တဲ့ tokens တွေရဲ့ offsets တွေကို ရှိတဲ့အတိုင်း ထားဖို့ ညွှန်ပြပါတယ်။ ဒီနည်းနဲ့ offsets တွေရဲ့ အစက word ရဲ့ ပထမဆုံး character ကို ညွှန်ပြမယ့်အစား word ရဲ့ ရှေ့က space ကို ညွှန်ပြပါလိမ့်မယ် (space က နည်းပညာအရ token ရဲ့ အစိတ်အပိုင်းဖြစ်တာကြောင့်)။ ကျွန်တော်တို့ အခု encode လုပ်ခဲ့တဲ့ text နဲ့ ရလဒ်ကို ကြည့်ရအောင်။ <code>'Ġtest'</code> က index 4 မှာရှိတဲ့ token ဖြစ်ပါတယ်။",yn,kt,kn,Jt,Jn,Tt,To="နောက်ဆုံးအနေနဲ့၊ byte-level decoder တစ်ခု ထည့်သွင်းပါတယ်။",Tn,ut,un,gt,uo="ပြီးတော့ ဒါက မှန်ကန်စွာ အလုပ်လုပ်လားဆိုတာ ထပ်မံစစ်ဆေးနိုင်ပါတယ်။",gn,jt,jn,ft,fn,bt,go="ကောင်းပါပြီ! အခု ပြီးစီးပြီဆိုတော့၊ tokenizer ကို အရင်လိုပဲ သိမ်းဆည်းနိုင်ပြီး၊ 🤗 Transformers မှာ အသုံးပြုချင်တယ်ဆိုရင် <code>PreTrainedTokenizerFast</code> ဒါမှမဟုတ် <code>GPT2TokenizerFast</code> ထဲမှာ wrap လုပ်နိုင်ပါတယ်။",bn,$t,$n,Ut,jo="ဒါမှမဟုတ်:",Un,wt,wn,zt,fo="နောက်ဆုံး ဥပမာအနေနဲ့၊ Unigram tokenizer တစ်ခုကို အစကနေ ဘယ်လိုတည်ဆောက်ရမလဲဆိုတာ ကျွန်တော်တို့ ပြသပေးပါမယ်။",zn,ht,hn,xt,bo="အခု XLNet tokenizer တစ်ခု တည်ဆောက်ကြစို့။ ယခင် tokenizers တွေအတွက်လိုပဲ၊ Unigram model တစ်ခုနဲ့ <code>Tokenizer</code> တစ်ခုကို initialize လုပ်ခြင်းဖြင့် စတင်ပါမယ်။",xn,It,In,Ct,$o="ထပ်မံပြီး၊ ကျွန်တော်တို့မှာ vocabulary ရှိရင် ဒီ model ကို vocabulary နဲ့ initialize လုပ်နိုင်ပါတယ်။",Cn,Zt,Uo="normalization အတွက်၊ XLNet က replacements အနည်းငယ် (SentencePiece ကနေလာတာပါ) ကို အသုံးပြုပါတယ်။",Zn,_t,_n,vt,wo="ဒါက <code>“</code> နဲ့ <code>”</code> တွေကို <code>”</code> နဲ့ အစားထိုးပြီး spaces နှစ်ခု သို့မဟုတ် ထို့ထက်ပိုတဲ့ sequence တွေကို single space တစ်ခုနဲ့ အစားထိုးပါတယ်၊ ဒါ့အပြင် tokenize လုပ်မယ့် texts ထဲက accents တွေကို ဖယ်ရှားပါတယ်။",vn,Bt,zo="မည်သည့် SentencePiece tokenizer အတွက်မဆို အသုံးပြုရမယ့် pre-tokenizer က <code>Metaspace</code> ပါ။",Bn,Vt,Vn,Wt,ho="အရင်ကလို ဥပမာ text တစ်ခုရဲ့ pre-tokenization ကို ကြည့်နိုင်ပါတယ်။",Wn,Qt,Qn,Rt,Rn,Nt,xo="နောက်တစ်ခုက training လိုအပ်တဲ့ model ပါ။ XLNet မှာ special tokens တွေ အတော်လေး များပါတယ်။",Nn,At,An,Xt,Io="<code>UnigramTrainer</code> အတွက် မမေ့မလျော့ ထည့်သွင်းရမယ့် အရေးကြီးတဲ့ argument တစ်ခုက <code>unk_token</code> ပါ။ ကျွန်တော်တို့ဟာ Unigram algorithm အတွက် သီးခြား arguments တွေဖြစ်တဲ့ tokens တွေ ဖယ်ရှားတဲ့ အဆင့်တစ်ခုစီအတွက် <code>shrinking_factor</code> (default က 0.75) ဒါမှမဟုတ် ပေးထားတဲ့ token တစ်ခုရဲ့ အမြင့်ဆုံးအရှည်ကို သတ်မှတ်ဖို့ <code>max_piece_length</code> (default က 16) တို့ကိုလည်း ပေးနိုင်ပါတယ်။",Xn,qt,Co="ဒီ tokenizer ကို text files တွေပေါ်မှာလည်း train လုပ်နိုင်ပါတယ်။",qn,Gt,Gn,Lt,Zo="sample text တစ်ခုရဲ့ tokenization ကို ကြည့်ရအောင်။",Ln,Ht,Hn,Et,En,Dt,_o="XLNet ရဲ့ ထူးခြားချက်တစ်ခုကတော့ <code><cls></code> token ကို sentence ရဲ့ အဆုံးမှာ ထားပြီး၊ type ID ကို 2 (အခြား tokens တွေနဲ့ ကွဲပြားစေရန်) ပေးထားတာပါပဲ။ ရလဒ်အနေနဲ့ ဒါက ဘယ်ဘက်မှာ padding လုပ်တာပါ။ special tokens အားလုံးနဲ့ token type IDs တွေကို BERT အတွက်လို template တစ်ခုနဲ့ ကျွန်တော်တို့ ကိုင်တွယ်နိုင်ပါတယ်။ ဒါပေမယ့် ပထမဆုံး <code><cls></code> နဲ့ <code><sep></code> tokens တွေရဲ့ IDs တွေကို ရယူရပါမယ်။",Dn,St,Sn,Pt,Pn,Ft,vo="template က ဒီလိုမျိုး ဖြစ်ပါတယ်။",Fn,Yt,Yn,Kt,Bo="ပြီးတော့ sentence pair တစ်ခုကို encode လုပ်ခြင်းဖြင့် ဒါက အလုပ်လုပ်လားဆိုတာ စမ်းသပ်နိုင်ပါတယ်။",Kn,Ot,On,es,ei,ts,Vo="နောက်ဆုံးအနေနဲ့၊ <code>Metaspace</code> decoder တစ်ခု ထည့်သွင်းပါတယ်။",ti,ss,si,ls,Wo="ပြီးတော့ ဒီ tokenizer နဲ့ ပြီးပါပြီ! ကျွန်တော်တို့ tokenizer ကို အရင်လိုပဲ သိမ်းဆည်းနိုင်ပြီး၊ 🤗 Transformers မှာ အသုံးပြုချင်တယ်ဆိုရင် <code>PreTrainedTokenizerFast</code> ဒါမှမဟုတ် <code>XLNetTokenizerFast</code> ထဲမှာ wrap လုပ်နိုင်ပါတယ်။ <code>PreTrainedTokenizerFast</code> ကို အသုံးပြုတဲ့အခါ သတိပြုရမယ့်အချက်တစ်ခုကတော့ special tokens တွေအပြင်၊ Hugging Face library ကို ဘယ်ဘက်ကနေ padding လုပ်ဖို့ ကျွန်တော်တို့ ပြောပြဖို့ လိုအပ်ပါတယ်။",li,ns,ni,is,Qo="ဒါမှမဟုတ်:",ii,os,oi,as,Ro="existing tokenizers တွေကို တည်ဆောက်ရာမှာ building blocks အမျိုးမျိုးကို ဘယ်လိုအသုံးပြုလဲဆိုတာ သင်မြင်တွေ့ခဲ့ရပြီဆိုတော့၊ 🤗 Tokenizers library နဲ့ သင်လိုချင်တဲ့ မည်သည့် tokenizer ကိုမဆို ရေးနိုင်ပြီး 🤗 Transformers မှာ အသုံးပြုနိုင်ပါလိမ့်မယ်။",ai,rs,ri,ps,No="<li><strong>Tokenization</strong>: စာသား (သို့မဟုတ် အခြားဒေတာ) ကို AI မော်ဒယ်များ စီမံဆောင်ရွက်နိုင်ရန် tokens တွေအဖြစ် ပိုင်းခြားပေးသည့် လုပ်ငန်းစဉ်။</li> <li><strong>Normalization</strong>: စာသားကို သန့်ရှင်းရေးလုပ်ခြင်း (ဥပမာ- needless whitespace ဖယ်ရှားခြင်း၊ lowercasing, accents ဖယ်ရှားခြင်း)။</li> <li><strong>Pre-tokenization</strong>: Subword tokenization မလုပ်ဆောင်မီ စာသားကို ပိုမိုသေးငယ်သော entities (ဥပမာ- words) အဖြစ် အကြိုပိုင်းခြားခြင်း။</li> <li><strong>Tokens Sequence</strong>: စာသားကို ပိုင်းခြားပြီးနောက် ရရှိသော tokens များ၏ အစဉ်လိုက်။</li> <li><strong>Post-processing</strong>: Model ၏ output များကို နောက်ဆုံးအသုံးပြုမှုအတွက် ပြင်ဆင်ခြင်း လုပ်ငန်းစဉ်။</li> <li><strong>Special Tokens</strong>: Tokenizer သို့မဟုတ် model အတွက် သီးခြားအဓိပ္ပာယ်ရှိသော tokens များ (ဥပမာ- <code>[CLS]</code>, <code>[SEP]</code>, <code>[PAD]</code>)။</li> <li><strong>Attention Mask</strong>: မော်ဒယ်ကို အာရုံစိုက်သင့်သည့် tokens များနှင့် လျစ်လျူရှုသင့်သည့် (padding) tokens များကို ခွဲခြားပေးသည့် binary mask။</li> <li><strong>Token Type IDs</strong>: Sentence pair လုပ်ငန်းများတွင် input sequence တစ်ခုစီမှ token တစ်ခုစီသည် မည်သည့် sentence (ပထမ သို့မဟုတ် ဒုတိယ) နှင့် သက်ဆိုင်သည်ကို ဖော်ပြပေးသော IDs များ။</li> <li><strong>🤗 Tokenizers Library</strong>: Rust ဘာသာနဲ့ ရေးသားထားတဲ့ Hugging Face library တစ်ခုဖြစ်ပြီး မြန်ဆန်ထိရောက်တဲ့ tokenization ကို လုပ်ဆောင်ပေးသည်။</li> <li><strong><code>Tokenizer</code> Class</strong>: 🤗 Tokenizers library မှ အဓိက tokenizer class။</li> <li><strong><code>normalizers</code> Submodule</strong>: Normalization building blocks များ ပါဝင်သော submodule။</li> <li><strong><code>Normalizer</code></strong>: Normalization logic ကို အကောင်အထည်ဖော်ထားသော class။</li> <li><strong><code>pre_tokenizers</code> Submodule</strong>: Pre-tokenization building blocks များ ပါဝင်သော submodule။</li> <li><strong><code>PreTokenizer</code></strong>: Pre-tokenization logic ကို အကောင်အထည်ဖော်ထားသော class။</li> <li><strong><code>models</code> Submodule</strong>: Subword tokenization models များ (BPE, WordPiece, Unigram) ပါဝင်သော submodule။</li> <li><strong><code>Model</code></strong>: Subword tokenization algorithm ကို အကောင်အထည်ဖော်ထားသော class။</li> <li><strong>BPE (Byte-Pair Encoding)</strong>: Subword tokenization algorithm တစ်မျိုး။</li> <li><strong>WordPiece</strong>: Subword tokenization algorithm တစ်မျိုး။</li> <li><strong>Unigram</strong>: Subword tokenization algorithm တစ်မျိုး။</li> <li><strong><code>trainers</code> Submodule</strong>: Model training အတွက် trainers များ ပါဝင်သော submodule။</li> <li><strong><code>Trainer</code></strong>: Model ကို corpus တစ်ခုပေါ်တွင် train လုပ်ရန် အသုံးပြုသော class။</li> <li><strong>Corpus</strong>: စာသား (သို့မဟုတ် အခြားဒေတာ) အစုအဝေးကြီးတစ်ခု။</li> <li><strong><code>post_processors</code> Submodule</strong>: Post-processing building blocks များ ပါဝင်သော submodule။</li> <li><strong><code>PostProcessor</code></strong>: Post-processing logic ကို အကောင်အထည်ဖော်ထားသော class။</li> <li><strong><code>decoders</code> Submodule</strong>: Tokenization outputs များကို decode လုပ်ရန် decoders များ ပါဝင်သော submodule။</li> <li><strong><code>Decoder</code></strong>: Decoding logic ကို အကောင်အထည်ဖော်ထားသော class။</li> <li><strong><code>get_training_corpus()</code> Function</strong>: Tokenizer ကို လေ့ကျင့်ရန်အတွက် batches of texts များကို yield လုပ်သော generator function။</li> <li><strong>Generator</strong>: Python တွင် iteration လုပ်နိုင်သော object တစ်ခုဖြစ်ပြီး ၎င်းသည် အရာအားလုံးကို memory ထဲသို့ တစ်ပြိုင်နက်တည်း သိမ်းဆည်းမထားဘဲ လိုအပ်သလို တန်ဖိုးများကို ထုတ်ပေးသည်။</li> <li><strong>WikiText-2 Dataset</strong>: ဘာသာစကား model များကို လေ့ကျင့်ရန် အသုံးပြုသော dataset တစ်ခု။</li> <li><strong>Text Files</strong>: စာသားအချက်အလက်များသာ ပါဝင်သော ဖိုင်များ။</li> <li><strong>BERT Tokenizer</strong>: BERT model အတွက် အသုံးပြုသော tokenizer။</li> <li><strong>GPT-2 Tokenizer</strong>: GPT-2 model အတွက် အသုံးပြုသော tokenizer။</li> <li><strong>XLNet Tokenizer</strong>: XLNet model အတွက် အသုံးပြုသော tokenizer။</li> <li><strong><code>models.WordPiece(unk_token="[UNK]")</code></strong>: Unknown token အဖြစ် <code>[UNK]</code> ကို အသုံးပြုသော WordPiece model ကို ဖန်တီးခြင်း။</li> <li><strong><code>unk_token</code></strong>: Model က မသိသော tokens များကို ကိုယ်စားပြုသော special token။</li> <li><strong><code>vocab</code></strong>: Model ၏ vocabulary (သိရှိသော tokens များစာရင်း)။</li> <li><strong><code>max_input_chars_per_word</code></strong>: word တစ်ခုအတွက် အမြင့်ဆုံး character အရေအတွက်။</li> <li><strong><code>BertNormalizer</code></strong>: BERT tokenizer အတွက် အကြိုတည်ဆောက်ထားသော normalizer class။</li> <li><strong><code>lowercase</code></strong>: စာလုံးများကို အသေးစာလုံးများအဖြစ် ပြောင်းလဲခြင်း။</li> <li><strong><code>strip_accents</code></strong>: စာလုံးများပေါ်ရှိ accents များကို ဖယ်ရှားခြင်း။</li> <li><strong><code>clean_text</code></strong>: Control characters များကို ဖယ်ရှားခြင်းနှင့် ထပ်နေသော spaces များကို တစ်ခုတည်းဖြင့် အစားထိုးခြင်း။</li> <li><strong><code>handle_chinese_chars</code></strong>: Chinese characters များပတ်ပတ်လည်တွင် spaces တွေ ထည့်သွင်းခြင်း။</li> <li><strong><code>bert-base-uncased</code></strong>: BERT model ၏ base version အတွက် checkpoint identifier (uncased version)။</li> <li><strong><code>normalizers.Sequence</code></strong>: normalizers များစွာကို ပေါင်းစပ်ရန် အသုံးပြုသော class။</li> <li><strong><code>normalizers.NFD()</code></strong>: Unicode normalization form D (Canonical Decomposition) ကို အသုံးပြုသော normalizer။</li> <li><strong><code>normalizers.Lowercase()</code></strong>: စာလုံးများကို အသေးစာလုံးများအဖြစ် ပြောင်းလဲသော normalizer။</li> <li><strong><code>normalizers.StripAccents()</code></strong>: accents များကို ဖယ်ရှားသော normalizer။</li> <li><strong><code>normalize_str()</code> Method</strong>: Normalizer object မှ string တစ်ခုကို normalize လုပ်သော method။</li> <li><strong><code>BertPreTokenizer</code></strong>: BERT tokenizer အတွက် အကြိုတည်ဆောက်ထားသော pre-tokenizer class။</li> <li><strong><code>pre_tokenizers.Whitespace()</code></strong>: whitespace နှင့် punctuation ဖြင့် ပိုင်းခြားသော pre-tokenizer။</li> <li><strong><code>pre_tokenizers.WhitespaceSplit()</code></strong>: whitespace ဖြင့်သာ ပိုင်းခြားသော pre-tokenizer။</li> <li><strong><code>pre_tokenizers.Punctuation()</code></strong>: punctuation ဖြင့် ပိုင်းခြားသော pre-tokenizer။</li> <li><strong><code>pre_tokenize_str()</code> Method</strong>: Pre-tokenizer object မှ string တစ်ခုကို pre-tokenize လုပ်သော method။</li> <li><strong><code>WordPieceTrainer</code></strong>: WordPiece model ကို train လုပ်ရန်အတွက် trainer class။</li> <li><strong><code>vocab_size</code></strong>: vocabulary ၏ အမြင့်ဆုံးအရွယ်အစား။</li> <li><strong><code>special_tokens</code></strong>: Model ၏ special tokens များ။</li> <li><strong><code>min_frequency</code></strong>: token တစ်ခု vocabulary ထဲမှာ ပါဝင်ဖို့ ဘယ်အကြိမ်ရေ အနည်းဆုံး ပေါ်လာရမလဲ။</li> <li><strong><code>continuing_subword_prefix</code></strong>: subword တစ်ခု ဆက်နေကြောင်း ဖော်ပြသော prefix (ဥပမာ- <code>##</code>)။</li> <li><strong><code>train_from_iterator()</code> Method</strong>: iterator မှ data ကို အသုံးပြုပြီး tokenizer ကို train လုပ်သော method။</li> <li><strong><code>train()</code> Method</strong>: text files များမှ data ကို အသုံးပြုပြီး tokenizer ကို train လုပ်သော method။</li> <li><strong><code>encode()</code> Method</strong>: စာသားကို tokens ID များအဖြစ် ပြောင်းလဲပေးသော tokenizer method။</li> <li><strong><code>Encoding</code> Object</strong>: <code>encode()</code> method မှ ပြန်ပေးသော object ဖြစ်ပြီး encoded inputs အားလုံး ပါဝင်သည်။</li> <li><strong><code>ids</code></strong>: Encoded tokens များ၏ ID များ။</li> <li><strong><code>type_ids</code></strong>: Token type IDs များ။</li> <li><strong><code>tokens</code></strong>: Tokenized string များ၏ list။</li> <li><strong><code>offsets</code></strong>: Offset mapping များ။</li> <li><strong><code>attention_mask</code></strong>: Attention mask။</li> <li><strong><code>special_tokens_mask</code></strong>: Special tokens mask။</li> <li><strong><code>overflowing</code></strong>: Truncate လုပ်ထားသော tokens များ။</li> <li><strong><code>token_to_id()</code> Method</strong>: Token string ကို ၎င်း၏ ID သို့ ပြောင်းလဲပေးသော tokenizer method။</li> <li><strong><code>TemplateProcessing</code></strong>: Post-processing အတွက် template ကို အသုံးပြုသော processor class။</li> <li><strong><code>single</code></strong>: single sentence အတွက် template။</li> <li><strong><code>pair</code></strong>: sentence pair အတွက် template။</li> <li><strong><code>$A</code></strong>: ပထမ sentence ကို ကိုယ်စားပြုသော placeholder။</li> <li><strong><code>$B</code></strong>: ဒုတိယ sentence ကို ကိုယ်စားပြုသော placeholder။</li> <li><strong><code>WordPiece Decoder</code></strong>: WordPiece tokens များကို text အဖြစ် ပြန်ပြောင်းပေးသော decoder။</li> <li><strong><code>prefix="##"</code></strong>: WordPiece decoder အတွက် subword prefix။</li> <li><strong><code>decode()</code> Method</strong>: Token IDs များကို text အဖြစ် ပြန်ပြောင်းပေးသော tokenizer method။</li> <li><strong>JSON File</strong>: JavaScript Object Notation format ဖြင့် သိမ်းဆည်းထားသော ဖိုင်။</li> <li><strong><code>save("tokenizer.json")</code></strong>: Tokenizer ကို JSON file အဖြစ် သိမ်းဆည်းသော method။</li> <li><strong><code>from_file("tokenizer.json")</code></strong>: JSON file မှ tokenizer ကို load လုပ်သော method။</li> <li><strong><code>PreTrainedTokenizerFast</code></strong>: 🤗 Transformers library မှ generic fast tokenizer class။</li> <li><strong><code>BertTokenizerFast</code></strong>: BERT model အတွက် သီးခြား fast tokenizer class။</li> <li><strong><code>tokenizer_object</code></strong>: <code>PreTrainedTokenizerFast</code> သို့ ပေးပို့သော tokenizer object။</li> <li><strong><code>tokenizer_file</code></strong>: <code>PreTrainedTokenizerFast</code> သို့ ပေးပို့သော tokenizer file ၏ path။</li> <li><strong><code>bos_token</code> (Beginning Of Sentence Token)</strong>: Sentence ၏ အစကို ကိုယ်စားပြုသော special token။</li> <li><strong><code>eos_token</code> (End Of Sentence Token)</strong>: Sentence ၏ အဆုံးကို ကိုယ်စားပြုသော special token။</li> <li><strong><code>pad_token</code> (Padding Token)</strong>: Sequence များကို တူညီသောအရှည်ဖြစ်အောင် ဖြည့်စွက်ရန် အသုံးပြုသော special token။</li> <li><strong><code>cls_token</code></strong>: BERT model တွင် sequence ၏ အစကို ကိုယ်စားပြုသော special token။</li> <li><strong><code>sep_token</code></strong>: BERT model တွင် sentence တစ်ခု၏ အဆုံး သို့မဟုတ် sentence နှစ်ခုကြား ပိုင်းခြားရန် အသုံးပြုသော special token။</li> <li><strong><code>mask_token</code></strong>: Masked Language Modeling (MLM) တွင် စကားလုံးများကို ဝှက်ထားရန် အသုံးပြုသော special token။</li> <li><strong><code>save_pretrained()</code> Method</strong>: <code>PreTrainedTokenizerFast</code> ကို pretrained model အဖြစ် သိမ်းဆည်းသော method။</li> <li><strong><code>push_to_hub()</code> Method</strong>: <code>PreTrainedTokenizerFast</code> ကို Hugging Face Hub သို့ upload လုပ်သော method။</li> <li><strong><code>models.BPE()</code></strong>: BPE model ကို ဖန်တီးခြင်း။</li> <li><strong><code>merges</code></strong>: BPE model တွင် token merge rules များ။</li> <li><strong>Byte-level BPE</strong>: BPE tokenization တစ်မျိုးဖြစ်ပြီး bytes များကို အခြေခံ၍ လုပ်ဆောင်သည်။</li> <li><strong><code>pre_tokenizers.ByteLevel()</code></strong>: Byte-level pre-tokenization ကို လုပ်ဆောင်သော pre-tokenizer။</li> <li><strong><code>add_prefix_space=False</code></strong>: ByteLevel pre-tokenizer အတွက် sentence အစတွင် space မထည့်ရန် သတ်မှတ်ခြင်း။</li> <li><strong><code>BpeTrainer</code></strong>: BPE model ကို train လုပ်ရန်အတွက် trainer class။</li> <li><strong><code>end_of_word_suffix</code></strong>: word ၏ အဆုံးကို ကိုယ်စားပြုသော suffix (ဥပမာ- <code></w></code>)။</li> <li><strong><code>Ġ</code> Symbol</strong>: GPT-2 tokenizer တွင် space ကို ကိုယ်စားပြုသော symbol။</li> <li><strong><code>processors.ByteLevel(trim_offsets=False)</code></strong>: Byte-level post-processing ကို လုပ်ဆောင်သော processor။ <code>trim_offsets=False</code> က offsets များကို ပြင်ဆင်မွမ်းမံခြင်း မပြုလုပ်စေပါ။</li> <li><strong><code>decoders.ByteLevel()</code></strong>: Byte-level tokens များကို text အဖြစ် ပြန်ပြောင်းပေးသော decoder။</li> <li><strong><code>models.Unigram()</code></strong>: Unigram model ကို ဖန်တီးခြင်း။</li> <li><strong><code>tokenizers.Regex</code></strong>: Regex (Regular Expression) ကို အသုံးပြုရန် class။</li> <li><strong><code>normalizers.Replace("``", '"')</code></strong>: ````<code>ကို</code>”` ဖြင့် အစားထိုးသော normalizer။</li> <li><strong><code>normalizers.Replace("''", '"')</code></strong>: <code>''</code> ကို <code>"</code> ဖြင့် အစားထိုးသော normalizer။</li> <li><strong><code>normalizers.NFKD()</code></strong>: Unicode normalization form KD (Compatibility Decomposition) ကို အသုံးပြုသော normalizer။</li> <li><strong><code>normalizers.Replace(Regex(" {2,}"), " ")</code></strong>: spaces နှစ်ခု သို့မဟုတ် ထို့ထက်ပိုသော sequence များကို single space တစ်ခုဖြင့် အစားထိုးသော normalizer။</li> <li><strong><code>pre_tokenizers.Metaspace()</code></strong>: Metaspace pre-tokenization ကို လုပ်ဆောင်သော pre-tokenizer။ (spaces များကို special character ဖြင့် အစားထိုးသည်)။</li> <li><strong><code>UnigramTrainer</code></strong>: Unigram model ကို train လုပ်ရန်အတွက် trainer class။</li> <li><strong><code>shrinking_factor</code></strong>: Unigram training တွင် vocabulary မှ tokens များကို ဖယ်ရှားသည့်အခါ အသုံးပြုသော factor။</li> <li><strong><code>max_piece_length</code></strong>: token တစ်ခု၏ အမြင့်ဆုံးအရှည်။</li> <li><strong><code><cls></code> Token</strong>: XLNet model တွင် sequence ၏ အဆုံးကို ကိုယ်စားပြုသော special token (token type ID 2 ဖြင့်)။</li> <li><strong><code><sep></code> Token</strong>: XLNet model တွင် sentence တစ်ခု၏ အဆုံးကို ကိုယ်စားပြုသော special token။</li> <li><strong><code>padding_side="left"</code></strong>: Padding ကို sequence ၏ ဘယ်ဘက်ခြမ်းတွင် လုပ်ဆောင်ရန် သတ်မှတ်ခြင်း။</li> <li><strong><code>XLNetTokenizerFast</code></strong>: XLNet model အတွက် သီးခြား fast tokenizer class။</li>",pi,cs,ci,ms,Mi;return g=new So({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),j=new Ms({props:{title:"Tokenizer တစ်ခုကို အဆင့်ဆင့် တည်ဆောက်ခြင်း",local:"building-a-tokenizer-block-by-block",headingTag:"h1"}}),f=new Yo({props:{chapter:6,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter6/section8.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter6/section8.ipynb"}]}}),z=new Fo({props:{id:"MR8tZm5ViWU"}}),C=new Ms({props:{title:"Corpus တစ်ခု ရယူခြင်း",local:"acquiring-a-corpus",headingTag:"h2"}}),_=new k({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJ3aWtpdGV4dCUyMiUyQyUyMG5hbWUlM0QlMjJ3aWtpdGV4dC0yLXJhdy12MSUyMiUyQyUyMHNwbGl0JTNEJTIydHJhaW4lMjIpJTBBJTBBJTBBZGVmJTIwZ2V0X3RyYWluaW5nX2NvcnB1cygpJTNBJTBBJTIwJTIwJTIwJTIwZm9yJTIwaSUyMGluJTIwcmFuZ2UoMCUyQyUyMGxlbihkYXRhc2V0KSUyQyUyMDEwMDApJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIweWllbGQlMjBkYXRhc2V0JTVCaSUyMCUzQSUyMGklMjAlMkIlMjAxMDAwJTVEJTVCJTIydGV4dCUyMiU1RA==",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset | |
| dataset = load_dataset(<span class="hljs-string">"wikitext"</span>, name=<span class="hljs-string">"wikitext-2-raw-v1"</span>, split=<span class="hljs-string">"train"</span>) | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">get_training_corpus</span>(): | |
| <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">0</span>, <span class="hljs-built_in">len</span>(dataset), <span class="hljs-number">1000</span>): | |
| <span class="hljs-keyword">yield</span> dataset[i : i + <span class="hljs-number">1000</span>][<span class="hljs-string">"text"</span>]`,wrap:!1}}),V=new k({props:{code:"d2l0aCUyMG9wZW4oJTIyd2lraXRleHQtMi50eHQlMjIlMkMlMjAlMjJ3JTIyJTJDJTIwZW5jb2RpbmclM0QlMjJ1dGYtOCUyMiklMjBhcyUyMGYlM0ElMEElMjAlMjAlMjAlMjBmb3IlMjBpJTIwaW4lMjByYW5nZShsZW4oZGF0YXNldCkpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZi53cml0ZShkYXRhc2V0JTVCaSU1RCU1QiUyMnRleHQlMjIlNUQlMjAlMkIlMjAlMjIlNUNuJTIyKQ==",highlighted:`<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">"wikitext-2.txt"</span>, <span class="hljs-string">"w"</span>, encoding=<span class="hljs-string">"utf-8"</span>) <span class="hljs-keyword">as</span> f: | |
| <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(dataset)): | |
| f.write(dataset[i][<span class="hljs-string">"text"</span>] + <span class="hljs-string">"\\n"</span>)`,wrap:!1}}),Q=new Ms({props:{title:"အစကနေ WordPiece Tokenizer တစ်ခု တည်ဆောက်ခြင်း",local:"building-a-wordpiece-tokenizer-from-scratch",headingTag:"h2"}}),A=new k({props:{code:"ZnJvbSUyMHRva2VuaXplcnMlMjBpbXBvcnQlMjAoJTBBJTIwJTIwJTIwJTIwZGVjb2RlcnMlMkMlMEElMjAlMjAlMjAlMjBtb2RlbHMlMkMlMEElMjAlMjAlMjAlMjBub3JtYWxpemVycyUyQyUwQSUyMCUyMCUyMCUyMHByZV90b2tlbml6ZXJzJTJDJTBBJTIwJTIwJTIwJTIwcHJvY2Vzc29ycyUyQyUwQSUyMCUyMCUyMCUyMHRyYWluZXJzJTJDJTBBJTIwJTIwJTIwJTIwVG9rZW5pemVyJTJDJTBBKSUwQSUwQXRva2VuaXplciUyMCUzRCUyMFRva2VuaXplcihtb2RlbHMuV29yZFBpZWNlKHVua190b2tlbiUzRCUyMiU1QlVOSyU1RCUyMikp",highlighted:`<span class="hljs-keyword">from</span> tokenizers <span class="hljs-keyword">import</span> ( | |
| decoders, | |
| models, | |
| normalizers, | |
| pre_tokenizers, | |
| processors, | |
| trainers, | |
| Tokenizer, | |
| ) | |
| tokenizer = Tokenizer(models.WordPiece(unk_token=<span class="hljs-string">"[UNK]"</span>))`,wrap:!1}}),G=new k({props:{code:"dG9rZW5pemVyLm5vcm1hbGl6ZXIlMjAlM0QlMjBub3JtYWxpemVycy5CZXJ0Tm9ybWFsaXplcihsb3dlcmNhc2UlM0RUcnVlKQ==",highlighted:'tokenizer.normalizer = normalizers.BertNormalizer(lowercase=<span class="hljs-literal">True</span>)',wrap:!1}}),H=new k({props:{code:"dG9rZW5pemVyLm5vcm1hbGl6ZXIlMjAlM0QlMjBub3JtYWxpemVycy5TZXF1ZW5jZSglMEElMjAlMjAlMjAlMjAlNUJub3JtYWxpemVycy5ORkQoKSUyQyUyMG5vcm1hbGl6ZXJzLkxvd2VyY2FzZSgpJTJDJTIwbm9ybWFsaXplcnMuU3RyaXBBY2NlbnRzKCklNUQlMEEp",highlighted:`tokenizer.normalizer = normalizers.<span class="hljs-type">Sequence</span>( | |
| [normalizers.NFD(), normalizers.Lowercase(), normalizers.StripAccents()] | |
| )`,wrap:!1}}),S=new k({props:{code:"cHJpbnQodG9rZW5pemVyLm5vcm1hbGl6ZXIubm9ybWFsaXplX3N0ciglMjJIJUMzJUE5bGwlQzMlQjIlMjBoJUMzJUI0dyUyMGFyZSUyMCVDMyVCQyUzRiUyMikp",highlighted:'<span class="hljs-built_in">print</span>(tokenizer.normalizer.normalize_str(<span class="hljs-string">"Héllò hôw are ü?"</span>))',wrap:!1}}),P=new k({props:{code:"aGVsbG8lMjBob3clMjBhcmUlMjB1JTNG",highlighted:"hello how are u?",wrap:!1}}),Y=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIlMjAlM0QlMjBwcmVfdG9rZW5pemVycy5CZXJ0UHJlVG9rZW5pemVyKCk=",highlighted:"tokenizer.pre_tokenizer = pre_tokenizers.BertPreTokenizer()",wrap:!1}}),O=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIlMjAlM0QlMjBwcmVfdG9rZW5pemVycy5XaGl0ZXNwYWNlKCk=",highlighted:"tokenizer.pre_tokenizer = pre_tokenizers.Whitespace()",wrap:!1}}),te=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIucHJlX3Rva2VuaXplX3N0ciglMjJMZXQncyUyMHRlc3QlMjBteSUyMHByZS10b2tlbml6ZXIuJTIyKQ==",highlighted:'tokenizer.pre_tokenizer.pre_tokenize_str(<span class="hljs-string">"Let's test my pre-tokenizer."</span>)',wrap:!1}}),se=new k({props:{code:"JTVCKCdMZXQnJTJDJTIwKDAlMkMlMjAzKSklMkMlMjAoJTIyJyUyMiUyQyUyMCgzJTJDJTIwNCkpJTJDJTIwKCdzJyUyQyUyMCg0JTJDJTIwNSkpJTJDJTIwKCd0ZXN0JyUyQyUyMCg2JTJDJTIwMTApKSUyQyUyMCgnbXknJTJDJTIwKDExJTJDJTIwMTMpKSUyQyUyMCgncHJlJyUyQyUyMCgxNCUyQyUyMDE3KSklMkMlMEElMjAoJy0nJTJDJTIwKDE3JTJDJTIwMTgpKSUyQyUyMCgndG9rZW5pemVyJyUyQyUyMCgxOCUyQyUyMDI3KSklMkMlMjAoJy4nJTJDJTIwKDI3JTJDJTIwMjgpKSU1RA==",highlighted:`[(<span class="hljs-string">'Let'</span>, (<span class="hljs-number">0</span>, <span class="hljs-number">3</span>)), (<span class="hljs-string">"'"</span>, (<span class="hljs-number">3</span>, <span class="hljs-number">4</span>)), (<span class="hljs-string">'s'</span>, (<span class="hljs-number">4</span>, <span class="hljs-number">5</span>)), (<span class="hljs-string">'test'</span>, (<span class="hljs-number">6</span>, <span class="hljs-number">10</span>)), (<span class="hljs-string">'my'</span>, (<span class="hljs-number">11</span>, <span class="hljs-number">13</span>)), (<span class="hljs-string">'pre'</span>, (<span class="hljs-number">14</span>, <span class="hljs-number">17</span>)), | |
| (<span class="hljs-string">'-'</span>, (<span class="hljs-number">17</span>, <span class="hljs-number">18</span>)), (<span class="hljs-string">'tokenizer'</span>, (<span class="hljs-number">18</span>, <span class="hljs-number">27</span>)), (<span class="hljs-string">'.'</span>, (<span class="hljs-number">27</span>, <span class="hljs-number">28</span>))]`,wrap:!1}}),ne=new k({props:{code:"cHJlX3Rva2VuaXplciUyMCUzRCUyMHByZV90b2tlbml6ZXJzLldoaXRlc3BhY2VTcGxpdCgpJTBBcHJlX3Rva2VuaXplci5wcmVfdG9rZW5pemVfc3RyKCUyMkxldCdzJTIwdGVzdCUyMG15JTIwcHJlLXRva2VuaXplci4lMjIp",highlighted:`pre_tokenizer = pre_tokenizers.WhitespaceSplit() | |
| pre_tokenizer.pre_tokenize_str(<span class="hljs-string">"Let's test my pre-tokenizer."</span>)`,wrap:!1}}),ie=new k({props:{code:"JTVCKCUyMkxldCdzJTIyJTJDJTIwKDAlMkMlMjA1KSklMkMlMjAoJ3Rlc3QnJTJDJTIwKDYlMkMlMjAxMCkpJTJDJTIwKCdteSclMkMlMjAoMTElMkMlMjAxMykpJTJDJTIwKCdwcmUtdG9rZW5pemVyLiclMkMlMjAoMTQlMkMlMjAyOCkpJTVE",highlighted:'[(<span class="hljs-string">"Let's"</span>, (<span class="hljs-number">0</span>, <span class="hljs-number">5</span>)), (<span class="hljs-string">'test'</span>, (<span class="hljs-number">6</span>, <span class="hljs-number">10</span>)), (<span class="hljs-string">'my'</span>, (<span class="hljs-number">11</span>, <span class="hljs-number">13</span>)), (<span class="hljs-string">'pre-tokenizer.'</span>, (<span class="hljs-number">14</span>, <span class="hljs-number">28</span>))]',wrap:!1}}),ae=new k({props:{code:"cHJlX3Rva2VuaXplciUyMCUzRCUyMHByZV90b2tlbml6ZXJzLlNlcXVlbmNlKCUwQSUyMCUyMCUyMCUyMCU1QnByZV90b2tlbml6ZXJzLldoaXRlc3BhY2VTcGxpdCgpJTJDJTIwcHJlX3Rva2VuaXplcnMuUHVuY3R1YXRpb24oKSU1RCUwQSklMEFwcmVfdG9rZW5pemVyLnByZV90b2tlbml6ZV9zdHIoJTIyTGV0J3MlMjB0ZXN0JTIwbXklMjBwcmUtdG9rZW5pemVyLiUyMik=",highlighted:`pre_tokenizer = pre_tokenizers.<span class="hljs-type">Sequence</span>( | |
| [pre_tokenizers.WhitespaceSplit(), pre_tokenizers.Punctuation()] | |
| ) | |
| pre_tokenizer.pre_tokenize_str(<span class="hljs-string">"Let's test my pre-tokenizer."</span>)`,wrap:!1}}),re=new k({props:{code:"JTVCKCdMZXQnJTJDJTIwKDAlMkMlMjAzKSklMkMlMjAoJTIyJyUyMiUyQyUyMCgzJTJDJTIwNCkpJTJDJTIwKCdzJyUyQyUyMCg0JTJDJTIwNSkpJTJDJTIwKCd0ZXN0JyUyQyUyMCg2JTJDJTIwMTApKSUyQyUyMCgnbXknJTJDJTIwKDExJTJDJTIwMTMpKSUyQyUyMCgncHJlJyUyQyUyMCgxNCUyQyUyMDE3KSklMkMlMEElMjAoJy0nJTJDJTIwKDE3JTJDJTIwMTgpKSUyQyUyMCgndG9rZW5pemVyJyUyQyUyMCgxOCUyQyUyMDI3KSklMkMlMjAoJy4nJTJDJTIwKDI3JTJDJTIwMjgpKSU1RA==",highlighted:`[(<span class="hljs-string">'Let'</span>, (<span class="hljs-number">0</span>, <span class="hljs-number">3</span>)), (<span class="hljs-string">"'"</span>, (<span class="hljs-number">3</span>, <span class="hljs-number">4</span>)), (<span class="hljs-string">'s'</span>, (<span class="hljs-number">4</span>, <span class="hljs-number">5</span>)), (<span class="hljs-string">'test'</span>, (<span class="hljs-number">6</span>, <span class="hljs-number">10</span>)), (<span class="hljs-string">'my'</span>, (<span class="hljs-number">11</span>, <span class="hljs-number">13</span>)), (<span class="hljs-string">'pre'</span>, (<span class="hljs-number">14</span>, <span class="hljs-number">17</span>)), | |
| (<span class="hljs-string">'-'</span>, (<span class="hljs-number">17</span>, <span class="hljs-number">18</span>)), (<span class="hljs-string">'tokenizer'</span>, (<span class="hljs-number">18</span>, <span class="hljs-number">27</span>)), (<span class="hljs-string">'.'</span>, (<span class="hljs-number">27</span>, <span class="hljs-number">28</span>))]`,wrap:!1}}),ce=new k({props:{code:"c3BlY2lhbF90b2tlbnMlMjAlM0QlMjAlNUIlMjIlNUJVTkslNUQlMjIlMkMlMjAlMjIlNUJQQUQlNUQlMjIlMkMlMjAlMjIlNUJDTFMlNUQlMjIlMkMlMjAlMjIlNUJTRVAlNUQlMjIlMkMlMjAlMjIlNUJNQVNLJTVEJTIyJTVEJTBBdHJhaW5lciUyMCUzRCUyMHRyYWluZXJzLldvcmRQaWVjZVRyYWluZXIodm9jYWJfc2l6ZSUzRDI1MDAwJTJDJTIwc3BlY2lhbF90b2tlbnMlM0RzcGVjaWFsX3Rva2Vucyk=",highlighted:`special_tokens = [<span class="hljs-string">"[UNK]"</span>, <span class="hljs-string">"[PAD]"</span>, <span class="hljs-string">"[CLS]"</span>, <span class="hljs-string">"[SEP]"</span>, <span class="hljs-string">"[MASK]"</span>] | |
| trainer = trainers.WordPieceTrainer(vocab_size=<span class="hljs-number">25000</span>, special_tokens=special_tokens)`,wrap:!1}}),me=new k({props:{code:"dG9rZW5pemVyLnRyYWluX2Zyb21faXRlcmF0b3IoZ2V0X3RyYWluaW5nX2NvcnB1cygpJTJDJTIwdHJhaW5lciUzRHRyYWluZXIp",highlighted:"tokenizer.train_from_iterator(get_training_corpus(), trainer=trainer)",wrap:!1}}),ke=new k({props:{code:"dG9rZW5pemVyLm1vZGVsJTIwJTNEJTIwbW9kZWxzLldvcmRQaWVjZSh1bmtfdG9rZW4lM0QlMjIlNUJVTkslNUQlMjIpJTBBdG9rZW5pemVyLnRyYWluKCU1QiUyMndpa2l0ZXh0LTIudHh0JTIyJTVEJTJDJTIwdHJhaW5lciUzRHRyYWluZXIp",highlighted:`tokenizer.model = models.WordPiece(unk_token=<span class="hljs-string">"[UNK]"</span>) | |
| tokenizer.train([<span class="hljs-string">"wikitext-2.txt"</span>], trainer=trainer)`,wrap:!1}}),Te=new k({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIuZW5jb2RlKCUyMkxldCdzJTIwdGVzdCUyMHRoaXMlMjB0b2tlbml6ZXIuJTIyKSUwQXByaW50KGVuY29kaW5nLnRva2Vucyk=",highlighted:`encoding = tokenizer.encode(<span class="hljs-string">"Let's test this tokenizer."</span>) | |
| <span class="hljs-built_in">print</span>(encoding.tokens)`,wrap:!1}}),ue=new k({props:{code:"JTVCJ2xldCclMkMlMjAlMjInJTIyJTJDJTIwJ3MnJTJDJTIwJ3Rlc3QnJTJDJTIwJ3RoaXMnJTJDJTIwJ3RvayclMkMlMjAnJTIzJTIzZW5pJyUyQyUyMCclMjMlMjN6ZXInJTJDJTIwJy4nJTVE",highlighted:'[<span class="hljs-string">'let'</span>, <span class="hljs-string">"'"</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">'test'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'tok'</span>, <span class="hljs-string">'##eni'</span>, <span class="hljs-string">'##zer'</span>, <span class="hljs-string">'.'</span>]',wrap:!1}}),fe=new k({props:{code:"Y2xzX3Rva2VuX2lkJTIwJTNEJTIwdG9rZW5pemVyLnRva2VuX3RvX2lkKCUyMiU1QkNMUyU1RCUyMiklMEFzZXBfdG9rZW5faWQlMjAlM0QlMjB0b2tlbml6ZXIudG9rZW5fdG9faWQoJTIyJTVCU0VQJTVEJTIyKSUwQXByaW50KGNsc190b2tlbl9pZCUyQyUyMHNlcF90b2tlbl9pZCk=",highlighted:`cls_token_id = tokenizer.token_to_id(<span class="hljs-string">"[CLS]"</span>) | |
| sep_token_id = tokenizer.token_to_id(<span class="hljs-string">"[SEP]"</span>) | |
| <span class="hljs-built_in">print</span>(cls_token_id, sep_token_id)`,wrap:!1}}),be=new k({props:{code:"KDIlMkMlMjAzKQ==",highlighted:'(<span class="hljs-number">2</span>, <span class="hljs-number">3</span>)',wrap:!1}}),we=new k({props:{code:"dG9rZW5pemVyLnBvc3RfcHJvY2Vzc29yJTIwJTNEJTIwcHJvY2Vzc29ycy5UZW1wbGF0ZVByb2Nlc3NpbmcoJTBBJTIwJTIwJTIwJTIwc2luZ2xlJTNEZiUyMiU1QkNMUyU1RCUzQTAlMjAlMjRBJTNBMCUyMCU1QlNFUCU1RCUzQTAlMjIlMkMlMEElMjAlMjAlMjAlMjBwYWlyJTNEZiUyMiU1QkNMUyU1RCUzQTAlMjAlMjRBJTNBMCUyMCU1QlNFUCU1RCUzQTAlMjAlMjRCJTNBMSUyMCU1QlNFUCU1RCUzQTElMjIlMkMlMEElMjAlMjAlMjAlMjBzcGVjaWFsX3Rva2VucyUzRCU1QiglMjIlNUJDTFMlNUQlMjIlMkMlMjBjbHNfdG9rZW5faWQpJTJDJTIwKCUyMiU1QlNFUCU1RCUyMiUyQyUyMHNlcF90b2tlbl9pZCklNUQlMkMlMEEp",highlighted:`tokenizer.post_processor = processors.TemplateProcessing( | |
| single=<span class="hljs-string">f"[CLS]:0 $A:0 [SEP]:0"</span>, | |
| pair=<span class="hljs-string">f"[CLS]:0 $A:0 [SEP]:0 $B:1 [SEP]:1"</span>, | |
| special_tokens=[(<span class="hljs-string">"[CLS]"</span>, cls_token_id), (<span class="hljs-string">"[SEP]"</span>, sep_token_id)], | |
| )`,wrap:!1}}),xe=new k({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIuZW5jb2RlKCUyMkxldCdzJTIwdGVzdCUyMHRoaXMlMjB0b2tlbml6ZXIuJTIyKSUwQXByaW50KGVuY29kaW5nLnRva2Vucyk=",highlighted:`encoding = tokenizer.encode(<span class="hljs-string">"Let's test this tokenizer."</span>) | |
| <span class="hljs-built_in">print</span>(encoding.tokens)`,wrap:!1}}),Ie=new k({props:{code:"JTVCJyU1QkNMUyU1RCclMkMlMjAnbGV0JyUyQyUyMCUyMiclMjIlMkMlMjAncyclMkMlMjAndGVzdCclMkMlMjAndGhpcyclMkMlMjAndG9rJyUyQyUyMCclMjMlMjNlbmknJTJDJTIwJyUyMyUyM3plciclMkMlMjAnLiclMkMlMjAnJTVCU0VQJTVEJyU1RA==",highlighted:'[<span class="hljs-string">'[CLS]'</span>, <span class="hljs-string">'let'</span>, <span class="hljs-string">"'"</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">'test'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'tok'</span>, <span class="hljs-string">'##eni'</span>, <span class="hljs-string">'##zer'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</span>]',wrap:!1}}),Ze=new k({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIuZW5jb2RlKCUyMkxldCdzJTIwdGVzdCUyMHRoaXMlMjB0b2tlbml6ZXIuLi4lMjIlMkMlMjAlMjJvbiUyMGElMjBwYWlyJTIwb2YlMjBzZW50ZW5jZXMuJTIyKSUwQXByaW50KGVuY29kaW5nLnRva2VucyklMEFwcmludChlbmNvZGluZy50eXBlX2lkcyk=",highlighted:`encoding = tokenizer.encode(<span class="hljs-string">"Let's test this tokenizer..."</span>, <span class="hljs-string">"on a pair of sentences."</span>) | |
| <span class="hljs-built_in">print</span>(encoding.tokens) | |
| <span class="hljs-built_in">print</span>(encoding.type_ids)`,wrap:!1}}),_e=new k({props:{code:"JTVCJyU1QkNMUyU1RCclMkMlMjAnbGV0JyUyQyUyMCUyMiclMjIlMkMlMjAncyclMkMlMjAndGVzdCclMkMlMjAndGhpcyclMkMlMjAndG9rJyUyQyUyMCclMjMlMjNlbmknJTJDJTIwJyUyMyUyM3plciclMkMlMjAnLi4uJyUyQyUyMCclNUJTRVAlNUQnJTJDJTIwJ29uJyUyQyUyMCdhJyUyQyUyMCdwYWlyJyUyQyUyMCdvZiclMkMlMjAnc2VudGVuY2VzJyUyQyUyMCcuJyUyQyUyMCclNUJTRVAlNUQnJTVEJTBBJTVCMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTVE",highlighted:`[<span class="hljs-string">'[CLS]'</span>, <span class="hljs-string">'let'</span>, <span class="hljs-string">"'"</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">'test'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'tok'</span>, <span class="hljs-string">'##eni'</span>, <span class="hljs-string">'##zer'</span>, <span class="hljs-string">'...'</span>, <span class="hljs-string">'[SEP]'</span>, <span class="hljs-string">'on'</span>, <span class="hljs-string">'a'</span>, <span class="hljs-string">'pair'</span>, <span class="hljs-string">'of'</span>, <span class="hljs-string">'sentences'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</span>] | |
| [<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>]`,wrap:!1}}),Be=new k({props:{code:"dG9rZW5pemVyLmRlY29kZXIlMjAlM0QlMjBkZWNvZGVycy5Xb3JkUGllY2UocHJlZml4JTNEJTIyJTIzJTIzJTIyKQ==",highlighted:'tokenizer.decoder = decoders.WordPiece(prefix=<span class="hljs-string">"##"</span>)',wrap:!1}}),We=new k({props:{code:"dG9rZW5pemVyLmRlY29kZShlbmNvZGluZy5pZHMp",highlighted:"tokenizer.decode(encoding.ids)",wrap:!1}}),Qe=new k({props:{code:"JTIybGV0J3MlMjB0ZXN0JTIwdGhpcyUyMHRva2VuaXplci4uLiUyMG9uJTIwYSUyMHBhaXIlMjBvZiUyMHNlbnRlbmNlcy4lMjI=",highlighted:'<span class="hljs-string">"let's test this tokenizer... on a pair of sentences."</span>',wrap:!1}}),Ne=new k({props:{code:"dG9rZW5pemVyLnNhdmUoJTIydG9rZW5pemVyLmpzb24lMjIp",highlighted:'tokenizer.save(<span class="hljs-string">"tokenizer.json"</span>)',wrap:!1}}),Xe=new k({props:{code:"bmV3X3Rva2VuaXplciUyMCUzRCUyMFRva2VuaXplci5mcm9tX2ZpbGUoJTIydG9rZW5pemVyLmpzb24lMjIp",highlighted:'new_tokenizer = Tokenizer.from_file(<span class="hljs-string">"tokenizer.json"</span>)',wrap:!1}}),Le=new k({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFByZVRyYWluZWRUb2tlbml6ZXJGYXN0JTBBJTBBd3JhcHBlZF90b2tlbml6ZXIlMjAlM0QlMjBQcmVUcmFpbmVkVG9rZW5pemVyRmFzdCglMEElMjAlMjAlMjAlMjB0b2tlbml6ZXJfb2JqZWN0JTNEdG9rZW5pemVyJTJDJTBBJTIwJTIwJTIwJTIwJTIzJTIwdG9rZW5pemVyX2ZpbGUlM0QlMjJ0b2tlbml6ZXIuanNvbiUyMiUyQyUyMCUyMyUyMFlvdSUyMGNhbiUyMGxvYWQlMjBmcm9tJTIwdGhlJTIwdG9rZW5pemVyJTIwZmlsZSUyQyUyMGFsdGVybmF0aXZlbHklMEElMjAlMjAlMjAlMjB1bmtfdG9rZW4lM0QlMjIlNUJVTkslNUQlMjIlMkMlMEElMjAlMjAlMjAlMjBwYWRfdG9rZW4lM0QlMjIlNUJQQUQlNUQlMjIlMkMlMEElMjAlMjAlMjAlMjBjbHNfdG9rZW4lM0QlMjIlNUJDTFMlNUQlMjIlMkMlMEElMjAlMjAlMjAlMjBzZXBfdG9rZW4lM0QlMjIlNUJTRVAlNUQlMjIlMkMlMEElMjAlMjAlMjAlMjBtYXNrX3Rva2VuJTNEJTIyJTVCTUFTSyU1RCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PreTrainedTokenizerFast | |
| wrapped_tokenizer = PreTrainedTokenizerFast( | |
| tokenizer_object=tokenizer, | |
| <span class="hljs-comment"># tokenizer_file="tokenizer.json", # You can load from the tokenizer file, alternatively</span> | |
| unk_token=<span class="hljs-string">"[UNK]"</span>, | |
| pad_token=<span class="hljs-string">"[PAD]"</span>, | |
| cls_token=<span class="hljs-string">"[CLS]"</span>, | |
| sep_token=<span class="hljs-string">"[SEP]"</span>, | |
| mask_token=<span class="hljs-string">"[MASK]"</span>, | |
| )`,wrap:!1}}),Ee=new k({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEJlcnRUb2tlbml6ZXJGYXN0JTBBJTBBd3JhcHBlZF90b2tlbml6ZXIlMjAlM0QlMjBCZXJ0VG9rZW5pemVyRmFzdCh0b2tlbml6ZXJfb2JqZWN0JTNEdG9rZW5pemVyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> BertTokenizerFast | |
| wrapped_tokenizer = BertTokenizerFast(tokenizer_object=tokenizer)`,wrap:!1}}),Pe=new Ms({props:{title:"အစကနေ BPE Tokenizer တစ်ခု တည်ဆောက်ခြင်း",local:"building-a-bpe-tokenizer-from-scratch",headingTag:"h2"}}),Ye=new k({props:{code:"dG9rZW5pemVyJTIwJTNEJTIwVG9rZW5pemVyKG1vZGVscy5CUEUoKSk=",highlighted:"tokenizer = Tokenizer(models.BPE())",wrap:!1}}),et=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIlMjAlM0QlMjBwcmVfdG9rZW5pemVycy5CeXRlTGV2ZWwoYWRkX3ByZWZpeF9zcGFjZSUzREZhbHNlKQ==",highlighted:'tokenizer.pre_tokenizer = pre_tokenizers.ByteLevel(add_prefix_space=<span class="hljs-literal">False</span>)',wrap:!1}}),st=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIucHJlX3Rva2VuaXplX3N0ciglMjJMZXQncyUyMHRlc3QlMjBwcmUtdG9rZW5pemF0aW9uISUyMik=",highlighted:'tokenizer.pre_tokenizer.pre_tokenize_str(<span class="hljs-string">"Let's test pre-tokenization!"</span>)',wrap:!1}}),lt=new k({props:{code:"JTVCKCdMZXQnJTJDJTIwKDAlMkMlMjAzKSklMkMlMjAoJTIyJ3MlMjIlMkMlMjAoMyUyQyUyMDUpKSUyQyUyMCgnJUM0JUEwdGVzdCclMkMlMjAoNSUyQyUyMDEwKSklMkMlMjAoJyVDNCVBMHByZSclMkMlMjAoMTAlMkMlMjAxNCkpJTJDJTIwKCctJyUyQyUyMCgxNCUyQyUyMDE1KSklMkMlMEElMjAoJ3Rva2VuaXphdGlvbiclMkMlMjAoMTUlMkMlMjAyNykpJTJDJTIwKCchJyUyQyUyMCgyNyUyQyUyMDI4KSklNUQ=",highlighted:`[(<span class="hljs-string">'Let'</span>, (<span class="hljs-number">0</span>, <span class="hljs-number">3</span>)), (<span class="hljs-string">"'s"</span>, (<span class="hljs-number">3</span>, <span class="hljs-number">5</span>)), (<span class="hljs-string">'Ġtest'</span>, (<span class="hljs-number">5</span>, <span class="hljs-number">10</span>)), (<span class="hljs-string">'Ġpre'</span>, (<span class="hljs-number">10</span>, <span class="hljs-number">14</span>)), (<span class="hljs-string">'-'</span>, (<span class="hljs-number">14</span>, <span class="hljs-number">15</span>)), | |
| (<span class="hljs-string">'tokenization'</span>, (<span class="hljs-number">15</span>, <span class="hljs-number">27</span>)), (<span class="hljs-string">'!'</span>, (<span class="hljs-number">27</span>, <span class="hljs-number">28</span>))]`,wrap:!1}}),it=new k({props:{code:"dHJhaW5lciUyMCUzRCUyMHRyYWluZXJzLkJwZVRyYWluZXIodm9jYWJfc2l6ZSUzRDI1MDAwJTJDJTIwc3BlY2lhbF90b2tlbnMlM0QlNUIlMjIlM0MlN0NlbmRvZnRleHQlN0MlM0UlMjIlNUQpJTBBdG9rZW5pemVyLnRyYWluX2Zyb21faXRlcmF0b3IoZ2V0X3RyYWluaW5nX2NvcnB1cygpJTJDJTIwdHJhaW5lciUzRHRyYWluZXIp",highlighted:`trainer = trainers.BpeTrainer(vocab_size=<span class="hljs-number">25000</span>, special_tokens=[<span class="hljs-string">"<|endoftext|>"</span>]) | |
| tokenizer.train_from_iterator(get_training_corpus(), trainer=trainer)`,wrap:!1}}),rt=new k({props:{code:"dG9rZW5pemVyLm1vZGVsJTIwJTNEJTIwbW9kZWxzLkJQRSgpJTBBdG9rZW5pemVyLnRyYWluKCU1QiUyMndpa2l0ZXh0LTIudHh0JTIyJTVEJTJDJTIwdHJhaW5lciUzRHRyYWluZXIp",highlighted:`tokenizer.model = models.BPE() | |
| tokenizer.train([<span class="hljs-string">"wikitext-2.txt"</span>], trainer=trainer)`,wrap:!1}}),ct=new k({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIuZW5jb2RlKCUyMkxldCdzJTIwdGVzdCUyMHRoaXMlMjB0b2tlbml6ZXIuJTIyKSUwQXByaW50KGVuY29kaW5nLnRva2Vucyk=",highlighted:`encoding = tokenizer.encode(<span class="hljs-string">"Let's test this tokenizer."</span>) | |
| <span class="hljs-built_in">print</span>(encoding.tokens)`,wrap:!1}}),Mt=new k({props:{code:"JTVCJ0wnJTJDJTIwJ2V0JyUyQyUyMCUyMiclMjIlMkMlMjAncyclMkMlMjAnJUM0JUEwdGVzdCclMkMlMjAnJUM0JUEwdGhpcyclMkMlMjAnJUM0JUEwdG8nJTJDJTIwJ2tlbiclMkMlMjAnaXplciclMkMlMjAnLiclNUQ=",highlighted:'[<span class="hljs-string">'L'</span>, <span class="hljs-string">'et'</span>, <span class="hljs-string">"'"</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">'Ġtest'</span>, <span class="hljs-string">'Ġthis'</span>, <span class="hljs-string">'Ġto'</span>, <span class="hljs-string">'ken'</span>, <span class="hljs-string">'izer'</span>, <span class="hljs-string">'.'</span>]',wrap:!1}}),mt=new k({props:{code:"dG9rZW5pemVyLnBvc3RfcHJvY2Vzc29yJTIwJTNEJTIwcHJvY2Vzc29ycy5CeXRlTGV2ZWwodHJpbV9vZmZzZXRzJTNERmFsc2Up",highlighted:'tokenizer.post_processor = processors.ByteLevel(trim_offsets=<span class="hljs-literal">False</span>)',wrap:!1}}),kt=new k({props:{code:"c2VudGVuY2UlMjAlM0QlMjAlMjJMZXQncyUyMHRlc3QlMjB0aGlzJTIwdG9rZW5pemVyLiUyMiUwQWVuY29kaW5nJTIwJTNEJTIwdG9rZW5pemVyLmVuY29kZShzZW50ZW5jZSklMEFzdGFydCUyQyUyMGVuZCUyMCUzRCUyMGVuY29kaW5nLm9mZnNldHMlNUI0JTVEJTBBc2VudGVuY2UlNUJzdGFydCUzQWVuZCU1RA==",highlighted:`sentence = <span class="hljs-string">"Let's test this tokenizer."</span> | |
| encoding = tokenizer.encode(sentence) | |
| start, end = encoding.offsets[<span class="hljs-number">4</span>] | |
| sentence[start:end]`,wrap:!1}}),Jt=new k({props:{code:"JyUyMHRlc3Qn",highlighted:'<span class="hljs-string">' test'</span>',wrap:!1}}),ut=new k({props:{code:"dG9rZW5pemVyLmRlY29kZXIlMjAlM0QlMjBkZWNvZGVycy5CeXRlTGV2ZWwoKQ==",highlighted:"tokenizer.decoder = decoders.ByteLevel()",wrap:!1}}),jt=new k({props:{code:"dG9rZW5pemVyLmRlY29kZShlbmNvZGluZy5pZHMp",highlighted:"tokenizer.decode(encoding.ids)",wrap:!1}}),ft=new k({props:{code:"JTIyTGV0J3MlMjB0ZXN0JTIwdGhpcyUyMHRva2VuaXplci4lMjI=",highlighted:'<span class="hljs-string">"Let's test this tokenizer."</span>',wrap:!1}}),$t=new k({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFByZVRyYWluZWRUb2tlbml6ZXJGYXN0JTBBJTBBd3JhcHBlZF90b2tlbml6ZXIlMjAlM0QlMjBQcmVUcmFpbmVkVG9rZW5pemVyRmFzdCglMEElMjAlMjAlMjAlMjB0b2tlbml6ZXJfb2JqZWN0JTNEdG9rZW5pemVyJTJDJTBBJTIwJTIwJTIwJTIwYm9zX3Rva2VuJTNEJTIyJTNDJTdDZW5kb2Z0ZXh0JTdDJTNFJTIyJTJDJTBBJTIwJTIwJTIwJTIwZW9zX3Rva2VuJTNEJTIyJTNDJTdDZW5kb2Z0ZXh0JTdDJTNFJTIyJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PreTrainedTokenizerFast | |
| wrapped_tokenizer = PreTrainedTokenizerFast( | |
| tokenizer_object=tokenizer, | |
| bos_token=<span class="hljs-string">"<|endoftext|>"</span>, | |
| eos_token=<span class="hljs-string">"<|endoftext|>"</span>, | |
| )`,wrap:!1}}),wt=new k({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEdQVDJUb2tlbml6ZXJGYXN0JTBBJTBBd3JhcHBlZF90b2tlbml6ZXIlMjAlM0QlMjBHUFQyVG9rZW5pemVyRmFzdCh0b2tlbml6ZXJfb2JqZWN0JTNEdG9rZW5pemVyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> GPT2TokenizerFast | |
| wrapped_tokenizer = GPT2TokenizerFast(tokenizer_object=tokenizer)`,wrap:!1}}),ht=new Ms({props:{title:"အစကနေ Unigram Tokenizer တစ်ခု တည်ဆောက်ခြင်း",local:"building-a-unigram-tokenizer-from-scratch",headingTag:"h2"}}),It=new k({props:{code:"dG9rZW5pemVyJTIwJTNEJTIwVG9rZW5pemVyKG1vZGVscy5VbmlncmFtKCkp",highlighted:"tokenizer = Tokenizer(models.Unigram())",wrap:!1}}),_t=new k({props:{code:"ZnJvbSUyMHRva2VuaXplcnMlMjBpbXBvcnQlMjBSZWdleCUwQSUwQXRva2VuaXplci5ub3JtYWxpemVyJTIwJTNEJTIwbm9ybWFsaXplcnMuU2VxdWVuY2UoJTBBJTIwJTIwJTIwJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm9ybWFsaXplcnMuUmVwbGFjZSglMjIlNjAlNjAlMjIlMkMlMjAnJTIyJyklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBub3JtYWxpemVycy5SZXBsYWNlKCUyMicnJTIyJTJDJTIwJyUyMicpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm9ybWFsaXplcnMuTkZLRCgpJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbm9ybWFsaXplcnMuU3RyaXBBY2NlbnRzKCklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBub3JtYWxpemVycy5SZXBsYWNlKFJlZ2V4KCUyMiUyMCU3QjIlMkMlN0QlMjIpJTJDJTIwJTIyJTIwJTIyKSUyQyUwQSUyMCUyMCUyMCUyMCU1RCUwQSk=",highlighted:`<span class="hljs-keyword">from</span> tokenizers <span class="hljs-keyword">import</span> Regex | |
| tokenizer.normalizer = normalizers.<span class="hljs-type">Sequence</span>( | |
| [ | |
| normalizers.Replace(<span class="hljs-string">"\`\`"</span>, <span class="hljs-string">'"'</span>), | |
| normalizers.Replace(<span class="hljs-string">"''"</span>, <span class="hljs-string">'"'</span>), | |
| normalizers.NFKD(), | |
| normalizers.StripAccents(), | |
| normalizers.Replace(Regex(<span class="hljs-string">" {2,}"</span>), <span class="hljs-string">" "</span>), | |
| ] | |
| )`,wrap:!1}}),Vt=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIlMjAlM0QlMjBwcmVfdG9rZW5pemVycy5NZXRhc3BhY2UoKQ==",highlighted:"tokenizer.pre_tokenizer = pre_tokenizers.Metaspace()",wrap:!1}}),Qt=new k({props:{code:"dG9rZW5pemVyLnByZV90b2tlbml6ZXIucHJlX3Rva2VuaXplX3N0ciglMjJMZXQncyUyMHRlc3QlMjB0aGUlMjBwcmUtdG9rZW5pemVyISUyMik=",highlighted:'tokenizer.pre_tokenizer.pre_tokenize_str(<span class="hljs-string">"Let's test the pre-tokenizer!"</span>)',wrap:!1}}),Rt=new k({props:{code:"JTVCKCUyMiUyMExldCdzJTIyJTJDJTIwKDAlMkMlMjA1KSklMkMlMjAoJyUyMHRlc3QnJTJDJTIwKDUlMkMlMjAxMCkpJTJDJTIwKCclMjB0aGUnJTJDJTIwKDEwJTJDJTIwMTQpKSUyQyUyMCgnJTIwcHJlLXRva2VuaXplciEnJTJDJTIwKDE0JTJDJTIwMjkpKSU1RA==",highlighted:'[(<span class="hljs-string">" Let's"</span>, (<span class="hljs-number">0</span>, <span class="hljs-number">5</span>)), (<span class="hljs-string">' test'</span>, (<span class="hljs-number">5</span>, <span class="hljs-number">10</span>)), (<span class="hljs-string">' the'</span>, (<span class="hljs-number">10</span>, <span class="hljs-number">14</span>)), (<span class="hljs-string">' pre-tokenizer!'</span>, (<span class="hljs-number">14</span>, <span class="hljs-number">29</span>))]',wrap:!1}}),At=new k({props:{code:"c3BlY2lhbF90b2tlbnMlMjAlM0QlMjAlNUIlMjIlM0NjbHMlM0UlMjIlMkMlMjAlMjIlM0NzZXAlM0UlMjIlMkMlMjAlMjIlM0N1bmslM0UlMjIlMkMlMjAlMjIlM0NwYWQlM0UlMjIlMkMlMjAlMjIlM0NtYXNrJTNFJTIyJTJDJTIwJTIyJTNDcyUzRSUyMiUyQyUyMCUyMiUzQyUyRnMlM0UlMjIlNUQlMEF0cmFpbmVyJTIwJTNEJTIwdHJhaW5lcnMuVW5pZ3JhbVRyYWluZXIoJTBBJTIwJTIwJTIwJTIwdm9jYWJfc2l6ZSUzRDI1MDAwJTJDJTIwc3BlY2lhbF90b2tlbnMlM0RzcGVjaWFsX3Rva2VucyUyQyUyMHVua190b2tlbiUzRCUyMiUzQ3VuayUzRSUyMiUwQSklMEF0b2tlbml6ZXIudHJhaW5fZnJvbV9pdGVyYXRvcihnZXRfdHJhaW5pbmdfY29ycHVzKCklMkMlMjB0cmFpbmVyJTNEdHJhaW5lcik=",highlighted:`special_tokens = [<span class="hljs-string">"<cls>"</span>, <span class="hljs-string">"<sep>"</span>, <span class="hljs-string">"<unk>"</span>, <span class="hljs-string">"<pad>"</span>, <span class="hljs-string">"<mask>"</span>, <span class="hljs-string">"<s>"</span>, <span class="hljs-string">"</s>"</span>] | |
| trainer = trainers.UnigramTrainer( | |
| vocab_size=<span class="hljs-number">25000</span>, special_tokens=special_tokens, unk_token=<span class="hljs-string">"<unk>"</span> | |
| ) | |
| tokenizer.train_from_iterator(get_training_corpus(), trainer=trainer)`,wrap:!1}}),Gt=new k({props:{code:"dG9rZW5pemVyLm1vZGVsJTIwJTNEJTIwbW9kZWxzLlVuaWdyYW0oKSUwQXRva2VuaXplci50cmFpbiglNUIlMjJ3aWtpdGV4dC0yLnR4dCUyMiU1RCUyQyUyMHRyYWluZXIlM0R0cmFpbmVyKQ==",highlighted:`tokenizer.model = models.Unigram() | |
| tokenizer.train([<span class="hljs-string">"wikitext-2.txt"</span>], trainer=trainer)`,wrap:!1}}),Ht=new k({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIuZW5jb2RlKCUyMkxldCdzJTIwdGVzdCUyMHRoaXMlMjB0b2tlbml6ZXIuJTIyKSUwQXByaW50KGVuY29kaW5nLnRva2Vucyk=",highlighted:`encoding = tokenizer.encode(<span class="hljs-string">"Let's test this tokenizer."</span>) | |
| <span class="hljs-built_in">print</span>(encoding.tokens)`,wrap:!1}}),Et=new k({props:{code:"JTVCJyUyMExldCclMkMlMjAlMjInJTIyJTJDJTIwJ3MnJTJDJTIwJyUyMHRlc3QnJTJDJTIwJyUyMHRoaXMnJTJDJTIwJyUyMHRvJyUyQyUyMCdrZW4nJTJDJTIwJ2l6ZXInJTJDJTIwJy4nJTVE",highlighted:'[<span class="hljs-string">' Let'</span>, <span class="hljs-string">"'"</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">' test'</span>, <span class="hljs-string">' this'</span>, <span class="hljs-string">' to'</span>, <span class="hljs-string">'ken'</span>, <span class="hljs-string">'izer'</span>, <span class="hljs-string">'.'</span>]',wrap:!1}}),St=new k({props:{code:"Y2xzX3Rva2VuX2lkJTIwJTNEJTIwdG9rZW5pemVyLnRva2VuX3RvX2lkKCUyMiUzQ2NscyUzRSUyMiklMEFzZXBfdG9rZW5faWQlMjAlM0QlMjB0b2tlbml6ZXIudG9rZW5fdG9faWQoJTIyJTNDc2VwJTNFJTIyKSUwQXByaW50KGNsc190b2tlbl9pZCUyQyUyMHNlcF90b2tlbl9pZCk=",highlighted:`cls_token_id = tokenizer.token_to_id(<span class="hljs-string">"<cls>"</span>) | |
| sep_token_id = tokenizer.token_to_id(<span class="hljs-string">"<sep>"</span>) | |
| <span class="hljs-built_in">print</span>(cls_token_id, sep_token_id)`,wrap:!1}}),Pt=new k({props:{code:"MCUyMDE=",highlighted:'<span class="hljs-number">0</span> <span class="hljs-number">1</span>',wrap:!1}}),Yt=new k({props:{code:"dG9rZW5pemVyLnBvc3RfcHJvY2Vzc29yJTIwJTNEJTIwcHJvY2Vzc29ycy5UZW1wbGF0ZVByb2Nlc3NpbmcoJTBBJTIwJTIwJTIwJTIwc2luZ2xlJTNEJTIyJTI0QSUzQTAlMjAlM0NzZXAlM0UlM0EwJTIwJTNDY2xzJTNFJTNBMiUyMiUyQyUwQSUyMCUyMCUyMCUyMHBhaXIlM0QlMjIlMjRBJTNBMCUyMCUzQ3NlcCUzRSUzQTAlMjAlMjRCJTNBMSUyMCUzQ3NlcCUzRSUzQTElMjAlM0NjbHMlM0UlM0EyJTIyJTJDJTBBJTIwJTIwJTIwJTIwc3BlY2lhbF90b2tlbnMlM0QlNUIoJTIyJTNDc2VwJTNFJTIyJTJDJTIwc2VwX3Rva2VuX2lkKSUyQyUyMCglMjIlM0NjbHMlM0UlMjIlMkMlMjBjbHNfdG9rZW5faWQpJTVEJTJDJTBBKQ==",highlighted:`tokenizer.post_processor = processors.TemplateProcessing( | |
| single=<span class="hljs-string">"$A:0 <sep>:0 <cls>:2"</span>, | |
| pair=<span class="hljs-string">"$A:0 <sep>:0 $B:1 <sep>:1 <cls>:2"</span>, | |
| special_tokens=[(<span class="hljs-string">"<sep>"</span>, sep_token_id), (<span class="hljs-string">"<cls>"</span>, cls_token_id)], | |
| )`,wrap:!1}}),Ot=new k({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIuZW5jb2RlKCUyMkxldCdzJTIwdGVzdCUyMHRoaXMlMjB0b2tlbml6ZXIuLi4lMjIlMkMlMjAlMjJvbiUyMGElMjBwYWlyJTIwb2YlMjBzZW50ZW5jZXMhJTIyKSUwQXByaW50KGVuY29kaW5nLnRva2VucyklMEFwcmludChlbmNvZGluZy50eXBlX2lkcyk=",highlighted:`encoding = tokenizer.encode(<span class="hljs-string">"Let's test this tokenizer..."</span>, <span class="hljs-string">"on a pair of sentences!"</span>) | |
| <span class="hljs-built_in">print</span>(encoding.tokens) | |
| <span class="hljs-built_in">print</span>(encoding.type_ids)`,wrap:!1}}),es=new k({props:{code:"JTVCJyUyMExldCclMkMlMjAlMjInJTIyJTJDJTIwJ3MnJTJDJTIwJyUyMHRlc3QnJTJDJTIwJyUyMHRoaXMnJTJDJTIwJyUyMHRvJyUyQyUyMCdrZW4nJTJDJTIwJ2l6ZXInJTJDJTIwJy4nJTJDJTIwJy4nJTJDJTIwJy4nJTJDJTIwJyUzQ3NlcCUzRSclMkMlMjAnJTIwJyUyQyUyMCdvbiclMkMlMjAnJTIwJyUyQyUyMCdhJyUyQyUyMCclMjBwYWlyJyUyQyUyMCUwQSUyMCUyMCclMjBvZiclMkMlMjAnJTIwc2VudGVuY2UnJTJDJTIwJ3MnJTJDJTIwJyEnJTJDJTIwJyUzQ3NlcCUzRSclMkMlMjAnJTNDY2xzJTNFJyU1RCUwQSU1QjAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAyJTVE",highlighted:`[<span class="hljs-string">' Let'</span>, <span class="hljs-string">"'"</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">' test'</span>, <span class="hljs-string">' this'</span>, <span class="hljs-string">' to'</span>, <span class="hljs-string">'ken'</span>, <span class="hljs-string">'izer'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'<sep>'</span>, <span class="hljs-string">' '</span>, <span class="hljs-string">'on'</span>, <span class="hljs-string">' '</span>, <span class="hljs-string">'a'</span>, <span class="hljs-string">' pair'</span>, | |
| <span class="hljs-string">' of'</span>, <span class="hljs-string">' sentence'</span>, <span class="hljs-string">'s'</span>, <span class="hljs-string">'!'</span>, <span class="hljs-string">'<sep>'</span>, <span class="hljs-string">'<cls>'</span>] | |
| [<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>]`,wrap:!1}}),ss=new k({props:{code:"dG9rZW5pemVyLmRlY29kZXIlMjAlM0QlMjBkZWNvZGVycy5NZXRhc3BhY2UoKQ==",highlighted:"tokenizer.decoder = decoders.Metaspace()",wrap:!1}}),ns=new k({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFByZVRyYWluZWRUb2tlbml6ZXJGYXN0JTBBJTBBd3JhcHBlZF90b2tlbml6ZXIlMjAlM0QlMjBQcmVUcmFpbmVkVG9rZW5pemVyRmFzdCglMEElMjAlMjAlMjAlMjB0b2tlbml6ZXJfb2JqZWN0JTNEdG9rZW5pemVyJTJDJTBBJTIwJTIwJTIwJTIwYm9zX3Rva2VuJTNEJTIyJTNDcyUzRSUyMiUyQyUwQSUyMCUyMCUyMCUyMGVvc190b2tlbiUzRCUyMiUzQyUyRnMlM0UlMjIlMkMlMEElMjAlMjAlMjAlMjB1bmtfdG9rZW4lM0QlMjIlM0N1bmslM0UlMjIlMkMlMEElMjAlMjAlMjAlMjBwYWRfdG9rZW4lM0QlMjIlM0NwYWQlM0UlMjIlMkMlMEElMjAlMjAlMjAlMjBjbHNfdG9rZW4lM0QlMjIlM0NjbHMlM0UlMjIlMkMlMEElMjAlMjAlMjAlMjBzZXBfdG9rZW4lM0QlMjIlM0NzZXAlM0UlMjIlMkMlMEElMjAlMjAlMjAlMjBtYXNrX3Rva2VuJTNEJTIyJTNDbWFzayUzRSUyMiUyQyUwQSUyMCUyMCUyMCUyMHBhZGRpbmdfc2lkZSUzRCUyMmxlZnQlMjIlMkMlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PreTrainedTokenizerFast | |
| wrapped_tokenizer = PreTrainedTokenizerFast( | |
| tokenizer_object=tokenizer, | |
| bos_token=<span class="hljs-string">"<s>"</span>, | |
| eos_token=<span class="hljs-string">"</s>"</span>, | |
| unk_token=<span class="hljs-string">"<unk>"</span>, | |
| pad_token=<span class="hljs-string">"<pad>"</span>, | |
| cls_token=<span class="hljs-string">"<cls>"</span>, | |
| sep_token=<span class="hljs-string">"<sep>"</span>, | |
| mask_token=<span class="hljs-string">"<mask>"</span>, | |
| padding_side=<span class="hljs-string">"left"</span>, | |
| )`,wrap:!1}}),os=new k({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFhMTmV0VG9rZW5pemVyRmFzdCUwQSUwQXdyYXBwZWRfdG9rZW5pemVyJTIwJTNEJTIwWExOZXRUb2tlbml6ZXJGYXN0KHRva2VuaXplcl9vYmplY3QlM0R0b2tlbml6ZXIp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> XLNetTokenizerFast | |
| wrapped_tokenizer = XLNetTokenizerFast(tokenizer_object=tokenizer)`,wrap:!1}}),rs=new Ms({props:{title:"ဝေါဟာရ ရှင်းလင်းချက် (Glossary)",local:"ဝဟရ-ရငလငခက-glossary",headingTag:"h2"}}),cs=new Po({props:{source:"https://github.com/huggingface/course/blob/main/chapters/my/chapter6/8.mdx"}}),{c(){J=o("meta"),ys=n(),ds=o("p"),ks=n(),p(g.$$.fragment),Js=n(),p(j.$$.fragment),Ts=n(),p(f.$$.fragment),us=n(),b=o("p"),b.textContent=yi,gs=n(),$=o("ul"),$.innerHTML=ki,js=n(),U=o("p"),U.textContent=Ji,fs=n(),T=o("div"),T.innerHTML=Ti,bs=n(),w=o("p"),w.innerHTML=ui,$s=n(),p(z.$$.fragment),Us=n(),h=o("p"),h.innerHTML=gi,ws=n(),x=o("ul"),x.innerHTML=ji,zs=n(),I=o("p"),I.innerHTML=fi,hs=n(),p(C.$$.fragment),xs=n(),Z=o("p"),Z.innerHTML=bi,Is=n(),p(_.$$.fragment),Cs=n(),v=o("p"),v.innerHTML=$i,Zs=n(),B=o("p"),B.textContent=Ui,_s=n(),p(V.$$.fragment),vs=n(),W=o("p"),W.textContent=wi,Bs=n(),p(Q.$$.fragment),Vs=n(),R=o("p"),R.innerHTML=zi,Ws=n(),N=o("p"),N.innerHTML=hi,Qs=n(),p(A.$$.fragment),Rs=n(),X=o("p"),X.innerHTML=xi,Ns=n(),q=o("p"),q.innerHTML=Ii,As=n(),p(G.$$.fragment),Xs=n(),L=o("p"),L.innerHTML=Ci,qs=n(),p(H.$$.fragment),Gs=n(),E=o("p"),E.innerHTML=Zi,Ls=n(),D=o("p"),D.innerHTML=_i,Hs=n(),p(S.$$.fragment),Es=n(),p(P.$$.fragment),Ds=n(),u=o("blockquote"),u.innerHTML=vi,Ss=n(),F=o("p"),F.innerHTML=Bi,Ps=n(),p(Y.$$.fragment),Fs=n(),K=o("p"),K.textContent=Vi,Ys=n(),p(O.$$.fragment),Ks=n(),ee=o("p"),ee.innerHTML=Wi,Os=n(),p(te.$$.fragment),el=n(),p(se.$$.fragment),tl=n(),le=o("p"),le.innerHTML=Qi,sl=n(),p(ne.$$.fragment),ll=n(),p(ie.$$.fragment),nl=n(),oe=o("p"),oe.innerHTML=Ri,il=n(),p(ae.$$.fragment),ol=n(),p(re.$$.fragment),al=n(),pe=o("p"),pe.innerHTML=Ni,rl=n(),p(ce.$$.fragment),pl=n(),Me=o("p"),Me.innerHTML=Ai,cl=n(),de=o("p"),de.textContent=Xi,Ml=n(),p(me.$$.fragment),dl=n(),ye=o("p"),ye.innerHTML=qi,ml=n(),p(ke.$$.fragment),yl=n(),Je=o("p"),Je.innerHTML=Gi,kl=n(),p(Te.$$.fragment),Jl=n(),p(ue.$$.fragment),Tl=n(),ge=o("p"),ge.innerHTML=Li,ul=n(),je=o("p"),je.innerHTML=Hi,gl=n(),p(fe.$$.fragment),jl=n(),p(be.$$.fragment),fl=n(),$e=o("p"),$e.innerHTML=Ei,bl=n(),Ue=o("p"),Ue.textContent=Di,$l=n(),p(we.$$.fragment),Ul=n(),ze=o("p"),ze.textContent=Si,wl=n(),he=o("p"),he.textContent=Pi,zl=n(),p(xe.$$.fragment),hl=n(),p(Ie.$$.fragment),xl=n(),Ce=o("p"),Ce.textContent=Fi,Il=n(),p(Ze.$$.fragment),Cl=n(),p(_e.$$.fragment),Zl=n(),ve=o("p"),ve.textContent=Yi,_l=n(),p(Be.$$.fragment),vl=n(),Ve=o("p"),Ve.innerHTML=Ki,Bl=n(),p(We.$$.fragment),Vl=n(),p(Qe.$$.fragment),Wl=n(),Re=o("p"),Re.textContent=Oi,Ql=n(),p(Ne.$$.fragment),Rl=n(),Ae=o("p"),Ae.innerHTML=eo,Nl=n(),p(Xe.$$.fragment),Al=n(),qe=o("p"),qe.innerHTML=to,Xl=n(),Ge=o("p"),Ge.innerHTML=so,ql=n(),p(Le.$$.fragment),Gl=n(),He=o("p"),He.innerHTML=lo,Ll=n(),p(Ee.$$.fragment),Hl=n(),De=o("p"),De.innerHTML=no,El=n(),Se=o("p"),Se.textContent=io,Dl=n(),p(Pe.$$.fragment),Sl=n(),Fe=o("p"),Fe.innerHTML=oo,Pl=n(),p(Ye.$$.fragment),Fl=n(),Ke=o("p"),Ke.innerHTML=ao,Yl=n(),Oe=o("p"),Oe.textContent=ro,Kl=n(),p(et.$$.fragment),Ol=n(),tt=o("p"),tt.innerHTML=po,en=n(),p(st.$$.fragment),tn=n(),p(lt.$$.fragment),sn=n(),nt=o("p"),nt.textContent=co,ln=n(),p(it.$$.fragment),nn=n(),ot=o("p"),ot.innerHTML=Mo,on=n(),at=o("p"),at.textContent=mo,an=n(),p(rt.$$.fragment),rn=n(),pt=o("p"),pt.textContent=yo,pn=n(),p(ct.$$.fragment),cn=n(),p(Mt.$$.fragment),Mn=n(),dt=o("p"),dt.textContent=ko,dn=n(),p(mt.$$.fragment),mn=n(),yt=o("p"),yt.innerHTML=Jo,yn=n(),p(kt.$$.fragment),kn=n(),p(Jt.$$.fragment),Jn=n(),Tt=o("p"),Tt.textContent=To,Tn=n(),p(ut.$$.fragment),un=n(),gt=o("p"),gt.textContent=uo,gn=n(),p(jt.$$.fragment),jn=n(),p(ft.$$.fragment),fn=n(),bt=o("p"),bt.innerHTML=go,bn=n(),p($t.$$.fragment),$n=n(),Ut=o("p"),Ut.textContent=jo,Un=n(),p(wt.$$.fragment),wn=n(),zt=o("p"),zt.textContent=fo,zn=n(),p(ht.$$.fragment),hn=n(),xt=o("p"),xt.innerHTML=bo,xn=n(),p(It.$$.fragment),In=n(),Ct=o("p"),Ct.textContent=$o,Cn=n(),Zt=o("p"),Zt.textContent=Uo,Zn=n(),p(_t.$$.fragment),_n=n(),vt=o("p"),vt.innerHTML=wo,vn=n(),Bt=o("p"),Bt.innerHTML=zo,Bn=n(),p(Vt.$$.fragment),Vn=n(),Wt=o("p"),Wt.textContent=ho,Wn=n(),p(Qt.$$.fragment),Qn=n(),p(Rt.$$.fragment),Rn=n(),Nt=o("p"),Nt.textContent=xo,Nn=n(),p(At.$$.fragment),An=n(),Xt=o("p"),Xt.innerHTML=Io,Xn=n(),qt=o("p"),qt.textContent=Co,qn=n(),p(Gt.$$.fragment),Gn=n(),Lt=o("p"),Lt.textContent=Zo,Ln=n(),p(Ht.$$.fragment),Hn=n(),p(Et.$$.fragment),En=n(),Dt=o("p"),Dt.innerHTML=_o,Dn=n(),p(St.$$.fragment),Sn=n(),p(Pt.$$.fragment),Pn=n(),Ft=o("p"),Ft.textContent=vo,Fn=n(),p(Yt.$$.fragment),Yn=n(),Kt=o("p"),Kt.textContent=Bo,Kn=n(),p(Ot.$$.fragment),On=n(),p(es.$$.fragment),ei=n(),ts=o("p"),ts.innerHTML=Vo,ti=n(),p(ss.$$.fragment),si=n(),ls=o("p"),ls.innerHTML=Wo,li=n(),p(ns.$$.fragment),ni=n(),is=o("p"),is.textContent=Qo,ii=n(),p(os.$$.fragment),oi=n(),as=o("p"),as.textContent=Ro,ai=n(),p(rs.$$.fragment),ri=n(),ps=o("ul"),ps.innerHTML=No,pi=n(),p(cs.$$.fragment),ci=n(),ms=o("p"),this.h()},l(e){const t=Eo("svelte-u9bgzb",document.head);J=a(t,"META",{name:!0,content:!0}),t.forEach(s),ys=i(e),ds=a(e,"P",{}),Ao(ds).forEach(s),ks=i(e),c(g.$$.fragment,e),Js=i(e),c(j.$$.fragment,e),Ts=i(e),c(f.$$.fragment,e),us=i(e),b=a(e,"P",{"data-svelte-h":!0}),r(b)!=="svelte-141i56c"&&(b.textContent=yi),gs=i(e),$=a(e,"UL",{"data-svelte-h":!0}),r($)!=="svelte-x7mng"&&($.innerHTML=ki),js=i(e),U=a(e,"P",{"data-svelte-h":!0}),r(U)!=="svelte-mxtm6p"&&(U.textContent=Ji),fs=i(e),T=a(e,"DIV",{class:!0,"data-svelte-h":!0}),r(T)!=="svelte-oxfng3"&&(T.innerHTML=Ti),bs=i(e),w=a(e,"P",{"data-svelte-h":!0}),r(w)!=="svelte-1spiys7"&&(w.innerHTML=ui),$s=i(e),c(z.$$.fragment,e),Us=i(e),h=a(e,"P",{"data-svelte-h":!0}),r(h)!=="svelte-1u5uy4g"&&(h.innerHTML=gi),ws=i(e),x=a(e,"UL",{"data-svelte-h":!0}),r(x)!=="svelte-1tg4kr"&&(x.innerHTML=ji),zs=i(e),I=a(e,"P",{"data-svelte-h":!0}),r(I)!=="svelte-1y9rqvk"&&(I.innerHTML=fi),hs=i(e),c(C.$$.fragment,e),xs=i(e),Z=a(e,"P",{"data-svelte-h":!0}),r(Z)!=="svelte-wo9qzi"&&(Z.innerHTML=bi),Is=i(e),c(_.$$.fragment,e),Cs=i(e),v=a(e,"P",{"data-svelte-h":!0}),r(v)!=="svelte-1skrsoe"&&(v.innerHTML=$i),Zs=i(e),B=a(e,"P",{"data-svelte-h":!0}),r(B)!=="svelte-1biyl0i"&&(B.textContent=Ui),_s=i(e),c(V.$$.fragment,e),vs=i(e),W=a(e,"P",{"data-svelte-h":!0}),r(W)!=="svelte-17nrx09"&&(W.textContent=wi),Bs=i(e),c(Q.$$.fragment,e),Vs=i(e),R=a(e,"P",{"data-svelte-h":!0}),r(R)!=="svelte-19mkw5x"&&(R.innerHTML=zi),Ws=i(e),N=a(e,"P",{"data-svelte-h":!0}),r(N)!=="svelte-1qm18z7"&&(N.innerHTML=hi),Qs=i(e),c(A.$$.fragment,e),Rs=i(e),X=a(e,"P",{"data-svelte-h":!0}),r(X)!=="svelte-r5m8ig"&&(X.innerHTML=xi),Ns=i(e),q=a(e,"P",{"data-svelte-h":!0}),r(q)!=="svelte-q1n86n"&&(q.innerHTML=Ii),As=i(e),c(G.$$.fragment,e),Xs=i(e),L=a(e,"P",{"data-svelte-h":!0}),r(L)!=="svelte-hqg2ho"&&(L.innerHTML=Ci),qs=i(e),c(H.$$.fragment,e),Gs=i(e),E=a(e,"P",{"data-svelte-h":!0}),r(E)!=="svelte-1lw62pa"&&(E.innerHTML=Zi),Ls=i(e),D=a(e,"P",{"data-svelte-h":!0}),r(D)!=="svelte-136j7i5"&&(D.innerHTML=_i),Hs=i(e),c(S.$$.fragment,e),Es=i(e),c(P.$$.fragment,e),Ds=i(e),u=a(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),r(u)!=="svelte-13a6mef"&&(u.innerHTML=vi),Ss=i(e),F=a(e,"P",{"data-svelte-h":!0}),r(F)!=="svelte-b1cmuk"&&(F.innerHTML=Bi),Ps=i(e),c(Y.$$.fragment,e),Fs=i(e),K=a(e,"P",{"data-svelte-h":!0}),r(K)!=="svelte-1jfyjke"&&(K.textContent=Vi),Ys=i(e),c(O.$$.fragment,e),Ks=i(e),ee=a(e,"P",{"data-svelte-h":!0}),r(ee)!=="svelte-wm20ec"&&(ee.innerHTML=Wi),Os=i(e),c(te.$$.fragment,e),el=i(e),c(se.$$.fragment,e),tl=i(e),le=a(e,"P",{"data-svelte-h":!0}),r(le)!=="svelte-ioiki1"&&(le.innerHTML=Qi),sl=i(e),c(ne.$$.fragment,e),ll=i(e),c(ie.$$.fragment,e),nl=i(e),oe=a(e,"P",{"data-svelte-h":!0}),r(oe)!=="svelte-hx4h33"&&(oe.innerHTML=Ri),il=i(e),c(ae.$$.fragment,e),ol=i(e),c(re.$$.fragment,e),al=i(e),pe=a(e,"P",{"data-svelte-h":!0}),r(pe)!=="svelte-h2yxwq"&&(pe.innerHTML=Ni),rl=i(e),c(ce.$$.fragment,e),pl=i(e),Me=a(e,"P",{"data-svelte-h":!0}),r(Me)!=="svelte-2i9ubf"&&(Me.innerHTML=Ai),cl=i(e),de=a(e,"P",{"data-svelte-h":!0}),r(de)!=="svelte-1p6vkx5"&&(de.textContent=Xi),Ml=i(e),c(me.$$.fragment,e),dl=i(e),ye=a(e,"P",{"data-svelte-h":!0}),r(ye)!=="svelte-46cjj3"&&(ye.innerHTML=qi),ml=i(e),c(ke.$$.fragment,e),yl=i(e),Je=a(e,"P",{"data-svelte-h":!0}),r(Je)!=="svelte-9gaf68"&&(Je.innerHTML=Gi),kl=i(e),c(Te.$$.fragment,e),Jl=i(e),c(ue.$$.fragment,e),Tl=i(e),ge=a(e,"P",{"data-svelte-h":!0}),r(ge)!=="svelte-jy6r65"&&(ge.innerHTML=Li),ul=i(e),je=a(e,"P",{"data-svelte-h":!0}),r(je)!=="svelte-15p3n4u"&&(je.innerHTML=Hi),gl=i(e),c(fe.$$.fragment,e),jl=i(e),c(be.$$.fragment,e),fl=i(e),$e=a(e,"P",{"data-svelte-h":!0}),r($e)!=="svelte-1gzy7xj"&&($e.innerHTML=Ei),bl=i(e),Ue=a(e,"P",{"data-svelte-h":!0}),r(Ue)!=="svelte-9e75ys"&&(Ue.textContent=Di),$l=i(e),c(we.$$.fragment,e),Ul=i(e),ze=a(e,"P",{"data-svelte-h":!0}),r(ze)!=="svelte-1rzgr0m"&&(ze.textContent=Si),wl=i(e),he=a(e,"P",{"data-svelte-h":!0}),r(he)!=="svelte-i1t2lx"&&(he.textContent=Pi),zl=i(e),c(xe.$$.fragment,e),hl=i(e),c(Ie.$$.fragment,e),xl=i(e),Ce=a(e,"P",{"data-svelte-h":!0}),r(Ce)!=="svelte-17sob19"&&(Ce.textContent=Fi),Il=i(e),c(Ze.$$.fragment,e),Cl=i(e),c(_e.$$.fragment,e),Zl=i(e),ve=a(e,"P",{"data-svelte-h":!0}),r(ve)!=="svelte-1xtsg0m"&&(ve.textContent=Yi),_l=i(e),c(Be.$$.fragment,e),vl=i(e),Ve=a(e,"P",{"data-svelte-h":!0}),r(Ve)!=="svelte-1jeksy2"&&(Ve.innerHTML=Ki),Bl=i(e),c(We.$$.fragment,e),Vl=i(e),c(Qe.$$.fragment,e),Wl=i(e),Re=a(e,"P",{"data-svelte-h":!0}),r(Re)!=="svelte-s3e4l1"&&(Re.textContent=Oi),Ql=i(e),c(Ne.$$.fragment,e),Rl=i(e),Ae=a(e,"P",{"data-svelte-h":!0}),r(Ae)!=="svelte-gsf4pl"&&(Ae.innerHTML=eo),Nl=i(e),c(Xe.$$.fragment,e),Al=i(e),qe=a(e,"P",{"data-svelte-h":!0}),r(qe)!=="svelte-saxts2"&&(qe.innerHTML=to),Xl=i(e),Ge=a(e,"P",{"data-svelte-h":!0}),r(Ge)!=="svelte-c5lp68"&&(Ge.innerHTML=so),ql=i(e),c(Le.$$.fragment,e),Gl=i(e),He=a(e,"P",{"data-svelte-h":!0}),r(He)!=="svelte-3muxye"&&(He.innerHTML=lo),Ll=i(e),c(Ee.$$.fragment,e),Hl=i(e),De=a(e,"P",{"data-svelte-h":!0}),r(De)!=="svelte-3pvusq"&&(De.innerHTML=no),El=i(e),Se=a(e,"P",{"data-svelte-h":!0}),r(Se)!=="svelte-1lyflqe"&&(Se.textContent=io),Dl=i(e),c(Pe.$$.fragment,e),Sl=i(e),Fe=a(e,"P",{"data-svelte-h":!0}),r(Fe)!=="svelte-1hdw5sa"&&(Fe.innerHTML=oo),Pl=i(e),c(Ye.$$.fragment,e),Fl=i(e),Ke=a(e,"P",{"data-svelte-h":!0}),r(Ke)!=="svelte-1ec922a"&&(Ke.innerHTML=ao),Yl=i(e),Oe=a(e,"P",{"data-svelte-h":!0}),r(Oe)!=="svelte-1uahpvd"&&(Oe.textContent=ro),Kl=i(e),c(et.$$.fragment,e),Ol=i(e),tt=a(e,"P",{"data-svelte-h":!0}),r(tt)!=="svelte-xea6z8"&&(tt.innerHTML=po),en=i(e),c(st.$$.fragment,e),tn=i(e),c(lt.$$.fragment,e),sn=i(e),nt=a(e,"P",{"data-svelte-h":!0}),r(nt)!=="svelte-8cpkli"&&(nt.textContent=co),ln=i(e),c(it.$$.fragment,e),nn=i(e),ot=a(e,"P",{"data-svelte-h":!0}),r(ot)!=="svelte-1x3ijoa"&&(ot.innerHTML=Mo),on=i(e),at=a(e,"P",{"data-svelte-h":!0}),r(at)!=="svelte-qeny4o"&&(at.textContent=mo),an=i(e),c(rt.$$.fragment,e),rn=i(e),pt=a(e,"P",{"data-svelte-h":!0}),r(pt)!=="svelte-f8svam"&&(pt.textContent=yo),pn=i(e),c(ct.$$.fragment,e),cn=i(e),c(Mt.$$.fragment,e),Mn=i(e),dt=a(e,"P",{"data-svelte-h":!0}),r(dt)!=="svelte-1cv10os"&&(dt.textContent=ko),dn=i(e),c(mt.$$.fragment,e),mn=i(e),yt=a(e,"P",{"data-svelte-h":!0}),r(yt)!=="svelte-au8l8c"&&(yt.innerHTML=Jo),yn=i(e),c(kt.$$.fragment,e),kn=i(e),c(Jt.$$.fragment,e),Jn=i(e),Tt=a(e,"P",{"data-svelte-h":!0}),r(Tt)!=="svelte-1a1apnj"&&(Tt.textContent=To),Tn=i(e),c(ut.$$.fragment,e),un=i(e),gt=a(e,"P",{"data-svelte-h":!0}),r(gt)!=="svelte-675ell"&&(gt.textContent=uo),gn=i(e),c(jt.$$.fragment,e),jn=i(e),c(ft.$$.fragment,e),fn=i(e),bt=a(e,"P",{"data-svelte-h":!0}),r(bt)!=="svelte-1fws21w"&&(bt.innerHTML=go),bn=i(e),c($t.$$.fragment,e),$n=i(e),Ut=a(e,"P",{"data-svelte-h":!0}),r(Ut)!=="svelte-1pzgdft"&&(Ut.textContent=jo),Un=i(e),c(wt.$$.fragment,e),wn=i(e),zt=a(e,"P",{"data-svelte-h":!0}),r(zt)!=="svelte-17tmyse"&&(zt.textContent=fo),zn=i(e),c(ht.$$.fragment,e),hn=i(e),xt=a(e,"P",{"data-svelte-h":!0}),r(xt)!=="svelte-1p4z3wo"&&(xt.innerHTML=bo),xn=i(e),c(It.$$.fragment,e),In=i(e),Ct=a(e,"P",{"data-svelte-h":!0}),r(Ct)!=="svelte-6jmcsf"&&(Ct.textContent=$o),Cn=i(e),Zt=a(e,"P",{"data-svelte-h":!0}),r(Zt)!=="svelte-1z0uul8"&&(Zt.textContent=Uo),Zn=i(e),c(_t.$$.fragment,e),_n=i(e),vt=a(e,"P",{"data-svelte-h":!0}),r(vt)!=="svelte-jnf39y"&&(vt.innerHTML=wo),vn=i(e),Bt=a(e,"P",{"data-svelte-h":!0}),r(Bt)!=="svelte-17fu9q6"&&(Bt.innerHTML=zo),Bn=i(e),c(Vt.$$.fragment,e),Vn=i(e),Wt=a(e,"P",{"data-svelte-h":!0}),r(Wt)!=="svelte-1x0owi0"&&(Wt.textContent=ho),Wn=i(e),c(Qt.$$.fragment,e),Qn=i(e),c(Rt.$$.fragment,e),Rn=i(e),Nt=a(e,"P",{"data-svelte-h":!0}),r(Nt)!=="svelte-1xd39o2"&&(Nt.textContent=xo),Nn=i(e),c(At.$$.fragment,e),An=i(e),Xt=a(e,"P",{"data-svelte-h":!0}),r(Xt)!=="svelte-rhmk1c"&&(Xt.innerHTML=Io),Xn=i(e),qt=a(e,"P",{"data-svelte-h":!0}),r(qt)!=="svelte-qeny4o"&&(qt.textContent=Co),qn=i(e),c(Gt.$$.fragment,e),Gn=i(e),Lt=a(e,"P",{"data-svelte-h":!0}),r(Lt)!=="svelte-867lno"&&(Lt.textContent=Zo),Ln=i(e),c(Ht.$$.fragment,e),Hn=i(e),c(Et.$$.fragment,e),En=i(e),Dt=a(e,"P",{"data-svelte-h":!0}),r(Dt)!=="svelte-1e4tu7q"&&(Dt.innerHTML=_o),Dn=i(e),c(St.$$.fragment,e),Sn=i(e),c(Pt.$$.fragment,e),Pn=i(e),Ft=a(e,"P",{"data-svelte-h":!0}),r(Ft)!=="svelte-j837r6"&&(Ft.textContent=vo),Fn=i(e),c(Yt.$$.fragment,e),Yn=i(e),Kt=a(e,"P",{"data-svelte-h":!0}),r(Kt)!=="svelte-1amd51r"&&(Kt.textContent=Bo),Kn=i(e),c(Ot.$$.fragment,e),On=i(e),c(es.$$.fragment,e),ei=i(e),ts=a(e,"P",{"data-svelte-h":!0}),r(ts)!=="svelte-1btthbu"&&(ts.innerHTML=Vo),ti=i(e),c(ss.$$.fragment,e),si=i(e),ls=a(e,"P",{"data-svelte-h":!0}),r(ls)!=="svelte-vv71hp"&&(ls.innerHTML=Wo),li=i(e),c(ns.$$.fragment,e),ni=i(e),is=a(e,"P",{"data-svelte-h":!0}),r(is)!=="svelte-1pzgdft"&&(is.textContent=Qo),ii=i(e),c(os.$$.fragment,e),oi=i(e),as=a(e,"P",{"data-svelte-h":!0}),r(as)!=="svelte-mip31h"&&(as.textContent=Ro),ai=i(e),c(rs.$$.fragment,e),ri=i(e),ps=a(e,"UL",{"data-svelte-h":!0}),r(ps)!=="svelte-90urvs"&&(ps.innerHTML=No),pi=i(e),c(cs.$$.fragment,e),ci=i(e),ms=a(e,"P",{}),Ao(ms).forEach(s),this.h()},h(){di(J,"name","hf:doc:metadata"),di(J,"content",Oo),di(T,"class","flex justify-center"),di(u,"class","tip")},m(e,t){Do(document.head,J),l(e,ys,t),l(e,ds,t),l(e,ks,t),M(g,e,t),l(e,Js,t),M(j,e,t),l(e,Ts,t),M(f,e,t),l(e,us,t),l(e,b,t),l(e,gs,t),l(e,$,t),l(e,js,t),l(e,U,t),l(e,fs,t),l(e,T,t),l(e,bs,t),l(e,w,t),l(e,$s,t),M(z,e,t),l(e,Us,t),l(e,h,t),l(e,ws,t),l(e,x,t),l(e,zs,t),l(e,I,t),l(e,hs,t),M(C,e,t),l(e,xs,t),l(e,Z,t),l(e,Is,t),M(_,e,t),l(e,Cs,t),l(e,v,t),l(e,Zs,t),l(e,B,t),l(e,_s,t),M(V,e,t),l(e,vs,t),l(e,W,t),l(e,Bs,t),M(Q,e,t),l(e,Vs,t),l(e,R,t),l(e,Ws,t),l(e,N,t),l(e,Qs,t),M(A,e,t),l(e,Rs,t),l(e,X,t),l(e,Ns,t),l(e,q,t),l(e,As,t),M(G,e,t),l(e,Xs,t),l(e,L,t),l(e,qs,t),M(H,e,t),l(e,Gs,t),l(e,E,t),l(e,Ls,t),l(e,D,t),l(e,Hs,t),M(S,e,t),l(e,Es,t),M(P,e,t),l(e,Ds,t),l(e,u,t),l(e,Ss,t),l(e,F,t),l(e,Ps,t),M(Y,e,t),l(e,Fs,t),l(e,K,t),l(e,Ys,t),M(O,e,t),l(e,Ks,t),l(e,ee,t),l(e,Os,t),M(te,e,t),l(e,el,t),M(se,e,t),l(e,tl,t),l(e,le,t),l(e,sl,t),M(ne,e,t),l(e,ll,t),M(ie,e,t),l(e,nl,t),l(e,oe,t),l(e,il,t),M(ae,e,t),l(e,ol,t),M(re,e,t),l(e,al,t),l(e,pe,t),l(e,rl,t),M(ce,e,t),l(e,pl,t),l(e,Me,t),l(e,cl,t),l(e,de,t),l(e,Ml,t),M(me,e,t),l(e,dl,t),l(e,ye,t),l(e,ml,t),M(ke,e,t),l(e,yl,t),l(e,Je,t),l(e,kl,t),M(Te,e,t),l(e,Jl,t),M(ue,e,t),l(e,Tl,t),l(e,ge,t),l(e,ul,t),l(e,je,t),l(e,gl,t),M(fe,e,t),l(e,jl,t),M(be,e,t),l(e,fl,t),l(e,$e,t),l(e,bl,t),l(e,Ue,t),l(e,$l,t),M(we,e,t),l(e,Ul,t),l(e,ze,t),l(e,wl,t),l(e,he,t),l(e,zl,t),M(xe,e,t),l(e,hl,t),M(Ie,e,t),l(e,xl,t),l(e,Ce,t),l(e,Il,t),M(Ze,e,t),l(e,Cl,t),M(_e,e,t),l(e,Zl,t),l(e,ve,t),l(e,_l,t),M(Be,e,t),l(e,vl,t),l(e,Ve,t),l(e,Bl,t),M(We,e,t),l(e,Vl,t),M(Qe,e,t),l(e,Wl,t),l(e,Re,t),l(e,Ql,t),M(Ne,e,t),l(e,Rl,t),l(e,Ae,t),l(e,Nl,t),M(Xe,e,t),l(e,Al,t),l(e,qe,t),l(e,Xl,t),l(e,Ge,t),l(e,ql,t),M(Le,e,t),l(e,Gl,t),l(e,He,t),l(e,Ll,t),M(Ee,e,t),l(e,Hl,t),l(e,De,t),l(e,El,t),l(e,Se,t),l(e,Dl,t),M(Pe,e,t),l(e,Sl,t),l(e,Fe,t),l(e,Pl,t),M(Ye,e,t),l(e,Fl,t),l(e,Ke,t),l(e,Yl,t),l(e,Oe,t),l(e,Kl,t),M(et,e,t),l(e,Ol,t),l(e,tt,t),l(e,en,t),M(st,e,t),l(e,tn,t),M(lt,e,t),l(e,sn,t),l(e,nt,t),l(e,ln,t),M(it,e,t),l(e,nn,t),l(e,ot,t),l(e,on,t),l(e,at,t),l(e,an,t),M(rt,e,t),l(e,rn,t),l(e,pt,t),l(e,pn,t),M(ct,e,t),l(e,cn,t),M(Mt,e,t),l(e,Mn,t),l(e,dt,t),l(e,dn,t),M(mt,e,t),l(e,mn,t),l(e,yt,t),l(e,yn,t),M(kt,e,t),l(e,kn,t),M(Jt,e,t),l(e,Jn,t),l(e,Tt,t),l(e,Tn,t),M(ut,e,t),l(e,un,t),l(e,gt,t),l(e,gn,t),M(jt,e,t),l(e,jn,t),M(ft,e,t),l(e,fn,t),l(e,bt,t),l(e,bn,t),M($t,e,t),l(e,$n,t),l(e,Ut,t),l(e,Un,t),M(wt,e,t),l(e,wn,t),l(e,zt,t),l(e,zn,t),M(ht,e,t),l(e,hn,t),l(e,xt,t),l(e,xn,t),M(It,e,t),l(e,In,t),l(e,Ct,t),l(e,Cn,t),l(e,Zt,t),l(e,Zn,t),M(_t,e,t),l(e,_n,t),l(e,vt,t),l(e,vn,t),l(e,Bt,t),l(e,Bn,t),M(Vt,e,t),l(e,Vn,t),l(e,Wt,t),l(e,Wn,t),M(Qt,e,t),l(e,Qn,t),M(Rt,e,t),l(e,Rn,t),l(e,Nt,t),l(e,Nn,t),M(At,e,t),l(e,An,t),l(e,Xt,t),l(e,Xn,t),l(e,qt,t),l(e,qn,t),M(Gt,e,t),l(e,Gn,t),l(e,Lt,t),l(e,Ln,t),M(Ht,e,t),l(e,Hn,t),M(Et,e,t),l(e,En,t),l(e,Dt,t),l(e,Dn,t),M(St,e,t),l(e,Sn,t),M(Pt,e,t),l(e,Pn,t),l(e,Ft,t),l(e,Fn,t),M(Yt,e,t),l(e,Yn,t),l(e,Kt,t),l(e,Kn,t),M(Ot,e,t),l(e,On,t),M(es,e,t),l(e,ei,t),l(e,ts,t),l(e,ti,t),M(ss,e,t),l(e,si,t),l(e,ls,t),l(e,li,t),M(ns,e,t),l(e,ni,t),l(e,is,t),l(e,ii,t),M(os,e,t),l(e,oi,t),l(e,as,t),l(e,ai,t),M(rs,e,t),l(e,ri,t),l(e,ps,t),l(e,pi,t),M(cs,e,t),l(e,ci,t),l(e,ms,t),Mi=!0},p:qo,i(e){Mi||(d(g.$$.fragment,e),d(j.$$.fragment,e),d(f.$$.fragment,e),d(z.$$.fragment,e),d(C.$$.fragment,e),d(_.$$.fragment,e),d(V.$$.fragment,e),d(Q.$$.fragment,e),d(A.$$.fragment,e),d(G.$$.fragment,e),d(H.$$.fragment,e),d(S.$$.fragment,e),d(P.$$.fragment,e),d(Y.$$.fragment,e),d(O.$$.fragment,e),d(te.$$.fragment,e),d(se.$$.fragment,e),d(ne.$$.fragment,e),d(ie.$$.fragment,e),d(ae.$$.fragment,e),d(re.$$.fragment,e),d(ce.$$.fragment,e),d(me.$$.fragment,e),d(ke.$$.fragment,e),d(Te.$$.fragment,e),d(ue.$$.fragment,e),d(fe.$$.fragment,e),d(be.$$.fragment,e),d(we.$$.fragment,e),d(xe.$$.fragment,e),d(Ie.$$.fragment,e),d(Ze.$$.fragment,e),d(_e.$$.fragment,e),d(Be.$$.fragment,e),d(We.$$.fragment,e),d(Qe.$$.fragment,e),d(Ne.$$.fragment,e),d(Xe.$$.fragment,e),d(Le.$$.fragment,e),d(Ee.$$.fragment,e),d(Pe.$$.fragment,e),d(Ye.$$.fragment,e),d(et.$$.fragment,e),d(st.$$.fragment,e),d(lt.$$.fragment,e),d(it.$$.fragment,e),d(rt.$$.fragment,e),d(ct.$$.fragment,e),d(Mt.$$.fragment,e),d(mt.$$.fragment,e),d(kt.$$.fragment,e),d(Jt.$$.fragment,e),d(ut.$$.fragment,e),d(jt.$$.fragment,e),d(ft.$$.fragment,e),d($t.$$.fragment,e),d(wt.$$.fragment,e),d(ht.$$.fragment,e),d(It.$$.fragment,e),d(_t.$$.fragment,e),d(Vt.$$.fragment,e),d(Qt.$$.fragment,e),d(Rt.$$.fragment,e),d(At.$$.fragment,e),d(Gt.$$.fragment,e),d(Ht.$$.fragment,e),d(Et.$$.fragment,e),d(St.$$.fragment,e),d(Pt.$$.fragment,e),d(Yt.$$.fragment,e),d(Ot.$$.fragment,e),d(es.$$.fragment,e),d(ss.$$.fragment,e),d(ns.$$.fragment,e),d(os.$$.fragment,e),d(rs.$$.fragment,e),d(cs.$$.fragment,e),Mi=!0)},o(e){m(g.$$.fragment,e),m(j.$$.fragment,e),m(f.$$.fragment,e),m(z.$$.fragment,e),m(C.$$.fragment,e),m(_.$$.fragment,e),m(V.$$.fragment,e),m(Q.$$.fragment,e),m(A.$$.fragment,e),m(G.$$.fragment,e),m(H.$$.fragment,e),m(S.$$.fragment,e),m(P.$$.fragment,e),m(Y.$$.fragment,e),m(O.$$.fragment,e),m(te.$$.fragment,e),m(se.$$.fragment,e),m(ne.$$.fragment,e),m(ie.$$.fragment,e),m(ae.$$.fragment,e),m(re.$$.fragment,e),m(ce.$$.fragment,e),m(me.$$.fragment,e),m(ke.$$.fragment,e),m(Te.$$.fragment,e),m(ue.$$.fragment,e),m(fe.$$.fragment,e),m(be.$$.fragment,e),m(we.$$.fragment,e),m(xe.$$.fragment,e),m(Ie.$$.fragment,e),m(Ze.$$.fragment,e),m(_e.$$.fragment,e),m(Be.$$.fragment,e),m(We.$$.fragment,e),m(Qe.$$.fragment,e),m(Ne.$$.fragment,e),m(Xe.$$.fragment,e),m(Le.$$.fragment,e),m(Ee.$$.fragment,e),m(Pe.$$.fragment,e),m(Ye.$$.fragment,e),m(et.$$.fragment,e),m(st.$$.fragment,e),m(lt.$$.fragment,e),m(it.$$.fragment,e),m(rt.$$.fragment,e),m(ct.$$.fragment,e),m(Mt.$$.fragment,e),m(mt.$$.fragment,e),m(kt.$$.fragment,e),m(Jt.$$.fragment,e),m(ut.$$.fragment,e),m(jt.$$.fragment,e),m(ft.$$.fragment,e),m($t.$$.fragment,e),m(wt.$$.fragment,e),m(ht.$$.fragment,e),m(It.$$.fragment,e),m(_t.$$.fragment,e),m(Vt.$$.fragment,e),m(Qt.$$.fragment,e),m(Rt.$$.fragment,e),m(At.$$.fragment,e),m(Gt.$$.fragment,e),m(Ht.$$.fragment,e),m(Et.$$.fragment,e),m(St.$$.fragment,e),m(Pt.$$.fragment,e),m(Yt.$$.fragment,e),m(Ot.$$.fragment,e),m(es.$$.fragment,e),m(ss.$$.fragment,e),m(ns.$$.fragment,e),m(os.$$.fragment,e),m(rs.$$.fragment,e),m(cs.$$.fragment,e),Mi=!1},d(e){e&&(s(ys),s(ds),s(ks),s(Js),s(Ts),s(us),s(b),s(gs),s($),s(js),s(U),s(fs),s(T),s(bs),s(w),s($s),s(Us),s(h),s(ws),s(x),s(zs),s(I),s(hs),s(xs),s(Z),s(Is),s(Cs),s(v),s(Zs),s(B),s(_s),s(vs),s(W),s(Bs),s(Vs),s(R),s(Ws),s(N),s(Qs),s(Rs),s(X),s(Ns),s(q),s(As),s(Xs),s(L),s(qs),s(Gs),s(E),s(Ls),s(D),s(Hs),s(Es),s(Ds),s(u),s(Ss),s(F),s(Ps),s(Fs),s(K),s(Ys),s(Ks),s(ee),s(Os),s(el),s(tl),s(le),s(sl),s(ll),s(nl),s(oe),s(il),s(ol),s(al),s(pe),s(rl),s(pl),s(Me),s(cl),s(de),s(Ml),s(dl),s(ye),s(ml),s(yl),s(Je),s(kl),s(Jl),s(Tl),s(ge),s(ul),s(je),s(gl),s(jl),s(fl),s($e),s(bl),s(Ue),s($l),s(Ul),s(ze),s(wl),s(he),s(zl),s(hl),s(xl),s(Ce),s(Il),s(Cl),s(Zl),s(ve),s(_l),s(vl),s(Ve),s(Bl),s(Vl),s(Wl),s(Re),s(Ql),s(Rl),s(Ae),s(Nl),s(Al),s(qe),s(Xl),s(Ge),s(ql),s(Gl),s(He),s(Ll),s(Hl),s(De),s(El),s(Se),s(Dl),s(Sl),s(Fe),s(Pl),s(Fl),s(Ke),s(Yl),s(Oe),s(Kl),s(Ol),s(tt),s(en),s(tn),s(sn),s(nt),s(ln),s(nn),s(ot),s(on),s(at),s(an),s(rn),s(pt),s(pn),s(cn),s(Mn),s(dt),s(dn),s(mn),s(yt),s(yn),s(kn),s(Jn),s(Tt),s(Tn),s(un),s(gt),s(gn),s(jn),s(fn),s(bt),s(bn),s($n),s(Ut),s(Un),s(wn),s(zt),s(zn),s(hn),s(xt),s(xn),s(In),s(Ct),s(Cn),s(Zt),s(Zn),s(_n),s(vt),s(vn),s(Bt),s(Bn),s(Vn),s(Wt),s(Wn),s(Qn),s(Rn),s(Nt),s(Nn),s(An),s(Xt),s(Xn),s(qt),s(qn),s(Gn),s(Lt),s(Ln),s(Hn),s(En),s(Dt),s(Dn),s(Sn),s(Pn),s(Ft),s(Fn),s(Yn),s(Kt),s(Kn),s(On),s(ei),s(ts),s(ti),s(si),s(ls),s(li),s(ni),s(is),s(ii),s(oi),s(as),s(ai),s(ri),s(ps),s(pi),s(ci),s(ms)),s(J),y(g,e),y(j,e),y(f,e),y(z,e),y(C,e),y(_,e),y(V,e),y(Q,e),y(A,e),y(G,e),y(H,e),y(S,e),y(P,e),y(Y,e),y(O,e),y(te,e),y(se,e),y(ne,e),y(ie,e),y(ae,e),y(re,e),y(ce,e),y(me,e),y(ke,e),y(Te,e),y(ue,e),y(fe,e),y(be,e),y(we,e),y(xe,e),y(Ie,e),y(Ze,e),y(_e,e),y(Be,e),y(We,e),y(Qe,e),y(Ne,e),y(Xe,e),y(Le,e),y(Ee,e),y(Pe,e),y(Ye,e),y(et,e),y(st,e),y(lt,e),y(it,e),y(rt,e),y(ct,e),y(Mt,e),y(mt,e),y(kt,e),y(Jt,e),y(ut,e),y(jt,e),y(ft,e),y($t,e),y(wt,e),y(ht,e),y(It,e),y(_t,e),y(Vt,e),y(Qt,e),y(Rt,e),y(At,e),y(Gt,e),y(Ht,e),y(Et,e),y(St,e),y(Pt,e),y(Yt,e),y(Ot,e),y(es,e),y(ss,e),y(ns,e),y(os,e),y(rs,e),y(cs,e)}}}const Oo='{"title":"Tokenizer တစ်ခုကို အဆင့်ဆင့် တည်ဆောက်ခြင်း","local":"building-a-tokenizer-block-by-block","sections":[{"title":"Corpus တစ်ခု ရယူခြင်း","local":"acquiring-a-corpus","sections":[],"depth":2},{"title":"အစကနေ WordPiece Tokenizer တစ်ခု တည်ဆောက်ခြင်း","local":"building-a-wordpiece-tokenizer-from-scratch","sections":[],"depth":2},{"title":"အစကနေ BPE Tokenizer တစ်ခု တည်ဆောက်ခြင်း","local":"building-a-bpe-tokenizer-from-scratch","sections":[],"depth":2},{"title":"အစကနေ Unigram Tokenizer တစ်ခု တည်ဆောက်ခြင်း","local":"building-a-unigram-tokenizer-from-scratch","sections":[],"depth":2},{"title":"ဝေါဟာရ ရှင်းလင်းချက် (Glossary)","local":"ဝဟရ-ရငလငခက-glossary","sections":[],"depth":2}],"depth":1}';function ea(mi){return Go(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class aa extends Lo{constructor(J){super(),Ho(this,J,ea,Ko,Xo,{})}}export{aa as component}; | |
Xet Storage Details
- Size:
- 124 kB
- Xet hash:
- 2b196b81f95ea04d706ead8c677542a6d8764d1d4f51d87c894c9ab9a681af92
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.