Heim > Technologie-Peripheriegeräte > KI > Wirtschaftlichkeit von Open Source LLMs

Wirtschaftlichkeit von Open Source LLMs

王林
Freigeben: 2025-02-26 03:15:10
Original
788 Leute haben es durchsucht

großes Sprachmodell in der Produktionsumgebung

Economics of Hosting Open Source LLMs _Wenn Sie kein Mitglied sind, aber diesen Artikel lesen möchten, schauen Sie sich bitte diesen Freund an. _

Wenn Sie Open -Source -Modelle verschiedener Größen ausprobiert haben, fragen Sie sich vielleicht: Was ist der effizienteste Weg, um sie bereitzustellen?

Was ist der Preisunterschied zwischen Pay-as-you-go und serverlosen Anbietern, und wenn eine LLM-Serviceplattform existiert, lohnt es sich wirklich, Teilnehmer wie AWS zu behandeln?

Ich habe mich entschlossen, mich mit diesem Thema zu befassen und Cloud -Anbieter wie AWS mit aktualisierten Alternativen wie Modal, Bentoml, Replicate, Umarmung von Gesichtsendpunkten und Balken zu vergleichen.

Wir werden uns mit Kennzahlen wie Verarbeitungszeit, Kaltstartlatenz und CPU, Speicher und GPU -Kosten befassen, um festzustellen, welche am effektivsten und wirtschaftlichsten sind. Wir werden auch weichere Metriken wie einfache Einsatz, Entwicklererfahrung und Community abdecken.

Economics of Hosting Open Source LLMs Wir werden einige Anwendungsfälle untersuchen, z. B. die Bereitstellung kleinerer Modelle für CPUs und Ausführung von 7-8 Milliarden Parametermodellen für GPUs.

Ich werde mich auch mit dem Prozess der Bereitstellung kleinerer Modelle unter Verwendung von EFS in AWS Lambda befassen und sie mit moderneren Plattformen wie Modal vergleichen.

Ich werde hier nicht in die Tiefe der Optimierungsstrategien eingehen - wie verschiedene Frameworks oder Quantisierungen zur Beschleunigung der Argumentation -, dies ist ein völlig separates Thema.

Stattdessen wird sich dieser Artikel darauf konzentrieren, wie Sie die richtige Bereitstellungsoption auswählen und die Möglichkeit haben, die Leistung in verschiedenen Szenarien zu vergleichen und Ihnen zu helfen, die wirtschaftlichen Kosten für die Bereitstellung kleiner und großer LLMs zu verstehen.

Einführung

Wenn Sie ein Open-Source-Modell außerhalb des Shelf verwenden, gibt es viele benutzerfreundliche API-Optionen. Ich empfehle, diese Liste für einige Optionen zu überprüfen. Sie können sich auch für den Selbsthost entscheiden-den örtlichen Inferenzabschnitt in derselben Liste anzeigen.

Sie müssen jedoch möglicherweise ein privates, fein abgestimmeltes oder weniger gemeinsames Modell verwenden.

Sie können diese Modelle sicherlich auch lokal hosten, Ihr Computer benötigt jedoch genügend Ressourcen, und Sie möchten diese Modelle möglicherweise in eine Anwendung integrieren, die auf einem anderen Server ausgeführt wird.

Dies bringt uns zum Hosting von Open -Source -Modellen auf Bedarf oder über serverlose Plattformen. Die Idee ist, dass Sie nur die von Ihnen verwendeten Ressourcen bezahlen, egal ob sie auf Anfrage oder auf Auslauf sind, genau wie serverlos.

serverlos und on-demand funktioniert ein wenig ähnlich, aber mit serverlos ist es schneller, sodass Sie nicht für Leerlaufressourcen bezahlen müssen.

Sie können meine Doodle unten für weitere Vergleiche überprüfen.

Economics of Hosting Open Source LLMs In diesem Artikel werden wir AWSs EC2 und Lambda mit mehreren aufstrebenden Plattformen vergleichen, die in letzter Zeit immer beliebter sind.

Economics of Hosting Open Source LLMs Auf diese Weise können Sie besser verstehen, was am besten funktioniert.

Als Randnotiz habe ich keine Entschädigung von diesen Anbietern erhalten, daher sind die Informationen, die ich hier teile, meine persönliche Meinung.

Wenn Sie ein Stakeholder sind, ist dies eine großartige Möglichkeit, die Wirtschaftlichkeit unterschiedlicher Optionen und die Kosten für den Betrieb von Inferenz basierend auf Modellgröße und Anbieterauswahl zu verstehen.

Der erste Teil des Artikels deckt die Forschung ab, an der jeder teilnehmen kann, während der zweite Teil Aspekte der Bereitstellungstechnologie abdeckt, die Sie möglicherweise lesen möchten oder nicht.

llm Service Framework

Jetzt, bevor wir anfangen, möchte ich das LLM -Inferenz -Framework kommentieren, das das Einrichten von API -Endpunkten für Servicemodelle vereinfacht. Es gibt mehrere Open Source LLM -Service -Frameworks, darunter VLLM, Tensorrt und TGI, die wir hier verwenden können.

Sie können einige der beliebtesten Frameworks im Abschnitt LLM Service Frameworks der Liste, die ich zuvor geteilt habe, ansehen (siehe unten).

Economics of Hosting Open Source LLMs Einige Menschen haben die Leistungsunterschiede zwischen diesen Frameworks gemessen und Sie sollten definitiv Ihre eigenen Nachforschungen anstellen.

In diesem Artikel werden wir jedoch VLLM verwenden, was häufig verwendet wird - es sei denn, das Modell wird über den Umarmungs -Gesichtsendpunkt bereitgestellt, der TGI automatisch für uns verwendet.

Um ein kleineres Konvertermodell bereitzustellen, das auf der CPU ausgeführt wird, habe ich gerade die Umarmungsgesicht Pipeline oder Transformers Library direkt verwendet.

Forschung

Im ersten Teil werden wir die Effizienz, die Kosten und die Leistung von On-Demand und serverloser Auswahl betrachten. Wir werden zuerst die Metriken vorstellen und dann auf technische Details eingehen.

Verarbeitungszeit

Lassen Sie uns zunächst die Gesamtverarbeitungszeit über Plattformen hinweg messen, wenn sich der Container in einem vorgeheizten Zustand befindet (d. H. In den letzten Sekunden verwendet) und es gibt keine Parallelität.

Wir definieren die Verarbeitungszeit als die Gesamtzeit, die erforderlich ist, um die Antwort zu vervollständigen. Bitte beachten Sie, dass einige Personen die erste Reaktionszeit messen können, insbesondere beim Streaming -Ausgang.

Für die Konsistenz habe ich für jeden Test dieselbe Eingabeaufforderung verwendet. Für das 400 -m -Modell habe ich den Text in 30 Teile gestört.

Sie können den Indikator unten sehen.

Economics of Hosting Open Source LLMs Ich habe diese Tests am selben Tag nur einige Male auf jeder Plattform durchgeführt. Idealerweise sollte ich sie in ein paar Tagen testen. Ich kann für einige dieser Tests Pech haben.

Um ihre Leistung für **** serverlose Anbieter zu diskutieren, funktionieren Modal und Beam in der CPU (als hellgrüne Balken angezeigt) sehr gut. Es ist einfacher, ein 400 -m -Modell zu starten, als ein 8B -Modell zu starten.

Ich finde, dass selbst mit kleineren Modellen (weniger als 130 m) mit AWS Lambda funktioniert, insbesondere bei der Verwendung von EFS -Cache -Modellen.

Während ich wirklich gerne Gesichtendpunkte umarme, fand ich ihre CPU -Instanzen ein wenig unvorhersehbar. Ihre AWS -GPU -Instanzen sind jedoch sehr zuverlässig und schnell.

Auch wenn ich das 7B -Modell in einer L4 -Instanz hoste, kann ich sehr schnelle Antworten auf die GPU erhalten, die in 10 Sekunden zurückkehren können - dies ist etwas, das wir mit einem serverlosen Anbieter nicht implementieren können, den serverlose Anbieter mehr benötigen leistungsstarke GPU.

Wenn wir die A100-GPU wählen, werden wir feststellen, dass alle Anbieter für das 7B-8B-Parametermodell sehr gut abschneiden und eine vollständige Antwort in Sekunden zurückgeben können.

Natürlich ist die Geschwindigkeit sehr schnell, aber wir müssen andere Indikatoren berücksichtigen.

kaltes Start

Als nächstes tauchen wir in den kalten Start ein, d. H. Wie lange es dauert, um zu reagieren, wenn das Modell für eine Weile nicht verwendet wird. Selbst wenn Sie das Modell zwischenspeichern, muss es möglicherweise noch den Shard herunterladen, der einige Sekunden hinzufügen kann.

On-Demand-Service kann es Ihnen möglicherweise ermöglichen, Modelle zu speichern, um die Startzeit zu beschleunigen. Ich mache dies hier nicht, aber die meisten serverlosen Anbieter zeigen Ihnen, wie Sie Modelle zur Erstellung von Zeiten zwischengespeichert werden, was die Latenz des Kalten Boots verringern kann.

Schauen wir uns die Indikatoren der folgenden Plattformen an.

Economics of Hosting Open Source LLMs Bitte beachten Sie, dass ich die gesamte Verarbeitungszeit während des Kaltstarts berechnet habe. Überprüfen Sie unbedingt die Berechnung der Kaltstart direkt.

Wie erwartet funktionieren meine On-Demand-Dienste, die kein Cache-Modell haben, schlecht, wie Bentoml, umarme Gesichtsendpunkte und Baseten.

Während der umarmende Gesichtsendpunkt nach dem Laufen gut abschneiden kann, können Sie möglicherweise immer noch Kaltstarts in den letzten 30 Sekunden bis 5 Minuten erleben, was zu einem Problem werden kann, wenn Sie häufig skalieren und skalieren müssen. Sie werfen auch 500 Fehler, bevor die Container wieder vollständig ausgeführt werden.

serverlose Anbieter sind schneller, da sie schnell skalieren sollen, indem wir die Modellgewichte bei der ersten Bereitstellung von Cache -Gewichten durchführen müssen.

Beam bietet am besten auf der CPU, gefolgt von Baseten, Modal und Lambda mit EFS. Kleinere Modelle beginnen normalerweise schneller. Lambda zeigt hervorragende Ergebnisse mit schneller Verarbeitungszeit und minimaler Kaltstartlatenz für kleine Modelle mit nur 125 -m -Parametern.

Obwohl ich denke, dass es gut ist, Modal oder Strahl für kleinere Modelle zu verwenden.

GPU- und CPU -Preisgestaltung

Wenden wir uns der Preisgestaltung zu. Wir müssen uns die Kosten für CPU-, Speicher- und GPU -Ressourcen ansehen.

Es gibt einige offensichtliche Unterschiede zwischen Plattformen.

serverlose Anbieter sind oft teurer, da sie zusätzlich zur GPU -Verwendung CPU- und Speichergebühren berechnen. Sie werden Ihnen jedoch nicht für die Leerlaufzeit berechnet, was dazu beitragen kann, die höheren Kosten auszugleichen.

Sie finden den Preis der Nvidia -GPU im Bild unten.

Economics of Hosting Open Source LLMs Sie sollten sich jedoch den Sagemaker ansehen, der die höchsten GPU -Kosten für alle hat. Wenn Sie AWS verwenden müssen, ist es am besten, EC2 direkt zu verwenden.

Schauen wir uns auch die CPU -Preisgestaltung an.

Economics of Hosting Open Source LLMs Umarmende Gesichtendpunkte führen mit 0,07 USD mit 2 VCPUs und 4 GB Speicher, leider sind ihre CPU -Instanzen unterdurchschnittlich.

Strahl und Modal ermöglichen es Ihnen, die von Ihnen benötigten Ressourcen anzupassen, wodurch die Kosten minimiert werden. Für das 400 -m -Modell berechnete ich, dass auf beiden Plattformen nur 3 GB Speicher und 1 Kern (2 VCPUs) erforderlich waren.

Replikate hingegen zwingt uns, 4 VCPUs unabhängig von der Modellgröße zu verwenden, was es hier zur teuersten CPU -Option macht.

Wir werden einige Anwendungsfälle abdecken, um den Preis und die Effizienz all dieser Plattformen zu vergleichen.

Fall 1: Feinabstimmung 400m-Modell, das auf CPU

ausgeführt wird

Der erste Fall wäre ein sporadischer Betrieb eines 400 -m -Modells im Laufe des Tages. Dies bedeutet, dass jeder Aufruf zum Container Skala und Verkleinerung erfordert.

Es ist nicht immer erforderlich, zu skalieren und zu skalieren, aber wir müssen es zählen.

Ich führe diese Fallstudie durch, indem ich 30 Text für jeden Anruf (mit einem kleineren Feinabstimmungsmodell) mit 250 Anrufen den ganzen Tag über bating. Der Einfachheit halber gehen wir davon aus, dass der Behälter jedes Mal kalt gestartet ist, wenn er läuft (mit Ausnahme des umarmenden Gesichtsendpunkts).

serverlose Anbieter sind hier eine bessere Wahl, da wir nicht für die Leerlaufzeit zahlen werden, wie wir es bei Bedarf tun. Für Bentoml müssen wir mindestens 5 Minuten lang im Leerlauf bleiben, bevor wir die Größe automatisch reduzieren, und für HF -Endpunkte müssen wir 15 Minuten warten. Economics of Hosting Open Source LLMs

Randnotiz, wenn Sie nicht mit der automatischen Skalierungsreduzierung vertraut sind, wird dieses Konzept die Plattform anweisen, unsere Instanzen automatisch zu skalieren.

Sie alle haben unterschiedliche Anforderungen, Baseten- und HF -Endpunkte haben 15 Minuten kostenloser Fenster, während Bentoml 5 Minuten hat.

Da der HF-Endpunkt mindestens 15 Minuten dauert, um zu skalieren, hat es keine Zeit, die Funktion alle 5-6 Minuten aufzurufen, also haben wir nur wenige Erkältung, aber die meiste Zeit ist es untätig .

Wir können sehen, dass 17 Stunden Freizeit wie der HF -Fall und 18 Stunden im Bentoml -Fall von Natur aus ineffizient ist. Wir werden den größten Teil der Mittel für Leerlaufressourcen den ganzen Tag über bezahlen.

Ein Cent oder ein Dollar hier und es scheint in den ersten Tagen nicht viel zu geben, aber es wird sich nach einer Weile ansammeln.

Economics of Hosting Open Source LLMs Denken Sie daran, dass Menschen jeden Tag ein wenig Geld auf ihren Sparkonten sparen - hier das Gegenteil zu überbezahlt.

Aber was ist, wenn wir alle 250 Anrufe ausführen, während sich der Container im vorgeheizten Zustand befindet? Wie viel Unterschied wird es geben?

Economics of Hosting Open Source LLMs Strahlen scheinen hier ein Ausreißer zu sein, aber ich denke, sie laufen mehr als die maximale CPU, die Sie nicht zulassen, dass Sie es verwenden können.

In diesem Fall verschwindet der kalte Start und die Freizeit. Dies zeigt, dass, wenn Sie auf einmal an allem arbeiten, eine bessere Option ist, wenn Sie einen anhaltenden Container verwenden - es ist viel billiger.

Es ist erwähnenswert, dass das 400 -m -Modell für die T4 -GPU am besten für die Umarmung von Gesichtsendpunkten und Bentoml geeignet ist. Diese Einstellung reduziert die Kosten und verkürzt die Verarbeitungszeit erheblich.

Eine Sache, die zu beachten ist, ist, dass Sie, wenn Sie AWS Lambda mit EFS verwenden, zusätzliche Gebühren für das NAT -Gateway ergeben, was möglicherweise um 1 bis 3 US -Dollar pro Tag erhöht wird, was die Gesamtkosten höher macht als die hier gezeigten.

Übergehen wir nun zum zweiten Fall - ein größeres Modell mit 7B bis 8B -Parametern, die auf der GPU ausgeführt werden.

Fall 2: Allgemeines 8B -Modell, das auf GPU

ausgeführt wird

In diesem Fall habe ich Modelle von Größen wie Mistral, Gemma oder Lama wie Mistral, Gemma oder Lama getestet.

Diese Szene beinhaltet sporadische Aufrufe des Modells 250 Mal im Laufe des Tages. Wir gehen davon aus, dass der Container jedes Mal, wenn er aufgerufen wird, skaliert und skaliert wird, obwohl dies nicht immer der Fall ist.

Genau wie bei CPU-Tests gehen wir davon aus, dass der On-Demand-Dienst 24 Stunden lang läuft, da er keine Zeit hat, um zu skalieren.

Ich habe dafür gesorgt, dass die GPU -Instanz, die wir für jeden Anbieter verwenden, aufschreiben. Bitte überprüfen Sie das unten stehende Balkendiagramm unten.

Economics of Hosting Open Source LLMs Für serverlose Anbieter habe ich die Verarbeitungszeit durch Multiplikation leicht übertrieben, aber die Kälte startet von der Gesamtpreisberechnung.

Während die tatsächlichen Kosten niedriger sind, ist diese Anpassung vorsichtig. Möglicherweise werden Sie mehr berechnet, weil Sie für einige Startups bezahlen.

Economics of Hosting Open Source LLMs Wie wir in unserem CPU-Fall gesehen haben, ist es kostengünstiger, 250 Anrufe gleichzeitig auszuführen.

Wenn Sie Berechnungen für die billigsten Modelle von Anthropic und Openai einrichten und sie mit den Kosten des Selbsthostings vergleichen, werden Sie feststellen, dass das Modell, das sie mit den gleichen Eingabeaufentwicklungskosten aufruft, viel weniger kostet als das Hosting.

Leute nennen diese Lieferanten McDonald's von LLM.

Wir glauben, dass Open Source billiger wäre, aber wir berechnen nicht die tatsächliche Wirtschaftlichkeit des Hosting. Diese Plattformen werden auch von Risikokapitalfonds subventioniert. Aber wie ich bereits erwähnt habe, ist es billiger, den Anbieter zu verwenden, den Sie hier finden, um auf das Open Source -Modell zuzugreifen.

Wenn Sie sich mit den detaillierten Berechnungen befassen möchten, können Sie diese Datei anzeigen. Faire Warnung - es sieht ein wenig chaotisch aus.

Benutzererfahrung

Sie sind vielleicht bisher zu Ihren eigenen Schlussfolgerungen gekommen, aber das Letzte, was ich vorstellen möchte, ist die Benutzererfahrung.

HF -Endpunkte sind sehr einfach zu bedienen, wenn Sie kein Codierer sind, da Sie Modelle mit einem einfachen Klick aus dem Huggingface -Zentrum bereitstellen können. Wenn Sie eine Technologie kennen, bevorzugen Sie möglicherweise andere Optionen, die Sie mehr steuern können.

Für Replikate haben sie eine große Fangemeinde und viele öffentliche Modelle, die von verschiedenen Personen geteilt werden. Es gibt eine Gemeinschaft. Sie haben ein Ein-Klick-Schulungs- und Bereitstellungsprozesse, um den Betrieb zu erleichtern.

Ich fand jedoch, dass Modal, Strahl und Bentoml insgesamt eine gute Entwicklererfahrung haben. Sie können direkt über das Terminal bereitgestellt und den Code auf seinem Server ausgeführt werden.

Für Replicate benötigen Sie, wenn Sie Ihr eigenes Modell bereitstellen, eine GPU -Maschine und für Baseten müssen Sie eine Bibliothek namens Truss herunterladen, die einige Zeit dauert.

Ich habe einige meiner Notizen in dieser Tabelle gesammelt (siehe unten).

Economics of Hosting Open Source LLMs Wenn Sie eine davon verwenden möchten, enthält die Tabelle auch Links, um das Skript zu starten.

Jetzt, da wir die meisten nicht-technischen Aspekte behandelt haben, werde ich Sie durch zwei Bereitstellungsoptionen für Modelle führen, die sich auf der CPU, AWS Lambda und Modal gut abgeben.

Technische Details

In diesem Abschnitt werden wir vorstellen, wie mein 400-m-Modell mithilfe von AWS Lambda und EFS für die Keyword-Extraktion eingestuft wird und es mit Bereitstellungen auf aktualisierten Plattformen wie Modal verglichen wird.

Beide Tools sind serverlos, was bedeutet, dass wir das Modell beim Erstellen korrekt zwischenspeichern müssen, damit wir in kontinuierlichen Läufen schnell darauf zugreifen können. AWS bietet ein fertiges Skript, das wir problemlos anpassen können, und ich habe hier auch ein Skript für Modal vorbereitet.

Wir werden uns auf zwei Dinge konzentrieren: wie Sie Modelle auf jeder Plattform bereitstellen und wichtige Unterschiede im Bereitstellungsprozess widerspiegeln.

mit EFS

in lambda bereitstellen

Für diesen Teil können Sie es lesen oder befolgen, um bereitzustellen.

Um zu folgen, müssen Sie Git, AWS CDK, Docker, Nodejs 18, Python 3.9 auf Ihrem Computer installieren. Nachdem Sie all dies installiert haben, können Sie ein neues Terminal öffnen.

Wenn Sie ein neues Verzeichnis erstellen möchten, klonen Sie das Repository unten.

<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Geben Sie das erstellte Verzeichnis ein.

<code>cd zero-administration-inference-with-aws-lambda-for-hugging-face</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sie können diese Dateien jetzt in Ihrem Code -Editor öffnen.

Ich benutze VSCODE, also mache ich es.

<code>.code</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt können wir in die erstellte Datei gehen und einige Anpassungen vornehmen. Wenn Sie sich den Inferenzordner ansehen, sehen Sie zwei Dateien, Sentiment.py und Summary.py.

Economics of Hosting Open Source LLMs Wir können die Modelle in diesen Dateien leicht auf die gewünschte ändern.

Wenn Sie in das Harmgingface -Zentrum gehen und das Modell finden, an dem Sie interessiert sind.

Ich werde eines meiner eigenen Modelle verwenden.

Economics of Hosting Open Source LLMs Wenn Sie daran interessiert sind, wie man ein solches Modell erstellt, können Sie sich hier das Tutorial für die Schlüsselwort -Extraktion und das Tutorial zur Textklassifizierung für ansehen.

Nachdem Sie das Modell gefunden haben, an dem Sie interessiert sind, können Sie auf die Schaltfläche "dieses Modell verwenden" klicken.

Wie Sie sehen, haben wir hier zwei Optionen, aber da dieses Skript Pipeline verwendet, können wir dasselbe tun. Economics of Hosting Open Source LLMs

Ich habe den Code in der folgenden Datei mithilfe des neuen Modells, das ich normalerweise verwende, geändert und gleichzeitig erwartet, dass "Texte" für die Stapelverarbeitung verwendet werden, nicht nur "Text".

<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Sie können das obige Bild anzeigen, um die Dateistruktur anzuzeigen.

Ich habe beide Skripte mit verschiedenen Modellen geändert, die ich normalerweise verwende. Nachdem Sie fertig sind, sollten Sie das Skript speichern.

Sie können dann eine virtuelle Umgebung im Terminal einrichten.

<code>cd zero-administration-inference-with-aws-lambda-for-hugging-face</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Bevor Sie die Anforderungen herunterladen, stellen Sie sicher, dass Sie Nodejs 18 haben.

<code>.code</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Sie müssen sicherstellen, dass die Benutzer, die Sie mit dem AWS -CDK konfiguriert haben, die richtigen Berechtigungen haben, bevor Sie etwas anderes tun können.

Nach
<code># inference/summarization.py

import json
from transformers import pipeline

extractor = pipeline("text2text-generation", model="ilsilfverskiold/tech-keywords-extractor")

def handler(event, context):
    # texts should be an array
    texts = event['texts']
    response = {
        "statusCode": 200,
        "body": extractor(texts)[0]
    }
    return response</code>
Nach dem Login kopieren
Nach dem Login kopieren
können Sie Bootstrap ausführen.

<code>python3 -m venv venv
source venv/bin/activate</code>
Nach dem Login kopieren
Nach dem Login kopieren
Wenn Sie hier Probleme mit ECR haben, erstellen Sie manuell ein Repository.

Wenn Sie Docker auf Ihrem Computer ausführen, können Sie es jetzt über das Terminal bereitstellen.

<code>pip install -r requirements.txt</code>
Nach dem Login kopieren
Nach dem Login kopieren
Von hier aus beginnt das CDK mit der Erstellung von Docker -Bildern für Lambda -Funktionen mithilfe der Dockerfile im Inferenzordner. Jede Lambda -Funktion ist mit

8 GB Speicher und 600 Sekunden Zeitüberschreitung ausgestattet.

Es wird ein Internet-Gateway, EFS für Caching-Modelle, mehrere Docker-basierte Lambda-Funktionen (für zwei Modelle in Hosting-Skripten) und mehrere

-Rollen für die Lambda-Ausführung VPC erstellen.

Dies wird einige Zeit dauern.

Ich habe das in einem kleinen Dorf in Italien gemacht, also schlug meine Internetverbindung fehl und ich musste eine GPU -Maschine für den Einsatz mieten. Economics of Hosting Open Source LLMs

Dies kann Ihnen möglicherweise nicht geschehen, aber stellen Sie sicher, dass Sie über genügend Ressourcen und eine stabile Internetverbindung zur Bereitstellung verfügen.

Nach Abschluss der Bereitstellung können Sie in der AWS -Konsole zu Lambda gehen und nach Ihren neuen Funktionen suchen. Sie können sie direkt dort testen. Der erste Lauf wird langsamer, aber sobald er vorgeheizt ist, wird die Geschwindigkeit schneller sein.

Hier sind einige Anweisungen, dass die Lambda -Funktion in einem privaten Subnetz (in einem VPC) nicht auf das Internet zugreifen kann, weshalb AWS ein NAT -Gateway für Sie erstellt. Die Verwendung eines NAT-Gateways ist jedoch teuer und egal wie viel Sie es verwenden, es wird etwa 1 bis 3 US-Dollar pro Tag entstehen.

Wir können versuchen, die Lambda -Funktion in ein öffentliches Subnetz zu bringen, aber leider habe ich sie nicht versucht. Es kann eine Möglichkeit geben, dieses Problem zu umgehen, um einen VPC -Endpunkt zu erstellen.

Wir benötigen einen VPC für EFS, damit wir die Modelle zwischenspeichern können, damit wir sie nicht jedes Mal herunterladen müssen, wenn wir die Funktionen aufrufen. Ja, AWS Lambda hat eine sehr großzügige freie Stufe, aber wir müssen uns der anderen Kosten bewusst sein, wenn wir andere Ressourcen hinzufügen.

Wenn Sie fertig sind, empfehle ich Ihnen, diese Ressourcen zu zerstören, damit Sie das NAT -Gateway nicht rund um die Uhr bezahlen müssen.

<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Zusätzliche Anweisungen für die Verwendung dieser Methode können Sie Speicher und CPU nicht separat angeben. Wenn Sie mehr CPU benötigen, müssen Sie den Speicher erhöhen, was teuer werden kann.

Bei Verwendung kleinerer Modelle mit 125 m oder weniger ignoriere ich AWS Lambda nicht vollständig. Sie können Lambda -Funktionen mit weniger Speicher konfigurieren.

für modal

bereitstellen

Modal wird erstellt, um ML -Modelle bereitzustellen, wodurch dieser Prozess noch einfacher wird. Wir verwenden das Skript, das wir hier verwenden, um dasselbe Modell wie zuvor bereitzustellen, und Sie können es hier finden.

Beim Bereitstellen können wir Speicher, CPU und GPU direkt in der Funktion angeben. Wir können auch darum bitten, dass ein Endpunkt für uns im Skript erstellt wird, wodurch das Testen unseres Modells mit dem Endpunkt einfacher wird.

Aber nur weil wir eine andere Plattform verwenden, heißt das nicht, dass es uns nicht auch etwas Geld kostet.

Denken Sie an die Berechnungen, die wir zuvor gemacht haben.

Um loszulegen, benötigen Sie ein modales Konto und installiert Python3. Nach dem Erstellen eines Kontos können wir ein Terminal öffnen und einen neuen Ordner erstellen.

<code>cd zero-administration-inference-with-aws-lambda-for-hugging-face</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dann können wir eine virtuelle Umgebung einrichten.

<code>.code</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden Sie PIP, um das Modalpaket zu installieren.

<code># inference/summarization.py

import json
from transformers import pipeline

extractor = pipeline("text2text-generation", model="ilsilfverskiold/tech-keywords-extractor")

def handler(event, context):
    # texts should be an array
    texts = event['texts']
    response = {
        "statusCode": 200,
        "body": extractor(texts)[0]
    }
    return response</code>
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden von modal , alle Ressourcen, Umgebungseinstellungen und Ausführung werden auf ihrer Plattform durchgeführt, nicht vor Ort. Daher haben wir nicht die gleichen Probleme wie bei der Bereitstellung für AWS.

Um sich zu authentifizieren, führen Sie diesen Befehl aus.

<code>python3 -m venv venv
source venv/bin/activate</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie jetzt keine Dateien im Ordner haben, erstellen Sie einen.

<code>pip install -r requirements.txt</code>
Nach dem Login kopieren
Nach dem Login kopieren

Sie können einfach den folgenden Code einfügen, aber wir werden ihn auch vorstellen.

<code>{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:*",
                "ssm:*",
                "iam:*",
                "lambda:*",
                "s3:*",
                "ec2:*",
                "logs:*",
                "cloudformation:*",
                "elasticfilesystem:*"
            ],
            "Resource": "*"
        }
    ]
}</code>
Nach dem Login kopieren

Denken Sie daran, ich verwende dasselbe Modell, Sie können ein anderes Modell verwenden.

Um bereitzustellen, führen Sie einfach den folgenden Befehl aus.

<code>cdk bootstrap</code>
Nach dem Login kopieren

Dieses Skript richtet eine Anwendung mit dem Namen "Text-Generation" in modal ein und erstellt ein Docker-Bild mit den erforderlichen Abhängigkeiten (Huggingface-Hub, Transformers und Taschenlampe).

Es installiert diese Abhängigkeiten direkt in der modalen Umgebung, sodass Sie sich nicht lokal mit ihnen befassen müssen. Die App fordert 1 CPU Core und 3 GB Speicher an, was die Einstellung ist, die ich während meines Tests verwendet habe.

Modellcache wird von @modal.build () verarbeitet, wodurch Snapshot_download () verwendet wird, um das Modell aus dem Umarmen zu extrahieren und es in /cache zu speichern. Wir müssen dies tun, damit es beim kalten Stiefel schneller bezeichnet werden kann.

@modal.enter () Der Dekorateur wird beim ersten Anruf in die Textextraction -Klasse ausgeführt, wobei der Tokenizer und das Modell aus der zwischengespeicherten Datei in den Speicher geladen werden.

Nach dem Laden des Modells können Sie die Methode extract_text () aufrufen, um die Inferenz auszuführen. @modal.web_endpoint Einrichtet einen serverlosen API -Endpunkt, mit dem Sie extrahe_text () über Postanforderung klicken und Textextraktionsergebnisse abrufen können.

Der gesamte Prozess wird in der modalen Umgebung ausgeführt, sodass wir uns keine Sorgen machen müssen, ob Ihr Computer über genügend Ressourcen verfügt. Dies ist natürlich wichtiger für größere Modelle.

Nach Abschluss der Bereitstellung sehen Sie etwas Ähnliches im Terminal, das Ihre Endpunkte enthält.

Economics of Hosting Open Source LLMs Sie können diese Anwendung im Modal Dashboard anzeigen.

Um diese Funktion auszuführen, können Sie die URL aufrufen, die Sie in das Terminal erhalten.

<code>git clone https://github.com/aws-samples/zero-administration-inference-with-aws-lambda-for-hugging-face.git</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies fügt keine Authentifizierung hinzu. Siehe die Dokumentation von Modal, um diese Funktion hinzuzufügen.

Einige Anweisungen

Wie Sie jetzt gelernt haben, müssen Sie mit jeder Bereitstellungsauswahl das Modell zuerst zum Erstellen von Zeiten zwischenspeichern, um eine schnellere Kälte nach der Skalierung zu gewährleisten. Wenn Sie versuchen möchten, auf einer anderen Plattform bereitzustellen, können Sie alle Starter -Skripte hier überprüfen.

Die Verwendung einer neuen Plattform ist nicht unbedingt schlecht und wird viel schneller sein. Manchmal hat Ihre Organisation jedoch strenge Einschränkungen auf den Plattformen, mit denen Sie verwenden können.

einfachere Optionen zu verwenden und können auch etwas höher sein, aber die, die ich zeige, unterscheiden sich nicht wesentlich von den Kosten für die direkte Verwendung von EC2.

Wenn Sie dies gesehen haben, hoffe ich, dass Sie die Forschungsergebnisse verstehen, die ich hier durchgeführt habe, und es wird Ihnen helfen, einen Lieferanten auszuwählen.

Das obige ist der detaillierte Inhalt vonWirtschaftlichkeit von Open Source LLMs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage