/ Модель

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

Контекст
512 токенов
Параметры
205 млн
Архитектура
bert · dense
Опубликована
1 сен 2023

lt-kn-en_familyname-linkage

ЭмбеддингиТекст → embedding4 профессии

Модель на базе BERT создаёт эмбеддинги для поиска похожих фамилий и связывания записей на каннада и английском языках.

95скачиваний за 30 дней0лайковвеса обновлены4 сен 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

96abhishekarora/lt-kn-en_familyname-linkage — модель LinkTransformer на базе sentence-transformers, разработанная для связывания записей о людях по фамилиям на каннада и английском языках. Она дообучена на bert-base-multilingual-cased с контрастивной функцией потерь SupCon на наборе из 12 105 132 записей; половина имён в данных транслитерирована. Архитектура BERT формирует плотные векторы размерности 768 с усреднением токенных представлений, а максимальная длина последовательности составляет 512 токенов.

Модель подходит для сопоставления сущностей, кластеризации и удаления дубликатов, объединения связанных записей и семантического поиска. Её можно применять и к другим задачам сходства предложений через Sentence Transformers. Модель выдаёт эмбеддинги, поэтому для принятия решения о совпадении записей требуется отдельная логика сравнения или порог. Лицензия в предоставленных данных не указана.

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

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

Ограничения

Модель ориентирована на фамилии и данные о людях на каннада и английском языках; качество на других типах текстов не подтверждено. Для определения фактического совпадения записей по эмбеддингам нужна дополнительная логика сравнения.

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

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

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

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

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

Открыть на Hugging Face

96abhishekarora/lt-kn-en_familyname-linkage

This is a LinkTransformer model. At its core this model this is a sentence transformer model sentence-transformers model- it just wraps around the class. It is designed for quick and easy record linkage (entity-matching) through the LinkTransformer package. The tasks include clustering, deduplication, linking, aggregation and more. Notwithstanding that, it can be used for any sentence similarity task within the sentence-transformers framework as well. It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search. Take a look at the documentation of sentence-transformers if you want to use this model for more than what we support in our applications.

This model has been fine-tuned on the model : bert-base-multilingual-cased. It is pretrained for the language : - kn

  • en.

This model was trained on a dataset consisting of 12105132 people and their family id. 50% of the names are alo transliterated. It was trained for 6 epochs using other defaults that can be found in the repo's LinkTransformer config file - LT_training_config.json

Usage (LinkTransformer)

Using this model becomes easy when you have LinkTransformer installed:

pip install -U linktransformer

Then you can use the model like this:

import linktransformer as lt
import pandas as pd

##Load the two dataframes that you want to link. For example, 2 dataframes with company names that are written differently
df1=pd.read_csv("data/df1.csv") ###This is the left dataframe with key CompanyName for instance
df2=pd.read_csv("data/df2.csv") ###This is the right dataframe with key CompanyName for instance

###Merge the two dataframes on the key column!
df_merged = lt.merge(df1, df2, on="CompanyName", how="inner")

##Done! The merged dataframe has a column called "score" that contains the similarity score between the two company names

Training your own LinkTransformer model

Any Sentence Transformers can be used as a backbone by simply adding a pooling layer. Any other transformer on HuggingFace can also be used by specifying the option add_pooling_layer==True The model was trained using SupCon loss. Usage can be found in the package docs. The training config can be found in the repo with the name LT_training_config.json To replicate the training, you can download the file and specify the path in the config_path argument of the training function. You can also override the config by specifying the training_args argument. Here is an example.


##Consider the example in the paper that has a dataset of Mexican products and their tariff codes from 1947 and 1948 and we want train a model to link the two tariff codes.
saved_model_path = train_model(
        model_path="hiiamsid/sentence_similarity_spanish_es",
        dataset_path=dataset_path,
        left_col_names=["description47"],
        right_col_names=['description48'],
        left_id_name=['tariffcode47'],
        right_id_name=['tariffcode48'],
        log_wandb=False,
        config_path=LINKAGE_CONFIG_PATH,
        training_args={"num_epochs": 1}
    )

You can also use this package for deduplication (clusters a df on the supplied key column). Merging a fine class (like product) to a coarse class (like HS code) is also possible. Read our paper and the documentation for more!

Evaluation Results

You can evaluate the model using the LinkTransformer package's inference functions. We have provided a few datasets in the package for you to try out. We plan to host more datasets on Huggingface and our website (Coming soon) that you can take a look at.

Training

The model was trained with the parameters:

DataLoader:

torch.utils.data.dataloader.DataLoader of length 186000 with parameters:

{'batch_size': 64, 'sampler': 'torch.utils.data.dataloader._InfiniteConstantSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}

Loss:

linktransformer.modified_sbert.losses.SupConLoss_wandb

Parameters of the fit()-Method:

{
    "epochs": 6,
    "evaluation_steps": 18600,
    "evaluator": "sentence_transformers.evaluation.SequentialEvaluator.SequentialEvaluator",
    "max_grad_norm": 1,
    "optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
    "optimizer_params": {
        "lr": 2e-06
    },
    "scheduler": "WarmupLinear",
    "steps_per_epoch": null,
    "warmup_steps": 1116000,
    "weight_decay": 0.01
}

LinkTransformer( (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False}) )


## Citing & Authors

<!--- Describe where people can find more information -->

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
2065bfc

0 моделей