import{s as Le,n as he,o as xe}from"../chunks/scheduler.37c15a92.js";import{S as be,i as Te,g as l,s as i,r as V,A as _e,h as r,f as n,c as o,j as fe,u as W,x as a,k as ve,y as Me,a as s,v as X,d as Y,t as Z,w as ee}from"../chunks/index.2bf4358c.js";import{H as ge}from"../chunks/Heading.8ada512a.js";import{E as $e}from"../chunks/getInferenceSnippets.54ddb825.js";function Ce(te){let u,q,C,P,p,z,m,ne='<img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/bonus-unit1/thumbnail.jpg" alt="Bonus Unit 1 Thumbnail"/>',w,c,se="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>).",y,d,ie="En termes de LLM, l’appel de fonctions devient rapidement une technique <em>incontournable</em>.",U,f,oe="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.",A,v,le="<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>",R,g,re="La meilleure façon pour vous de pouvoir suivre cette Unité Bonus est de :",E,L,ae='<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>',k,B,O,h,S,x,ue=`<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>`,j,I,F,b,pe="À la fin de cette unité bonus, vous serez capable de :",Q,T,me="<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>",D,_,ce="Et vous <strong>aurez finetuné votre propre modèle pour faire de l’appel de fonctions.</strong> 🔥",G,M,de="Plongeons dans <strong>l’appel de fonctions</strong> !",K,$,N,H,J;return p=new ge({props:{title:"Introduction",local:"introduction",headingTag:"h1"}}),h=new ge({props:{title:"Ce que vous allez apprendre",local:"ce-que-vous-allez-apprendre",headingTag:"h2"}}),$=new $e({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/fr/bonus-unit1/introduction.mdx"}}),{c(){u=l("meta"),q=i(),C=l("p"),P=i(),V(p.$$.fragment),z=i(),m=l("p"),m.innerHTML=ne,w=i(),c=l("p"),c.innerHTML=se,y=i(),d=l("p"),d.innerHTML=ie,U=i(),f=l("p"),f.innerHTML=oe,A=i(),v=l("blockquote"),v.innerHTML=le,R=i(),g=l("p"),g.textContent=re,E=i(),L=l("ol"),L.innerHTML=ae,k=i(),B=l("hr"),O=i(),V(h.$$.fragment),S=i(),x=l("ol"),x.innerHTML=ue,j=i(),I=l("hr"),F=i(),b=l("p"),b.textContent=pe,Q=i(),T=l("ul"),T.innerHTML=me,D=i(),_=l("p"),_.innerHTML=ce,G=i(),M=l("p"),M.innerHTML=de,K=i(),V($.$$.fragment),N=i(),H=l("p"),this.h()},l(e){const t=_e("svelte-u9bgzb",document.head);u=r(t,"META",{name:!0,content:!0}),t.forEach(n),q=o(e),C=r(e,"P",{}),fe(C).forEach(n),P=o(e),W(p.$$.fragment,e),z=o(e),m=r(e,"P",{"data-svelte-h":!0}),a(m)!=="svelte-1lr1l38"&&(m.innerHTML=ne),w=o(e),c=r(e,"P",{"data-svelte-h":!0}),a(c)!=="svelte-bj8fze"&&(c.innerHTML=se),y=o(e),d=r(e,"P",{"data-svelte-h":!0}),a(d)!=="svelte-yawi8c"&&(d.innerHTML=ie),U=o(e),f=r(e,"P",{"data-svelte-h":!0}),a(f)!=="svelte-yjy9a1"&&(f.innerHTML=oe),A=o(e),v=r(e,"BLOCKQUOTE",{"data-svelte-h":!0}),a(v)!=="svelte-1h7sf77"&&(v.innerHTML=le),R=o(e),g=r(e,"P",{"data-svelte-h":!0}),a(g)!=="svelte-145dvhq"&&(g.textContent=re),E=o(e),L=r(e,"OL",{"data-svelte-h":!0}),a(L)!=="svelte-n85xct"&&(L.innerHTML=ae),k=o(e),B=r(e,"HR",{}),O=o(e),W(h.$$.fragment,e),S=o(e),x=r(e,"OL",{"data-svelte-h":!0}),a(x)!=="svelte-1m12nxd"&&(x.innerHTML=ue),j=o(e),I=r(e,"HR",{}),F=o(e),b=r(e,"P",{"data-svelte-h":!0}),a(b)!=="svelte-vota49"&&(b.textContent=pe),Q=o(e),T=r(e,"UL",{"data-svelte-h":!0}),a(T)!=="svelte-1m67ddi"&&(T.innerHTML=me),D=o(e),_=r(e,"P",{"data-svelte-h":!0}),a(_)!=="svelte-4ipefi"&&(_.innerHTML=ce),G=o(e),M=r(e,"P",{"data-svelte-h":!0}),a(M)!=="svelte-1exez8e"&&(M.innerHTML=de),K=o(e),W($.$$.fragment,e),N=o(e),H=r(e,"P",{}),fe(H).forEach(n),this.h()},h(){ve(u,"name","hf:doc:metadata"),ve(u,"content",He)},m(e,t){Me(document.head,u),s(e,q,t),s(e,C,t),s(e,P,t),X(p,e,t),s(e,z,t),s(e,m,t),s(e,w,t),s(e,c,t),s(e,y,t),s(e,d,t),s(e,U,t),s(e,f,t),s(e,A,t),s(e,v,t),s(e,R,t),s(e,g,t),s(e,E,t),s(e,L,t),s(e,k,t),s(e,B,t),s(e,O,t),X(h,e,t),s(e,S,t),s(e,x,t),s(e,j,t),s(e,I,t),s(e,F,t),s(e,b,t),s(e,Q,t),s(e,T,t),s(e,D,t),s(e,_,t),s(e,G,t),s(e,M,t),s(e,K,t),X($,e,t),s(e,N,t),s(e,H,t),J=!0},p:he,i(e){J||(Y(p.$$.fragment,e),Y(h.$$.fragment,e),Y($.$$.fragment,e),J=!0)},o(e){Z(p.$$.fragment,e),Z(h.$$.fragment,e),Z($.$$.fragment,e),J=!1},d(e){e&&(n(q),n(C),n(P),n(z),n(m),n(w),n(c),n(y),n(d),n(U),n(f),n(A),n(v),n(R),n(g),n(E),n(L),n(k),n(B),n(O),n(S),n(x),n(j),n(I),n(F),n(b),n(Q),n(T),n(D),n(_),n(G),n(M),n(K),n(N),n(H)),n(u),ee(p,e),ee(h,e),ee($,e)}}}const He='{"title":"Introduction","local":"introduction","sections":[{"title":"Ce que vous allez apprendre","local":"ce-que-vous-allez-apprendre","sections":[],"depth":2}],"depth":1}';function qe(te){return xe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ue extends be{constructor(u){super(),Te(this,u,qe,Ce,Le,{})}}export{Ue as component};
