Invalid size for parameter embedding, Expected: N, Actual: M

요약 — 여러분이 쓴 벡터의 차원 수가 벡터 인덱스가 기대하는 것과 다릅니다. 인덱스는 생성 시 Dimensions를 고정했고 변경할 수 없습니다. 인덱스의 차원 수에 맞춰 임베딩을 다시 생성하거나 새 인덱스를 만드세요.

무엇을 의미하는가

ValidationException: One or more parameter values were invalid. Invalid size for parameter embedding, Expected: 1024, Actual: 512 IndexName: TicketEmbeddings

저희가 us-east-1에서 Dimensions: 1024로 생성된 벡터 인덱스가 있는 테이블에 512차원 임베딩을 써서 캡처한, 서비스의 원문 그대로의 응답입니다. 쓰기는 그 자리에서 거부되며, 테이블에도 인덱스에도 아무것도 저장되지 않습니다.

메시지는 세 가지를 알려 줍니다: 벡터 속성(embedding), 인덱스가 기대하는 차원 수, 그리고 여러분이 보낸 차원 수. 끝의 IndexName은 테이블의 벡터 인덱스(최대 5개) 중 어느 것이 이 오류를 냈는지 알려 줍니다.

왜 발생하는가

  • 임베딩 모델을 바꿨습니다. 1,024차원을 출력하던 모델이 512차원을 출력하는 모델로 교체되었습니다. 인덱스의 Dimensions는 생성 시 고정되므로 이제 모든 새 쓰기가 실패합니다.
  • 잘라내기(truncation)나 패딩 단계가 사라졌습니다. Matryoshka 방식 임베딩을 목표 크기로 잘라내는 파이프라인은 그 단계가 빠지면 이렇게 실패합니다.
  • 인덱스 둘, 속성 이름 하나. 한 인덱스의 차원 수를 만족하는 쓰기라도 다른 테이블에서 같은 속성 위에 정의된 다른 인덱스에서는 여전히 실패할 수 있습니다.

어떻게 해결하는가

인덱스의 차원 수에 맞춰 임베딩을 다시 생성하거나, 인덱스를 삭제하고 모델의 차원 수로 새로 만드세요. 제자리에서 바꿀 방법은 없습니다: DimensionsDistanceFunction은 불변이므로, 모델 마이그레이션은 곧 새 인덱스와 백필을 의미합니다.

마이그레이션 동안 두 모델이 공존해야 한다면, 서로 다른 두 속성에 쓰고 각각에 별도의 벡터 인덱스를 부여하세요 — 테이블은 최대 5개까지 받습니다.

관련 문서

과금과 제한의 전체 그림은 DynamoDB 벡터 검색 가이드에 있습니다. 이 메시지의 일반적인 접두사에는 별도의 페이지가 있습니다: "One or more parameter values were invalid".

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.