텍스트 임베딩(워드 임베딩)은 자연어 처리(NLP) 분야의 기본 기술로 텍스트를 의미 공간에 매핑하고 이를 조밀한 벡터 표현으로 변환할 수 있습니다. 이 방법은 정보 검색(IR), 질문 답변, 텍스트 유사성 계산, 추천 시스템 등 다양한 NLP 작업에 널리 사용되었습니다. 텍스트 임베딩을 통해 텍스트의 의미와 관계를 더 잘 이해할 수 있어 NLP 작업의 효율성이 향상됩니다.
정보 검색(IR) 분야에서 검색의 첫 번째 단계에서는 일반적으로 유사성 계산을 위해 텍스트 임베딩을 사용합니다. 이는 대규모 코퍼스에서 작은 후보 문서 세트를 호출한 다음 세밀한 계산을 수행하는 방식으로 작동합니다. 임베딩 기반 검색은 RAG(Retrieval Augmentation Generation)의 중요한 구성 요소이기도 합니다. 이를 통해 LLM(대형 언어 모델)이 모델 매개변수를 수정하지 않고도 동적 외부 지식에 액세스할 수 있습니다. 이러한 방식으로 IR 시스템은 텍스트 임베딩과 외부 지식을 더 잘 활용하여 검색 결과를 향상시킬 수 있습니다.
word2vec 및 GloVe와 같은 초기 텍스트 임베딩 학습 방법이 널리 사용되지만 정적 특성으로 인해 자연어로 풍부한 문맥 정보를 캡처하는 능력이 제한됩니다. 그러나 사전 훈련된 언어 모델이 등장하면서 Sentence-BERT 및 SimCSE와 같은 일부 새로운 방법은 BERT를 미세 조정하여 텍스트 임베딩을 학습함으로써 자연어 추론(NLI) 데이터 세트에서 상당한 진전을 이루었습니다. 이러한 방법은 BERT의 컨텍스트 인식 기능을 활용하여 텍스트의 의미와 컨텍스트를 더 잘 이해함으로써 텍스트 임베딩의 품질과 표현력을 향상시킵니다. 이러한 방법은 사전 훈련과 미세 조정의 조합을 통해 자연어 처리를 위한 대규모 말뭉치에서 더 풍부한 의미 정보를 학습할 수 있습니다.
텍스트 임베딩 성능과 견고성을 향상하려면 E5 및 BGE와 같은 고급 방법 다단계 훈련이 사용되었습니다. 그들은 처음에는 약하게 감독되는 수십억 개의 텍스트 쌍에 대해 사전 훈련된 다음 주석이 달린 여러 데이터 세트에 대해 미세 조정됩니다. 이 전략은 텍스트 임베딩 성능을 효과적으로 향상시킬 수 있습니다.
기존 다단계 방법에는 여전히 두 가지 결함이 있습니다.
1. 복잡한 다단계 학습 파이프라인을 구성하려면 많은 수의 상관 쌍을 관리하기 위해 많은 엔지니어링 작업이 필요합니다.
2. 미세 조정은 수동으로 수집된 데이터 세트에 의존하며, 이는 종종 작업 다양성과 언어 적용 범위로 인해 제한됩니다.
대부분의 방법은 BERT 스타일 인코더를 사용하고 더 나은 LLM 및 관련 기술의 교육 진행 상황을 무시합니다.
Microsoft 연구팀은 최근 이전 방법의 일부 단점을 극복하기 위해 간단하고 효율적인 텍스트 임베딩 훈련 방법을 제안했습니다. 이 접근 방식에는 복잡한 파이프라인 설계나 수동으로 구성된 데이터 세트가 필요하지 않지만 LLM을 활용하여 다양한 텍스트 데이터를 합성합니다. 이 접근 방식을 통해 그들은 거의 100개 언어로 수십만 개의 텍스트 임베딩 작업에 대한 고품질 텍스트 임베딩을 생성할 수 있었으며 전체 교육 프로세스는 1,000단계 미만으로 진행되었습니다.
논문 링크: https://arxiv.org/abs/2401.00368
구체적으로, 연구자들은 2단계 프롬프트 전략을 사용하여 먼저 LLM 브레인스토밍 후보자 작업 풀을 프롬프트한 다음, 그 다음 LLM이 풀에서 특정 작업에 대한 데이터를 생성하도록 요청합니다.
다양한 애플리케이션 시나리오를 다루기 위해 연구원들은 각 작업 유형에 대해 여러 프롬프트 템플릿을 설계하고 다양한 템플릿에서 생성된 데이터를 결합하여 다양성을 높였습니다.
실험 결과에 따르면 "합성 데이터만" 미세 조정하면 Mistral-7B가 BEIR 및 MTEB 벤치마크에서 매우 경쟁력 있는 성능을 달성하고, 합성 데이터와 주석이 추가된 데이터를 모두 추가하면 sota 성능을 달성합니다.
GPT-4와 같은 최첨단 대형 언어 모델(LLM)을 사용하여 데이터를 합성하는 것이 점점 더 주목받고 있습니다. 이는 멀티 태스킹 및 다중 언어 기능 다양성에서 모델을 향상시킬 수 있으며, 다양한 다운스트림 작업(예: 의미 검색, 텍스트 유사성 계산, 클러스터링)에서 잘 수행되는 보다 강력한 텍스트 임베딩을 훈련할 수 있습니다.
다양한 합성 데이터를 생성하기 위해 연구원들은 먼저 임베딩 작업을 분류한 다음 각 작업 유형에 대해 서로 다른 프롬프트 템플릿을 사용하는 간단한 분류법을 제안했습니다.
비대칭 작업
쿼리와 문서가 의미상 관련되어 있지만 서로 바꿔 쓰지 않는 작업을 포함합니다.
쿼리와 문서의 길이에 따라 연구원들은 비대칭 작업을 짧은-긴 매칭(상용 검색 엔진의 일반적인 시나리오인 짧은 쿼리 및 긴 문서), 긴-짧은 매칭, 짧은 -짧은 일치와 긴 긴 일치.
각 하위 범주에 대해 연구원들은 2단계 프롬프트 템플릿을 설계했습니다. 먼저 LLM에게 작업 목록을 브레인스토밍하도록 요청한 다음 작업 정의 조건의 특정 예를 생성했습니다. GPT-4의 출력은 대부분 일관되었습니다. 품질이 매우 높습니다.
사전 실험에서 연구원들은 단일 프롬프트를 사용하여 작업 정의 및 쿼리 문서 쌍을 생성하려고 시도했지만 위에서 언급한 2단계 방법만큼 데이터 다양성이 좋지 않았습니다.
대칭 작업
주로 의미는 비슷하지만 표면 형태가 다른 쿼리와 문서가 포함됩니다.
이 기사에서는 단일 언어 의미 텍스트 유사성(STS)과 이중 텍스트 검색이라는 두 가지 애플리케이션 시나리오를 연구하고, 작업 정의 이후 각 시나리오에 대해 두 가지 서로 다른 프롬프트 템플릿을 설계했습니다. 비교적 간단하므로 브레인스토밍 단계를 생략할 수 있습니다.
프롬프트 단어의 다양성을 더욱 높이고 합성 데이터의 다양성을 향상시키기 위해 연구원들은 각 프롬프트 보드에 여러 개의 자리 표시자를 추가하고 런타임에 무작위로 샘플링했습니다. 예를 들어 "{query_length}"는 Sampled from을 나타냅니다. "{5단어 미만, 5~10단어, 10단어 이상}" 세트입니다.
다국어 데이터를 생성하기 위해 연구원들은 XLM-R의 언어 목록에서 "{언어}" 값을 샘플링하여 사전 정의된 JSON을 따르지 않는 생성된 데이터에 더 많은 가중치를 부여했습니다. 형식은 구문 분석 중에 삭제됩니다. 정확한 문자열 일치를 기반으로 중복도 제거됩니다.
관련 쿼리-문서 쌍이 주어지면 먼저 원래 쿼리 q+를 사용하여 새 명령 q_inst를 생성합니다. 여기서 "{task_definition}"은 명령에 대한 한 문장 설명을 삽입하기 위한 자리 표시자입니다. 작업 기호.
생성된 합성 데이터의 경우 브레인스토밍 단계의 출력은 MS-MARCO와 같은 다른 데이터세트에 사용되며, 연구원은 파일을 수정하지 않고 작업 정의를 수동으로 생성하고 데이터세트의 모든 쿼리에 적용합니다. 끝에 있는 모든 명령 접두사.
이렇게 하면 문서 인덱스가 미리 구축되어 있고 쿼리 측면만 변경하여 수행할 작업을 사용자 정의할 수 있습니다.
사전 훈련된 LLM이 주어지면 쿼리와 문서 끝에 [EOS] 토큰을 추가한 다음 이를 LLM에 공급하여 마지막 레이어 [EOS] 벡터를 가져와 쿼리 및 문서 임베딩을 얻습니다.
그런 다음 표준 InfoNCE 손실을 사용하여 배치 내 부정 및 하드 부정에 대한 손실을 계산합니다.
여기서 ℕ은 모든 부정의 집합을 나타내고, 는 쿼리와 문서 간의 일치 점수를 계산하는 데 사용되며, t는 실험에서 0.02로 고정된 온도 하이퍼 매개변수입니다
연구원들은 Azure OpenAI 서비스를 사용하여 150,000개의 고유 명령이 포함된 500,000개의 샘플을 생성했습니다. 이 중 25%는 GPT-3.5-Turbo에서 생성되었고 나머지는 GPT-4에서 생성되었습니다. , 총 1억 8천만 개의 토큰이 소비되었습니다.
주요 언어는 영어이며, 75개 저자원 언어에 대해 총 93개 언어를 포괄하며, 언어당 평균 샘플은 약 1,000개입니다.
데이터 품질 측면에서 연구원들은 GPT-3.5-Turbo의 일부 출력이 프롬프트 템플릿에 지정된 지침을 엄격하게 따르지 않는다는 사실을 발견했습니다. 그럼에도 불구하고 전반적인 품질은 여전히 허용 가능하며 예비 수준이었습니다. 실험은 또한 이를 사용하면 데이터 하위 집합의 이점이 있음을 입증했습니다.
모델 미세 조정 및 평가
연구원들은 위의 손실을 사용하여 사전 훈련된 Mistral-7B를 1 epoch 동안 미세 조정하고 RankLLaMA의 훈련 방법을 따랐으며 순위 16의 LoRA를 사용했습니다. .
GPU 메모리 요구 사항을 더욱 줄이기 위해 경사 체크포인트, 혼합 정밀 교육 및 DeepSpeed ZeRO-3과 같은 기술이 사용됩니다.
훈련 데이터의 경우 생성된 합성 데이터와 13개의 공개 데이터 세트를 모두 사용하여 샘플링 후 약 180만 개의 예시가 생성되었습니다.
일부 이전 작업과의 공정한 비교를 위해 연구원들은 유일한 주석 감독이 MS-MARCO 장 순위 데이터 세트일 때 결과를 보고하고 MTEB 벤치마크에서 모델을 평가합니다.
아래 표에서 볼 수 있듯이, 기사에서 얻은 모델 "E5mistral-7B + 전체 데이터"는 MTEB 벤치마크 테스트에서 가장 높은 평균 점수를 달성했는데, 이는 기존 모델보다 2.4 높은 수치입니다. 이전의 가장 진보된 모델 포인트.
"합성 데이터만 있음" 설정에서는 주석이 달린 데이터가 훈련에 사용되지 않지만 성능은 여전히 매우 경쟁력이 있습니다.
연구원들은 여러 상업용 텍스트 삽입 모델도 비교했지만 이러한 모델의 투명성과 문서화가 부족하여 공정한 비교가 불가능했습니다.
그러나 BEIR 벤치마크의 검색 성능 비교 결과를 보면 학습된 모델이 현재 상용 모델보다 상당 부분 우수하다는 것을 알 수 있습니다.
다국어 검색
모델의 다국어 기능을 평가하기 위해 연구원들은 사람이 주석을 추가한 쿼리와 18개 언어의 관련성 판단이 포함된 MIRACL 데이터세트에 대한 평가를 수행했습니다.
결과에 따르면 모델은 리소스가 많은 언어, 특히 영어에서 mE5-large를 능가하고 성능이 더 우수하지만 리소스가 적은 언어의 경우 모델은 여전히 mE5-base에 비해 이상적이지 않습니다.
연구원들은 이를 Mistral-7B가 주로 영어 데이터에 대해 사전 훈련했기 때문이라고 생각합니다. 이는 예측 다국어 모델이 이러한 격차를 해소하는 데 사용할 수 있는 방법입니다.
위 내용은 수동 주석이 필요하지 않습니다! LLM은 텍스트 임베딩 학습을 지원합니다. 100개 언어를 쉽게 지원하고 수십만 개의 다운스트림 작업에 적응합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!