문장 변환기¶
Snowflake ML Model Registry는 문장 변환기 모델(sentence_transformers.SentenceTransformer)을 지원합니다. 문장 변환기는 의미 체계 검색, 클러스터링 및 기타 자연어 처리 작업에 사용할 수 있는 텍스트에 대한 밀집 벡터 임베딩을 생성하는 데 사용됩니다.
log_model 을 호출할 때 options 사전에서 다음 추가 옵션을 사용할 수 있습니다.
옵션 |
설명 |
|---|---|
|
모델 오브젝트에서 사용할 수 있는 메서드 이름 목록입니다. 문장 변환기 모델은 대상 메서드로 ``encode``만 지원하며, 이는 기본값입니다. |
|
텍스트를 인코딩할 때 사용할 배치 크기입니다. 기본값은 32입니다. |
|
GPU로 플랫폼에 배포할 때 사용할 CUDA 런타임 버전으로 기본값은 11.8입니다. 수동으로 |
sample_input_data 매개 변수는 문장 변환기 모델을 로깅할 때 선택 사항입니다. 제공하지 않으면 레지스트리는 모델의 encode 메서드를 기반으로 서명을 자동으로 추론합니다.
참고
문장 변환기 모델은 대상 메서드로 ``encode``만 지원합니다. 입력은 텍스트 문자열을 포함하는 단일 열이어야 하고, 출력은 임베딩 벡터를 배열로 포함하는 단일 열이어야 합니다.
예¶
이러한 예제에서는 ``reg``가 ``snowflake.ml.registry.Registry``의 인스턴스라고 가정합니다.
기본 문장 변환기¶
다음 예제에서는 문장 변환기 모델을 로드하고, Snowflake ML Model Registry에 기록하고, 등록된 모델을 사용하여 임베딩을 생성하는 주요 단계를 보여줍니다. 이 워크플로에는 다음 작업이 포함됩니다.
사전 학습된 문장 변환기 모델을 로드합니다.
모델을 Snowflake ML Model Registry에 기록합니다.
텍스트 임베딩을 생성합니다.
from sentence_transformers import SentenceTransformer
import pandas as pd
# Load a pre-trained Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Sample input data as DataFrame
sample_df = pd.DataFrame({"sentences": [
"How do I reset my password?",
"What are your business hours?",
"I need help with my recent order.",
]})
# Log the model
model_ref = reg.log_model(
model=model,
model_name="my_sentence_transformer",
version_name="v1",
sample_input_data=sample_df,
)
# Generate embeddings
test_df = pd.DataFrame({"sentences": [
"I forgot my login credentials.",
"When is your store open?",
]})
embeddings_df = model_ref.run(test_df, function_name="encode")
사용자 지정 배치 크기¶
인코딩을 위한 사용자 지정 배치 크기를 지정할 수 있습니다.
from sentence_transformers import SentenceTransformer
import pandas as pd
# Load model
model = SentenceTransformer('all-mpnet-base-v2')
# Sample input data as DataFrame
sample_df = pd.DataFrame({"text": ["Sample text for embedding."]})
# Log the model with custom batch size
model_ref = reg.log_model(
model=model,
model_name="my_mpnet_model",
version_name="v1",
sample_input_data=sample_df,
options={"batch_size": 64},
)
# Generate embeddings
test_df = pd.DataFrame({"text": [
"First sentence to encode.",
"Second sentence to encode.",
"Third sentence to encode.",
]})
embeddings_df = model_ref.run(test_df, function_name="encode")