HKU NLP / instructor-base
Milvus Integrated
Задача: Встраивание
Модальность: Текст
Метрика сходства: Косинус
Лицензия: Apache 2.0
Размерности: 768
Максимальное количество входных токенов: 512
Цена: Бесплатно
Введение в семейство моделей инструкторов
Модель Instructor от NKU NLP - это модель встраивания текста с точной настройкой инструкций. Она создает вкрапления для конкретных задач (классификация, поиск, кластеризация, оценка текста и т. д.) в различных областях (например, наука и финансы), просто предоставляя инструкции по задаче - дополнительная тонкая настройка не требуется.
Рисунок "Как работает модель инструктора"
Рисунок: Как работает модель инструктора (иллюстрация NKU NLP)
Модель инструктора существует в трех вариантах: instructor-base, instructor-xl и instructor-large. Каждая версия предлагает различные уровни производительности и масштабируемости для удовлетворения различных потребностей во встраивании.
Введение в instructor-base
instructor-base - это самый маленький вариант семейства моделей Instructor, разработанный с учетом баланса эффективности и производительности. Он идеально подходит для задач, требующих высококачественных текстовых вкраплений при меньших вычислительных затратах.
Сравнение instructor-base, instructor-xl и instructor-large
| Feature | instructor-base | instructor-large | instructor-xl | |
|---|---|---|---|---|
| Размер параметров | 86 миллионов | 335 миллионов | 1,5 миллиарда | |
| Размер вставки | 768 | 768 | 768 | 768 |
| Avg. MTEB Score | 55,9 | 58,4 | 58,8 |
Как создавать вкрапления с помощью instructor-base.
Существует два основных способа создания векторных вкраплений:
- PyMilvus: Python SDK для Milvus, который легко интегрирует модель
instructor-base. - Библиотека Instructor: библиотека Python
InstructorEmbedding.
После создания векторных вкраплений их можно хранить в Zilliz Cloud (полностью управляемый сервис векторных баз данных на базе Milvus) и использовать для поиска семантического сходства. Вот четыре ключевых шага:
- Зарегистрируйтесь для бесплатной учетной записи Zilliz Cloud.
- Настройте бессерверный кластер и получите Публичную конечную точку и ключ API.
- Создайте коллекцию векторов и вставьте в нее свои векторные вкрапления.
- Запустите семантический поиск по сохраненным вкраплениям.
Создание вкраплений с помощью PyMilvus
from pymilvus.model.dense import InstructorEmbeddingFunction
из pymilvus import MilvusClient
ef = InstructorEmbeddingFunction(
"hkunlp/instructor-base",
query_instruction="Представьте вопрос Википедии для поиска подтверждающих документов:",
doc_instruction="Представьте документ Википедии для поиска:")
docs = [
"Искусственный интеллект был основан как академическая дисциплина в 1956 году",
"Алан Тьюринг был первым человеком, который провел значительные исследования в области искусственного интеллекта",
"Тьюринг родился в Майда-Вейл, Лондон, и вырос на юге Англии".
]
# Генерируем вкрапления для документов
docs_embeddings = ef.encode_documents(docs)
запросы = ["Когда был основан искусственный интеллект",
"Где родился Алан Тьюринг?"]
# Генерируем вкрапления для запросов
query_embeddings = ef.encode_queries(queries)
client = MilvusClient(
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,
dimension=ef.dim,
auto_id=True)
для doc, embedding в zip(docs, docs_embeddings):
client.insert(COLLECTION, {"text": doc, "vector": embedding})
results = client.search(
имя_коллекции=КОЛЛЕКЦИЯ,
data=query_embeddings,
consistency_level="Strong",
output_fields=["text"])
Генерируем векторные вкрапления с помощью библиотеки InstructorEmbedding
from InstructorEmbedding import INSTRUCTOR
из pymilvus import 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)
# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
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,
dimension=768,
auto_id=True)
для doc, embedding в zip(docs, docs_embeddings):
client.insert(COLLECTION, {"text": doc, "vector": embedding})
results = client.search(
имя_коллекции=КОЛЛЕКЦИЯ,
data=query_embeddings,
consistency_level="Strong",
output_fields=["text"])
- Введение в семейство моделей инструкторов
- Введение в instructor-base
- Как создавать вкрапления с помощью **instructor-base**.
Контент
Беспрерывные AI рабочие процессы
От встраиваний до масштабируемого AI поиска—Zilliz Cloud позволяет вам хранить, индексировать и извлекать встраивания с непревзойденной скоростью и эффективностью.
Попробуйте Zilliz Cloud Бесплатно

