0 / 0
영어 버전 문서로 돌아가기
임베딩
마지막 업데이트 날짜: 2024년 12월 12일
임베딩

임베딩 모델을 사용하여 문장이나 구절의 의미를 포착하는 텍스트 임베딩을 만듭니다. 지원 벡터 머신과 같은 분류기와 함께 이러한 모델을 사용할 수 있습니다. 모델 내장은 검색 증강 생성 작업에도 도움이 될 수 있습니다.

다음 다이어그램은 임베딩 지원을 통한 검색 증강 생성 패턴을 보여줍니다.

검색 증강 생성을 위해 벡터 저장소에서 파생된 검색 결과를 입력에 추가하는 것을 보여주는 다이어그램

임베딩 지원이 포함된 검색 증강 생성 패턴에는 다음 단계가 포함됩니다.

  1. 콘텐츠를 텍스트 임베딩으로 변환하고 벡터 데이터 저장소에 저장하세요.
  2. 동일한 임베딩 모델을 사용하여 사용자 입력을 텍스트 임베딩으로 변환합니다.
  3. 사용자의 질문과 관련된 콘텐츠에 대해 지식 베이스에서 유사성 또는 의미 검색을 실행하세요.
  4. 가장 관련성이 높은 검색 결과를 프롬프트에 컨텍스트로 가져오고 "다음 구절의 정보만 사용하여 다음 질문에 답하세요."와 같은 지침을 추가하세요.
  5. 결합된 프롬프트 텍스트(지시 사항 + 검색 결과 + 질문)를 foundation model 보냅니다.
  6. foundation model 프롬프트의 문맥 정보를 사용하여 사실에 입각한 답변을 생성합니다.

자세한 정보는 다음을 참조하십시오.

임베딩 사용

USE 임베딩은 래퍼입니다. Google TFHub에서 사용할 수 있는 Universal Sentence Encoder 임베딩입니다. 이러한 임베드는 문서 분류 SVM 알고리즘에 사용됩니다. 사전 학습된 USE 임베딩 및 지원되는 언어 목록은 포함된 사전 학습된 USE 임베딩을 참조하세요

USE 임베딩을 사용하는 경우 다음을 고려하십시오.

  • 태스크에 영어 텍스트가 포함되는 경우 embedding_use_en_stock을(를) 선택하십시오.

  • 태스크에 영어가 아닌 언어로 된 텍스트가 포함되어 있거나 다국어 모델을 훈련하려는 경우 다국어 USE 임베딩 중 하나를 선택하십시오.

  • USE 임베딩은 이하에서 설명되는 바와 같이, 훈련된 모델의 품질과 추론 시간에서의 처리량 사이의 상이한 트레이드오프(trade- off)를 나타냅니다. 다양한 임베딩을 시도하여 유스 케이스에 적합한 결과 품질과 추론 처리량 간의 트레이드오프를 결정하십시오.

    • embedding_use_multi_small에는 타당한 품질이 있지만 추론 시간에는 빠른시간입니다.
    • embedding_use_en_stock은(는) 영어 전용 버전의 embedding_embedding_use_multi_small이므로 더 작고 더 높은 추론 처리량을 나타냅니다.
    • embedding_use_multi_large은(는) 변환기 아키텍처를 기반으로 하므로 추론 시간에 낮은 처리량으로 더 높은 품질의 결과를 제공합니다.

코드 샘플

import watson_nlp

syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_use_en_stock")

text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)

코드 샘플의 출력 :

{
  "data": {
    "data": [
      -0.01909315399825573,
      -0.009827353060245514,
...
      0.008978910744190216,
      -0.0702751949429512
    ],
    "rows": 1,
    "cols": 512,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": null
}

사전 학습된 USE 임베딩 포함

다음 테이블에는 사용 가능한 USE 임베딩과 지원되는 언어에 대해 선행 학습된 블록이 나열되어 있습니다. 언어 코드 및 해당 언어 목록은 언어 코드를 참조하십시오.

지원되는 언어가 포함된 사전 학습된 USE 임베딩 목록
블록 이름 모델 이름 지원되는 언어
use embedding_use_en_stock 영어만
use embedding_use_multi_small ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh
use embedding_use_multi_large ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh

GloVe 임베딩

GloVe 임베딩은 CNN 분류기에 사용됩니다.

블록 이름 :embedding_glove__stock

지원되는 언어 : ar, de, en, es, fr, it, ja, ko, nl, pt, zh-cn

코드 샘플

import watson_nlp

syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_glove_en_stock")

text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)

코드 샘플의 출력 :

{
  "data": {
    "data": [
      -0.01909315399825573,
      -0.009827353060245514,
...
      0.008978910744190216,
      -0.0702751949429512
    ],
    "rows": 1,
    "cols": 512,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": null
}

변환기 임베딩

블록 이름.

  • embedding_transformer_en_slate.125m
  • embedding_transformer_en_slate.30m

지원되는 언어

영어만

코드 샘플

import watson_nlp

# embeddings_model = watson_nlp.load("embedding_transformer_en_slate.125m")
embeddings_model = watson_nlp.load("embedding_transformer_en_slate.30m")
text = "python"

embedding = embeddings_model.run(text)
print(embedding)

코드 샘플의 출력

{
  "data": {
    "data": [
      -0.055536773055791855,
      0.008286023512482643,
      ...
      -0.3202415108680725,
      5.000295277568512e-05
    ],
    "rows": 1,
    "cols": 384,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": {
    "name": "Transformer Embeddings",
    "version": "0.0.1"
  }
}

상위 주제: Watson 자연어 처리 작업 카탈로그