數字出版商一直在尋找方法來簡化和自動化其媒體工作流程以盡快生成和發布新內容,但沒有預言質量。
添加圖像以捕獲文本的本質可以改善閱讀體驗。機器學習技術可以幫助您發現此類圖像。 “驚人的形像是吸引觀眾注意並引起與故事的互動的最有效方法之一 - 但這也必須是有道理的。”
在此AWS樣本項目中,您可以看到如何使用Amazon Titan Foundation Models快速理解一篇文章並找到最佳的圖像。這次,您直接從圖像中生成嵌入。
語義搜索的關鍵概念是嵌入。嵌入是某些輸入(圖像,文本或兩者兼有)的數值表示。當您有許多向量時,您可以測量它們之間的距離,而距離接近的向量在語義上相似或相關。
亞馬遜BedRock是一項全面管理的服務,可從領先的AI公司,包括AI21實驗室,人類,眾多,Meta,Meta,穩定性AI和Amazon,具有單個API以及一套廣泛的功能,可幫助您簡化生成的AI應用程序,同時維護隱私和安全性的同時,從而提供高效的AI公司,包括AI21實驗室,擬人化,cohere,meta,穩定性AI和亞馬遜的高性能基礎模型(FMS),可供選擇。
亞馬遜泰坦(Amazon Titan)最近在其係列泰坦多模式嵌入式中添加了一個新的嵌入模型。該新模型可用於多模式搜索,推薦系統和其他下游應用程序。
多模型模型可以理解和分析多種模式的數據,例如文本,圖像,視頻和音頻。最新的亞馬遜泰坦模型可以接受文本,圖像或兩者兼而有之。這意味著您使用相同的模型生成圖像和文本的嵌入,並使用這些嵌入來計算兩者的相似程度。


以下步驟通過一系列動作,可以實現語義圖像和名人搜索。
在此示例中,您看到瞭如何使用Amazon Rekognition,Amazon Claceers,Amazon Bedrock和OpenSearch Service從圖像中提取元數據,然後使用ML技術使用名人和語義搜索自動發現它們。這在出版行業中尤為重要,在出版行業中,速度在快速獲取新鮮內容和多個平台方面至關重要。
作為下一步,將解決方案部署在您的AWS帳戶中,並上傳您自己的一些圖像,以測試語義搜索如何適合您。
Sam Cli
該解決方案使用SAM CLI進行部署。確保使用最新版本的SAM CLI
Docker
該解決方案使用SAM CLI選項在容器內構建,以避免對本地依賴性的需求。您將需要Docker。
節點
該解決方案的前端是一個React Web應用程序,可以使用節點在本地運行
NPM
在本地運行Web應用程序或構建遠程部署所需的軟件包的安裝需要NPM。
基本模型訪問
如果您想與亞馬遜基地岩的型號進行互動,則需要在可用的亞馬遜基岩的一個區域中要求訪問基本型號。確保閱讀和接受模型的最終用戶許可協議或EULA。
| 模型 | 最大令牌輸入 | 嵌入維度 | 1K輸入令牌的價格 | 1K產出令牌的價格 |
|---|---|---|---|---|
| 亞馬遜多模式嵌入 | 128 | 1,024(默認),384,256 | 基岩價格 | N/A。 |
| 泰坦文字 - 表達 | 8k | N/A。 | 基岩價格 |
您需要請求訪問上述兩個模型。
當我們總結工作流程中的文本時,我們可以在Titan Text -Express模型上指定最大輸出令牌,這確保我們將少於128個令牌傳遞給嵌入模型。
多模式嵌入模型還具有2048x2048的最大圖像尺寸大小,我們作為圖像嵌入lambda函數的一部分進行處理。
筆記:
目前,該部署用於部署到美國 - EAST-1區域。請檢查Amazon Bedrock區域可用性,並更新Samconfig.toml文件以反映您所需的區域。
我們建議使用AWS Cloud9部署。如果您想使用cloud9部署解決方案,則需要以下內容,然後再繼續進行以下操作:
m5.large作為實例類型。Amazon Linux 2作為平台。您可以從命令行/終端運行這些命令,也可以使用AWS Cloud9。
git clone https://github.com/aws-samples/semantic-image-search-for-articles.git cd semantic-image-search-for-articles如果您使用Cloud9,請將實例的EBS量至少增加到50GB。為此,請從Cloud9終端運行以下命令:
bash ./scripts/cloud9-resize.sh 50
有關環境大小的更多詳細信息,請參見文檔。
查看此文件:samconfig.toml
在這裡,您可以命名堆棧,然後選擇要部署的區域。
region = "us-east-1"檢查您選擇的區域中是否可以使用AWS服務。
由於部署將部署Amazon Cloudfront,因此大約需要20分鐘。
Cloud9生成STS令牌以進行部署,但是,這些憑據僅持續15分鐘,因此令牌將在部署完成之前到期,因此您將無法直接從Cloud9中看到輸出。
如何使用短期憑據進行身份驗證您可以導出訪問密鑰令牌,確保它們持續至少30分鐘或1800秒:
export AWS_ACCESS_KEY_ID= < PASTE_ACCESS_KEY >
export AWS_SECRET_ACCESS_KEY= < PASTE_SECRET_ACCESS_KEY >
export AWS_SESSION_TOKEN= < PASTE_SESSION_TOKEN >(如果令牌確實過期,則可以將部署放置完成,檢查雲形式中的進度,然後在下面重新運行部署腳本 - 由於Amazon CloudFront資源將已經存在,部署將快速完成)
通過以下命令實現解決方案的部署:
npm install && npm run deploy該命令將運行一系列腳本,例如sam build , sam deploy和其他一些腳本,以使用正確的變量來設置前端環境。

該身份由Amazon Cognito管理。您將需要創建一個新用戶才能登錄。
您可以從CloudFormation輸出中找到USERPOOL ID,然後選擇該用戶池並在那裡創建一個新用戶以登錄。

完成後,CLI輸出將顯示CloudFront URL能夠查看Web應用程序的值,例如https://d123abc.cloudfront.net/-您也可以在CloudFormation Outputs中看到這一點。
Web應用程序允許用戶將圖像上傳到S3,並通過OpenSearch進行索引,並發出查詢OpenSearch,以返回與文章內容最相關的前10個圖像。
為避免產生未來的費用,請刪除資源。
sam delete ,或轉到CloudFormation,選擇您通過上述部署腳本部署的堆棧,然後刪除堆棧。 
有關更多信息,請參見貢獻。
該圖書館已獲得MIT-0許可證的許可。請參閱許可證文件。