
인메모리 근방 그래프 벡터에서 M 및 efConstruction 지정하기
요약
HNSW 알고리즘 기반의 인메모리 근방 그래프 벡터 인덱스에서 M과 efConstruction 파라미터를 설정하는 방법을 설명합니다. 각 파라미터의 역할과 유효 범위, SQL을 통한 설정 및 확인 방법을 다룹니다.
핵심 포인트
- M은 벡터가 유지할 수 있는 최대 근방 수를 결정합니다.
- efConstruction은 삽입 시 고려되는 가장 가까운 후보 벡터의 최대 수입니다.
- M은 2~2048, efConstruction는 1~65535 범위 내에서 지정 가능합니다.
- SQL 명령어를 통해 파라미터를 선언하고 v$vector_graph_index에서 확인할 수 있습니다.
HNSW에서의 원리적인 파라미터(Parameter)인 M과 efConstruction는 인메모리 근방 그래프 벡터(In-memory neighbor graph vector)에서도 지정이 가능합니다.
HNSW 고유 파라미터
NEIGHBORS와 M은 동등하며, 벡터가 임의의 레이어(Layer)에 유지할 수 있는 근방의 최대 수를 나타냅니다. 마지막 정점에는 최대 200만 개의 근방을 가질 수 있는 유연성이 하나 추가됩니다.
EFCONSTRUCTION는 삽입 시 검색의 각 단계에서 고려되는 가장 가까운 벡터 후보의 최대 수를 나타냅니다.
HNSW 벡터 인덱스(Index) 파라미터의 유효 범위는 다음과 같습니다.
ACCURACY: > 0 및 <= 100
DISTANCE: EUCLIDEAN, L2_SQUARED (별칭 EUCLIDEAN_SQUARED), COSINE, DOT, MANHATTAN, HAMMING
DISTANCE metric_name을 지정하지 않은 경우, 기본 메트릭(Metric)인 COSINE이 사용됩니다.
TYPE : HNSW
NEIGHBORS: >= 2 및 <= 2048
EFCONSTRUCTION: > 0 및 <= 65535
M과 efConstruction는 organization inmemory neighbor graph 뒤에 parameters를 선언하여 지정합니다.
SQL> info testtab1
TABLE: TESTTAB1
LAST ANALYZED:2026-06-22 07:46:12.0
...
SQL> create vector index testtab1_idx on testtab1(vec) organization inmemory neighbor graph;
Vector INDEX created.
Elapsed: 00:00:04.949
...
각각의 값은 v$vector_graph_index의 NUM_NEIGHBORS 열과 EF_CONSTRUCTION 열에서 확인할 수 있습니다.
SQL> select * from v$vector_graph_index order by index_name;
★ ★
OWNER INDEX_NAME PARTITION_NAME INDEX_OBJN ANCHOR_ADDRESS INDEX_GRAPH_TYPE NUM_LAYERS NUM_VECTORS SPARSE_LAYER_VECTORS NUM_NEIGHBORS EF_CONSTRUCTION TOTAL_EDGES REF_COUNT QUERY_DIST_COUNT CREATION_DIST_COUNT PRUNED_NEIGHBORS NUM_SNAPSHOTS MAX_SNAPSHOT ALLOCATED_BYTES USED_BYTES INDEX_USED_COUNT COVERING_COLS QUANTIZATION_TYPE QUANTIZATION_MDATA CON_ID
...
공식 기재 사항은 찾을 수 없었으나, 기본값은 M이 32, efConstruction는 200인 것으로 보입니다.
SQL> info testtab5
TABLE: TESTTAB5
LAST ANALYZED:2026-06-22 07:58:48.0
...
efConstruction의 증감에 따른 인덱스 생성 시간의 변화도 확인할 수 있었습니다.
SQL> info testtab8
TABLE: TESTTAB8
LAST ANALYZED:2026-06-22 08:17:35.0
...
SQL> create vector index testtab8_idx on testtab8(vec) organization inmemory neighbor graph
2* parameters (type hnsw, efconstruction 100);
Vector INDEX created.
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기