/ Модель

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

Контекст
512 токенов
Параметры
138 млн
Лицензия
MIT
Архитектура
bert · dense
Базовая модель
bert-base
Опубликована
24 авг 2024

sap-bert-ko-en

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

SapBERT-KO-EN — корейско-английская медицинская BERT-модель для сопоставления терминов и поиска синонимов в медицинских записях.

64скачиваний за 30 дней1лайквеса обновлены11 фев 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SapBERT-KO-EN — медицинская модель представлений на основе BERT, созданная разработчиком snumin44 путём дообучения klue/bert-base. Она выравнивает корейские и английские медицинские термины с помощью словаря KOSTOM и предназначена для сопоставления терминов и поиска синонимов в смешанных корейско-английских медицинских записях. Модель содержит 137,8 млн параметров, принимает текст и поддерживает контекст до 512 токенов. Для английских терминов автор отмечает преимущественную обработку на уровне букв; термины, обозначающие одно заболевание, получают более высокую оценку сходства.

Модель можно дообучить для конкретной задачи. Опубликована под лицензией MIT. В README приведены параметры обучения: одна эпоха, максимальная длина 64 токена и CLS-пулинг.

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

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

Ограничения

Английские термины преимущественно обрабатываются на уровне букв; для прикладных задач модель может потребовать дополнительного дообучения. В обучении использовалась максимальная длина 64 токена.

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

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

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

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

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

Открыть на Hugging Face

🍊 SapBERT-Ko-EN

1. Intro

한국어 모델을 이용한 SapBERT(Self-alignment pretraining for BERT)입니다.
한·영 의료 용어 사전인 KOSTOM을 사용해 한국어 용어와 영어 용어를 정렬했습니다.
참고: SapBERT, Original Code

2. SapBERT-KO-EN

SapBERT는 수많은 의료 동의어를 동일한 의미로 처리하기 위한 사전 학습 방법론입니다.
SapBERT-KO-EN는 한·영 혼용체의 의료 기록을 처리하기 위해 한·영 의료 용어를 정렬했습니다.

※ 자세한 설명 및 학습 코드: Github

3. Training

모델 학습에 활용한 베이스 모델 및 하이퍼 파라미터는 다음과 같습니다.

  • Model : klue/bert-base
  • Epochs : 1
  • Batch Size : 64
  • Max Length : 64
  • Dropout : 0.1
  • Pooler : 'cls'
  • Eval Step : 100
  • Threshold : 0.8
  • Scale Positive Sample : 1
  • Scale Negative Sample : 60

SapBERT-KO-EN에 후속 Fine-tuning을 진행하는 방식으로 특정 테스크에 적용할 수 있습니다.

※ 영어 용어의 경우 대부분 알파벳 단위로 처리합니다.
※ 동일한 질병을 가리키는 용어 간의 유사도를 상대적으로 크게 평가합니다.

import numpy as np
from transformers import AutoModel, AutoTokenizer

model_path = 'snumin44/sap-bert-ko-en'
model = AutoModel.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

query = '간경화'

targets = [
    'liver cirrhosis',
    '간경변',
    'liver cancer',
    '간암',
    'brain tumor',
    '뇌종양'
]

query_feature = tokenizer(query, return_tensors='pt')
query_outputs = model(**query_feature, return_dict=True)
query_embeddings = query_outputs.pooler_output.detach().numpy().squeeze()

def cos_sim(A, B):
    return np.dot(A, B) / (np.linalg.norm(A) * np.linalg.norm(B))

for idx, target in enumerate(targets):
    target_feature = tokenizer(target, return_tensors='pt')
    target_outputs = model(**target_feature, return_dict=True)
    target_embeddings = target_outputs.pooler_output.detach().numpy().squeeze()
    similarity = cos_sim(query_embeddings, target_embeddings)
    print(f"Similarity between query and target {idx}: {similarity:.4f}")
Similarity between query and target 0: 0.7145
Similarity between query and target 1: 0.7186
Similarity between query and target 2: 0.6183
Similarity between query and target 3: 0.6972
Similarity between query and target 4: 0.3929
Similarity between query and target 5: 0.4260

Citing

@inproceedings{liu2021self,
	title={Self-Alignment Pretraining for Biomedical Entity Representations},
	author={Liu, Fangyu and Shareghi, Ehsan and Meng, Zaiqiao and Basaldella, Marco and Collier, Nigel},
	booktitle={Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
	pages={4228--4238},
	month = jun,
	year={2021}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей