Digitale Publisher suchen ständig nach Möglichkeiten, ihre Medienworkflows zu optimieren und zu automatisieren, um neue Inhalte so schnell wie möglich zu generieren und zu veröffentlichen, aber ohne die Qualität.
Das Hinzufügen von Bildern, um die Essenz des Textes zu erfassen, kann das Leseerlebnis verbessern. Techniken für maschinelles Lernen können Ihnen helfen, solche Bilder zu entdecken. "Ein auffälliges Bild ist eine der effektivsten Möglichkeiten, um die Aufmerksamkeit des Publikums zu erregen und sich mit Ihrer Geschichte zu beschäftigen - aber es muss auch Sinn machen."
In diesem AWS-Samples-Projekt sehen Sie, wie Sie mithilfe von Amazon Titan Foundation-Modellen einen Artikel schnell verstehen und die besten Bilder finden können, um ihn zu begleiten. Dieses Mal generieren Sie die Einbettung direkt aus dem Bild.
Ein Schlüsselkonzept bei der semantischen Suche sind Einbettungen. Eine Einbettung ist eine numerische Darstellung einer Eingabe - ein Bild, Text oder beide - in Form eines Vektors. Wenn Sie viele Vektoren haben, können Sie den Abstand zwischen ihnen messen, und Vektoren, die sich in der Nähe befinden, sind semantisch ähnlich oder verwandt.
Amazon Bedrock ist ein vollständig verwalteter Service, der eine Auswahl an leistungsstarken Fundamentmodellen (FMS) von führenden KI-Unternehmen bietet, darunter AI21 Labs, Anthropic, Cohere, Meta, Stability AI und Amazon mit einer einzelnen API sowie eine breite Anzahl von Funktionen, um generative AI-Anwendungen zu erstellen, die Entwicklung der Entwicklung und die Sicherheit zu vereinfachen und die Entwicklung und Sicherheit zu erhalten.
Amazon Titan hat kürzlich ein neues Einbettungsmodell zu seiner Sammlung, Titan Multimodal Emetten, hinzugefügt. Dieses neue Modell kann für multimodale Suche, Empfehlungssysteme und andere nachgeschaltete Anwendungen verwendet werden.
Multimodale Modelle können Daten in mehreren Modalitäten wie Text, Bild, Video und Audio verstehen und analysieren. Dieses neueste Amazon Titan -Modell kann Text, Bilder oder beides akzeptieren. Dies bedeutet, dass Sie dasselbe Modell verwenden, um Einbettungen von Bildern und Text und Text zu generieren und diese Einbettungen zu verwenden, um zu berechnen, wie ähnlich die beiden sind.


In diesen folgenden Schritten wird die Folge von Aktionen ermöglichen, die semantische Bild- und Prominentensuche ermöglichen.
In diesem Beispiel haben Sie gesehen, wie Sie Amazon Rekognition, Amazon Crecess, Amazon Bedrock und OpenSearch -Service verwenden, um Metadaten aus Ihren Bildern zu extrahieren und dann ML -Techniken zu verwenden, um sie automatisch mit Prominenten und semantischen Suche zu entdecken. Dies ist besonders wichtig in der Verlagsbranche, in der Speed wichtig ist, um schnell frische Inhalte und mehrere Plattformen herauszuholen.
Stellen Sie als nächster Schritt die Lösung in Ihrem AWS -Konto ein und laden Sie einige Ihrer eigenen Bilder hoch, um zu testen, wie semantische Suche für Sie funktionieren kann.
Sam Cli
Die Lösung verwendet die SAM CLI für die Bereitstellung. Verwenden Sie sicher, dass Sie die neueste Version von Sam Cli verwenden
Docker
Die Lösung verwendet die SAM CLI -Option, um in einem Container zu erstellen, um die Notwendigkeit lokaler Abhängigkeiten zu vermeiden. Dafür benötigen Sie Docker.
Knoten
Das vordere Ende für diese Lösung ist eine React -Webanwendung, die lokal mit dem Knoten ausgeführt werden kann
NPM
Die Installation der Pakete, die zum Ausführen der Webanwendung vor Ort erforderlich sind oder für die Remote -Bereitstellung erstellt werden, erfordern NPM.
Basismodelle Zugriff
Wenn Sie mit Modellen von Amazon Bedrock interagieren möchten, müssen Sie in einer der Regionen, in denen Amazon -Grundgestein verfügbar ist, zu Zugriff auf die Basismodelle anfordern. Stellen Sie sicher, dass Sie die Endbenutzer-Lizenzvereinbarungen oder EULA-Modelle lesen und akzeptieren.
| Modell | Max Token -Eingabe | Einbettungsdimension | Preis für 1k Input -Token | Preis für 1k Output -Token |
|---|---|---|---|---|
| Amazon multimodale Einbettungen | 128 | 1.024 (Standard), 384, 256 | Grundgesteinpreise | n / A |
| Titan Text - Express | 8k | n / A | Grundgesteinpreise |
Sie müssen den Zugriff auf beide oben genannten Modelle anfordern.
Wenn wir den Text in unserem Workflow zusammenfassen, können wir die Max -Ausgangs -Token im Titan -Text - Express -Modell - angeben, und dies stellt sicher, dass wir in weniger als 128 Token an das Einbettungsmodell übergeben.
Das multimodale Einbettungsmodell hat auch eine maximale Bilddimensionsgröße von 2048x2048, die wir als Teil des Bildbetting -Lambda -Funktion verarbeiten.
Notiz:
Diese Bereitstellung ist derzeit so eingerichtet, dass sie in der Region US-East-1 bereitgestellt werden. Bitte überprüfen Sie die Verfügbarkeit von Amazon Bedrock Region und aktualisieren Sie die Datei samconfig.toml, um Ihre gewünschte Region widerzuspiegeln.
Wir empfehlen die Bereitstellung bei AWS Cloud9. Wenn Sie Cloud9 verwenden möchten, um die Lösung bereitzustellen, benötigen Sie vor dem Fortschritt Folgendes:
m5.large als Instanztyp.Amazon Linux 2 als Plattform.Sie können diese Befehle aus Ihrer Befehlszeile/dem Terminal ausführen oder AWS Cloud9 verwenden.
git clone https://github.com/aws-samples/semantic-image-search-for-articles.git cd semantic-image-search-for-articlesWenn Sie Cloud9 verwenden, erhöhen Sie das EBS -Volumen der Instanz auf mindestens 50 GB. Führen Sie dazu den folgenden Befehl vom Cloud9 -Terminal aus:
bash ./scripts/cloud9-resize.sh 50
Weitere Informationen zur Umweltgröße finden Sie in der Dokumentation.
Überprüfen Sie diese Datei: samconfig.toml
Hier können Sie Ihren Stapel benennen und die Region auswählen, in der Sie bereitstellen möchten.
region = "us-east-1"Überprüfen Sie, ob die AWS -Dienste alle in der Region verfügbar sind, die Sie auswählen.
Da die Bereitstellung Amazon Cloudfront bereitstellt, kann dies ungefähr 20 Minuten dauern.
Cloud9 generiert STS -Token, um die Bereitstellung durchzuführen. Diese Anmeldeinformationen dauern jedoch nur 15 Minuten. Daher läuft das Token ab, bevor die Bereitstellung abgeschlossen ist. Daher können Sie die Ausgänge nicht direkt von Cloud9 aus sehen.
Wie man sich mit kurzfristigen Anmeldeinformationen authentifiziert
export AWS_ACCESS_KEY_ID= < PASTE_ACCESS_KEY >
export AWS_SECRET_ACCESS_KEY= < PASTE_SECRET_ACCESS_KEY >
export AWS_SESSION_TOKEN= < PASTE_SESSION_TOKEN >(Wenn die Token ablaufen, können Sie die Bereitstellung abschließen, die Fortschritte in der CloudFormation überprüfen und dann das unten stehende Bereitstellungsskript erneut ausführen - wie die Amazon Cloudfront -Ressource bereits vorhanden ist, wird die Bereitstellung schnell abgeschlossen.)
Die Bereitstellung der Lösung wird mit dem folgenden Befehl erreicht:
npm install && npm run deploy In diesem Befehl werden eine Reihe von Skripten wie sam build , sam deploy und einige andere ausgeführt, um die Front -End -Umgebung mit den richtigen Variablen einzurichten.

Die Authennierung wird von Amazon Cognito verwaltet. Sie müssen einen neuen Benutzer erstellen, um sich anzumelden.
Sie finden die UserPool -ID aus der CloudFormation -Ausgabe und wählen Sie diesen UserPool aus und erstellen dort einen neuen Benutzer, mit dem Sie sich anmelden können.

Sobald die CLI -Ausgabe abgeschlossen ist, wird ein Wert für die Cloudfront -URL angezeigt, um die Webanwendung anzusehen, z. B. https://d123abc.cloudfront.net/ - Sie können dies auch in den CloudFormation -Ausgängen sehen.
Mit der Web -App kann der Benutzer Bilder auf S3 hochladen und von OpenSearch indexiert und an OpenSearch -Abfragen ausgestellt werden, um die Top -10 -Bilder zurückzugeben, die am semantischsten mit dem Artikelinhalt zusammenhängen.
Um zukünftige Gebühren zu vermeiden, löschen Sie die Ressourcen.
sam delete aus dem Terminal aus oder wechseln Sie zu CloudFormation, wählen Sie den Stapel, den Sie über das oben erwähnte Bereitstellungsskript bereitgestellt haben, und löschen Sie den Stapel. 
Weitere Informationen finden Sie unter Beitrag.
Diese Bibliothek ist im Rahmen der MIT-0-Lizenz lizenziert. Siehe die Lizenzdatei.