import{s as J,n as K,o as V}from"../chunks/scheduler.cc52f4b9.js";import{S as W,i as X,e as r,s as n,c as j,h as Y,a as m,d as o,b as i,f as Q,g as E,j as v,k as R,l as Z,m as a,n as N,t as S,o as A,p as I}from"../chunks/index.d2856393.js";import{C as ee,H as te,E as oe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.e6659d4e.js";import{C as ae}from"../chunks/CourseFloatingBanner.1c404cc0.js";function ne(O){let s,x,b,_,u,k,l,C,p,T,d,U='No <a href="/course/chapter3">Capítulo 3</a>, nós estudamos como realizar o ajuste fino em um modelo para uma dada tarefa. Quando nós fazemos isso, usamos o mesmo tokenizador utilizado pelo modelo pré-treinado — mas o que podemos fazer quando queremos treinar um modelo do início? Nestes casos, utilizar um tokenizador que foi pré-treinado em um corpus de outro domínio ou linguagem é tipicamente subótimo. Por exemplo, um tokenizador que é treinado em um corpus de lingua inglesa terá um desempenho ruim em um corpus de textos em japonês, visto que o uso de espaços e pontuações é muito diferente nestes dois idiomas.',P,c,B='Neste capítulo, você aprenderá como treinar um novo tokenizador em um corpus de textos, para então ser usado no treinamento de um modelo de linguagem. Isto tudo será feito com ajuda da biblioteca <a href="https://github.com/huggingface/tokenizers" rel="nofollow">🤗 Tokenizers</a>, que provê o tokenizador rápido na biblioteca <a href="https://github.com/huggingface/transformers" rel="nofollow">🤗 Transformers</a>. Daremos uma olhada a fundo sobre as funcionalidades oferecidas pela biblioteca, e explorar como os tokenizadores rápidos diferem das versões “lentas”.',L,f,D="Os tópicos que iremos cobrir incluem:",M,g,F="<li>Como treinar um novo tokenizador semelhante ao usado por um determinado checkpoint em um novo corpus de textos</li> <li>Os recursos especiais dos tokenizadores rápidos</li> <li>As diferenças entre os três principais algoritmos de tokenização de subpalavras usados ​​no processamento de linguagem natural hoje</li> <li>Como construir um tokenizador do zero com a biblioteca 🤗 Tokenizers e treiná-lo em alguns dados</li>",q,$,G='As técnicas introduzidas neste capítulo irão te preparar para a seção no <a href="/course/chapter7/6">Capítulo 7</a> onde iremos analisar a criação de um modelo de linguagem para a linguagem Python. Primeiramente, vamos começar analisando o que significa “treinar” um tokenizador.',w,h,H,z,y;return u=new ee({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),l=new te({props:{title:"Introdução",local:"introdução",headingTag:"h1"}}),p=new ae({props:{chapter:6,classNames:"absolute z-10 right-0 top-0"}}),h=new oe({props:{source:"https://github.com/huggingface/course/blob/main/chapters/pt/chapter6/1.mdx"}}),{c(){s=r("meta"),x=n(),b=r("p"),_=n(),j(u.$$.fragment),k=n(),j(l.$$.fragment),C=n(),j(p.$$.fragment),T=n(),d=r("p"),d.innerHTML=U,P=n(),c=r("p"),c.innerHTML=B,L=n(),f=r("p"),f.textContent=D,M=n(),g=r("ul"),g.innerHTML=F,q=n(),$=r("p"),$.innerHTML=G,w=n(),j(h.$$.fragment),H=n(),z=r("p"),this.h()},l(e){const t=Y("svelte-u9bgzb",document.head);s=m(t,"META",{name:!0,content:!0}),t.forEach(o),x=i(e),b=m(e,"P",{}),Q(b).forEach(o),_=i(e),E(u.$$.fragment,e),k=i(e),E(l.$$.fragment,e),C=i(e),E(p.$$.fragment,e),T=i(e),d=m(e,"P",{"data-svelte-h":!0}),v(d)!=="svelte-2vpzc"&&(d.innerHTML=U),P=i(e),c=m(e,"P",{"data-svelte-h":!0}),v(c)!=="svelte-u7j4p"&&(c.innerHTML=B),L=i(e),f=m(e,"P",{"data-svelte-h":!0}),v(f)!=="svelte-a51f1r"&&(f.textContent=D),M=i(e),g=m(e,"UL",{"data-svelte-h":!0}),v(g)!=="svelte-1yxc2bu"&&(g.innerHTML=F),q=i(e),$=m(e,"P",{"data-svelte-h":!0}),v($)!=="svelte-1u22jb6"&&($.innerHTML=G),w=i(e),E(h.$$.fragment,e),H=i(e),z=m(e,"P",{}),Q(z).forEach(o),this.h()},h(){R(s,"name","hf:doc:metadata"),R(s,"content",ie)},m(e,t){Z(document.head,s),a(e,x,t),a(e,b,t),a(e,_,t),N(u,e,t),a(e,k,t),N(l,e,t),a(e,C,t),N(p,e,t),a(e,T,t),a(e,d,t),a(e,P,t),a(e,c,t),a(e,L,t),a(e,f,t),a(e,M,t),a(e,g,t),a(e,q,t),a(e,$,t),a(e,w,t),N(h,e,t),a(e,H,t),a(e,z,t),y=!0},p:K,i(e){y||(S(u.$$.fragment,e),S(l.$$.fragment,e),S(p.$$.fragment,e),S(h.$$.fragment,e),y=!0)},o(e){A(u.$$.fragment,e),A(l.$$.fragment,e),A(p.$$.fragment,e),A(h.$$.fragment,e),y=!1},d(e){e&&(o(x),o(b),o(_),o(k),o(C),o(T),o(d),o(P),o(c),o(L),o(f),o(M),o(g),o(q),o($),o(w),o(H),o(z)),o(s),I(u,e),I(l,e),I(p,e),I(h,e)}}}const ie='{"title":"Introdução","local":"introdução","sections":[],"depth":1}';function se(O){return V(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class pe extends W{constructor(s){super(),X(this,s,se,ne,J,{})}}export{pe as component};
