Buckets:

rtrm's picture
download
raw
13.1 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Git vs. HTTP-Paradigma&quot;,&quot;local&quot;:&quot;git-vs-http-paradigma&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Repository: Der historische git-basierte Ansatz&quot;,&quot;local&quot;:&quot;repository-der-historische-git-basierte-ansatz&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;HfApi: Ein flexibler und praktischer HTTP-Client&quot;,&quot;local&quot;:&quot;hfapi-ein-flexibler-und-praktischer-http-client&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Was sollte ich verwenden ? Und wann ?&quot;,&quot;local&quot;:&quot;was-sollte-ich-verwenden--und-wann-&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}">
<link href="/docs/huggingface_hub/main/de/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/entry/start.5b39c6b6.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/chunks/scheduler.b108d059.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/chunks/singletons.9188296f.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/chunks/paths.79af46a7.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/entry/app.3b646339.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/chunks/index.008de539.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/nodes/0.c400d672.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/nodes/2.c90555a7.js">
<link rel="modulepreload" href="/docs/huggingface_hub/main/de/_app/immutable/chunks/EditOnGithub.d1c48e3d.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Git vs. HTTP-Paradigma&quot;,&quot;local&quot;:&quot;git-vs-http-paradigma&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Repository: Der historische git-basierte Ansatz&quot;,&quot;local&quot;:&quot;repository-der-historische-git-basierte-ansatz&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;HfApi: Ein flexibler und praktischer HTTP-Client&quot;,&quot;local&quot;:&quot;hfapi-ein-flexibler-und-praktischer-http-client&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Was sollte ich verwenden ? Und wann ?&quot;,&quot;local&quot;:&quot;was-sollte-ich-verwenden--und-wann-&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-vs-http-paradigma" 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-vs-http-paradigma"><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 vs. HTTP-Paradigma</span></h1> <p data-svelte-h="svelte-kjzwod">Die <code>huggingface_hub</code>-Bibliothek ist eine Bibliothek zur Interaktion mit dem Hugging Face
Hub, einer Sammlung von auf Git basierenden Repositories (Modelle, Datensätze oder
Spaces). Es gibt zwei Hauptmethoden, um auf den Hub mit <code>huggingface_hub</code> zuzugreifen.</p> <p data-svelte-h="svelte-hb0so0">Der erste Ansatz, der sogenannte “Git-basierte” Ansatz, wird von der <code>Repository</code> Klasse
geleitet. Diese Methode verwendet einen Wrapper um den <code>git</code>-Befehl mit zusätzlichen
Funktionen, die speziell für die Interaktion mit dem Hub entwickelt wurden. Die zweite
Option, die als “HTTP-basierter” Ansatz bezeichnet wird, umfasst das Senden von
HTTP-Anfragen mit dem <code>HfApi</code> Client. Schauen wir uns die Vor- und Nachteile jeder
Methode an.</p> <h2 class="relative group"><a id="repository-der-historische-git-basierte-ansatz" 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-der-historische-git-basierte-ansatz"><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: Der historische git-basierte Ansatz</span></h2> <p data-svelte-h="svelte-19m9x00">Ursprünglich wurde <code>huggingface_hub</code> größtenteils um die <code>Repository</code> Klasse herum
entwickelt. Sie bietet Python-Wrapper für gängige git-Befehle wie <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> usw.</p> <p data-svelte-h="svelte-1ujbqa4">Die Bibliothek hilft auch beim Festlegen von Zugangsdaten und beim Tracking von großen
Dateien, die in Machine-Learning-Repositories häufig verwendet werden. Darüber hinaus
ermöglicht die Bibliothek das Ausführen ihrer Methoden im Hintergrund, was nützlich ist,
um Daten während des Trainings hochzuladen.</p> <p data-svelte-h="svelte-1k6nrim">Der Hauptvorteil bei der Verwendung einer <code>Repository</code> besteht darin, dass Sie eine
lokale Kopie des gesamten Repositorys auf Ihrem Computer pflegen können. Dies kann jedoch
auch ein Nachteil sein, da es erfordert, diese lokale Kopie ständig zu aktualisieren und
zu pflegen. Dies ähnelt der traditionellen Softwareentwicklung, bei der jeder Entwickler
eine eigene lokale Kopie pflegt und Änderungen überträgt, wenn an einer Funktion
gearbeitet wird. Im Kontext des Machine Learning ist dies jedoch nicht immer erforderlich,
da Benutzer möglicherweise nur Gewichte für die Inferenz herunterladen oder Gewichte von
einem Format in ein anderes konvertieren müssen, ohne das gesamte Repository zu klonen.</p> <h2 class="relative group"><a id="hfapi-ein-flexibler-und-praktischer-http-client" 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-ein-flexibler-und-praktischer-http-client"><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: Ein flexibler und praktischer HTTP-Client</span></h2> <p data-svelte-h="svelte-cynmrb">Die <code>HfApi</code> Klasse wurde entwickelt, um eine Alternative zu lokalen Git-Repositories
bereitzustellen, die besonders bei der Arbeit mit großen Modellen oder Datensätzen
umständlich zu pflegen sein können. Die <code>HfApi</code> Klasse bietet die gleiche Funktionalität
wie git-basierte Ansätze, wie das Herunterladen und Hochladen von Dateien sowie das
Erstellen von Branches und Tags, jedoch ohne die Notwendigkeit eines lokalen Ordners, der
synchronisiert werden muss.</p> <p data-svelte-h="svelte-1bsqtes">Zusätzlich zu den bereits von <code>git</code> bereitgestellten Funktionen bietet die <code>HfApi</code>
Klasse zusätzliche Features wie die Möglichkeit, Repositories zu verwalten, Dateien mit
Caching für effiziente Wiederverwendung herunterzuladen, im Hub nach Repositories und
Metadaten zu suchen, auf Community-Funktionen wie Diskussionen, Pull Requests und
Kommentare zuzugreifen und Spaces-Hardware und Geheimnisse zu konfigurieren.</p> <h2 class="relative group"><a id="was-sollte-ich-verwenden--und-wann-" 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="#was-sollte-ich-verwenden--und-wann-"><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>Was sollte ich verwenden ? Und wann ?</span></h2> <p data-svelte-h="svelte-1taxrf4">Insgesamt ist der <strong>HTTP-basierte Ansatz in den meisten Fällen die empfohlene Methode zur Verwendung von</strong> <code>huggingface_hub</code>. Es gibt jedoch einige Situationen, in denen es vorteilhaft sein kann,
eine lokale Git-Kopie (mit <code>Repository</code>) zu pflegen:</p> <ul data-svelte-h="svelte-1dcm1ok"><li>Wenn Sie ein Modell auf Ihrem Computer trainieren, kann es effizienter sein, einen
herkömmlichen git-basierten Workflow zu verwenden und regelmäßige Updates zu pushen.
<code>Repository</code> ist für diese Art von Situation mit seiner Fähigkeit zur Hintergrundarbeit optimiert.</li> <li>Wenn Sie große Dateien manuell bearbeiten müssen, ist <code>git</code> die beste Option, da es nur
die Differenz an den Server sendet. Mit dem <code>HfAPI</code> Client wird die gesamte Datei bei
jeder Bearbeitung hochgeladen. Beachten Sie jedoch, dass die meisten großen Dateien binär
sind und daher sowieso nicht von Git-Diffs profitieren.</li></ul> <p data-svelte-h="svelte-1mxnr72">Nicht alle Git-Befehle sind über <code>HfApi</code> verfügbar. Einige werden vielleicht nie
implementiert, aber wir bemühen uns ständig, die Lücken zu schließen und zu verbessern.
Wenn Sie Ihren Anwendungsfall nicht abgedeckt sehen, öffnen Sie bitte <a href="https://github.com/huggingface/huggingface_hub" rel="nofollow">ein Issue auf
Github</a>! Wir freuen uns über Feedback, um das 🤗-Ökosystem mit und für unsere Benutzer aufzubauen.</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/de/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_h162zg = {
assets: "/docs/huggingface_hub/main/de",
base: "/docs/huggingface_hub/main/de",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/huggingface_hub/main/de/_app/immutable/entry/start.5b39c6b6.js"),
import("/docs/huggingface_hub/main/de/_app/immutable/entry/app.3b646339.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 2],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
13.1 kB
·
Xet hash:
8275fb63b43789c9e419413cda94ae17ba66407f10bc106accb3ae4cc066b9b1

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