Digital Publisher는 지속적으로 미디어 워크 플로우를 간소화하고 자동화하여 가능한 한 빠르게 새로운 컨텐츠를 생성하고 게시 할 수있는 방법을 찾고 있습니다.
텍스트의 본질을 캡처하기 위해 이미지를 추가하면 읽기 경험이 향상 될 수 있습니다. 기계 학습 기술은 그러한 이미지를 발견하는 데 도움이 될 수 있습니다. "눈에 띄는 이미지는 청중의 관심을 끌고 이야기에 참여하는 가장 효과적인 방법 중 하나이지만 이해가 필요합니다."
이 AWS 샘플 프로젝트에서는 Amazon Titan Foundation 모델을 사용하여 기사를 빠르게 이해하고 동반 할 최상의 이미지를 찾는 방법을 볼 수 있습니다. 이번에는 이미지에서 직접 임베딩을 생성합니다.
시맨틱 검색의 핵심 개념은 임베딩입니다. 임베딩은 벡터 형태의 일부 입력 (이미지, 텍스트 또는 둘 다)의 수치 적 표현입니다. 많은 벡터가 있으면 벡터 사이의 거리를 측정 할 수 있으며 거리가 가까운 벡터는 의미 적으로 유사하거나 관련이 있습니다.
Amazon Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Meta, Meta, Stability AI 및 Amazon을 포함한 AI 회사를 포함한 주요 AI 회사에서 고성능 재단 모델 (FMS)을 선택하는 완전한 관리 서비스로, AI의 AI 애플리케이션을 구축하고 개인 정보 및 보안을 유지하는 동안 개발을 단순화하는 데 도움이되는 광범위한 기능 세트입니다.
Amazon Titan은 최근 Titan Multimodal Embeddings 컬렉션에 새로운 임베딩 모델을 추가했습니다. 이 새로운 모델은 멀티 모달 검색, 권장 시스템 및 기타 다운 스트림 애플리케이션에 사용될 수 있습니다.
멀티 모달 모델은 텍스트, 이미지, 비디오 및 오디오와 같은 여러 양식에서 데이터를 이해하고 분석 할 수 있습니다. 이 최신 Amazon Titan 모델은 텍스트, 이미지 또는 둘 다를 수용 할 수 있습니다. 즉, 동일한 모델을 사용하여 이미지와 텍스트의 임베딩을 생성하고 그 임베딩을 사용하여 두 가지가 얼마나 유사한 지 계산합니다.


이러한 다음 단계는 시맨틱 이미지와 유명인 검색을 가능하게하는 일련의 행동을 통해 이야기합니다.
이 예에서는 Amazon Rekognition, Amazon Comprehend, Amazon Bedrock 및 OpenSearch Service를 사용하여 이미지에서 메타 데이터를 추출한 다음 ML 기술을 사용하여 유명인 및 시맨틱 검색을 사용하여 자동으로 발견하는 방법을 보았습니다. 이는 출판 업계에서 특히 중요하며, 속도는 신속하고 여러 플랫폼에 빠른 컨텐츠를 얻는 데 중요합니다.
다음 단계로 AWS 계정에 솔루션을 배포하고 시맨틱 검색이 어떻게 작동하는지 테스트하기 위해 자신의 이미지 중 일부를 업로드하십시오.
샘 클리
솔루션은 배포를 위해 SAM CLI를 사용합니다. 최신 버전의 Sam Cli를 사용해야합니다.
도커
이 솔루션은 SAM CLI 옵션을 사용하여 로컬 종속성이 필요하지 않도록 컨테이너 내부를 제작합니다. 이를 위해 Docker가 필요합니다.
마디
이 솔루션의 프론트 엔드는 노드를 사용하여 로컬로 실행할 수있는 React 웹 응용 프로그램입니다.
NPM
웹 애플리케이션을 로컬로 실행하는 데 필요한 패키지를 설치하거나 원격 배포를 위해 구축하려면 NPM이 필요합니다.
기본 모델 액세스
Amazon Bedrock의 모델과 상호 작용하려는 경우 Amazon Bedrock을 사용할 수있는 지역 중 하나의 기본 모델에 대한 액세스를 요청해야합니다. 모델의 최종 사용자 라이센스 계약 또는 EULA를 읽고 수락하십시오.
| 모델 | 최대 토큰 입력 | 삽입 치수 | 1K 입력 토큰의 가격 | 1K 출력 토큰의 가격 |
|---|---|---|---|---|
| 아마존 멀티 모달 임베딩 | 128 | 1,024 (기본값), 384, 256 | 기반암 가격 | N/A |
| 타이탄 텍스트 - Express | 8k | N/A | 기반암 가격 |
위의 두 모델에 대한 액세스를 요청해야합니다.
워크 플로에서 텍스트를 요약하면 Titan Text - Express 모델에서 최대 출력 토큰을 지정할 수 있으므로 128 개 미만의 토큰을 포함 모델로 전달할 수 있습니다.
멀티 모달 임베딩 모델은 또한 최대 이미지 치수 크기가 2048x2048입니다. 이는 이미지 임베딩 람다 함수의 일부로 처리합니다.
메모:
이 배포는 현재 US-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-articlesCloud9를 사용하는 경우 인스턴스의 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 >(토큰이 만료되면 배포를 완료하고 CloudFormation 내에서 진행 상황을 확인한 다음 아래 배포 스크립트를 다시 실행할 수 있습니다. Amazon Cloudfront Resource가 이미 존재하므로 배포는 빠르게 완료됩니다).
솔루션의 배포는 다음 명령으로 달성됩니다.
npm install && npm run deploy 이 명령은 sam build , sam deploy 및 기타 몇 가지와 같은 일련의 스크립트를 실행하여 올바른 변수로 프론트 엔드 환경을 설정합니다.

인증은 Amazon Cognito가 관리합니다. 로그인하려면 새 사용자를 만들어야합니다.
CloudFormation 출력에서 사용자 풀 ID를 찾아 해당 사용자 풀을 선택하고 로그인 할 새 사용자를 만듭니다.

완료되면 CLI 출력은 Cloudfront URL이 웹 응용 프로그램 (예 : https://d123abc.cloudfront.net/)의 값을 표시합니다.
웹 앱을 사용하면 사용자가 이미지를 S3에 업로드하고 OpenSearch에서 인덱싱 할 수있을뿐만 아니라 OpenSearch에 쿼리를 발행하여 기사 내용과 가장 의미 적으로 관련된 상위 10 개의 이미지를 반환 할 수 있습니다.
향후 청구가 발생하지 않도록 리소스를 삭제하십시오.
sam delete 실행하거나 CloudFormation으로 이동하여 위에서 언급 한 배포 스크립트를 통해 배치 한 스택을 선택하고 스택을 삭제하십시오. 
자세한 내용은 기여를 참조하십시오.
이 라이브러리는 MIT-0 라이센스에 따라 라이센스가 부여됩니다. 라이센스 파일을 참조하십시오.