Buckets:
| import{s as nl,o as al}from"../chunks/scheduler.893fe8c9.js";import{S as ul,i as ol,e as J,s as u,c as r,h as il,a as b,d as s,b as o,f as Oe,g as c,j as T,k as el,l as pl,m as n,n as m,o as p,q as ll,t as M,p as d,r as sl}from"../chunks/index.2d09ebb4.js";import{C as Ml,H as xe,E as rl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.b76afbf9.js";import{C as y}from"../chunks/CodeBlock.7ec0bc5a.js";import{C as tl}from"../chunks/CourseFloatingBanner.2900b001.js";import{F as cl}from"../chunks/FrameworkSwitchCourse.f49b9dc4.js";function ml(w){let a,i;return a=new tl({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 dl(w){let a,i;return a=new tl({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 Jl(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">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint) | |
| sequences = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"So have I!"</span>, | |
| ] <span class="hljs-comment"># « J'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">"tf"</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 bl(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">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| model = AutoModelForSequenceClassification.from_pretrained(checkpoint) | |
| sequences = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"So have I!"</span>, | |
| ] <span class="hljs-comment"># « J'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">"pt"</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 jl(w){let a,i,t,j,g,ne,Z,ae,k,ue,I,U,le,V,Se="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.",oe,B,ve="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 :",ie,W,pe,z,qe="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>.",Me,$,Ee="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 :",re,G,ce,Q,Xe="Elle gère également plusieurs séquences à la fois, sans modification de l’API :",me,x,de,S,Ye="Il est possible de faire du <em>padding</em> selon plusieurs objectifs :",Je,v,be,q,He="La fonction peut également tronquer les séquences :",je,E,Te,X,Ne="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>"pt"</code>, de retourner des tenseurs TensorFlow lorsque l’on spécifie <code>"tf"</code> et des tableaux NumPy lorsque l’on indique <code>"np"</code> :",ye,Y,we,H,Ie,N,_e="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 :",Ue,_,fe,C,he,F,Ce="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 :",ge,R,Ze,A,ke,D,Fe="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.",Ve,L,Be,P,Re="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 :",We,f,h,se,K,ze,te,$e;g=new cl({props:{fw:w[0]}}),Z=new Ml({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),k=new xe({props:{title:"Tout assembler",local:"tout-assembler",headingTag:"h1"}});const Ae=[dl,ml],O=[];function De(e,l){return e[0]==="pt"?0:1}I=De(w),U=O[I]=Ae[I](w),W=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">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| sequence = <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span> | |
| <span class="hljs-comment"># J'ai attendu un cours d’HuggingFace toute ma vie.</span> | |
| model_inputs = tokenizer(sequence)`,wrap:!1}}),G=new y({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMjMlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkJUUyJTgwJTk5SHVnZ2luZ0ZhY2UlMjB0b3V0ZSUyMG1hJTIwdmllLiUwQSUwQSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZSk=",highlighted:`sequence = <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span> | |
| <span class="hljs-comment"># J'ai attendu un cours d’HuggingFace toute ma vie.</span> | |
| model_inputs = tokenizer(sequence)`,wrap:!1}}),x=new y({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzKQ==",highlighted:`sequences = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"So have I!"</span>, | |
| ] <span class="hljs-comment"># « J'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'à la longueur maximale de la séquence</span> | |
| model_inputs = tokenizer(sequences, padding=<span class="hljs-string">"longest"</span>) | |
| <span class="hljs-comment"># Remplit les séquences jusqu'à la longueur maximale du modèle (512 pour BERT ou DistilBERT)</span> | |
| model_inputs = tokenizer(sequences, padding=<span class="hljs-string">"max_length"</span>) | |
| <span class="hljs-comment"># Remplit les séquences jusqu'à la longueur maximale spécifiée</span> | |
| model_inputs = tokenizer(sequences, padding=<span class="hljs-string">"max_length"</span>, max_length=<span class="hljs-number">8</span>)`,wrap:!1}}),E=new y({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEElMjMlMjBUcm9ucXVlJTIwbGVzJTIwcyVDMyVBOXF1ZW5jZXMlMjBxdWklMjBzb250JTIwcGx1cyUyMGxvbmd1ZXMlMjBxdWUlMjBsYSUyMGxvbmd1ZXVyJTIwbWF4aW1hbGUlMjBkdSUyMG1vZCVDMyVBOGxlJTBBJTIzJTIwKDUxMiUyMHBvdXIlMjBCRVJUJTIwb3UlMjBEaXN0aWxCRVJUKSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSklMEElMEElMjMlMjBUcm9ucXVlJTIwbGVzJTIwcyVDMyVBOXF1ZW5jZXMlMjBxdWklMjBzb250JTIwcGx1cyUyMGxvbmd1ZXMlMjBxdWUlMjBsYSUyMGxvbmd1ZXVyJTIwbWF4aW1hbGUlMjBzcCVDMyVBOWNpZmklQzMlQTllJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMG1heF9sZW5ndGglM0Q4JTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUp",highlighted:`sequences = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"So have I!"</span>, | |
| ] <span class="hljs-comment"># « J'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}}),Y=new y({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlMkMlMEElNUQlMjAlMjAlMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMkMlMjAlQzIlQUIlMjBNb2klMjBhdXNzaSUyMCElMjAlQzIlQkIlMEElMEElMjMlMjBSZXRvdXJuZSUyMGRlcyUyMHRlbnNldXJzJTIwUHlUb3JjaCUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBJTBBJTIzJTIwUmV0b3VybmUlMjBkZXMlMjB0ZW5zZXVycyUyMFRlbnNvckZsb3clMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnRmJTIyKSUwQSUwQSUyMyUyMFJldG91cm5lJTIwZGVzJTIwdGFibGVhdXglMjBOdW1QeSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIybnAlMjIp",highlighted:`sequences = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"So have I!"</span>, | |
| ] <span class="hljs-comment"># « J'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">"pt"</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">"tf"</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">"np"</span>)`,wrap:!1}}),H=new xe({props:{title:"Jetons spéciaux",local:"jetons-spéciaux",headingTag:"h2"}}),_=new y({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMjMlMjAlQzIlQUIlMjBKJ2FpJTIwYXR0ZW5kdSUyMHVuJTIwY291cnMlMjBkZSUyMEh1Z2dpbmdGYWNlJTIwdG91dGUlMjBtYSUyMHZpZS4lMjAlQzIlQkIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2UpJTBBcHJpbnQobW9kZWxfaW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVEKSUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplci50b2tlbml6ZShzZXF1ZW5jZSklMEFpZHMlMjAlM0QlMjB0b2tlbml6ZXIuY29udmVydF90b2tlbnNfdG9faWRzKHRva2VucyklMEFwcmludChpZHMp",highlighted:`sequence = <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span> | |
| <span class="hljs-comment"># « J'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">"input_ids"</span>]) | |
| tokens = tokenizer.tokenize(sequence) | |
| ids = tokenizer.convert_tokens_to_ids(tokens) | |
| <span class="hljs-built_in">print</span>(ids)`,wrap:!1}}),C=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}}),R=new y({props:{code:"cHJpbnQodG9rZW5pemVyLmRlY29kZShtb2RlbF9pbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQpKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUoaWRzKSk=",highlighted:`<span class="hljs-built_in">print</span>(tokenizer.decode(model_inputs[<span class="hljs-string">"input_ids"</span>])) | |
| <span class="hljs-built_in">print</span>(tokenizer.decode(ids))`,wrap:!1}}),A=new y({props:{code:"JTIyJTVCQ0xTJTVEJTIwaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIwJTVCU0VQJTVEJTIyJTBBJTIyaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIy",highlighted:`<span class="hljs-string">"[CLS] i've been waiting for a huggingface course my whole life. [SEP]"</span> | |
| <span class="hljs-string">"i've been waiting for a huggingface course my whole life."</span>`,wrap:!1}}),L=new xe({props:{title:"Conclusion : du <i> tokenizer </i> au modèle",local:"conclusion--du-i-tokenizer-i-au-modèle",headingTag:"h2"}});const Le=[bl,Jl],ee=[];function Pe(e,l){return e[0]==="pt"?0:1}return f=Pe(w),h=ee[f]=Le[f](w),K=new rl({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),ne=u(),r(Z.$$.fragment),ae=u(),r(k.$$.fragment),ue=u(),U.c(),le=u(),V=J("p"),V.innerHTML=Se,oe=u(),B=J("p"),B.innerHTML=ve,ie=u(),r(W.$$.fragment),pe=u(),z=J("p"),z.innerHTML=qe,Me=u(),$=J("p"),$.textContent=Ee,re=u(),r(G.$$.fragment),ce=u(),Q=J("p"),Q.textContent=Xe,me=u(),r(x.$$.fragment),de=u(),S=J("p"),S.innerHTML=Ye,Je=u(),r(v.$$.fragment),be=u(),q=J("p"),q.textContent=He,je=u(),r(E.$$.fragment),Te=u(),X=J("p"),X.innerHTML=Ne,ye=u(),r(Y.$$.fragment),we=u(),r(H.$$.fragment),Ie=u(),N=J("p"),N.innerHTML=_e,Ue=u(),r(_.$$.fragment),fe=u(),r(C.$$.fragment),he=u(),F=J("p"),F.textContent=Ce,ge=u(),r(R.$$.fragment),Ze=u(),r(A.$$.fragment),ke=u(),D=J("p"),D.innerHTML=Fe,Ve=u(),r(L.$$.fragment),Be=u(),P=J("p"),P.innerHTML=Re,We=u(),h.c(),se=u(),r(K.$$.fragment),ze=u(),te=J("p"),this.h()},l(e){const l=il("svelte-u9bgzb",document.head);a=b(l,"META",{name:!0,content:!0}),l.forEach(s),i=o(e),t=b(e,"P",{}),Oe(t).forEach(s),j=o(e),c(g.$$.fragment,e),ne=o(e),c(Z.$$.fragment,e),ae=o(e),c(k.$$.fragment,e),ue=o(e),U.l(e),le=o(e),V=b(e,"P",{"data-svelte-h":!0}),T(V)!=="svelte-i6ojnp"&&(V.innerHTML=Se),oe=o(e),B=b(e,"P",{"data-svelte-h":!0}),T(B)!=="svelte-19s0yof"&&(B.innerHTML=ve),ie=o(e),c(W.$$.fragment,e),pe=o(e),z=b(e,"P",{"data-svelte-h":!0}),T(z)!=="svelte-1e5deu3"&&(z.innerHTML=qe),Me=o(e),$=b(e,"P",{"data-svelte-h":!0}),T($)!=="svelte-d7oekk"&&($.textContent=Ee),re=o(e),c(G.$$.fragment,e),ce=o(e),Q=b(e,"P",{"data-svelte-h":!0}),T(Q)!=="svelte-11k8u1x"&&(Q.textContent=Xe),me=o(e),c(x.$$.fragment,e),de=o(e),S=b(e,"P",{"data-svelte-h":!0}),T(S)!=="svelte-alaqk5"&&(S.innerHTML=Ye),Je=o(e),c(v.$$.fragment,e),be=o(e),q=b(e,"P",{"data-svelte-h":!0}),T(q)!=="svelte-xe7ey7"&&(q.textContent=He),je=o(e),c(E.$$.fragment,e),Te=o(e),X=b(e,"P",{"data-svelte-h":!0}),T(X)!=="svelte-1mddrlg"&&(X.innerHTML=Ne),ye=o(e),c(Y.$$.fragment,e),we=o(e),c(H.$$.fragment,e),Ie=o(e),N=b(e,"P",{"data-svelte-h":!0}),T(N)!=="svelte-1gk6ct9"&&(N.innerHTML=_e),Ue=o(e),c(_.$$.fragment,e),fe=o(e),c(C.$$.fragment,e),he=o(e),F=b(e,"P",{"data-svelte-h":!0}),T(F)!=="svelte-19bxcxb"&&(F.textContent=Ce),ge=o(e),c(R.$$.fragment,e),Ze=o(e),c(A.$$.fragment,e),ke=o(e),D=b(e,"P",{"data-svelte-h":!0}),T(D)!=="svelte-dsbm1c"&&(D.innerHTML=Fe),Ve=o(e),c(L.$$.fragment,e),Be=o(e),P=b(e,"P",{"data-svelte-h":!0}),T(P)!=="svelte-13dodot"&&(P.innerHTML=Re),We=o(e),h.l(e),se=o(e),c(K.$$.fragment,e),ze=o(e),te=b(e,"P",{}),Oe(te).forEach(s),this.h()},h(){el(a,"name","hf:doc:metadata"),el(a,"content",Tl)},m(e,l){pl(document.head,a),n(e,i,l),n(e,t,l),n(e,j,l),m(g,e,l),n(e,ne,l),m(Z,e,l),n(e,ae,l),m(k,e,l),n(e,ue,l),O[I].m(e,l),n(e,le,l),n(e,V,l),n(e,oe,l),n(e,B,l),n(e,ie,l),m(W,e,l),n(e,pe,l),n(e,z,l),n(e,Me,l),n(e,$,l),n(e,re,l),m(G,e,l),n(e,ce,l),n(e,Q,l),n(e,me,l),m(x,e,l),n(e,de,l),n(e,S,l),n(e,Je,l),m(v,e,l),n(e,be,l),n(e,q,l),n(e,je,l),m(E,e,l),n(e,Te,l),n(e,X,l),n(e,ye,l),m(Y,e,l),n(e,we,l),m(H,e,l),n(e,Ie,l),n(e,N,l),n(e,Ue,l),m(_,e,l),n(e,fe,l),m(C,e,l),n(e,he,l),n(e,F,l),n(e,ge,l),m(R,e,l),n(e,Ze,l),m(A,e,l),n(e,ke,l),n(e,D,l),n(e,Ve,l),m(L,e,l),n(e,Be,l),n(e,P,l),n(e,We,l),ee[f].m(e,l),n(e,se,l),m(K,e,l),n(e,ze,l),n(e,te,l),$e=!0},p(e,[l]){const Ke={};l&1&&(Ke.fw=e[0]),g.$set(Ke);let Ge=I;I=De(e),I!==Ge&&(sl(),p(O[Ge],1,1,()=>{O[Ge]=null}),ll(),U=O[I],U||(U=O[I]=Ae[I](e),U.c()),M(U,1),U.m(le.parentNode,le));let Qe=f;f=Pe(e),f!==Qe&&(sl(),p(ee[Qe],1,1,()=>{ee[Qe]=null}),ll(),h=ee[f],h||(h=ee[f]=Le[f](e),h.c()),M(h,1),h.m(se.parentNode,se))},i(e){$e||(M(g.$$.fragment,e),M(Z.$$.fragment,e),M(k.$$.fragment,e),M(U),M(W.$$.fragment,e),M(G.$$.fragment,e),M(x.$$.fragment,e),M(v.$$.fragment,e),M(E.$$.fragment,e),M(Y.$$.fragment,e),M(H.$$.fragment,e),M(_.$$.fragment,e),M(C.$$.fragment,e),M(R.$$.fragment,e),M(A.$$.fragment,e),M(L.$$.fragment,e),M(h),M(K.$$.fragment,e),$e=!0)},o(e){p(g.$$.fragment,e),p(Z.$$.fragment,e),p(k.$$.fragment,e),p(U),p(W.$$.fragment,e),p(G.$$.fragment,e),p(x.$$.fragment,e),p(v.$$.fragment,e),p(E.$$.fragment,e),p(Y.$$.fragment,e),p(H.$$.fragment,e),p(_.$$.fragment,e),p(C.$$.fragment,e),p(R.$$.fragment,e),p(A.$$.fragment,e),p(L.$$.fragment,e),p(h),p(K.$$.fragment,e),$e=!1},d(e){e&&(s(i),s(t),s(j),s(ne),s(ae),s(ue),s(le),s(V),s(oe),s(B),s(ie),s(pe),s(z),s(Me),s($),s(re),s(ce),s(Q),s(me),s(de),s(S),s(Je),s(be),s(q),s(je),s(Te),s(X),s(ye),s(we),s(Ie),s(N),s(Ue),s(fe),s(he),s(F),s(ge),s(Ze),s(ke),s(D),s(Ve),s(Be),s(P),s(We),s(se),s(ze),s(te)),s(a),d(g,e),d(Z,e),d(k,e),O[I].d(e),d(W,e),d(G,e),d(x,e),d(v,e),d(E,e),d(Y,e),d(H,e),d(_,e),d(C,e),d(R,e),d(A,e),d(L,e),ee[f].d(e),d(K,e)}}}const Tl='{"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 yl(w,a,i){let t="pt";return al(()=>{const j=new URLSearchParams(window.location.search);i(0,t=j.get("fw")||"pt")}),[t]}class Zl extends ul{constructor(a){super(),ol(this,a,yl,jl,nl,{})}}export{Zl as component}; | |
Xet Storage Details
- Size:
- 27.5 kB
- Xet hash:
- 10a807847c471aa79468b011b9b67ac3b4f08a95c1f30855420370d6674cc88b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.