

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# OpenSearch Serverless에서 신경망 검색 및 하이브리드 검색 구성
<a name="serverless-configure-neural-search"></a>

## 신경망 검색
<a name="serverless-configure-neural-search-what-is"></a>

Amazon OpenSearch Serverless는 데이터에 대한 시맨틱 검색 작업을 위한 신경망 검색 기능을 지원합니다. 신경망 검색은 기계 학습 모델을 사용하여 쿼리의 의미와 컨텍스트를 이해함으로써 기존 키워드 기반 검색보다 연관성이 더 높은 검색 결과를 제공합니다. 이 섹션에서는 필요한 권한, 지원되는 프로세서, 표준 OpenSearch 구현과의 주요 차이점 등, OpenSearch Serverless에서 신경망 검색을 구성하는 방법을 설명합니다.

신경망 검색을 사용하면 데이터에 대한 시맨틱 검색을 수행할 수 있습니다. 시맨틱 검색은 의미론적 의미를 고려하여 검색 쿼리의 의도를 이해할 수 있습니다. 이 기능은 다음 구성 요소로 구동됩니다.
+ 텍스트 임베딩 수집 파이프라인 프로세서
+ 신경망 쿼리
+ 신경망 희소 쿼리

## 하이브리드 검색
<a name="serverless-configure-hybrid-search"></a>

하이브리드 검색을 사용하면 키워드와 시맨틱 검색 기능을 결합하여 검색 연관성을 높일 수 있습니다. 하이브리드 검색을 사용하려면 검색 결과를 처리하고 문서 점수를 결합하는 검색 파이프라인을 생성합니다. 자세한 내용은 *OpenSearch 설명서*의 [검색 파이프라인](https://docs.opensearch.org/latest/search-plugins/search-pipelines/index/)을 참조하세요. 다음 구성 요소를 사용하여 하이브리드 검색을 구현합니다.
+ 정규화 검색 파이프라인 프로세서

**지원되는 정규화 기법**
  + `min_max`
  + `l2`

**지원되는 조합 기법**
  + `arithmetic_mean`
  + `geometric_mean`
  + `harmonic_mean`

  정규화 및 조합 기법에 대한 자세한 내용은 *OpenSearch 설명서* 웹 사이트에서 [요청 본문 필드](https://docs.opensearch.org/latest/search-plugins/search-pipelines/normalization-processor/#request-body-fields)를 참조하세요.
+ Hybrid 쿼리

## 신경망 및 하이브리드 쿼리
<a name="serverless-configure-neural-search-hybrid-queries"></a>

기본적으로 OpenSearch는 키워드가 포함된 검색 쿼리에 적합한 키워드 기반 Okapi BM25 알고리즘을 사용하여 문서 점수를 계산합니다. 신경망 검색은 자연어 쿼리에 대한 새로운 쿼리 유형과 의미 체계 및 키워드 검색을 결합할 수 있는 기능을 제공합니다.

**Example : `neural`**  

```
"neural": {
  "vector_field": {
    "query_text": "query_text",
    "query_image": "image_binary",
    "model_id": "model_id",
    "k": 100
  }
}
```

자세한 내용은 *OpenSearch 설명서* 웹 사이트의 [신경망 쿼리](https://docs.opensearch.org/latest/query-dsl/specialized/neural/)를 참조하세요.

**Example : `hybrid`**  

```
"hybrid": {
      "queries": [
        array of lexical, neural, or combined queries
      ]
    }
```

자세한 내용은 *OpenSearch 설명서* 웹 사이트의 [하이브리드 쿼리](https://docs.opensearch.org/latest/query-dsl/compound/hybrid/)를 참조하세요.

Amazon OpenSearch Serverless에서 시맨틱 검색 구성 요소를 구성하려면 *OpenSearch 설명서* 웹 사이트에서 [신경망 검색 자습서](https://docs.opensearch.org/latest/tutorials/vector-search/neural-search-tutorial/)의 단계를 따르세요. 다음의 중요한 차이점에 유의하세요.
+ OpenSearch Serverless는 원격 모델만 지원합니다. 즉, 원격으로 호스팅되는 모델로 커넥터를 구성해야 합니다. 원격 모델을 배포하거나 제거할 필요가 없습니다. 자세한 내용은 *OpenSearch 설명서* 웹 사이트의 [신경망 및 하이브리드 검색 시작하기](https://docs.opensearch.org/latest/tutorials/vector-search/neural-search-tutorial/)를 참조하세요.
+ 벡터 인덱스를 검색하거나 최근에 생성된 검색 및 수집 파이프라인을 검색할 때 최대 15초의 지연 시간이 발생합니다.

## 권한 구성
<a name="serverless-configure-neural-search-permissions"></a>

OpenSearch Serverless에서 신경망 검색에는 다음 권한이 필요합니다. 자세한 내용은 [지원되는 정책 권한](serverless-data-access.md#serverless-data-supported-permissions) 단원을 참조하십시오.

**Example : 신경망 검색 정책**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "NeuralSearch",
            "Effect": "Allow",
            "Action": [
              "aoss:CreateIndex",
              "aoss:CreateCollection",
              "aoss:UpdateCollection",
              "aoss:DeleteIndex",
              "aoss:DeleteCollection"
            ],
            "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/your-collection-name"
        }
    ]
}
```
+ **aoss:\$1Index** – 텍스트 임베딩이 저장되는 벡터 인덱스를 생성합니다.
+ **aoss:\$1CollectionItems** – 수집 및 검색 파이프라인을 생성합니다.
+ **aoss:\$1MLResource** – 텍스트 임베딩 모델을 생성하고 등록합니다.
+ **aoss:APIAccessAll** - 검색 및 수집 작업을 위해 OpenSearch API에 대한 액세스를 제공합니다.

다음은 신경망 검색에 필요한 컬렉션 데이터 액세스 정책에 대한 설명입니다. *자리 표시자 값*을 자신의 정보로 바꿉니다.

**Example : 데이터 액세스 정책**  

```
[
    {
        "Description": "Create index permission",
        "Rules": [
            {
                "ResourceType": "index",
                "Resource": ["index/collection_name/*"],
                "Permission": [
                  "aoss:CreateIndex", 
                  "aoss:DescribeIndex",
                  "aoss:UpdateIndex",
                  "aoss:DeleteIndex"
                ]
            }
        ],
        "Principal": [
            "arn:aws:iam::account_id:role/role_name"
        ]
    },
    {
        "Description": "Create pipeline permission",
        "Rules": [
            {
                "ResourceType": "collection",
                "Resource": ["collection/collection_name"],
                "Permission": [
                  "aoss:CreateCollectionItems",
                  "aoss:DescribeCollectionItems",
                  "aoss:UpdateCollectionItems",
                  "aoss:DeleteCollectionItems"
                ]
            }
        ],
        "Principal": [
            "arn:aws:iam::account_id:role/role_name"
        ]
    },
    {
        "Description": "Create model permission",
        "Rules": [
            {
                "ResourceType": "model",
                "Resource": ["model/collection_name/*"],
                "Permission": ["aoss:CreateMLResources"]
            }
        ],
        "Principal": [
            "arn:aws:iam::account_id:role/role_name"
        ]
    }
]
```