import{s as he,n as $e,o as be}from"../chunks/scheduler.505acc25.js";import{S as Te,i as Me,e as o,s as i,c as X,h as _e,a as r,d as n,b as l,f as ge,g as Y,j as a,k as Le,l as Ce,m as s,n as Z,t as ee,o as te,p as ne}from"../chunks/index.b1175496.js";import{C as He,H as xe}from"../chunks/Heading.988e52fa.js";import{E as qe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.3d47a398.js";function Pe(se){let u,P,H,z,p,w,m,y,d,ie='<img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/bonus-unit1/thumbnail.jpg" alt="Bonus Unit 1 Thumbnail"/>',U,c,le="Bienvenue dans cette première <strong>Unité Bonus</strong>, où vous apprendrez à <strong>finetuner un LLM pour de l’appel de fonctions</strong> (<em>function calling</em>).",A,f,oe="En termes de LLM, l’appel de fonctions devient rapidement une technique <em>incontournable</em>.",R,v,re="L’idée est que, plutôt que de s’appuyer uniquement sur des approches basées sur des <em>prompts</em> comme nous l’avons fait dans l’Unité 1, l’appel de fonctions entraîne votre modèle à <strong>prendre des actions et interpréter des observations pendant la phase d’entraînement</strong>, rendant votre IA plus robuste.",E,g,ae="<p><strong>Quand dois-je faire cette Unité Bonus ?</strong></p> <p>Cette section est <strong>optionnelle</strong> et plus avancée que l’Unité 1, donc n’hésitez pas à faire cette unité maintenant ou à la revisiter quand vos connaissances se seront davantage développées grâce à ce cours.</p> <p>Mais ne vous inquiétez pas, cette Unité Bonus est conçue pour avoir toutes les informations dont vous avez besoin, donc nous vous guiderons à travers chaque concept central du finetuning d’un modèle d’appel de fonctions même si vous n’avez pas encore appris le fonctionnement interne de ce type de finetuning.</p>",k,L,ue="La meilleure façon pour vous de pouvoir suivre cette Unité Bonus est de :",S,x,pe='<li><p>Savoir comment finetuner un modèle avec <em>Transformers</em>. Si ce n’est pas le cas <a href="https://huggingface.co/learn/nlp-course/fr/chapter3/1?fw=pt" rel="nofollow">consultez cette page</a>.</p></li> <li><p>Savoir comment utiliser <code>SFTTrainer</code> de <em>TRL</em> pour finetuner un modèle. Pour en savoir plus à ce sujet <a href="https://huggingface.co/learn/nlp-course/en/chapter11/1" rel="nofollow">consultez cette documentation</a>.</p></li>',B,O,j,h,I,$,me=`<li><p><strong>L’appel de fonctions</strong> (<em>Function Calling</em>)<br/>
Comment les LLM modernes structurent leurs conversations de manière efficace afin de déclencher des <strong>outils</strong>.</p></li> <li><p><strong>LoRA</strong> (<em>Low-Rank Adaptation</em>)<br/>
Une méthode de finetuning <strong>légère et efficace</strong> qui réduit les coûts computationnels et de stockage. LoRA rend l’entraînement de gros modèles <em>plus rapide, moins cher et plus facile</em> à déployer.</p></li> <li><p><strong>Le cycle Réflexion → Action → Observation</strong> dans les modèles d’appel de fonctions<br/>
Une approche simple mais puissante pour structurer comment votre modèle décide quand (et comment) appeler des fonctions, suivre les étapes intermédiaires et interpréter les résultats des outils ou APIs externes.</p></li> <li><p><strong>De nouveaux <em>tokens</em> spéciaux</strong><br/>
Nous introduirons des <strong>marqueurs spéciaux</strong> qui aident le modèle à distinguer entre :</p> <ul><li>Le raisonnement interne ”<em>chain-of-thought</em>”</li> <li>Les appels de fonctions sortants</li> <li>Les réponses provenant d’outils externes</li></ul></li>`,F,Q,D,b,de="À la fin de cette unité bonus, vous serez capable de :",G,T,ce="<li><strong>Comprendre</strong> le fonctionnement interne des APIs quand il s’agit d’outils.</li> <li><strong>Finetuner</strong> un modèle en utilisant la technique LoRA.</li> <li><strong>Implémenter</strong> et <strong>modifier</strong> le cycle Réflexion → Action → Observation pour créer des <em>workflow</em> d’appel de fonctions robustes et maintenables.</li> <li><strong>Concevoir et utiliser</strong> des <em>tokens</em> spéciaux pour séparer de manière transparente le raisonnement interne du modèle de ses actions externes.</li>",K,M,fe="Et vous <strong>aurez finetuné votre propre modèle pour faire de l’appel de fonctions.</strong> 🔥",N,_,ve="Plongeons dans <strong>l’appel de fonctions</strong> !",J,C,V,q,W;return p=new He({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),m=new xe({props:{title:"Introduction",local:"introduction",headingTag:"h1"}}),h=new xe({props:{title:"Ce que vous allez apprendre",local:"ce-que-vous-allez-apprendre",headingTag:"h2"}}),C=new qe({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/fr/bonus-unit1/introduction.mdx"}}),{c(){u=o("meta"),P=i(),H=o("p"),z=i(),X(p.$$.fragment),w=i(),X(m.$$.fragment),y=i(),d=o("p"),d.innerHTML=ie,U=i(),c=o("p"),c.innerHTML=le,A=i(),f=o("p"),f.innerHTML=oe,R=i(),v=o("p"),v.innerHTML=re,E=i(),g=o("blockquote"),g.innerHTML=ae,k=i(),L=o("p"),L.textContent=ue,S=i(),x=o("ol"),x.innerHTML=pe,B=i(),O=o("hr"),j=i(),X(h.$$.fragment),I=i(),$=o("ol"),$.innerHTML=me,F=i(),Q=o("hr"),D=i(),b=o("p"),b.textContent=de,G=i(),T=o("ul"),T.innerHTML=ce,K=i(),M=o("p"),M.innerHTML=fe,N=i(),_=o("p"),_.innerHTML=ve,J=i(),X(C.$$.fragment),V=i(),q=o("p"),this.h()},l(e){const t=_e("svelte-u9bgzb",document.head);u=r(t,"META",{name:!0,content:!0}),t.forEach(n),P=l(e),H=r(e,"P",{}),ge(H).forEach(n),z=l(e),Y(p.$$.fragment,e),w=l(e),Y(m.$$.fragment,e),y=l(e),d=r(e,"P",{"data-svelte-h":!0}),a(d)!=="svelte-1lr1l38"&&(d.innerHTML=ie),U=l(e),c=r(e,"P",{"data-svelte-h":!0}),a(c)!=="svelte-bj8fze"&&(c.innerHTML=le),A=l(e),f=r(e,"P",{"data-svelte-h":!0}),a(f)!=="svelte-yawi8c"&&(f.innerHTML=oe),R=l(e),v=r(e,"P",{"data-svelte-h":!0}),a(v)!=="svelte-yjy9a1"&&(v.innerHTML=re),E=l(e),g=r(e,"BLOCKQUOTE",{"data-svelte-h":!0}),a(g)!=="svelte-1h7sf77"&&(g.innerHTML=ae),k=l(e),L=r(e,"P",{"data-svelte-h":!0}),a(L)!=="svelte-145dvhq"&&(L.textContent=ue),S=l(e),x=r(e,"OL",{"data-svelte-h":!0}),a(x)!=="svelte-n85xct"&&(x.innerHTML=pe),B=l(e),O=r(e,"HR",{}),j=l(e),Y(h.$$.fragment,e),I=l(e),$=r(e,"OL",{"data-svelte-h":!0}),a($)!=="svelte-1m12nxd"&&($.innerHTML=me),F=l(e),Q=r(e,"HR",{}),D=l(e),b=r(e,"P",{"data-svelte-h":!0}),a(b)!=="svelte-vota49"&&(b.textContent=de),G=l(e),T=r(e,"UL",{"data-svelte-h":!0}),a(T)!=="svelte-1m67ddi"&&(T.innerHTML=ce),K=l(e),M=r(e,"P",{"data-svelte-h":!0}),a(M)!=="svelte-4ipefi"&&(M.innerHTML=fe),N=l(e),_=r(e,"P",{"data-svelte-h":!0}),a(_)!=="svelte-1exez8e"&&(_.innerHTML=ve),J=l(e),Y(C.$$.fragment,e),V=l(e),q=r(e,"P",{}),ge(q).forEach(n),this.h()},h(){Le(u,"name","hf:doc:metadata"),Le(u,"content",ze)},m(e,t){Ce(document.head,u),s(e,P,t),s(e,H,t),s(e,z,t),Z(p,e,t),s(e,w,t),Z(m,e,t),s(e,y,t),s(e,d,t),s(e,U,t),s(e,c,t),s(e,A,t),s(e,f,t),s(e,R,t),s(e,v,t),s(e,E,t),s(e,g,t),s(e,k,t),s(e,L,t),s(e,S,t),s(e,x,t),s(e,B,t),s(e,O,t),s(e,j,t),Z(h,e,t),s(e,I,t),s(e,$,t),s(e,F,t),s(e,Q,t),s(e,D,t),s(e,b,t),s(e,G,t),s(e,T,t),s(e,K,t),s(e,M,t),s(e,N,t),s(e,_,t),s(e,J,t),Z(C,e,t),s(e,V,t),s(e,q,t),W=!0},p:$e,i(e){W||(ee(p.$$.fragment,e),ee(m.$$.fragment,e),ee(h.$$.fragment,e),ee(C.$$.fragment,e),W=!0)},o(e){te(p.$$.fragment,e),te(m.$$.fragment,e),te(h.$$.fragment,e),te(C.$$.fragment,e),W=!1},d(e){e&&(n(P),n(H),n(z),n(w),n(y),n(d),n(U),n(c),n(A),n(f),n(R),n(v),n(E),n(g),n(k),n(L),n(S),n(x),n(B),n(O),n(j),n(I),n($),n(F),n(Q),n(D),n(b),n(G),n(T),n(K),n(M),n(N),n(_),n(J),n(V),n(q)),n(u),ne(p,e),ne(m,e),ne(h,e),ne(C,e)}}}const ze='{"title":"Introduction","local":"introduction","sections":[{"title":"Ce que vous allez apprendre","local":"ce-que-vous-allez-apprendre","sections":[],"depth":2}],"depth":1}';function we(se){return be(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ee extends Te{constructor(u){super(),Me(this,u,we,Pe,he,{})}}export{Ee as component};
