import{s as sl,o as tl}from"../chunks/scheduler.37c15a92.js";import{S as nl,i as al,g as J,s as u,r,A as ul,h as b,f as s,c as o,j as Pe,u as c,x as T,k as Ke,y as ol,a as n,v as m,t as p,b as Oe,d as M,w as d,p as el}from"../chunks/index.2bf4358c.js";import{C as y}from"../chunks/CodeBlock.4e987730.js";import{C as ll}from"../chunks/CourseFloatingBanner.6add7356.js";import{F as il}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as Ge,E as pl}from"../chunks/getInferenceSnippets.648f38f6.js";function Ml(w){let a,i;return a=new ll({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_tf.ipynb"},{label:"Français",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter2/section6_tf.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_tf.ipynb"},{label:"Français",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter2/section6_tf.ipynb"}]}}),{c(){r(a.$$.fragment)},l(t){c(a.$$.fragment,t)},m(t,j){m(a,t,j),i=!0},i(t){i||(M(a.$$.fragment,t),i=!0)},o(t){p(a.$$.fragment,t),i=!1},d(t){d(a,t)}}}function rl(w){let a,i;return a=new ll({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_pt.ipynb"},{label:"Français",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter2/section6_pt.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_pt.ipynb"},{label:"Français",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter2/section6_pt.ipynb"}]}}),{c(){r(a.$$.fragment)},l(t){c(a.$$.fragment,t)},m(t,j){m(a,t,j),i=!0},i(t){i||(M(a.$$.fragment,t),i=!0)},o(t){p(a.$$.fragment,t),i=!1},d(t){d(a,t)}}}function cl(w){let a,i;return a=new y({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUyQyUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBc2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEF0b2tlbnMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIydGYlMjIpJTBBb3V0cHV0JTIwJTNEJTIwbW9kZWwoKip0b2tlbnMp",highlighted:`<span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForSequenceClassification

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint)
sequences = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;So have I!&quot;</span>,
]  <span class="hljs-comment"># « J&#x27;ai attendu un cours de HuggingFace toute ma vie. », « Moi aussi ! »</span>

tokens = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;tf&quot;</span>)
output = model(**tokens)`,wrap:!1}}),{c(){r(a.$$.fragment)},l(t){c(a.$$.fragment,t)},m(t,j){m(a,t,j),i=!0},i(t){i||(M(a.$$.fragment,t),i=!0)},o(t){p(a.$$.fragment,t),i=!1},d(t){d(a,t)}}}function ml(w){let a,i;return a=new y({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUyQyUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEFzZXF1ZW5jZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJTbyUyMGhhdmUlMjBJISUyMiUyQyUwQSU1RCUyMCUyMCUyMyUyMCVDMiVBQiUyMEonYWklMjBhdHRlbmR1JTIwdW4lMjBjb3VycyUyMGRlJTIwSHVnZ2luZ0ZhY2UlMjB0b3V0ZSUyMG1hJTIwdmllLiUyMCVDMiVCQiUyQyUyMCVDMiVBQiUyME1vaSUyMGF1c3NpJTIwISUyMCVDMiVCQiUwQSUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHRydW5jYXRpb24lM0RUcnVlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEFvdXRwdXQlMjAlM0QlMjBtb2RlbCgqKnRva2Vucyk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForSequenceClassification

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForSequenceClassification.from_pretrained(checkpoint)
sequences = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;So have I!&quot;</span>,
]  <span class="hljs-comment"># « J&#x27;ai attendu un cours de HuggingFace toute ma vie. », « Moi aussi ! »</span>


tokens = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
output = model(**tokens)`,wrap:!1}}),{c(){r(a.$$.fragment)},l(t){c(a.$$.fragment,t)},m(t,j){m(a,t,j),i=!0},i(t){i||(M(a.$$.fragment,t),i=!0)},o(t){p(a.$$.fragment,t),i=!1},d(t){d(a,t)}}}function dl(w){let a,i,t,j,g,te,Z,ne,I,U,ee,k,Qe="Dans les dernières sections, nous avons fait de notre mieux pour effectuer la plupart du travail manuellement. Nous avons exploré le fonctionnement des <em>tokenizers</em> et examiné la tokenisation, la conversion en identifiants d’entrée, le <em>padding</em>, la troncature et les masques d’attention.",ae,V,Se="Cependant, comme nous l’avons vu dans la section 2, l’API 🤗 <em>Transformers</em> peut gérer tout cela pour nous via une fonction dans laquelle nous allons nous plonger ici. Lorsque vous appelez votre <code>tokenizer</code> directement sur la phrase, vous récupérez des entrées qui sont prêtes à être passées dans votre modèle :",ue,B,oe,W,ve="Ici, la variable <code>model_inputs</code> contient tout ce qui est nécessaire au bon fonctionnement d’un modèle. Pour DistilBERT, cela inclut les identifiants d’entrée ainsi que le masque d’attention. D’autres modèles qui acceptent des entrées supplémentaires sont également fournis par l’objet <code>tokenizer</code>.",ie,z,xe="Comme nous allons le voir dans les quelques exemples ci-dessous, cette méthode est très puissante. Premièrement, elle peut tokeniser une seule séquence :",pe,$,Me,G,qe="Elle gère également plusieurs séquences à la fois, sans modification de l’API :",re,Q,ce,S,Ee="Il est possible de faire du <em>padding</em> selon plusieurs objectifs :",me,v,de,x,Xe="La fonction peut également tronquer les séquences :",Je,q,be,E,Ye="L’objet <code>tokenizer</code> peut gérer la conversion en des tenseurs de <em>frameworks</em> spécifiques. Ils peuvent ensuite être directement envoyés au modèle. Par exemple, dans le code suivant, nous demandons au <em>tokenizer</em> de retourner des tenseurs PyTorch lorsque l’on spécifie <code>&quot;pt&quot;</code>, de retourner des tenseurs TensorFlow lorsque l’on spécifie <code>&quot;tf&quot;</code> et des tableaux NumPy lorsque l’on indique <code>&quot;np&quot;</code> :",je,X,Te,Y,ye,H,He="Si nous jetons un coup d’œil aux identifiants d’entrée renvoyés par le <em>tokenizer</em>, nous verrons qu’ils sont un peu différents de ceux que nous avions précédemment :",we,N,Ie,_,Ue,C,Ne="Un identifiant symbolique a été ajouté au début ainsi qu’un autre à la fin. Décodons les deux séquences d’identifiants ci-dessus pour voir de quoi il s’agit :",fe,F,he,R,ge,A,_e="Le <em>tokenizer</em> a ajouté le mot spécial <code>[CLS]</code> au début et le mot spécial <code>[SEP]</code> à la fin. C’est parce que le modèle a été pré-entraîné avec ces mots, donc pour obtenir les mêmes résultats pour l’inférence, nous devons également les ajouter. Notez que certains modèles n’ajoutent pas de mots spéciaux, ou en ajoutent des différents. Les modèles peuvent aussi ajouter ces mots spéciaux seulement au début, ou seulement à la fin. Dans tous les cas, le <em>tokenizer</em> sait lesquels sont attendus et s’en occupe pour vous.",Ze,D,ke,L,Ce="Maintenant que nous avons vu toutes les étapes individuelles que l’objet <code>tokenizer</code> utilise lorsqu’il est appliqué sur des textes, voyons une dernière fois comment il peut gérer plusieurs séquences (<em>padding</em>), de très longues séquences (<em>troncation</em>) et plusieurs types de tenseurs avec son API principale :",Ve,f,h,le,P,Be,se,We;g=new il({props:{fw:w[0]}}),Z=new Ge({props:{title:"Tout assembler",local:"tout-assembler",headingTag:"h1"}});const Fe=[rl,Ml],K=[];function Re(e,l){return e[0]==="pt"?0:1}I=Re(w),U=K[I]=Fe[I](w),B=new y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQSUwQXNlcXVlbmNlJTIwJTNEJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTBBJTIzJTIwSidhaSUyMGF0dGVuZHUlMjB1biUyMGNvdXJzJTIwZCVFMiU4MCU5OUh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2Up",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>
<span class="hljs-comment"># J&#x27;ai attendu un cours d’HuggingFace toute ma vie.</span>

model_inputs = tokenizer(sequence)`,wrap:!1}}),$=new y({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMjMlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkJUUyJTgwJTk5SHVnZ2luZ0ZhY2UlMjB0b3V0ZSUyMG1hJTIwdmllLiUwQSUwQSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZSk=",highlighted:`sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>
<span class="hljs-comment"># J&#x27;ai attendu un cours d’HuggingFace toute ma vie.</span>


model_inputs = tokenizer(sequence)`,wrap:!1}}),Q=new y({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzKQ==",highlighted:`sequences = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;So have I!&quot;</span>,
]  <span class="hljs-comment"># « J&#x27;ai attendu un cours de HuggingFace toute ma vie. », « Moi aussi ! »</span>

model_inputs = tokenizer(sequences)`,wrap:!1}}),v=new y({props:{code:"JTIzJTIwUmVtcGxpdCUyMGxlcyUyMHMlQzMlQTlxdWVuY2VzJTIwanVzcXUnJUMzJUEwJTIwbGElMjBsb25ndWV1ciUyMG1heGltYWxlJTIwZGUlMjBsYSUyMHMlQzMlQTlxdWVuY2UlMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRCUyMmxvbmdlc3QlMjIpJTBBJTBBJTIzJTIwUmVtcGxpdCUyMGxlcyUyMHMlQzMlQTlxdWVuY2VzJTIwanVzcXUnJUMzJUEwJTIwbGElMjBsb25ndWV1ciUyMG1heGltYWxlJTIwZHUlMjBtb2QlQzMlQThsZSUyMCg1MTIlMjBwb3VyJTIwQkVSVCUyMG91JTIwRGlzdGlsQkVSVCklMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRCUyMm1heF9sZW5ndGglMjIpJTBBJTBBJTIzJTIwUmVtcGxpdCUyMGxlcyUyMHMlQzMlQTlxdWVuY2VzJTIwanVzcXUnJUMzJUEwJTIwbGElMjBsb25ndWV1ciUyMG1heGltYWxlJTIwc3AlQzMlQTljaWZpJUMzJUE5ZSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEJTIybWF4X2xlbmd0aCUyMiUyQyUyMG1heF9sZW5ndGglM0Q4KQ==",highlighted:`<span class="hljs-comment"># Remplit les séquences jusqu&#x27;à la longueur maximale de la séquence</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;longest&quot;</span>)

<span class="hljs-comment"># Remplit les séquences jusqu&#x27;à la longueur maximale du modèle (512 pour BERT ou DistilBERT)</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;max_length&quot;</span>)

<span class="hljs-comment"># Remplit les séquences jusqu&#x27;à la longueur maximale spécifiée</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;max_length&quot;</span>, max_length=<span class="hljs-number">8</span>)`,wrap:!1}}),q=new y({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEElMjMlMjBUcm9ucXVlJTIwbGVzJTIwcyVDMyVBOXF1ZW5jZXMlMjBxdWklMjBzb250JTIwcGx1cyUyMGxvbmd1ZXMlMjBxdWUlMjBsYSUyMGxvbmd1ZXVyJTIwbWF4aW1hbGUlMjBkdSUyMG1vZCVDMyVBOGxlJTBBJTIzJTIwKDUxMiUyMHBvdXIlMjBCRVJUJTIwb3UlMjBEaXN0aWxCRVJUKSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSklMEElMEElMjMlMjBUcm9ucXVlJTIwbGVzJTIwcyVDMyVBOXF1ZW5jZXMlMjBxdWklMjBzb250JTIwcGx1cyUyMGxvbmd1ZXMlMjBxdWUlMjBsYSUyMGxvbmd1ZXVyJTIwbWF4aW1hbGUlMjBzcCVDMyVBOWNpZmklQzMlQTllJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMG1heF9sZW5ndGglM0Q4JTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUp",highlighted:`sequences = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;So have I!&quot;</span>,
]  <span class="hljs-comment"># « J&#x27;ai attendu un cours de HuggingFace toute ma vie. », « Moi aussi ! »</span>

<span class="hljs-comment"># Tronque les séquences qui sont plus longues que la longueur maximale du modèle</span>
<span class="hljs-comment"># (512 pour BERT ou DistilBERT)</span>
model_inputs = tokenizer(sequences, truncation=<span class="hljs-literal">True</span>)

<span class="hljs-comment"># Tronque les séquences qui sont plus longues que la longueur maximale spécifiée</span>
model_inputs = tokenizer(sequences, max_length=<span class="hljs-number">8</span>, truncation=<span class="hljs-literal">True</span>)`,wrap:!1}}),X=new y({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEElMjMlMjBSZXRvdXJuZSUyMGRlcyUyMHRlbnNldXJzJTIwUHlUb3JjaCUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBJTBBJTIzJTIwUmV0b3VybmUlMjBkZXMlMjB0ZW5zZXVycyUyMFRlbnNvckZsb3clMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnRmJTIyKSUwQSUwQSUyMyUyMFJldG91cm5lJTIwZGVzJTIwdGFibGVhdXglMjBOdW1QeSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIybnAlMjIp",highlighted:`sequences = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;So have I!&quot;</span>,
]  <span class="hljs-comment"># « J&#x27;ai attendu un cours de HuggingFace toute ma vie. », « Moi aussi ! »</span>

<span class="hljs-comment"># Retourne des tenseurs PyTorch</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-comment"># Retourne des tenseurs TensorFlow</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;tf&quot;</span>)

<span class="hljs-comment"># Retourne des tableaux NumPy</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;np&quot;</span>)`,wrap:!1}}),Y=new Ge({props:{title:"Jetons spéciaux",local:"jetons-spéciaux",headingTag:"h2"}}),N=new y({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2UpJTBBcHJpbnQobW9kZWxfaW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVEKSUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplci50b2tlbml6ZShzZXF1ZW5jZSklMEFpZHMlMjAlM0QlMjB0b2tlbml6ZXIuY29udmVydF90b2tlbnNfdG9faWRzKHRva2VucyklMEFwcmludChpZHMp",highlighted:`sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>
<span class="hljs-comment"># « J&#x27;ai attendu un cours de HuggingFace toute ma vie. »</span>

model_inputs = tokenizer(sequence)
<span class="hljs-built_in">print</span>(model_inputs[<span class="hljs-string">&quot;input_ids&quot;</span>])

tokens = tokenizer.tokenize(sequence)
ids = tokenizer.convert_tokens_to_ids(tokens)
<span class="hljs-built_in">print</span>(ids)`,wrap:!1}}),_=new y({props:{code:"JTVCMTAxJTJDJTIwMTA0NSUyQyUyMDEwMDUlMkMlMjAyMzEwJTJDJTIwMjA0MiUyQyUyMDM0MDMlMkMlMjAyMDA1JTJDJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwMjAyNiUyQyUyMDI4NzglMkMlMjAyMTY2JTJDJTIwMTAxMiUyQyUyMDEwMiU1RCUwQSU1QjEwNDUlMkMlMjAxMDA1JTJDJTIwMjMxMCUyQyUyMDIwNDIlMkMlMjAzNDAzJTJDJTIwMjAwNSUyQyUyMDEwMzclMkMlMjAxNzY2MiUyQyUyMDEyMTcyJTJDJTIwMjYwNyUyQyUyMDIwMjYlMkMlMjAyODc4JTJDJTIwMjE2NiUyQyUyMDEwMTIlNUQ=",highlighted:`[<span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>]
[<span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>]`,wrap:!1}}),F=new y({props:{code:"cHJpbnQodG9rZW5pemVyLmRlY29kZShtb2RlbF9pbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQpKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUoaWRzKSk=",highlighted:`<span class="hljs-built_in">print</span>(tokenizer.decode(model_inputs[<span class="hljs-string">&quot;input_ids&quot;</span>]))
<span class="hljs-built_in">print</span>(tokenizer.decode(ids))`,wrap:!1}}),R=new y({props:{code:"JTIyJTVCQ0xTJTVEJTIwaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIwJTVCU0VQJTVEJTIyJTBBJTIyaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIy",highlighted:`<span class="hljs-string">&quot;[CLS] i&#x27;ve been waiting for a huggingface course my whole life. [SEP]&quot;</span>
<span class="hljs-string">&quot;i&#x27;ve been waiting for a huggingface course my whole life.&quot;</span>`,wrap:!1}}),D=new Ge({props:{title:"Conclusion : du <i> tokenizer </i> au modèle",local:"conclusion--du-i-tokenizer-i-au-modèle",headingTag:"h2"}});const Ae=[ml,cl],O=[];function De(e,l){return e[0]==="pt"?0:1}return f=De(w),h=O[f]=Ae[f](w),P=new pl({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fr/chapter2/6.mdx"}}),{c(){a=J("meta"),i=u(),t=J("p"),j=u(),r(g.$$.fragment),te=u(),r(Z.$$.fragment),ne=u(),U.c(),ee=u(),k=J("p"),k.innerHTML=Qe,ae=u(),V=J("p"),V.innerHTML=Se,ue=u(),r(B.$$.fragment),oe=u(),W=J("p"),W.innerHTML=ve,ie=u(),z=J("p"),z.textContent=xe,pe=u(),r($.$$.fragment),Me=u(),G=J("p"),G.textContent=qe,re=u(),r(Q.$$.fragment),ce=u(),S=J("p"),S.innerHTML=Ee,me=u(),r(v.$$.fragment),de=u(),x=J("p"),x.textContent=Xe,Je=u(),r(q.$$.fragment),be=u(),E=J("p"),E.innerHTML=Ye,je=u(),r(X.$$.fragment),Te=u(),r(Y.$$.fragment),ye=u(),H=J("p"),H.innerHTML=He,we=u(),r(N.$$.fragment),Ie=u(),r(_.$$.fragment),Ue=u(),C=J("p"),C.textContent=Ne,fe=u(),r(F.$$.fragment),he=u(),r(R.$$.fragment),ge=u(),A=J("p"),A.innerHTML=_e,Ze=u(),r(D.$$.fragment),ke=u(),L=J("p"),L.innerHTML=Ce,Ve=u(),h.c(),le=u(),r(P.$$.fragment),Be=u(),se=J("p"),this.h()},l(e){const l=ul("svelte-u9bgzb",document.head);a=b(l,"META",{name:!0,content:!0}),l.forEach(s),i=o(e),t=b(e,"P",{}),Pe(t).forEach(s),j=o(e),c(g.$$.fragment,e),te=o(e),c(Z.$$.fragment,e),ne=o(e),U.l(e),ee=o(e),k=b(e,"P",{"data-svelte-h":!0}),T(k)!=="svelte-i6ojnp"&&(k.innerHTML=Qe),ae=o(e),V=b(e,"P",{"data-svelte-h":!0}),T(V)!=="svelte-19s0yof"&&(V.innerHTML=Se),ue=o(e),c(B.$$.fragment,e),oe=o(e),W=b(e,"P",{"data-svelte-h":!0}),T(W)!=="svelte-1e5deu3"&&(W.innerHTML=ve),ie=o(e),z=b(e,"P",{"data-svelte-h":!0}),T(z)!=="svelte-d7oekk"&&(z.textContent=xe),pe=o(e),c($.$$.fragment,e),Me=o(e),G=b(e,"P",{"data-svelte-h":!0}),T(G)!=="svelte-11k8u1x"&&(G.textContent=qe),re=o(e),c(Q.$$.fragment,e),ce=o(e),S=b(e,"P",{"data-svelte-h":!0}),T(S)!=="svelte-alaqk5"&&(S.innerHTML=Ee),me=o(e),c(v.$$.fragment,e),de=o(e),x=b(e,"P",{"data-svelte-h":!0}),T(x)!=="svelte-xe7ey7"&&(x.textContent=Xe),Je=o(e),c(q.$$.fragment,e),be=o(e),E=b(e,"P",{"data-svelte-h":!0}),T(E)!=="svelte-1mddrlg"&&(E.innerHTML=Ye),je=o(e),c(X.$$.fragment,e),Te=o(e),c(Y.$$.fragment,e),ye=o(e),H=b(e,"P",{"data-svelte-h":!0}),T(H)!=="svelte-1gk6ct9"&&(H.innerHTML=He),we=o(e),c(N.$$.fragment,e),Ie=o(e),c(_.$$.fragment,e),Ue=o(e),C=b(e,"P",{"data-svelte-h":!0}),T(C)!=="svelte-19bxcxb"&&(C.textContent=Ne),fe=o(e),c(F.$$.fragment,e),he=o(e),c(R.$$.fragment,e),ge=o(e),A=b(e,"P",{"data-svelte-h":!0}),T(A)!=="svelte-dsbm1c"&&(A.innerHTML=_e),Ze=o(e),c(D.$$.fragment,e),ke=o(e),L=b(e,"P",{"data-svelte-h":!0}),T(L)!=="svelte-13dodot"&&(L.innerHTML=Ce),Ve=o(e),h.l(e),le=o(e),c(P.$$.fragment,e),Be=o(e),se=b(e,"P",{}),Pe(se).forEach(s),this.h()},h(){Ke(a,"name","hf:doc:metadata"),Ke(a,"content",Jl)},m(e,l){ol(document.head,a),n(e,i,l),n(e,t,l),n(e,j,l),m(g,e,l),n(e,te,l),m(Z,e,l),n(e,ne,l),K[I].m(e,l),n(e,ee,l),n(e,k,l),n(e,ae,l),n(e,V,l),n(e,ue,l),m(B,e,l),n(e,oe,l),n(e,W,l),n(e,ie,l),n(e,z,l),n(e,pe,l),m($,e,l),n(e,Me,l),n(e,G,l),n(e,re,l),m(Q,e,l),n(e,ce,l),n(e,S,l),n(e,me,l),m(v,e,l),n(e,de,l),n(e,x,l),n(e,Je,l),m(q,e,l),n(e,be,l),n(e,E,l),n(e,je,l),m(X,e,l),n(e,Te,l),m(Y,e,l),n(e,ye,l),n(e,H,l),n(e,we,l),m(N,e,l),n(e,Ie,l),m(_,e,l),n(e,Ue,l),n(e,C,l),n(e,fe,l),m(F,e,l),n(e,he,l),m(R,e,l),n(e,ge,l),n(e,A,l),n(e,Ze,l),m(D,e,l),n(e,ke,l),n(e,L,l),n(e,Ve,l),O[f].m(e,l),n(e,le,l),m(P,e,l),n(e,Be,l),n(e,se,l),We=!0},p(e,[l]){const Le={};l&1&&(Le.fw=e[0]),g.$set(Le);let ze=I;I=Re(e),I!==ze&&(el(),p(K[ze],1,1,()=>{K[ze]=null}),Oe(),U=K[I],U||(U=K[I]=Fe[I](e),U.c()),M(U,1),U.m(ee.parentNode,ee));let $e=f;f=De(e),f!==$e&&(el(),p(O[$e],1,1,()=>{O[$e]=null}),Oe(),h=O[f],h||(h=O[f]=Ae[f](e),h.c()),M(h,1),h.m(le.parentNode,le))},i(e){We||(M(g.$$.fragment,e),M(Z.$$.fragment,e),M(U),M(B.$$.fragment,e),M($.$$.fragment,e),M(Q.$$.fragment,e),M(v.$$.fragment,e),M(q.$$.fragment,e),M(X.$$.fragment,e),M(Y.$$.fragment,e),M(N.$$.fragment,e),M(_.$$.fragment,e),M(F.$$.fragment,e),M(R.$$.fragment,e),M(D.$$.fragment,e),M(h),M(P.$$.fragment,e),We=!0)},o(e){p(g.$$.fragment,e),p(Z.$$.fragment,e),p(U),p(B.$$.fragment,e),p($.$$.fragment,e),p(Q.$$.fragment,e),p(v.$$.fragment,e),p(q.$$.fragment,e),p(X.$$.fragment,e),p(Y.$$.fragment,e),p(N.$$.fragment,e),p(_.$$.fragment,e),p(F.$$.fragment,e),p(R.$$.fragment,e),p(D.$$.fragment,e),p(h),p(P.$$.fragment,e),We=!1},d(e){e&&(s(i),s(t),s(j),s(te),s(ne),s(ee),s(k),s(ae),s(V),s(ue),s(oe),s(W),s(ie),s(z),s(pe),s(Me),s(G),s(re),s(ce),s(S),s(me),s(de),s(x),s(Je),s(be),s(E),s(je),s(Te),s(ye),s(H),s(we),s(Ie),s(Ue),s(C),s(fe),s(he),s(ge),s(A),s(Ze),s(ke),s(L),s(Ve),s(le),s(Be),s(se)),s(a),d(g,e),d(Z,e),K[I].d(e),d(B,e),d($,e),d(Q,e),d(v,e),d(q,e),d(X,e),d(Y,e),d(N,e),d(_,e),d(F,e),d(R,e),d(D,e),O[f].d(e),d(P,e)}}}const Jl='{"title":"Tout assembler","local":"tout-assembler","sections":[{"title":"Jetons spéciaux","local":"jetons-spéciaux","sections":[],"depth":2},{"title":"Conclusion : du <i> tokenizer </i> au modèle","local":"conclusion--du-i-tokenizer-i-au-modèle","sections":[],"depth":2}],"depth":1}';function bl(w,a,i){let t="pt";return tl(()=>{const j=new URLSearchParams(window.location.search);i(0,t=j.get("fw")||"pt")}),[t]}class fl extends nl{constructor(a){super(),al(this,a,bl,dl,sl,{})}}export{fl as component};
