HKU NLP / instructor-base
Milvus Integrated
작업: 임베딩
형태: 텍스트
유사성 측정법: 코사인
라이선스: Apache 2.0
차원: 768
최대 입력 토큰: 512
가격: 무료
강사 모델 제품군 소개 ## 강사 모델 제품군 소개
NKU NLP의 Instructor 모델은 지침에 따라 미세 조정된 텍스트 임베딩 모델입니다. 별도의 미세 조정이 필요 없이 작업 지침만 제공하면 다양한 도메인(과학 및 금융 등)에서 작업별 임베딩(분류, 검색, 클러스터링, 텍스트 평가 등)을 생성할 수 있습니다.
강사 모델 작동 방식 그림](https://assets.zilliz.com/Figure_How_the_Instructor_Model_works_2b174dc8aa.png)
그림: 강사 모델의 작동 방식(NKU NLP 이미지)
강사 모델은 세 가지 변형이 있습니다: [instructor-base](인스트럭터 베이스), instructor-xl, instructor-large 각 버전은 다양한 임베딩 요구에 맞게 서로 다른 수준의 성능과 확장성을 제공합니다.
인스트럭터 베이스 소개
인스트럭터-베이스는 효율성과 성능의 균형을 맞추도록 설계된 인스트럭터 모델 제품군 중 가장 작은 변형입니다. 낮은 계산 공간으로 고품질 텍스트 임베딩이 필요한 작업에 이상적입니다.
강사-베이스, 강사-XL 및 강사-Large** 비교하기
| 기능 | 인스트럭터-베이스 | 인스트럭터-라지 | 인스트럭터-엑스엘 | |
|---|---|---|---|---|
| 파라미터 크기 | 8600만 | 3억 3500만 | 15억 | |
| 임베딩 치수 | 768 | 768 | 768 | 768 |
| Avg. MTEB 점수 | 55.9 | 58.4 | 58.8 | **평균 |
인스트럭터-베이스로 임베딩을 만드는 방법
벡터 임베딩을 생성하는 방법에는 크게 두 가지가 있습니다:
- PyMilvus](https://github.com/milvus-io/pymilvus):
인스트럭터 베이스모델을 원활하게 통합하는 Milvus 용 Python SDK. - 강사 라이브러리: Python 라이브러리
InstructorEmbedding.
벡터 임베딩이 생성되면, 질리즈 클라우드(밀버스에서 제공하는 완전 관리형 벡터 데이터베이스 서비스)에 저장하여 의미적 유사성 검색에 사용할 수 있습니다. 다음은 네 가지 주요 단계입니다:
- 질리즈 클라우드 계정을 무료로 가입합니다.
- 서버리스 클러스터를 설정](https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster)하고 퍼블릭 엔드포인트 및 API 키를 발급받습니다.
- 벡터 컬렉션을 생성하고 벡터 임베딩을 삽입합니다.
- 저장된 임베딩에 대해 시맨틱 검색을 실행합니다.
파이밀버스를 통해 임베딩 생성하기
pymilvus.model.dense에서 InstructorEmbeddingFunction을 가져옵니다.
파이밀버스에서 밀버스 클라이언트 임포트
ef = 강사 임베딩 함수(
"hkunlp/instructor-base",
query_instruction="지원 문서 검색을 위한 위키백과 질문 표현:",
doc_instruction="검색할 위키백과 문서를 나타냅니다:")
docs = [
"인공 지능은 1956년에 학문 분야로 설립되었습니다.",
"앨런 튜링은 AI 분야에서 실질적인 연구를 수행 한 최초의 사람이었습니다.",
"런던의 메이다 베일에서 태어난 튜링은 영국 남부에서 자랐습니다."
]
# 문서에 대한 임베딩 생성
docs_embedings = ef.encode_documents(docs)
queries = ["인공 지능은 언제 설립되었나요",
"앨런 튜링은 어디에서 태어났나요?"]
# 쿼리에 대한 임베딩 생성하기
쿼리_임베딩 = ef.encode_queries(쿼리)
client = 밀버스클라이언트(
uri=ZILLIZ_PUBLIC_ENDPOINT,
토큰=ZILLIZ_API_KEY)
컬렉션 = "문서"
if client.has_collection(collection_name=COLLECTION):
client.drop_collection(collection_name=COLLECTION)
client.create_collection(
collection_name=COLLECTION,
dimension=ef.dim,
auto_id=True)
문서의 경우 zip(docs, docs_embeddings)에 임베딩합니다:
client.insert(COLLECTION, {"text": doc, "vector": embedding})
results = client.search(
collection_name=COLLECTION,
data = 쿼리_임베딩,
일관성_레벨="강함",
output_fields=["text"])
인스트럭터 임베딩 라이브러리를 통해 벡터 임베딩 생성하기
강사 임베딩에서 INSTRUCTOR를 가져옵니다.
pymilvus에서 MilvusClient를 가져옵니다.
model = INSTRUCTOR('hkunlp/instructor-base')
docs = [["검색할 위키백과 문서를 나타냅니다: ", "인공 지능은 1956년에 학문 분야로 설립되었습니다."]],
["검색할 위키백과 문서를 나타냅니다: ","앨런 튜링은 인공지능 분야에서 실질적인 연구를 수행한 최초의 인물입니다."],
["검색할 위키백과 문서를 나타냅니다: ","런던의 메이다 베일에서 태어난 튜링은 잉글랜드 남부에서 자랐습니다."]]]
# 문서에 대한 임베딩 생성
docs_embeddings = model.encode(docs, normalize_embeddings=True)
queries = [["지원 문서를 검색하기 위한 위키백과 질문을 나타냅니다: ", "인공 지능은 언제 설립되었나요"],
["지원 문서를 검색하기 위한 위키백과 질문을 나타냅니다: ","앨런 튜링은 어디에서 태어났나요?"]]]
# 쿼리에 대한 임베딩 생성하기
query_embeddings = model.encode(queries, normalize_embeddings=True)
# 퍼블릭 엔드포인트와 API 키로 질리즈 클라우드에 연결하기
client = 밀버스클라이언트(
uri=ZILLIZ_PUBLIC_ENDPOINT,
token=ZILLIZ_API_KEY)
컬렉션 = "문서"
if client.has_collection(collection_name=COLLECTION):
client.drop_collection(collection_name=COLLECTION)
client.create_collection(
collection_name=COLLECTION,
dimension=768,
auto_id=True)
문서의 경우 zip(docs, docs_embeddings)에 임베딩합니다:
client.insert(COLLECTION, {"text": doc, "vector": embedding})
results = client.search(
collection_name=COLLECTION,
data = 쿼리_임베딩,
일관성_레벨="강함",
output_fields=["text"])
- 인스트럭터 베이스 소개
콘텐츠
원활한 AI 워크플로
임베딩부터 확장 가능한 AI 검색까지—Zilliz Cloud를 사용하면 비교할 수 없는 속도와 효율성으로 임베딩을 저장, 인덱싱 및 검색할 수 있습니다.
Zilliz Cloud를 무료로 사용해 보세요

