Buckets:

rtrm's picture
download
raw
13.6 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Git ou HTTP?&quot;,&quot;local&quot;:&quot;git-ou-http&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Repository: l’approche historique basée sur git&quot;,&quot;local&quot;:&quot;repository-lapproche-historique-basée-sur-git&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;HfApi: Un client HTTP plus flexible&quot;,&quot;local&quot;:&quot;hfapi-un-client-http-plus-flexible&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Quelle méthode utiliser et quand ?&quot;,&quot;local&quot;:&quot;quelle-méthode-utiliser-et-quand-&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}">
<link href="/docs/huggingface_hub/main/fr/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/entry/start.05a3ef6d.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/chunks/scheduler.b108d059.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/chunks/singletons.b0b671a5.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/chunks/paths.9bed4606.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/entry/app.fdbc8075.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/chunks/index.008de539.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/nodes/0.1d2b16b3.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/nodes/2.d18e261b.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/chunks/Tip.aeb15ab7.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/fr/_app/immutable/chunks/EditOnGithub.d1c48e3d.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Git ou HTTP?&quot;,&quot;local&quot;:&quot;git-ou-http&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Repository: l’approche historique basée sur git&quot;,&quot;local&quot;:&quot;repository-lapproche-historique-basée-sur-git&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;HfApi: Un client HTTP plus flexible&quot;,&quot;local&quot;:&quot;hfapi-un-client-http-plus-flexible&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Quelle méthode utiliser et quand ?&quot;,&quot;local&quot;:&quot;quelle-méthode-utiliser-et-quand-&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="git-ou-http" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#git-ou-http"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Git ou HTTP?</span></h1> <p data-svelte-h="svelte-14uu2vm"><code>huggingface_hub</code> est une librairie qui permet d’interagir avec le Hugging Face Hub,
qui est une collection de dépots Git (modèles, datasets ou spaces).
Il y a deux manières principales pour accéder au Hub en utilisant <code>huggingface_hub</code>.</p> <p data-svelte-h="svelte-1a5h7gd">La première approche, basée sur Git, appelée approche “git-based”, est rendue possible par la classe <code>Repository</code>.
Cette méthode utilise un wrapper autour de la commande <code>git</code> avec des fonctionnalités supplémentaires conçues pour interagir avec le Hub. La deuxième option, appelée approche “HTTP-based” , consiste à faire des requêtes HTTP en utilisant le client <code>HfApi</code>. Examinons
les avantages et les inconvénients de ces deux méthodes.</p> <h2 class="relative group"><a id="repository-lapproche-historique-basée-sur-git" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#repository-lapproche-historique-basée-sur-git"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Repository: l’approche historique basée sur git</span></h2> <p data-svelte-h="svelte-1td4ndg">Initialement, <code>huggingface_hub</code> était principalement construite autour de la classe <code>Repository</code>. Elle fournit des
wrappers Python pour les commandes <code>git</code> usuelles, telles que <code>&quot;git add&quot;</code>, <code>&quot;git commit&quot;</code>, <code>&quot;git push&quot;</code>,
<code>&quot;git tag&quot;</code>, <code>&quot;git checkout&quot;</code>, etc.</p> <p data-svelte-h="svelte-qd4ap1">Cette librairie permet aussi de gérer l’authentification et les fichiers volumineux, souvent présents dans les dépôts Git de machine learning. De plus, ses méthodes sont exécutables en arrière-plan, ce qui est utile pour upload des données durant l’entrainement d’un modèle.</p> <p data-svelte-h="svelte-18wnmr4">L’avantage principal de l’approche <code>Repository</code> est qu’elle permet de garder une
copie en local du dépot Git sur votre machine. Cela peut aussi devenir un désavantage,
car cette copie locale doit être mise à jour et maintenue constamment. C’est une méthode
analogue au développement de logiciel classique où chaque développeur maintient sa propre copie locale
et push ses changements lorsqu’il travaille sur une nouvelle fonctionnalité.
Toutefois, dans le contexte du machine learning la taille des fichiers rend peu pertinente cette approche car
les utilisateurs ont parfois besoin d’avoir
uniquement les poids des modèles pour l’inférence ou de convertir ces poids d’un format à un autre sans avoir à cloner
tout le dépôt.</p> <div class="course-tip course-tip-orange bg-gradient-to-br dark:bg-gradient-to-r before:border-orange-500 dark:before:border-orange-800 from-orange-50 dark:from-gray-900 to-white dark:to-gray-950 border border-orange-50 text-orange-700 dark:text-gray-400"><p data-svelte-h="svelte-p4w1lm"><code>Repository</code> est maintenant obsolète et remplacée par les alternatives basées sur des requêtes HTTP. Étant donné son adoption massive par les utilisateurs,
la suppression complète de <code>Repository</code> ne sera faite que pour la version <code>v1.0</code>.</p></div> <h2 class="relative group"><a id="hfapi-un-client-http-plus-flexible" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#hfapi-un-client-http-plus-flexible"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>HfApi: Un client HTTP plus flexible</span></h2> <p data-svelte-h="svelte-142kxa4">La classe <code>HfApi</code> a été développée afin de fournir une alternative aux dépôts git locaux,
qui peuvent être encombrant à maintenir, en particulier pour des modèles ou datasets volumineux.
La classe <code>HfApi</code> offre les mêmes fonctionnalités que les approches basées sur Git,
telles que le téléchargement et le push de fichiers ainsi que la création de branches et de tags, mais sans
avoir besoin d’un fichier local qui doit être constamment synchronisé.</p> <p data-svelte-h="svelte-1mlifqm">En plus des fonctionnalités déjà fournies par <code>git</code>, La classe <code>HfApi</code> offre des fonctionnalités
additionnelles, telles que la capacité à gérer des dépôts, le téléchargement des fichiers
dans le cache (permettant une réutilisation), la recherche dans le Hub pour trouver
des dépôts et des métadonnées, l’accès aux fonctionnalités communautaires telles que, les discussions,
les pull requests et les commentaires.</p> <h2 class="relative group"><a id="quelle-méthode-utiliser-et-quand-" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#quelle-méthode-utiliser-et-quand-"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Quelle méthode utiliser et quand ?</span></h2> <p data-svelte-h="svelte-1hr4qmt">En général, <strong>l’approche HTTP est la méthode recommandée</strong> pour utiliser <code>huggingface_hub</code> <code>HfApi</code> permet de pull et push des changements, de travailler avec les pull requests, les tags et les branches, l’interaction avec les discussions
et bien plus encore. Depuis la version <code>0.16</code>, les méthodes HTTP-based peuvent aussi être exécutées en arrière-plan, ce qui constituait le
dernier gros avantage de la classe <code>Repository</code>.</p> <p data-svelte-h="svelte-wnzgjk">Toutefois, certaines commandes restent indisponibles en utilisant <code>HfApi</code>.
Peut être que certaines ne le seront jamais, mais nous essayons toujours de réduire le fossé entre ces deux approches.
Si votre cas d’usage n’est pas couvert, nous serions ravis de vous aider. Pour cela, ouvrez
<a href="https://github.com/huggingface/huggingface_hub" rel="nofollow">une issue sur Github</a>! Nous écoutons tous les retours nous permettant de construire
l’écosystème 🤗 avec les utilisateurs et pour les utilisateurs.</p> <p data-svelte-h="svelte-15p4mds">Cette préférence pour l’approche basée sur <code>HfApi</code> plutôt que <code>Repository</code> ne signifie pas que les dépôts stopperons d’être versionnés avec git sur le Hugging Face Hub. Il sera toujours possible d’utiliser les commandes <code>git</code> en local lorsque nécessaire.</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/huggingface_hub/blob/main/docs/source/fr/concepts/git_vs_http.md" target="_blank"><span data-svelte-h="svelte-1kd6by1">&lt;</span> <span data-svelte-h="svelte-x0xyl0">&gt;</span> <span data-svelte-h="svelte-1dajgef"><span class="underline ml-1.5">Update</span> on GitHub</span></a> <p></p>
<script>
{
__sveltekit_k9d2m7 = {
assets: "/docs/huggingface_hub/main/fr",
base: "/docs/huggingface_hub/main/fr",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/huggingface_hub/main/fr/_app/immutable/entry/start.05a3ef6d.js"),
import("/docs/huggingface_hub/main/fr/_app/immutable/entry/app.fdbc8075.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 2],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
13.6 kB
·
Xet hash:
835437d1b3d5c5ca4de45484a00bb7794e264dff1ef6c2267bff968d1537d51d

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.