/ Модель

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

Контекст
512 токенов
Параметры
138 млн
Лицензия
CC BY-NC 4.0
Архитектура
bert · dense
Опубликована
2 мар 2022

klue-bert-base-aihub-mrc

Ответы на вопросыТекст → текст3 профессии

Дообученная на корейском наборе AIHub модель BERT для извлечения ответов на вопросы из текста.

55скачиваний за 30 дней1лайквеса обновлены18 июн 2022

Бенчмарки

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

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

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

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

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

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

Bespin Global компаниясының Jaehyeong автора дообучила модель klue/bert-base для машинного чтения и ответов на вопросы по предоставленному тексту. Модель использует архитектуру BERT с головой BertForQuestionAnswering и содержит 137,8 млн параметров. Она обучалась на наборе AIHub для машинного чтения: стандартной и объяснимой частях данных; в README указаны четыре эпохи и скорость обучения 3e-5.

Модель предназначена для корейских сценариев поиска ответа в тексте. Максимальная длина контекста составляет 512 токенов, формат весов — PyTorch. Лицензия CC BY-NC 4.0 требует указания авторства и ограничивает коммерческое использование.

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

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

Ограничения

Контекст ограничен 512 токенами, поэтому длинный материал потребуется разделять на фрагменты. Лицензия CC BY-NC 4.0 не разрешает коммерческое использование.

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

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

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

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

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

Открыть на Hugging Face

Demo

Finetuning

  • Pretrain Model : klue/bert-base
  • Dataset for fine-tuning : AIHub 기계독해 데이터셋
    • 표준 데이터 셋(25m) + 설명 가능 데이터 셋(10m)
    • Random Sampling (random_seed: 1234)
      • Train : 30m
      • Test : 5m
  • Parameters of Training
{
    "epochs": 4,
    "batch_size":8,
    "optimizer_class": "<class 'transformers.optimization.AdamW'>",
    "optimizer_params": {
        "lr": 3e-05
    },
    "weight_decay: 0.01
}

Usage

## Load Transformers library
import torch
from transformers import AutoModelForQuestionAnswering, AutoTokenizer

device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')

def predict_answer(qa_text_pair):
    # Encoding
    encodings = tokenizer(context, question, 
                      max_length=512, 
                      truncation=True,
                      padding="max_length", 
                      return_token_type_ids=False,
                      return_offsets_mapping=True
                      )
    encodings = {key: torch.tensor([val]).to(device) for key, val in encodings.items()}             

    # Predict
    pred = model(encodings["input_ids"], attention_mask=encodings["attention_mask"])
    start_logits, end_logits = pred.start_logits, pred.end_logits
    token_start_index, token_end_index = start_logits.argmax(dim=-1), end_logits.argmax(dim=-1)
    pred_ids = encodings["input_ids"][0][token_start_index: token_end_index + 1]
    answer_text = tokenizer.decode(pred_ids)

    # Offset
    answer_start_offset = int(encodings['offset_mapping'][0][token_start_index][0][0])
    answer_end_offset = int(encodings['offset_mapping'][0][token_end_index][0][1])
    answer_offset = (answer_start_offset, answer_end_offset)
 
    return {'answer_text':answer_text, 'answer_offset':answer_offset}


## Load fine-tuned MRC model by HuggingFace Model Hub ##
HUGGINGFACE_MODEL_PATH = "bespin-global/klue-bert-base-aihub-mrc"
tokenizer = AutoTokenizer.from_pretrained(HUGGINGFACE_MODEL_PATH)
model = AutoModelForQuestionAnswering.from_pretrained(HUGGINGFACE_MODEL_PATH).to(device)


## Predict ## 
context = '''애플 M2(Apple M2)는 애플이 설계한 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)의 ARM 기반 시스템이다. 
인텔 코어(Intel Core)에서 맥킨토시 컴퓨터용으로 설계된 2세대 ARM 아키텍처이다. 애플은 2022년 6월 6일 WWDC에서 맥북 에어, 13인치 맥북 프로와 함께 M2를 발표했다. 
애플 M1의 후속작이다. M2는 TSMC의 '향상된 5나노미터 기술' N5P 공정으로 만들어졌으며, 이전 세대 M1보다 25% 증가한 200억개의 트랜지스터를 포함하고 있으며, 최대 24기가바이트의 RAM과 2테라바이트의 저장공간으로 구성할 수 있다. 
8개의 CPU 코어(성능 4개, 효율성 4개)와 최대 10개의 GPU 코어를 가지고 있다. M2는 또한 메모리 대역폭을 100 GB/s로 증가시킨다. 
애플은 기존 M1 대비 CPU가 최대 18%, GPU가 최대 35% 향상됐다고 주장하고 있으며,[1] 블룸버그통신은 M2맥스에 CPU 코어 12개와 GPU 코어 38개가 포함될 것이라고 보도했다.'''
question = "m2가 m1에 비해 얼마나 좋아졌어?"

qa_text_pair = {'context':context, 'question':question}
result = predict_answer(qa_text_pair)
print('Answer Text: ', result['answer_text'])  # 기존 M1 대비 CPU가 최대 18 %, GPU가 최대 35 % 향상
print('Answer Offset: ', result['answer_offset'])  # (410, 446)

Citing & Authors

Jaehyeong at Bespin Global

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

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

GPU в ailist

Универсальный рантайм · question-answering

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

Подбираем GPU…

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

0 моделей