«Это 15-й день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г."
Hugging face — поставщик услуг чат-ботов из Нью-Йорка, США, специализирующийся на технологии NLP. Его сообщество с открытым исходным кодом предоставляет большое количество моделей предварительного обучения с открытым исходным кодом, особенно библиотеку моделей предварительного обучения с открытым исходным кодом на github. звезда превысила 50w.
Официальная ссылка на сайт здесь:huggingface.co/
В этой статье будет использоватьсяpipelines
который предоставилQuestionAnsweringPipeline
API извлекает информацию из предложений с помощью вопросов и ответов. Хотя эффект извлечения является общим, скорость извлечения высока при небольшом объеме кода. Конкретные эффекты заключаются в следующем:
Рис. 1. Эффект извлечения модели MRC_Roberta
Рис. 2. Эффект извлечения модели QA_Roberta
Видно, что эффект извлечения модели класса QA или класса MRC все еще присутствует, а скорость очень высока, в основном 300 мс, что составляет около 0,3 с, чтобы получить ответ, поэтому мы можем получить минимальный модуль извлечения информации или вопрос. и модуль ответов с несколькими строками кода.
Pipelines
В этой статье мы кратко познакомим вас с обнимающим лицом.pipelines功能
.pipelines
это хороший и простой способ использовать модели для логического вывода. Этиpipelines
Подход — это простой API, который инкапсулирует большой объем сложного кода и предоставляет простой API, предназначенный для нескольких задач, включая анализ настроений, распознавание именованных сущностей, ответы на вопросы, генерацию текста, маскированные языковые модели и извлечение функций.
Официальная документация сайта Pieline находится здесь:официальная документация
Примеры использования см.сводка задачи.
Процесс реализации
Три шага:
1. Перейдите на страницу Hugging Face, чтобы загрузить китайские модели Bert, китайские QA или китайские модели MRC и сохранить их в указанном каталоге:
Модель MRC_Roberta:Метод объятий test.co/luhua/eat...
Модель QA_Roberta:обнимаю test.co/utwo/Roberta…
2. Загрузите Tokenizer и модель, а также то, какой Tokenizer и модель можно использовать для запроса документа.В этой статье используетсяAutoModelForQuestionAnswering
иAutoTokenizer
import time
from transformers import AutoModelForQuestionAnswering,AutoTokenizer,pipeline
import torch, json, logging
logging.getLogger().setLevel(logging.INFO)
model = AutoModelForQuestionAnswering.from_pretrained("./PretrainModel/luhua_ChinesePretrainMRC_RobertaWwmExtLarge/")
tokenizer = AutoTokenizer.from_pretrained("./PretrainModel/luhua_ChinesePretrainMRC_RobertaWwmExtLarge/")
QA_model = pipeline('question-answering', model=model, tokenizer=tokenizer)
3. Создайте конвейер, введите вопрос и текст в соответствии с форматом, чтобы получить результат.
%%time
QA_model2 = pipeline('question-answering', model=model, tokenizer=tokenizer)
QA_input = {'question': "糖尿病的坏处",
'context': "糖尿病是一组以高血糖为特征的代谢性疾病。高血糖则是由于胰岛素分泌缺陷或其生物作用受损,或两者兼有引起。长期存在的高血糖,导致各种组织,特别是眼、肾、心脏、血管、神经的慢性损害、功能障碍。"}
QA_model(QA_input)
"""
Wall time: 305 ms
{'score': 2.974448580062017e-05, 'start': 83, 'end': 92, 'answer': '慢性损害、功能障碍'}
"""
Неинтересно возвращать только один ответ, можете ли вы вернуть более одного ответа?
- Осталось настроить параметры
Пример:
Интерпретация параметров
pipeline("question-answering")
перепрыгнет кQuestionAnsweringPipeline
Этот класс, наконец, вернет словарь или список словарей.В основном мы смотрим на параметры в методе __call__.
- top_k: количество возвращаемых ответов, по умолчанию 1; если в тексте недостаточно ответов для возврата, будет возвращено меньше ответов topk
- doc_stride: управляет размером перекрывающихся блоков, по умолчанию 128.
- max_answer_len: максимальная длина прогнозируемого ответа, по умолчанию 15.
- max_seq_len: общая длина комбинированного предложения (тело + вопрос) после сегментации слов, по умолчанию 384.
- max_question_len: максимальная длина вопроса после сегментации слов, по умолчанию 64.
- handle_impossible_answer: достаточно, чтобы принять невозможное в качестве ответа, по умолчанию False
Функция очень интересная, и вы можете попробовать еще больше удовольствия НЛП — новый лучший игрок на полставки в Daydream. !