import{s as R,n as J,o as K}from"../chunks/scheduler.37c15a92.js";import{S as Q,i as V,g as o,s as r,r as H,A as W,h as u,f as n,c as i,j as G,u as E,x,k as O,y as X,a as s,v as j,d as y,t as D,w as N}from"../chunks/index.2bf4358c.js";import{C as Y}from"../chunks/CourseFloatingBanner.15ba07e6.js";import{H as Z,E as ee}from"../chunks/EditOnGithub.8916dc7c.js";function te(S){let a,_,v,b,l,q,m,z,p,A='Dans le <a href="/course/fr/chapter3">chapitre 3</a>, nous avons vu comment <em>finetuner</em> un modèle sur une tâche donnée. Pour ce faire, nous utilisons le même <em>tokenizer</em> que celui avec lequel le modèle a été pré-entraîné. Mais que faisons-nous lorsque nous voulons entraîner un modèle à partir de zéro ? Dans ces cas, l’utilisation d’un <em>tokenizer</em> qui a été pré-entraîné sur un corpus d’un autre domaine ou d’une autre langue est généralement sous-optimale. Par exemple, un <em>tokenizer</em> entraîné sur un corpus anglais sera peu performant sur un corpus de textes japonais car l’utilisation des espaces et de la ponctuation est très différente entre les deux langues.',k,c,I='Dans ce chapitre, vous apprendrez à entraîner un tout nouveau <em>tokenizer</em> sur un corpus de textes afin qu’il puisse ensuite être utilisé pour pré-entraîner un modèle de langue. Tout cela se fera à l’aide de la bibliothèque <a href="https://github.com/huggingface/tokenizers" rel="nofollow">🤗 <em>Tokenizers</em></a>, qui fournit les <em>tokenizers</em> « rapides » de la bibliothèque <a href="https://github.com/huggingface/transformers" rel="nofollow">🤗 <em>Transformers</em></a>. Nous examinerons de près les fonctionnalités offertes par cette bibliothèque et nous étudierons comment les <em>tokenizers</em> rapides diffèrent des versions « lentes ».',P,f,U="Les sujets que nous couvrirons comprennent :",T,d,B="<li>comment entraîner sur un nouveau corpus de textes, un nouveau <em>tokenizer</em> similaire à celui utilisé par un <em>checkpoint</em> donné,</li> <li>les caractéristiques spéciales des <em>tokenizers</em> rapides,</li> <li>les différences entre les trois principaux algorithmes de tokénisation utilisés aujourd’hui en NLP,</li> <li>comment construire un <em>tokenizer</em> à partir de zéro avec la bibliothèque 🤗 <em>Tokenizers</em> et l’entraîner sur des données.</li>",L,h,F='Les techniques présentées dans ce chapitre vous prépareront à la section du <a href="/course/fr/chapter7/6">chapitre 7</a> où nous verrons comment créer un modèle de langue pour le langage Python. Commençons par examiner ce que signifie « entraîner » un <em>tokenizer</em>.',C,g,M,$,w;return l=new Z({props:{title:"Introduction",local:"introduction",headingTag:"h1"}}),m=new Y({props:{chapter:6,classNames:"absolute z-10 right-0 top-0"}}),g=new ee({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fr/chapter6/1.mdx"}}),{c(){a=o("meta"),_=r(),v=o("p"),b=r(),H(l.$$.fragment),q=r(),H(m.$$.fragment),z=r(),p=o("p"),p.innerHTML=A,k=r(),c=o("p"),c.innerHTML=I,P=r(),f=o("p"),f.textContent=U,T=r(),d=o("ul"),d.innerHTML=B,L=r(),h=o("p"),h.innerHTML=F,C=r(),H(g.$$.fragment),M=r(),$=o("p"),this.h()},l(e){const t=W("svelte-u9bgzb",document.head);a=u(t,"META",{name:!0,content:!0}),t.forEach(n),_=i(e),v=u(e,"P",{}),G(v).forEach(n),b=i(e),E(l.$$.fragment,e),q=i(e),E(m.$$.fragment,e),z=i(e),p=u(e,"P",{"data-svelte-h":!0}),x(p)!=="svelte-t1ff6g"&&(p.innerHTML=A),k=i(e),c=u(e,"P",{"data-svelte-h":!0}),x(c)!=="svelte-1oo9qum"&&(c.innerHTML=I),P=i(e),f=u(e,"P",{"data-svelte-h":!0}),x(f)!=="svelte-1uiouof"&&(f.textContent=U),T=i(e),d=u(e,"UL",{"data-svelte-h":!0}),x(d)!=="svelte-118c9qj"&&(d.innerHTML=B),L=i(e),h=u(e,"P",{"data-svelte-h":!0}),x(h)!=="svelte-1l3x3qe"&&(h.innerHTML=F),C=i(e),E(g.$$.fragment,e),M=i(e),$=u(e,"P",{}),G($).forEach(n),this.h()},h(){O(a,"name","hf:doc:metadata"),O(a,"content",ne)},m(e,t){X(document.head,a),s(e,_,t),s(e,v,t),s(e,b,t),j(l,e,t),s(e,q,t),j(m,e,t),s(e,z,t),s(e,p,t),s(e,k,t),s(e,c,t),s(e,P,t),s(e,f,t),s(e,T,t),s(e,d,t),s(e,L,t),s(e,h,t),s(e,C,t),j(g,e,t),s(e,M,t),s(e,$,t),w=!0},p:J,i(e){w||(y(l.$$.fragment,e),y(m.$$.fragment,e),y(g.$$.fragment,e),w=!0)},o(e){D(l.$$.fragment,e),D(m.$$.fragment,e),D(g.$$.fragment,e),w=!1},d(e){e&&(n(_),n(v),n(b),n(q),n(z),n(p),n(k),n(c),n(P),n(f),n(T),n(d),n(L),n(h),n(C),n(M),n($)),n(a),N(l,e),N(m,e),N(g,e)}}}const ne='{"title":"Introduction","local":"introduction","sections":[],"depth":1}';function se(S){return K(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ue extends Q{constructor(a){super(),V(this,a,se,te,R,{})}}export{ue as component};
