import{s as V,n as D,o as I}from"../chunks/scheduler.37c15a92.js";import{S as J,i as Q,g as r,s as i,r as M,A as W,h as m,f as e,c as a,j as O,u as E,x as $,k as R,y as X,a as h,v as S,d as A,t as G,w as N}from"../chunks/index.2bf4358c.js";import{C as Y}from"../chunks/CourseFloatingBanner.9ff4c771.js";import{H as Z,E as tt}from"../chunks/getInferenceSnippets.80a69898.js";function nt(U){let c,y,k,d,l,x,u,_,s,j='Trong <a href="/course/chapter3">Chương 3</a>, chúng ta đã xem xét cách tinh chỉnh một mô hình trong một tác vụ nhất định. Khi làm điều đó, chúng ta sử dụng cùng một trình tokenizer mà mô hình đã được huấn luyện trước - nhưng chúng ra phải làm gì khi muốn huấn luyện một mô hình từ đầu? Trong những trường hợp này, việc sử dụng trình tokenizer đã được huấn luyện trước trên một kho ngữ liệu từ một lĩnh vực hoặc ngôn ngữ khác thường là không tối ưu. Ví dụ: một tokenizer được huấn luyện trên ngữ liệu tiếng Anh sẽ hoạt động kém trên ngữ liệu văn bản tiếng Nhật vì việc sử dụng dấu cách và dấu câu trong hai ngôn ngữ rất khác nhau.',C,o,q='Trong chương này, bạn sẽ học cách huấn luyện một trình tokenize hoàn toàn mới trên kho ngữ liệu văn bản, do đó, nó có thể được sử dụng để huấn luyện trước một mô hình ngôn ngữ. Tất cả điều này sẽ được thực hiện với sự trợ giúp của thư viện <a href="https://github.com/huggingface/tokenizers" rel="nofollow">🤗 Tokenizers</a>, nơi cung cấp các tokenizer “nhanh” trong thư viện <a href="https://github.com/huggingface/transformers" rel="nofollow">🤗 Transformers</a>. Chúng ta sẽ xem xét kỹ các tính năng mà thư viện này cung cấp và khám phá cách các bản tokenizer nhanh khác so với các phiên bản “chậm”.',T,g,B="Các chủ đề chúng ta sẽ đề cập bao gồm:",z,p,F="<li>Cách huấn luyện một trình tokenize mới tương tự như một trình được sử dụng bởi một checkpoint nhất định trên một kho văn bản mới</li> <li>Các tính năng đặc biệt của tokenizer nhanh</li> <li>Sự khác biệt giữa ba thuật toán tokenize từ phụ được sử dụng trong NLP ngày nay</li> <li>Cách xây dựng một tokenizer từ đầu với thư viện 🤗 Tokenizer và huấn luyện nó trên một số dữ liệu</li>",P,f,K='Các kỹ thuật được giới thiệu trong chương này sẽ giúp bạn chuẩn bị cho phần trong <a href="/course/chapter7/6">Chương 7</a>, nơi chúng ta xem xét việc tạo mô hình ngôn ngữ cho mã nguồn Python. Hãy bắt đầu bằng cách xem xét ý nghĩa của việc “huấn luyện” một tokenizer ngay từ đầu.',H,v,L,b,w;return l=new Z({props:{title:"Giới thiệu",local:"giới-thiệu",headingTag:"h1"}}),u=new Y({props:{chapter:6,classNames:"absolute z-10 right-0 top-0"}}),v=new tt({props:{source:"https://github.com/huggingface/course/blob/main/chapters/vi/chapter6/1.mdx"}}),{c(){c=r("meta"),y=i(),k=r("p"),d=i(),M(l.$$.fragment),x=i(),M(u.$$.fragment),_=i(),s=r("p"),s.innerHTML=j,C=i(),o=r("p"),o.innerHTML=q,T=i(),g=r("p"),g.textContent=B,z=i(),p=r("ul"),p.innerHTML=F,P=i(),f=r("p"),f.innerHTML=K,H=i(),M(v.$$.fragment),L=i(),b=r("p"),this.h()},l(t){const n=W("svelte-u9bgzb",document.head);c=m(n,"META",{name:!0,content:!0}),n.forEach(e),y=a(t),k=m(t,"P",{}),O(k).forEach(e),d=a(t),E(l.$$.fragment,t),x=a(t),E(u.$$.fragment,t),_=a(t),s=m(t,"P",{"data-svelte-h":!0}),$(s)!=="svelte-137lmnf"&&(s.innerHTML=j),C=a(t),o=m(t,"P",{"data-svelte-h":!0}),$(o)!=="svelte-1a1acmh"&&(o.innerHTML=q),T=a(t),g=m(t,"P",{"data-svelte-h":!0}),$(g)!=="svelte-19maa03"&&(g.textContent=B),z=a(t),p=m(t,"UL",{"data-svelte-h":!0}),$(p)!=="svelte-1v0yhdn"&&(p.innerHTML=F),P=a(t),f=m(t,"P",{"data-svelte-h":!0}),$(f)!=="svelte-1xatffg"&&(f.innerHTML=K),H=a(t),E(v.$$.fragment,t),L=a(t),b=m(t,"P",{}),O(b).forEach(e),this.h()},h(){R(c,"name","hf:doc:metadata"),R(c,"content",et)},m(t,n){X(document.head,c),h(t,y,n),h(t,k,n),h(t,d,n),S(l,t,n),h(t,x,n),S(u,t,n),h(t,_,n),h(t,s,n),h(t,C,n),h(t,o,n),h(t,T,n),h(t,g,n),h(t,z,n),h(t,p,n),h(t,P,n),h(t,f,n),h(t,H,n),S(v,t,n),h(t,L,n),h(t,b,n),w=!0},p:D,i(t){w||(A(l.$$.fragment,t),A(u.$$.fragment,t),A(v.$$.fragment,t),w=!0)},o(t){G(l.$$.fragment,t),G(u.$$.fragment,t),G(v.$$.fragment,t),w=!1},d(t){t&&(e(y),e(k),e(d),e(x),e(_),e(s),e(C),e(o),e(T),e(g),e(z),e(p),e(P),e(f),e(H),e(L),e(b)),e(c),N(l,t),N(u,t),N(v,t)}}}const et='{"title":"Giới thiệu","local":"giới-thiệu","sections":[],"depth":1}';function ht(U){return I(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class mt extends J{constructor(c){super(),Q(this,c,ht,nt,V,{})}}export{mt as component};
