/ Модель

Характеристики

Контекст
131 072 токена
Параметры
494 млн
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Библиотека
transformers
Опубликована
24 авг 2024

Qwen-encoder-0.5B

Генерация текстаТекст → текст12 профессий

Двунаправленный текстовый энкодер на базе Qwen2-0.5B для классификации, ответов на вопросы и разметки текста.

64скачиваний за 30 дней10лайковвеса обновлены1 сен 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

knowledgator/Qwen-encoder-0.5B — текстовая модель Knowledgator на архитектуре Qwen2 с 494 млн параметров. Это двунаправленная версия Qwen2-0.5B, преобразованная в текстовый энкодер по подходу LLM2Vec: с двунаправленным вниманием, masked token prediction и контрастивным обучением на данных Wikipedia. Модель предназначена для извлечения контекстных представлений текста и адаптации к задачам классификации, ответов на вопросы и разметки токенов, включая распознавание именованных сущностей.

Модель работает с текстом, использует библиотеку Transformers и поддерживает контекст до 131 072 токенов. В карточке указаны английский язык и датасет Wikipedia. Указанная лицензия — Apache-2.0. README содержит примеры адаптации и дообучения под конкретные дискриминативные задачи; результатов оценки качества для отдельных задач в предоставленных материалах нет.

Сценарии применения

  • классификация текстов
  • ответы на вопросы по текстовому контексту
  • распознавание именованных сущностей
  • разметка токенов в тексте
  • извлечение контекстных представлений текста

Ограничения

README описывает возможности адаптации, но не приводит оценок качества на конкретных задачах. Для специализированных сценариев может потребоваться дообучение модели.

Для каких профессий подходит12

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

LLM2Vec: Large Language Models Are Secretly Powerful Text Encoders

LLM2Vec is a simple recipe to convert decoder-only LLMs into text encoders. It consists of 3 simple steps: 1) enabling bidirectional attention, 2) masked next token prediction, and 3) unsupervised contrastive learning. The model can be further fine-tuned to achieve state-of-the-art performance.

Overview:

This is a bi-directional version of Qwen2-0.5B trained with masked token prediction on the Wikipedia dataset. Modern decoder models offer several advantages over classical encoders like BERT:

They are pre-trained on more recent textual corpora They are trained on larger and more diverse datasets Modern decoders have better support for long-context windows Flash-attention support is available for these models

Considering these benefits, we are excited to release a series of decoder models tuned to work in a bi-directional setting. This approach combines the strengths of modern decoder architectures with the versatility of bi-directional context understanding, potentially opening up new possibilities for various natural language processing tasks, such as NER.

In comparison to original LLM2Vec we trained all weights of LLama model, it potentially improve bi-directional abilities of the model.

Installation

pip install llm2vec

Usage

from llm2vec.models import Qwen2BiModel

import torch
from transformers import AutoTokenizer

# Loading base Mistral model, along with custom code that enables bidirectional connections in decoder-only LLMs. MNTP LoRA weights are merged into the base model.
tokenizer = AutoTokenizer.from_pretrained(
    "knowledgator/Qwen-encoder-0.5B"
)

model = Qwen2BiModel.from_pretrained("knowledgator/Qwen-encoder-0.5B")

text = "The quick brown fox jumps over the lazy dog."

inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=512)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)
inputs = {k: v.to(device) for k, v in inputs.items()}

with torch.no_grad():
    outputs = model(**inputs)

last_hidden_states = outputs.last_hidden_state

Here's an improved and expanded version of the README snippet:

Adapting for Different Discriminative Tasks

Our bi-directional LLaMA model can be easily adapted for various discriminative tasks such as text classification, question answering, and token classification. To use these specialized versions, we provide a fork of LLM2Vec with additional functionality.

Installation

To get started, clone our fork of LLM2Vec and install it:

git clone https://github.com/Knowledgator/llm2vec.git
cd llm2vec
pip install -e .

Using -e flag installs the package in editable mode, which is useful for development.

Usage

Here's how to import and use the models for different tasks:

from llm2vec import (
    AutoLLMEncoderForSequenceClassification,
    AutoLLMEncoderForQuestionAnswering,
    AutoLLMEncoderForTokenClassification
)

# Load models for different tasks
classification_model = AutoLLMEncoderForSequenceClassification.from_pretrained('knowledgator/Qwen-encoder-0.5B')
question_answering_model = AutoLLMEncoderForQuestionAnswering.from_pretrained('knowledgator/Qwen-encoder-0.5B')
token_classification_model = AutoLLMEncoderForTokenClassification.from_pretrained('knowledgator/Qwen-encoder-0.5B')

Example: Text Classification

Here's a basic example of how to use the model for text classification:

from transformers import AutoTokenizer

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained('knowledgator/Qwen-encoder-0.5B')

# Prepare input
text = "This movie is great!"
inputs = tokenizer(text, return_tensors="pt")

# Get classification logits
outputs = classification_model(**inputs)
logits = outputs.logits

# The logits can be used with a softmax function to get probabilities
# or you can use torch.argmax(logits, dim=1) to get the predicted class

Fine-tuning

To fine-tune these models on your specific task:

  1. Prepare your dataset in a format compatible with HuggingFace's datasets library.
  2. Use the Trainer class from HuggingFace's transformers library to fine-tune the model.

Here's a basic example:

from transformers import Trainer, TrainingArguments
from datasets import load_dataset

# Load your dataset
dataset = load_dataset("your_dataset")

# Define training arguments
training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir="./logs",
)

# Initialize Trainer
trainer = Trainer(
    model=classification_model,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["test"],
)

# Fine-tune the model
trainer.train()

Contributing

We welcome contributions! If you have suggestions for improvements or encounter any issues, please open an issue or submit a pull request on our GitHub repository.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
bfe4312

0 моделей