import{s as G,n as I,o as J}from"../chunks/scheduler.37c15a92.js";import{S as K,i as O,g as i,s,r as q,A as Q,h as o,f as a,c as r,j as A,u as N,x as v,k as U,y as V,a as n,v as B,d as F,t as R,w as D}from"../chunks/index.2bf4358c.js";import{C as W}from"../chunks/CourseFloatingBanner.15ba07e6.js";import{H as X}from"../chunks/Heading.8ada512a.js";function Y(M){let l,d,$,T,m,x,u,P,f,k=`ใน<a href="/course/chapter3">บทที่ 3</a> คุณได้เรียนเกี่ยวกับการ fine-tune โมเดลเพื่อนำไปใช้ในงานที่คุณต้องการ ตอนนั้นเราใช้ตัวตัดคำ(tokenizer)แบบเดียวกับตัวที่มากับโมเดล แต่หากคุณอยากจะเทรนโมเดลตั้งแต่เริ่มต้นเลย คุณควรจะเลือกใช้ตัวตัดคำแบบไหนดี
ในกรณีนี้ถ้าคุณใช้ตัวตัดคำที่เทรนจากคลังข้อมูล(corpus)ที่ไม่ใช่ภาษาเดียวกับโมเดลหรือคลังข้อมูลที่มาจากโดเมนอื่น(แปลว่าเนื้อหาของข้อมูลที่ใช้เทรนตัวตัดคำและใช้เทรนโมเดลมีความแตกต่างกันมาก)ก็จะไม่เหมาะสมนัก
ตัวอย่างเช่น ตัวตัดคำที่เทรนมาสำหรับตัดคำภาษาอังกฤษ เมื่อนำมาใช้เพื่อตัดคำภาษาญี่ปุ่นก็จะได้ผลลัพธ์ที่ไม่ดี เพราะว่าทั้งสองภาษามีการใช้ช่องว่าง(space)และเครื่องหมายวรรคตอน(punctuation)ที่ต่างกันมาก`,b,p,z=`ในบทนี้คุณจะได้เรียนเกี่ยวกับการเทรนตัวตัดคำจากคลังข้อความ(corpus of texts) เพื่อให้ได้ตัวตัดคำที่เหมาะสมกับ language model ที่คุณต้องการจะเทรน
เราจะใช้ library ที่ชื่อว่า <a href="https://github.com/huggingface/tokenizers" rel="nofollow">🤗 Tokenizers</a> ซึ่งมีตัวตัดคำแบบ “เร็ว” ให้ผู้ใช้เลือกได้ ใน <a href="https://github.com/huggingface/transformers" rel="nofollow">🤗 Transformers</a> library
เราจะมาดู features ต่างๆของ library นี้กันและมาเรียนรู้ว่าตัวตัดคำแบบเร็วและแบบช้านั้นต่างกันอย่างไร`,w,c,E="หัวข้อที่เราจะเรียนกันในบทนี้:",L,h,S="<li>การสร้างตัวตัดคำขึ้นมาใหม่ให้คล้ายกับตัวที่ใช้ใน checkpoint โดนใช้ชุดข้อมูลใหม่ในการเทรน</li> <li>feature พิเศษของตัวตัดคำแบบเร็ว</li> <li>ความแตกต่างระหว่างอัลกอริทึม 3 แบบที่ใช้ในการสร้างตัวตัดคำประเภท subword ที่ใช้ใน NLP ทุกวันนี้</li> <li>การสร้างและเทรนตัวตัดคำตั้งแต่เริ่มต้นด้วย 🤗 Tokenizers library</li>",y,_,j=`เทคนิคต่างๆที่คุณจะได้เรียนในบทนี้จะเป็นเตรียมให้คุณพร้อมสำหรับ<a href="/course/chapter7/6">บทที่ 7</a> ซึ่งคุณจะได้เรียนเกี่ยวกับการสร้าง language model ด้วย Python
เรามาเริ่มกันที่ความหมายของการ “เทรน” ตัวตัดคำ`,C,g,H;return m=new X({props:{title:"บทนำ",local:"บทนำ",headingTag:"h1"}}),u=new W({props:{chapter:6,classNames:"absolute z-10 right-0 top-0"}}),{c(){l=i("meta"),d=s(),$=i("p"),T=s(),q(m.$$.fragment),x=s(),q(u.$$.fragment),P=s(),f=i("p"),f.innerHTML=k,b=s(),p=i("p"),p.innerHTML=z,w=s(),c=i("p"),c.textContent=E,L=s(),h=i("ul"),h.innerHTML=S,y=s(),_=i("p"),_.innerHTML=j,C=s(),g=i("p"),this.h()},l(e){const t=Q("svelte-u9bgzb",document.head);l=o(t,"META",{name:!0,content:!0}),t.forEach(a),d=r(e),$=o(e,"P",{}),A($).forEach(a),T=r(e),N(m.$$.fragment,e),x=r(e),N(u.$$.fragment,e),P=r(e),f=o(e,"P",{"data-svelte-h":!0}),v(f)!=="svelte-k1tf0a"&&(f.innerHTML=k),b=r(e),p=o(e,"P",{"data-svelte-h":!0}),v(p)!=="svelte-ezm1gv"&&(p.innerHTML=z),w=r(e),c=o(e,"P",{"data-svelte-h":!0}),v(c)!=="svelte-14jylli"&&(c.textContent=E),L=r(e),h=o(e,"UL",{"data-svelte-h":!0}),v(h)!=="svelte-vgtu2e"&&(h.innerHTML=S),y=r(e),_=o(e,"P",{"data-svelte-h":!0}),v(_)!=="svelte-7kfnqw"&&(_.innerHTML=j),C=r(e),g=o(e,"P",{}),A(g).forEach(a),this.h()},h(){U(l,"name","hf:doc:metadata"),U(l,"content",Z)},m(e,t){V(document.head,l),n(e,d,t),n(e,$,t),n(e,T,t),B(m,e,t),n(e,x,t),B(u,e,t),n(e,P,t),n(e,f,t),n(e,b,t),n(e,p,t),n(e,w,t),n(e,c,t),n(e,L,t),n(e,h,t),n(e,y,t),n(e,_,t),n(e,C,t),n(e,g,t),H=!0},p:I,i(e){H||(F(m.$$.fragment,e),F(u.$$.fragment,e),H=!0)},o(e){R(m.$$.fragment,e),R(u.$$.fragment,e),H=!1},d(e){e&&(a(d),a($),a(T),a(x),a(P),a(f),a(b),a(p),a(w),a(c),a(L),a(h),a(y),a(_),a(C),a(g)),a(l),D(m,e),D(u,e)}}}const Z='{"title":"บทนำ","local":"บทนำ","sections":[],"depth":1}';function ee(M){return J(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class se extends K{constructor(l){super(),O(this,l,ee,Y,G,{})}}export{se as component};
