제퍼넷 로고

Amazon Bedrock 및 Amazon SageMaker에서 호스팅되는 다중 모드 기반 모델을 사용하여 슬라이드 데크와 대화 – 1부 | 아마존 웹 서비스

시간

생성 AI의 출현으로 LLM(대형 언어 모델) Claude 2 및 Llama 2와 같은 오늘날의 기반 모델(FM)은 질문 답변, 요약, 텍스트 데이터에 대한 콘텐츠 생성과 같은 다양한 생성 작업을 수행할 수 있습니다. 그러나 실제 데이터는 텍스트, 이미지, 비디오, 오디오 등 다양한 형식으로 존재합니다. 예를 들어 PowerPoint 슬라이드 데크를 살펴보겠습니다. 여기에는 텍스트 형식의 정보가 포함될 수도 있고 그래프, 표, 그림에 포함된 정보도 포함될 수 있습니다.

이 게시물에서는 다음과 같은 다중 모드 FM을 사용하는 솔루션을 제시합니다. Amazon Titan 다중 모드 임베딩 모델과 LLaVA 1.5 그리고 다음을 포함한 AWS 서비스 아마존 기반암아마존 세이지 메이커 다중 모드 데이터에 대해 유사한 생성 작업을 수행합니다.

솔루션 개요

이 솔루션은 슬라이드 데크의 텍스트 및 시각적 요소에 포함된 정보를 사용하여 질문에 대답하기 위한 구현을 제공합니다. 이 디자인은 RAG(Retrieval Augmented Generation) 개념을 기반으로 합니다. 전통적으로 RAG는 LLM에서 처리할 수 있는 텍스트 데이터와 연결되어 왔습니다. 이 게시물에서는 이미지도 포함하도록 RAG를 확장합니다. 이는 텍스트와 함께 표, 그래프와 같은 시각적 요소에서 상황에 맞는 관련 콘텐츠를 추출하는 강력한 검색 기능을 제공합니다.

이미지가 포함된 RAG 솔루션을 디자인하는 방법에는 여러 가지가 있습니다. 여기서는 한 가지 접근 방식을 제시했으며 3부로 구성된 이 시리즈의 두 번째 게시물에서는 대체 접근 방식을 계속해서 다루겠습니다.

이 솔루션에는 다음 구성 요소가 포함됩니다.

  • Amazon Titan 다중 모드 임베딩 모델 – 이 FM은 이 게시물에 사용된 슬라이드 데크의 콘텐츠에 대한 임베딩을 생성하는 데 사용됩니다. 다중 모드 모델인 이 Titan 모델은 텍스트, 이미지 또는 조합을 입력으로 처리하고 임베딩을 생성할 수 있습니다. Titan 다중 모드 임베딩 모델은 1,024차원의 벡터(임베딩)를 생성하며 Amazon Bedrock을 통해 액세스됩니다.
  • 대형 언어 및 시각 보조원(LLaVA) – LLaVA는 시각적 및 언어 이해를 위한 오픈 소스 다중 모드 모델이며 그래프 및 표와 같은 시각적 요소를 포함하여 슬라이드의 데이터를 해석하는 데 사용됩니다. 우리는 7억 개의 매개변수 버전을 사용합니다. LLaVA 1.5-7b 이 솔루션에서는.
  • 아마존 세이지 메이커 – LLaVA 모델은 SageMaker 호스팅 서비스를 사용하여 SageMaker 엔드포인트에 배포되고, 결과 엔드포인트를 사용하여 LLaVA 모델에 대한 추론을 실행합니다. 또한 SageMaker 노트북을 사용하여 이 솔루션을 처음부터 끝까지 조율하고 시연합니다.
  • Amazon OpenSearch 서버리스 – OpenSearch Serverless는 다음을 위한 온디맨드 서버리스 구성입니다. 아마존 오픈서치 서비스. 우리는 Titan Multimodal Embeddings 모델에 의해 생성된 임베딩을 저장하기 위한 벡터 데이터베이스로 OpenSearch Serverless를 사용합니다. OpenSearch Serverless 컬렉션에서 생성된 인덱스는 RAG 솔루션의 벡터 저장소 역할을 합니다.
  • Amazon OpenSearch 수집(OSI) – OSI는 OpenSearch Service 도메인 및 OpenSearch Serverless 컬렉션에 데이터를 전달하는 완전 관리형 서버리스 데이터 수집기입니다. 이 게시물에서는 OSI 파이프라인을 사용하여 OpenSearch Serverless 벡터 저장소에 데이터를 전달합니다.

솔루션 아키텍처

솔루션 디자인은 수집과 사용자 상호 작용이라는 두 부분으로 구성됩니다. 수집 중에 각 슬라이드를 이미지로 변환하여 입력 슬라이드 데크를 처리하고 이러한 이미지에 대한 임베딩을 생성한 다음 벡터 데이터 저장소를 채웁니다. 이러한 단계는 사용자 상호 작용 단계 전에 완료됩니다.

사용자 상호 작용 단계에서는 사용자의 질문이 임베딩으로 변환되고 벡터 데이터베이스에서 유사성 검색이 실행되어 잠재적으로 사용자 질문에 대한 답변이 포함될 수 있는 슬라이드를 찾습니다. 그런 다음 이 슬라이드(이미지 파일 형식)를 LLaVA 모델에 제공하고 사용자 질문을 쿼리에 대한 답변을 생성하는 프롬프트로 제공합니다. 이 게시물의 모든 코드는 다음에서 사용할 수 있습니다. GitHub의 레포.

다음 다이어그램은 수집 아키텍처를 보여줍니다.

수집 아키텍처 다이어그램

워크플로 단계는 다음과 같습니다.

  1. 슬라이드는 JPG 형식의 이미지 파일(슬라이드당 하나)로 변환되고 Titan 다중 모드 임베딩 모델에 전달되어 임베딩을 생성합니다. 이 게시물에서는 다음과 같은 슬라이드 자료를 사용합니다. AWS Trainium 및 AWS Inferentia를 사용하여 Stable Diffusion 교육 및 배포 2023년 31월 토론토에서 열린 AWS Summit에서 솔루션을 시연했습니다. 샘플 데크에는 31개의 슬라이드가 있으므로 각각 1,024개의 차원을 가진 XNUMX개의 벡터 임베딩 세트를 생성합니다. 생성된 벡터 임베딩에 추가 메타데이터 필드를 추가하고 JSON 파일을 생성합니다. 이러한 추가 메타데이터 필드는 OpenSearch의 강력한 검색 기능을 사용하여 풍부한 검색 쿼리를 수행하는 데 사용될 수 있습니다.
  2. 생성된 임베딩은 다음 위치에 업로드되는 단일 JSON 파일에 함께 저장됩니다. 아마존 단순 스토리지 서비스 (아마존 S3).
  3. 통하다 Amazon S3 이벤트 알림, 이벤트가 아마존 단순 대기열 서비스 (Amazon SQS) 대기열.
  4. SQS 대기열의 이 이벤트는 OSI 파이프라인을 실행하는 트리거 역할을 하며, OSI 파이프라인은 데이터(JSON 파일)를 문서로 OpenSearch Serverless 인덱스에 수집합니다. OpenSearch Serverless 인덱스는 이 파이프라인의 싱크로 구성되며 OpenSearch Serverless 컬렉션의 일부로 생성됩니다.

다음 다이어그램은 사용자 상호 작용 아키텍처를 보여줍니다.

사용자 상호 작용 아키텍처

워크플로 단계는 다음과 같습니다.

  1. 사용자가 수집된 슬라이드 데크와 관련된 질문을 제출합니다.
  2. 사용자 입력은 Amazon Bedrock을 통해 액세스되는 Titan Multimodal Embeddings 모델을 사용하여 임베딩으로 변환됩니다. OpenSearch 벡터 검색은 이러한 임베딩을 사용하여 수행됩니다. 사용자 쿼리와 일치하는 가장 관련성이 높은 임베딩을 검색하기 위해 k-최근접 이웃(k=1) 검색을 수행합니다. k=1로 설정하면 사용자 질문과 가장 관련성이 높은 슬라이드를 검색합니다.
  3. OpenSearch Serverless의 응답 메타데이터에는 가장 관련성이 높은 슬라이드에 해당하는 이미지의 경로가 포함되어 있습니다.
  4. 사용자 질문과 이미지 경로를 결합하여 프롬프트가 생성되고 SageMaker에서 호스팅되는 LLaVA에 제공됩니다. LLaVA 모델은 이미지의 데이터를 검토하여 사용자 질문을 이해하고 답변할 수 있습니다.
  5. 이 추론의 결과는 사용자에게 반환됩니다.

이러한 단계는 다음 섹션에서 자세히 설명합니다. 참조 결과 스크린샷 및 출력 세부정보 섹션.

사전 조건

이 게시물에서 제공하는 솔루션을 구현하려면 다음이 있어야 합니다. AWS 계정 FM, Amazon Bedrock, SageMaker 및 OpenSearch Service에 대한 지식.

이 솔루션은 Titan 다중 모드 임베딩 모델을 사용합니다. Amazon Bedrock에서 사용할 수 있도록 이 모델이 활성화되어 있는지 확인하세요. Amazon Bedrock 콘솔에서 다음을 선택합니다. 모델 액세스 탐색 창에서. Titan Multimodal Embeddings가 활성화된 경우 액세스 상태는 다음과 같이 표시됩니다. 액세스 권한 부여.

Amazon Bedrock에서 모델 액세스 관리

모델을 사용할 수 없는 경우 다음을 선택하여 모델에 대한 액세스를 활성화합니다. 모델 액세스 관리, Titan 다중 모드 임베딩 G1, 및 선택 모델 액세스 요청. 모델을 즉시 사용할 수 있습니다.

Amazon Bedrock에서 모델 액세스 요청

AWS CloudFormation 템플릿을 사용하여 솔루션 스택 생성

다음 중 하나를 사용하십시오. AWS 클라우드 포메이션 솔루션 리소스를 시작하기 위한 템플릿(지역에 따라 다름)

AWS 리전 (링크)
us-east-1 us-east-1용 CloudFormation 템플릿 링크
us-west-2 us-west-2용 CloudFormation 템플릿 링크

스택이 성공적으로 생성된 후 스택의 출력 AWS CloudFormation 콘솔의 탭을 클릭하고 해당 값을 기록해 둡니다. MultimodalCollectionEndpoint, 후속 단계에서 사용합니다.

CloudFormation 템플릿으로 생성된 리소스

CloudFormation 템플릿은 다음 리소스를 생성합니다.

  • IAM 역할 - 다음과 같은 AWS 자격 증명 및 액세스 관리 (IAM) 역할이 생성됩니다. 적용하려면 역할을 업데이트하세요. 최소 권한 권한.
    • SMExecutionRole Amazon S3, SageMaker, OpenSearch Service 및 Bedrock 전체 액세스 권한이 있습니다.
    • OSPipelineExecutionRole 특정 Amazon SQS 및 OSI 작업에 액세스할 수 있습니다.
  • SageMaker 노트북 – 이 게시물의 모든 코드는 이 노트북을 통해 실행됩니다.
  • OpenSearch 서버리스 컬렉션 – 임베딩을 저장하고 검색하기 위한 벡터 데이터베이스입니다.
  • OSI 파이프라인 – OpenSearch Serverless에 데이터를 수집하기 위한 파이프라인입니다.
  • S3 버킷 – 이 게시물의 모든 데이터는 이 버킷에 저장됩니다.
  • SQS 대기열 – OSI 파이프라인 실행을 트리거하는 이벤트가 이 대기열에 배치됩니다.

CloudFormation 템플릿은 Amazon S3 및 Amazon SQS 처리를 소스로, OpenSearch Serverless 인덱스를 싱크로 사용하여 OSI 파이프라인을 구성합니다. 지정된 S3 버킷 및 접두사(multimodal/osi-embeddings-json)는 OSI 파이프라인에서 OpenSearch Serverless로 데이터를 수집하는 데 사용되는 SQS 알림을 트리거합니다.

CloudFormation 템플릿은 또한 다음을 생성합니다. 네트워크, 암호화데이터 액세스 OpenSearch Serverless 컬렉션에 필요한 정책. 최소 권한 권한을 적용하려면 이러한 정책을 업데이트하세요.

CloudFormation 템플릿 이름은 SageMaker 노트북에서 참조됩니다. 기본 템플릿 이름이 변경된 경우 다음에서 동일하게 업데이트해야 합니다. globals.py

솔루션 테스트

사전 요구 사항 단계가 완료되고 CloudFormation 스택이 성공적으로 생성되면 이제 솔루션을 테스트할 준비가 된 것입니다.

  1. SageMaker 콘솔에서 노트북 탐색 창에서
  2. 선택 MultimodalNotebookInstance 노트북 인스턴스를 선택하고 JupyterLab 열기.
    Amazon SageMaker의 노트북 인스턴스
  3. In 파일 탐색기, 노트북 폴더로 이동하여 노트북과 지원 파일을 확인하세요.

노트북은 실행되는 순서대로 번호가 매겨집니다. 각 노트북의 지침과 설명은 해당 노트북에서 수행되는 작업을 설명합니다. 우리는 이 노트북을 하나씩 운영합니다.

  1. 왼쪽 메뉴에서 0_deploy_llava.ipynb JupyterLab에서 엽니다.
  2. 달리기 메뉴, 선택 모든 셀 실행 이 노트북의 코드를 실행합니다.

이 노트북은 LLaVA-v1.5-7B 모델을 SageMaker 엔드포인트에 배포합니다. 이 노트북에서는 HuggingFace Hub에서 LLaVA-v1.5-7B 모델을 다운로드하고 inference.py 스크립트를 다음으로 바꿉니다. llava_inference.py을 클릭하고 이 모델에 대한 model.tar.gz 파일을 만듭니다. model.tar.gz 파일은 Amazon S3에 업로드되고 SageMaker 엔드포인트에 모델을 배포하는 데 사용됩니다. 그만큼 llava_inference.py 스크립트에는 Amazon S3에서 이미지 파일을 읽고 추론을 실행할 수 있는 추가 코드가 있습니다.

  1. 왼쪽 메뉴에서 1_data_prep.ipynb JupyterLab에서 엽니다.
  2. 달리기 메뉴, 선택 모든 셀 실행 이 노트북의 코드를 실행합니다.

이 노트북은 다음을 다운로드합니다. 슬라이드 데크, 각 슬라이드를 JPG 파일 형식으로 변환하고 이를 이 게시물에 사용되는 S3 버킷에 업로드합니다.

  1. 왼쪽 메뉴에서 2_data_ingestion.ipynb JupyterLab에서 엽니다.
  2. 달리기 메뉴, 선택 모든 셀 실행 이 노트북의 코드를 실행합니다.

이 노트북에서는 다음을 수행합니다.

  • OpenSearch Serverless 컬렉션에 인덱스를 생성합니다. 이 인덱스는 슬라이드 데크의 임베딩 데이터를 저장합니다. 다음 코드를 참조하세요.
session = boto3.Session()
credentials = session.get_credentials()
auth = AWSV4SignerAuth(credentials, g.AWS_REGION, g.OS_SERVICE)

os_client = OpenSearch(
  hosts = [{'host': host, 'port': 443}],
  http_auth = auth,
  use_ssl = True,
  verify_certs = True,
  connection_class = RequestsHttpConnection,
  pool_maxsize = 20
)

index_body = """
{
  "settings": {
      "index.knn": true
  },
  "mappings": {
      "properties": {
          "vector_embedding": {
              "type": "knn_vector",
              "dimension": 1024,
              "method": {
                  "name": "hnsw",
                  "engine": "nmslib",
                  "parameters": {}
              }
          },
          "image_path": {
              "type": "text"
          },
          "metadata": {
              "properties": {
                  "slide_filename": {
                      "type": "text"
                  },
                  "model_id": {
                      "type": "text"
                  },
                  "slide_description": {
                      "type": "text"
                  }
              }
          }
      }
  }
}
"""
index_body = json.loads(index_body)
try:
  response = os_client.indices.create(index_name, body=index_body)
  logger.info(f"response received for the create index -> {response}")
except Exception as e:
  logger.error(f"error in creating index={index_name}, exception={e}")

  • 이전 노트북에서 생성된 JPG 이미지를 벡터 임베딩으로 변환하기 위해 Titan Multimodal Embeddings 모델을 사용합니다. 이러한 임베딩과 추가 메타데이터(예: 이미지 파일의 S3 경로)는 JSON 파일에 저장되고 Amazon S3에 업로드됩니다. 임베딩으로 변환된 모든 슬라이드(이미지)에 대한 문서가 포함된 단일 JSON 파일이 생성됩니다. 다음 코드 조각은 이미지(Base64로 인코딩된 문자열 형식)가 임베딩으로 변환되는 방법을 보여줍니다.
def get_multimodal_embeddings(bedrock: botocore.client, image: str) -> np.ndarray:
    body = json.dumps(dict(inputImage=image))
    try:
        response = bedrock.invoke_model(
            body=body, modelId=g.FMC_MODEL_ID, accept=g.ACCEPT_ENCODING, contentType=g.CONTENT_ENCODING
        )
        response_body = json.loads(response.get("body").read())
        embeddings = np.array([response_body.get("embedding")]).astype(np.float32)
    except Exception as e:
        logger.error(f"exception while image(truncated)={image[:10]}, exception={e}")
        embeddings = None

    return embeddings

  • 이 작업은 파일을 처리하고 OpenSearch Serverless 인덱스로 수집하는 OpenSearch 수집 파이프라인을 트리거합니다. 다음은 생성된 JSON 파일의 샘플입니다. (예제 코드에는 1,024차원 벡터가 표시되어 있습니다. Titan 다중 모달 임베딩 모델은 XNUMX차원을 생성합니다.)
[
  {
    "image_path": "s3://<your-bucket-name>/path/to/file1.json",
    "metadata": {
      "slide_filename": "mypowerpoint1.pptx",
      "model_id": "amazon.titan-embed-image-v1",
      "slide_description": "This is a test slide deck"
    },
    "vector_embedding": [
      657.6052386529958,
      0.8865137233123771,
      763.870264592026
    ]
  }
] 

  1. 왼쪽 메뉴에서 3_rag_inference.ipynb JupyterLab에서 엽니다.
  2. 달리기 메뉴, 선택 모든 셀 실행 이 노트북의 코드를 실행합니다.

이 노트북은 RAG 솔루션을 구현합니다. 사용자 질문을 임베딩으로 변환하고, 벡터 데이터베이스에서 유사한 이미지(슬라이드)를 찾고, 검색된 이미지를 LLaVA에 제공하여 사용자 질문에 대한 답변을 생성합니다. 우리는 다음 프롬프트 템플릿을 사용합니다.

prompt_template: str = """Pretend that you are a helpful assistant that answers questions about content in a slide deck. 
  Using only the information in the provided slide image answer the following question.
  If you do not find the answer in the image then say I did not find the answer to this question in the slide deck.

  {question}
"""

다음 코드 조각은 RAG 워크플로를 제공합니다.

# create prompt and convert to embeddings
question: str = "As per the AI/ML flywheel, what do the AWS AI/ML services provide?"
prompt = prompt_template.format(question=question)
text_embeddings = get_text_embeddings(bedrock, question)

# vector db search
vector_db_response: Dict = find_similar_data(text_embeddings)

# download image for local notebook display
s3_img_path = vector_db_response.get('hits', {}).get('hits')[0].get('_source').get('image_path')
logger.info(f"going to answer the question="{question}" using the image "{s3_img_path}"")

!aws s3 cp {s3_img_path} .
local_img_path = os.path.basename(s3_img_path)
display(Image(filename=local_img_path))

# Ask LLaVA
data = {
    "image" : s3_img_path,
    "question" : prompt,
    "temperature" : 0.1,
}
output = predictor.predict(data)
logger.info(f"Image={s3_img_path}nQuestion: {question}nAnswer: {output}nn")

결과

다음은 구현 과정에서 생성된 일부 사용자 질문과 응답을 편집한 것입니다. 그만큼 문제 열은 사용자 질문을 캡처하고 대답 열은 LLaVA가 생성한 텍스트 응답입니다. 영상 OpenSearch 서버리스 벡터 검색에서 반환된 k-가장 가까운(k=1) 슬라이드 일치입니다. 이 슬라이드는 LLaVA에서 해석하여 답변을 제공합니다.

다중 모드 RAG 결과

문제 대답 영상
Inf2의 성능은 동급 EC2 인스턴스와 어떻게 비교됩니까? 숫자가 필요해요. 슬라이드 데크에 따르면 AWS Inferentia2의 Inf2 인스턴스는 동급 EC4 인스턴스에 비해 최대 10배 더 높은 처리량과 2배 더 낮은 지연 시간을 제공합니다. 결과 표의 질문 1에 대한 이미지
AI/ML 플라이휠에 따라 AWS AI/ML 서비스는 무엇을 제공합니까? AWS AI/ML 서비스는 더 나은 $/perfer 기능, 새로운 기능 및 혁신에 대한 투자를 제공합니다. 결과 표의 질문 2에 대한 이미지
GPT-2에 비해 GPT-3에는 얼마나 많은 매개변수가 더 있습니까? GPT-2와 GPT-3의 매개변수 크기의 수치적 차이는 무엇입니까? 슬라이드에 따르면 GPT-3에는 175억 개의 매개변수가 있고 GPT-2에는 1.5억 개의 매개변수가 있습니다. GPT-2와 GPT-3의 매개변수 크기의 수치적 차이는 173.5억입니다. 결과 표의 질문 3에 대한 이미지
입자 물리학에서 쿼크란 ​​무엇입니까? 슬라이드 데크에서 이 질문에 대한 답을 찾지 못했습니다. 결과 표의 질문 4에 대한 이미지

이 솔루션을 슬라이드 데크로 자유롭게 확장해 보세요. 슬라이드 데크의 URL을 사용하여 globals.py의 SLIDE_DECK 변수를 업데이트하고 이전 섹션에 자세히 설명된 수집 단계를 실행하기만 하면 됩니다.

OpenSearch 대시보드를 사용하면 OpenSearch API와 상호 작용하여 인덱스 및 수집된 데이터에 대해 빠른 테스트를 실행할 수 있습니다. 다음 스크린샷은 OpenSearch 대시보드 GET 예를 보여줍니다.

OpenSearch 대시보드 보기

정리

향후 요금이 발생하지 않도록 하려면 생성한 리소스를 삭제하세요. CloudFormation 콘솔을 통해 스택을 삭제하면 됩니다.

CloudFormation 스택 삭제

또한 LLaVA 추론을 위해 생성된 SageMaker 추론 엔드포인트를 삭제합니다. 정리 단계의 주석 처리를 제거하여 이 작업을 수행할 수 있습니다. 3_rag_inference.ipynb 셀을 실행하거나 SageMaker 콘솔을 통해 엔드포인트를 삭제하여 다음을 선택합니다. 추론종점 탐색 창에서 엔드포인트를 선택하고 삭제합니다.

결론

기업은 항상 새로운 콘텐츠를 생성하며, 슬라이드 데크는 조직 내부에서는 정보를 공유하고 외부에서는 고객이나 회의에서 전파하는 데 사용되는 일반적인 메커니즘입니다. 시간이 지남에 따라 풍부한 정보는 이러한 슬라이드 데크의 그래프 및 표와 같은 텍스트가 아닌 양식에 묻혀 숨겨져 있을 수 있습니다. 이 솔루션과 Titan Multimodal Embeddings 모델 및 LLaVA와 같은 다중 모드 FM의 기능을 사용하여 슬라이드 데크의 콘텐츠에 대한 새로운 관점을 발견하거나 새로운 정보를 발견할 수 있습니다.

탐색을 통해 더 많은 정보를 얻을 수 있도록 권장합니다. Amazon SageMaker 점프스타트, 아마존 타이탄 모델, Amazon Bedrock 및 OpenSearch Service를 다루고 이 게시물에 제공된 샘플 구현을 사용하여 솔루션을 구축합니다.

이 시리즈의 일부로 두 개의 추가 게시물을 찾아보세요. 2부에서는 슬라이드 데크와 대화하기 위해 취할 수 있는 또 다른 접근 방식을 다룹니다. 이 접근 방식은 LLaVA 추론을 생성 및 저장하고 저장된 추론을 사용하여 사용자 쿼리에 응답합니다. 3부에서는 두 가지 접근 방식을 비교합니다.


저자 소개

아미트 아로라 Amazon Web Services의 AI 및 ML 전문 설계자로서 기업 고객이 클라우드 기반 기계 학습 서비스를 사용하여 혁신을 빠르게 확장할 수 있도록 지원합니다. 그는 또한 워싱턴 DC의 Georgetown University에서 MS 데이터 과학 및 분석 프로그램의 겸임 강사이기도 합니다.

만주 프라사드 Amazon Web Services의 전략 계정 내 수석 솔루션 설계자입니다. 그녀는 주요 M&E 고객에게 AI/ML을 포함한 다양한 영역에서 기술 지침을 제공하는 데 중점을 두고 있습니다. AWS에 합류하기 전에는 금융 서비스 부문 기업과 스타트업을 위한 솔루션을 설계하고 구축했습니다.

아르카나 이나푸디 전략적 고객을 지원하는 AWS의 수석 솔루션 아키텍트입니다. 그녀는 고객이 데이터 분석 및 데이터베이스 솔루션을 설계하고 구축하도록 돕는 데 10년 이상의 경험을 갖고 있습니다. 그녀는 고객에게 가치를 제공하고 비즈니스 성과를 달성하기 위해 기술을 사용하는 데 열정을 갖고 있습니다.

안타라 라이사 그는 텍사스주 댈러스에 기반을 둔 전략적 고객을 지원하는 Amazon Web Services의 AI 및 ML 솔루션 설계자입니다. 또한 그녀는 이전에 AWS에서 대기업 파트너와 협력하여 디지털 네이티브 고객을 위한 파트너 성공 솔루션 설계자로 일한 경험이 있습니다.

spot_img

최신 인텔리전스

spot_img