버전 2.0.1 날짜: 06/30/2024
모형 설명
slate.30m.english.rtrvr 모델은 바이 인코더를 기반으로 하는 표준 문장 변환기 모델입니다. 이 모델은 쿼리, 구절, 문서 등 주어진 입력에 대한 임베딩을 생성합니다. 높은 수준에서 모델은 두 입력 텍스트(예: 텍스트 A(쿼리 텍스트)와 텍스트 B(구절 텍스트) 사이의 코사인 유사성을 최대화하도록 훈련되어 문장 임베딩 q와 p가 생성됩니다. 그런 다음 코사인 유사도를 사용하여 이러한 문장 임베딩을 비교할 수 있습니다.
그림 1. 검색을 위한 바이 인코더 임베딩 모델
기본 언어 모델
임베딩의 기본 언어 모델(LM)은 “slate.30m.english”입니다. small-RoBERTa 트랜스포머 모델(6계층)과 동일한 아키텍처를 가지고 있으며 약 3천만 개의 파라미터와 384의 임베딩 차원을 가지고 있습니다. 구체적으로 “slate.30m.english”는 “slate.125m.english”(이전에는 WatBERT에서 증류되었습니다). 최종 모델은 slate.30m.english.rtrvr입니다. 끝에 있는 접미사는 검색 기반 작업을 위해 기본 모델 아키텍처를 미세 조정한다는 의미입니다.
트레이닝 알고리즘
최첨단 임베딩 모델 또는 MTEB 리더보드 상위권에 있는 대부분의 임베딩 모델은 일반적으로 3단계로 트레이닝을 받습니다:
- 작업별(검색 기반) 사전 교육
- 채굴된 쌍에 대한 작업별 미세 조정
- 감독되는 쌍에 대한 미세 조정. 저희도 비슷한 접근 방식을 따르며, 마지막 두 단계를 하나의 미세 조정 단계로 결합합니다.
slate.30m.english.rtrvr는 미세 조정 단계에서 “slate.125m.english.rtrvr-06-30-2024” 모델에서 추출하여 제작되었습니다(더 큰 교사 모델에 대한 자세한 내용은 이 위치에서 확인할 수 있습니다). 지식 증류는 학생의 출력 확률 분포를 교사와 최대한 가깝게 일치하도록 훈련하여 고성능 교사 모델의 지식을 더 작은 학생 모델로 전송하여 독립형 미세 조정에 비해 학생의 성과를 개선합니다.
작업별 사전 교육
이 단계에서는 RetroMAE 프레임워크를 사용하여 기본 LM을 보다 검색 지향적으로 만듭니다. 기본 LM을 “slate.30m.english”로 초기화하고 표 1의 데이터를 사용하여 RetroMAE 사전 학습을 계속 진행합니다. 여기에서는 데이터의 하드 레이블만 사용하는 대신 RetroMAE 인코더에서 사용하는 slate.125m.english.rtrvr의 예측도 추출합니다. 하이퍼 매개변수는 학습 속도입니다: 2e-5, 단계 수: 435000, GPU: 8 A100 (80GB) GPU.
참고: 다음 2단계에 대한 기본 LM입니다.
비지도 및 지도 쌍을 사용한 증류법
그림 1에서와 같이 임베딩 모델 학습을 위해 바이 인코더 프레임워크를 사용합니다. 사전 학습된 RetroMAE 모델로 초기화하고, 일괄 네거티브가 포함된 질문, 구절 텍스트 쌍을 사용하여 대비 손실 목표를 사용한 지식 증류를 추가로 사용합니다. 지식 증류는 학생의 출력 확률 분포를 교사의 확률 분포와 최대한 가깝게 일치하도록 학습합니다. 리트리버 모델의 맥락에서 출력 분포는 텍스트 쌍 간의 유사도 점수입니다. Specifically, for each pair of sentences < 쿼리, 구절>, the distribution of the teacher’s scores between the embeddings of 쿼리 and 통과, i.e., the cosine similarity between the embeddings, is distilled into the student.
증류에 사용된 교사는 아래에 언급된 동일한 데이터로 학습된 "slate.125m.english.rtrvr” 모델입니다. 교사 모델은 다단계 패러다임을 사용하여 훈련되었으며, RetroMAE 사전 훈련된 모델이 사전 훈련 단계에서 비지도 데이터를 본 다음 수백 단계에 걸쳐 더 깨끗하고 채굴되거나 골드 라벨이 붙은 데이터로 미세 조정되었습니다. 데이터 세트 전반의 견고성을 보장하기 위해 이 미세 조정된 모델을 동일한 데이터에 대해 다른 하이퍼 파라미터로 학습된 다른 모델과 융합했습니다. 자세한 내용은 slate.125m.english.rtrvr 모델 카드를 참조하세요.
지식 전달의 흐름은 그림 2에 나와 있습니다.
그림 2. 지식 증류
학습 데이터 섹션에서 설명한 대로 다양한 도메인에서 대규모 쌍을 마이닝합니다. 또한, 다음 데이터 세트에 대한 검색 작업을 위한 고품질 쌍도 포함되어 있습니다: SQuAD, 자연 질문, 유령, 스택 교환(제목, 본문) 쌍, S2ORC, SearchQA, HotpotQA, Fever 및 Miracl이 있습니다. 이러한 감독 데이터 세트의 경우, 이전 버전의 slate.125m.english.rtrvr 모델로 채굴된 하드 네거티브도 포함되어 있습니다. 또한 `Mixtral-8x7B-Instruct-v0.1`을 사용하여 질문-답변, 사실 확인 등의 양질의 쌍을 만들기 위해 합성적으로 트리플을 생성하기도 합니다. IBM 특정 사용 사례에 더 나은 성능을 제공하기 위해 IBM 소프트웨어 지원 데이터와 IBM Docs에서 생성된 쌍도 포함합니다.
증류 하이퍼파라미터: 학습 rate:7e-4, 단계 수: 500000, 유효 배치 크기: 2048, GPU: 4 A100_80GB GPU.
훈련 데이터
데이터 세트 | 단락 |
---|---|
Wikipedia | 36396918 |
도서 코퍼스 | 3401308 |
스택 교환 | 15999837 |
데이터 세트 | 쌍 |
---|---|
SPECTER 인용 세쌍둥이 | 684100 |
스택 교환 중복 질문(제목) | 304525 |
스택 교환 중복 질문(본문) | 250519 |
스택 교환 중복 문제(제목+본문) | 250460 |
자연스러운 질문(NQ) | 100231 |
SQuAD2.0 | 87599 |
PAQ(질문, 답변) 쌍 | 64371441 |
스택 교환(제목, 답변) 쌍 | 4067139 |
스택 교환(제목, 본문) 쌍 | 23978013 |
스택 교환(제목+본문, 답변) 쌍 | 187195 |
S2ORC 인용 쌍(제목) | 52603982 |
S2ORC (제목, 초록) | 41769185 |
S2ORC_citations_abstracts | 52603982 |
WikiAnswers 중복된 질문 쌍 | 77427422 |
SearchQA | 582261 |
HotpotQA | 85000 |
발열 | 109810 |
Arxiv | 2358545 |
Wikipedia | 20745403 |
PubMed | 20000000 |
미라클 엔 페어 | 9016 |
DBPedia 제목-본문 쌍 | 4635922 |
합성: 쿼리-위키백과 구절 | 1879093 |
합성: 사실 확인 | 9888 |
IBM: 소프트웨어 지원 3배 확대 | 40290 |
IBM: IBM Docs(제목-본문) | 474637 |
IBM: IBM 지원(제목-본문) | 1049949 |
사용량
# make sure you’ve sentence transformers installed
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('path_to_slate_model')
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."]
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)
print(util.cos_sim(query_embeddings, passage_embeddings))
이 모델의 최대 시퀀스 길이는 512토큰입니다.
평가
기준선
공정한 비교를 위해 다음 기준선과 비교합니다:
BM25(tf-idf 기반 기존 모델)
ELSER(Elastic에서 제공하는 상용 검색 알고리즘)
all-MiniLM-l6-v2: 인기있는 오픈 소스 문장 변환기 모델입니다. 이 모델은 slate.30m.english.rtrvr와 동일한 아키텍처를 공유하며 상업용 라이선스 없이 더 많은 데이터로 학습되었습니다. 자세한 내용은 허깅페이스 모델 카드를 참조하세요
E5-base: BEIR 벤치마크에서 매우 우수한 성능을 보이는 최신 오픈 소스 트랜스포머 모델입니다. 기본 사이즈 모델이며, slate.125m.english.rtrvr와 동일한 아키텍처를 가지고 있습니다. [참고: 왕 et.al.., 2022: 약한 감독 대비 사전 학습을 통한 텍스트 임베딩]. 허깅페이스 모델 카드
E5-small: 오픈 소스 E5 제품군 내의 더 작은 모델입니다. 이 모델의 임베딩 크기는 slate.30m.rtrvr(384)와 일치하지만 레이어가 12개이므로 더 크고 약간 느립니다. [참고: 왕 et.al.., 2022: 약한 감독 대비 사전 학습을 통한 텍스트 임베딩]. 허깅페이스 모델 카드
BGE-base: 768 임베딩 크기에 대해 BEIR 벤치마크에서 최고의 성능을 자랑하는 최신 오픈 소스 변압기 모델입니다. 허깅페이스 모델 카드
BGE-small: 384 임베디드 크기에서 BEIR 벤치마크에서 최고의 성능을 자랑하는 최신 오픈 소스 변압기 모델입니다. 허깅페이스 모델 카드
또한 이 모델들의 성능을 이전 버전의 슬레이트 모델인 slate.125m.english.rtrvr-012024 및 slate.30m.english.rtrvr-012024와 비교합니다.
평가 벤치마크: BEIR(MTEB의 검색 탭)
BEIR 벤치마크는 제로 샷 설정에서 평가된 15개의 오픈 소스 검색 작업으로 구성되어 있습니다. BEIR은 9가지 검색 작업을 포함해 다양성에 중점을 두었습니다: 사실 확인, 인용 예측, 중복 질문 검색, 논거 검색, 뉴스 검색, 질문 답변, 트윗 검색, 바이오-의료 IR, 기업 검색 등입니다. 또한 다양한 텍스트 도메인의 데이터 세트, 광범위한 주제(예: Wikipedia)와 전문 주제(예: COVID-19 출판물), 다양한 텍스트 유형(뉴스 기사 vs. 트윗), 다양한 크기의 데이터 세트(3.6k - 15M 문서), 다양한 쿼리 길이(평균 쿼리 길이 3~192단어) 및 문서 길이(평균 문서 길이 11~635단어)를 가진 데이터 세트 등 다양한 데이터 세트가 있습니다. BEIR은 정규화된 누적 할인 이득(구체적으로는 nDCG@10) 지표를 평가에 사용합니다.
긴 NQ
Long NQ는 전체 RAG 파이프라인을 평가하기 위해 설계된 IBM 데이터 집합으로, NaturalQuestions 데이터 집합의 하위 집합을 기반으로 합니다. 개발자 세트에는 2,345개의 Wikipedia 문서에 포함된 178,891개의 구절로 구성된 300개의 답변 가능한 질문이 있습니다. 또한 각 문제와 관련된 골드 위키백과 구절도 제공합니다. 검색하는 동안 모든 문제에 대해 말뭉치에서 관련 골드 통로를 얻는 것이 과제입니다.
결과
모델 | BEIR-15 (NDCG@10) |
---|---|
BM25 | 42.02 |
ELSER | 49.01 |
all-miniLM-L6-v2 | 41.95 |
ES-small-v2 | 49.04 |
ES-base-v2 | 50.29 |
BGE-small | 51.68 |
BGE 기반 | 53.25 |
slate.30m.english.rtrvr 01.20.2024 | 46.91 |
slate.125m.english.rtrvr-01.20.2024 | 49.37 |
slate.30m.english.rtrvr 06.30.2024 | 49.06 |
slate.125m.english.rtrvr-06.30.2024 | 51.26 |
그림 3. BEIR 벤치마크에서의 성능 비교(MTEB 검색 탭)
모델 | LONGNQ (NDCG@10) |
---|---|
all-miniLM-L6-v2 | 58.10 |
BGE-small | 59.33 |
BGE 기반 | 61.29 |
ES-small-v2 | 61.88 |
ES-base-v2 | 63.80 |
slate.30m.english.rtrvr 01.20.2024 | 59.94 |
slate.125m.english.rtrvr-01.20.2024 | 65.01 |
slate.30m.english.rtrvr 06.30.2024 | 62.07 |
slate.125m.english.rtrvr-06.30.2024 | 66.80 |
그림 4. Long NQ 데이터 세트의 성능 비교
런타임 성능
성능 런타임은 466개의 쿼리가 있는 재순위 지정 작업에서 측정됩니다. 각 쿼리에 대해 top-100에서 얻은 BM25 구절의 순위를 다시 지정하고 모든 쿼리에 대한 평균 시간을 보고합니다. 순위 재조정은 A100_40GB GPU에서 수행되었습니다.
모델 | 시간/쿼리 |
---|---|
all-miniLM-L6-v2 | 0.18 초 |
E5-small | 0.33 초 |
E5-base | 0.75 초 |
BGE-small | 0.34 초 |
BGE 기반 | 0.75 초 |
slate.125m.english.rtrvr | 0.71 초 |
slate.30m.english.rtrvr | 0.20 초 |