0 / 0
영어 버전 문서로 돌아가기
Granite 내장 107m 다국어 모델 카드
마지막 업데이트 날짜: 2025년 1월 16일
Granite 내장 107m 다국어 모델 카드

granite-embedding-107m-multilingual 모델은 Granite 107M 매개 변수 밀도 비엔코더 임베딩 모델로, 고품질의 텍스트 임베딩을 생성하는 데 사용할 수 있습니다. 이 모델은 384 크기의 임베딩 벡터를 생성하며, 기업 친화적인 개방형 소스 관련성 쌍 데이터 세트와 IBM 수집하고 생성한 데이터 세트를 조합하여 훈련됩니다. 이 모델은 성능 향상을 위해 대비적 미세 조정, 지식 증류, 모델 병합을 사용하여 개발되었습니다.

지원 언어

영어, 독일어, 스페인어, 프랑스어, 일본어, 포르투갈어, 아랍어, 체코어, 이탈리아어, 한국어, 네덜란드어, 중국어. 사용자는 이 12개 언어를 넘어서는 언어에 대해 granite-embedding-107m-multilingual 미세 조정할 수 있습니다.

의도된 사용

이 모델은 주어진 텍스트에 대해 고정 길이의 벡터 표현을 생성하도록 설계되어 있으며, 텍스트 유사성, 검색, 검색 응용 프로그램에 사용할 수 있습니다.

문장 변환기를 사용한 사용법

이 모델은 SentenceTransformer 라이브러리와 호환되며 사용이 매우 쉽습니다

먼저, 문장 변환기 라이브러리를 설치합니다.

pip install sentence_transformers

그런 다음 이 모델을 사용하여 텍스트 쌍을 인코딩하고 표현 간의 유사성을 찾을 수 있습니다.

from sentence_transformers import SentenceTransformer, util

model_path = "ibm-granite/granite-embedding-107m-multilingual"
# Load the Sentence Transformer model
model = SentenceTransformer(model_path)

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

input_passages = [
    "Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
    "Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."
    ]

# encode queries and passages
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)

# calculate cosine similarity
print(util.cos_sim(query_embeddings, passage_embeddings))

Huggingface Transformers 사용법

이것은 Transformers 라이브러리와 PyTorch 사용하여 granite-embedding-107m-multilingual 사용하는 방법에 대한 간단한 예제입니다.

먼저, 필요한 라이브러리를 설치합니다.

pip install transformers torch

그런 다음 이 모델을 사용하여 텍스트 쌍을 인코딩할 수 있습니다.

import torch
from transformers import AutoModel, AutoTokenizer

model_path = "ibm-granite/granite-embedding-107m-multilingual"

# Load the model and tokenizer
model = AutoModel.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

# tokenize inputs
tokenized_queries = tokenizer(input_queries, padding=True, truncation=True, return_tensors='pt')

# encode queries
with torch.no_grad():
    # Queries
    model_output = model(**tokenized_queries)
    # Perform pooling. granite-embedding-107m-multilingual uses CLS Pooling
    query_embeddings = model_output[0][:, 0]

# normalize the embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, dim=1)

평가

다국어 미라클(18개 언어), 민타카 검색(8개 언어), 영어 MTEB 검색(15개 작업)에서 granite-embedding-107m-multilingual 의 평균 성능), 독일어(4개 작업), 스페인어(2개 작업), 프랑스어(5개 작업), 일본어(2개 작업), 아랍어(1개 작업), 한국어(1개 작업), 중국어(8개 작업)가 아래에 보고되어 있습니다. granite-embedding-107m-multilingual 모델은 비슷한 크기의 다른 모델보다 두 배나 빠릅니다.

테이블 1. granite-embedding-107m-multilingual 모델의 벤치마크 점수
모델 매개변수(M) 차원 내장 미라클 (18) 민타카 검색 (8) MTEB 영어 (15) MTEB 독일어 (4) MTEB 스페인어 (2) MTEB 프랑스어 (5) MTEB 일본어 (2) MTEB 아랍어 (1) MTEB 한국어 (1) MTEB 중국어 (8)
granite-embedding-107m-multilingual 107 384 55.9 22.6 45.3 70.3 48.7 51.1 59.0 63.2 70.5 40.8

모델 아키텍처

granite-embedding-107m-multilingual 모델은 IBM 내부적으로 훈련된 인코더 전용 XLM-RoBERTa 와 같은 트랜스포머 아키텍처를 기반으로 합니다.

테이블 2. Granite 내장 모델 아키텍처 세부 사항
모델 granite-embedding-30m-english granite-embedding-125m-english granite-embedding-107m-multilingual granite-embedding-278m-multilingual
내장 크기 384 768 384 768
레이어 수 6 12 6 12
주의 머리의 수 12 12 12 12
중간 크기 1536 3072 1536 3072
활성화 함수 GeLU GeLU GeLU GeLU
단어 수 50265 50265 250002 250002
최대 시퀀스 길이 512 512 512 512
매개변수의 수 30M 125M 107M 278M

훈련 데이터

전반적으로, 훈련 데이터는 네 가지 주요 소스로 구성되어 있습니다: (1) 웹에서 수집한 감독되지 않은 제목-본문 쌍 데이터, (2) 공개적으로 이용 가능하고, 기업 친화적인 라이선스를 가진 쌍, (3) 특정 기술 영역을 대상으로 하는 IBM 쌍 데이터, (4) IBM 합성 데이터. 데이터는 아래와 같습니다:

테이블 3. granite-embedding-107m-multilingual 모델의 훈련 데이터
데이터 세트 숫자. 쌍
MC4 52,823,484
다국어 웹호스 12,369,322
영어 위키백과 20,745,403
다국어 위키미디어 2,911,090
미라클 코퍼스(제목-본문) 10,120,398
스택 교환 중복 질문(제목) 304,525
스택 교환 중복 질문(제목) 304,525
스택 교환 중복 질문(본문) 250,519
스택 익스체인지의 기계 번역 중복 질문(제목) 187,195
스택 교환(제목, 답변) 쌍 4,067,139
스택 익스체인지(제목, 본문) 쌍 23,978,013
스택 익스체인지(제목, 본문) 쌍 23,978,013
스택 익스체인지의 기계 번역(제목+본문, 답변) 쌍 1,827,15
SearchQA 582,261
S2ORC (제목, 초록) 41,769,185
WikiAnswers 중복 질문 쌍 77,427,422
CC뉴스 614,664
XSum 226,711
SimpleWiki 102,225
기계 번역 교차 언어 병렬 코퍼라 28,376,115
SPECTER 인용 삼중항 684,100
SPECTER 인용 3중주 기계 번역 4,104,600
자연스러운 질문(NQ) 100,231
SQuAD2.0 87,599
HotpotQA 85,000
109,810
PubMed 20,000,000
다국어 Miracl 트리플 81,409
다국어 MrTydi 트리플 48,715
Sadeem 질문 답변 4,037
DBPedia 제목-본문 쌍 4,635,922
종합: 영어 검색어-위키피디아 구절 1,879,093
종합: 영어 사실 확인 9,888
종합: 다국어 검색 - 위키피디아 구절 300,266
종합: 다국어 뉴스 요약 37,489
IBM 내부 트리플 40,290
IBM 내부 제목-본문 쌍 1,524,586

특히, 우리는 상업적 라이선스 때문에 인기 있는 MS-MARCO 검색 데이터 세트를 훈련 코퍼스에 사용하지 않지만, 다른 오픈 소스 모델은 이 데이터 세트의 높은 품질 때문에 이 데이터 세트를 사용하여 훈련합니다.

인프라

우리는 NVIDIA A100 80gb GPU가 장착된 IBM 의 컴퓨팅 클러스터인 Cognitive Compute Cluster를 사용하여 Granite Embedding Models를 훈련합니다. 이 클러스터는 여러 GPU를 통해 모델을 훈련할 수 있는 확장 가능하고 효율적인 인프라를 제공합니다.

윤리적 고려사항과 한계

기본 언어 모델을 훈련하는 데 사용된 영어 데이터는 혐오, 욕설, 욕설이 포함된 텍스트를 제거하기 위해 필터링되었습니다.

자원

  • Granite 의 최신 업데이트에 대해 알아보세요: IBM Granite 웹사이트
  • 튜토리얼, 모범 사례 및 신속한 엔지니어링 조언을 통해 시작하세요: IBM Granite 문서
  • 최신 Granite 학습 자료에 대해 알아보세요: IBM