Как превратить существующую модель huggingface-transformers в spacy?

Я здесь, чтобы спросить вас, ребята, можно ли использовать существующую обученную модель huggingface-transformers с простором.

Первой моей наивной попыткой было загрузить его через spacy.load('bert-base-uncased'), это не сработало, потому что простор требует определенной структуры, которая понятна.

Сейчас пытаюсь понять, как пользоваться spacy-transformers библиотека, чтобы загрузить модель, создать пространственную структуру и использовать ее с этой точки как обычную модель с учетом пространства.

Я не знаю, возможно ли это вообще, потому что я ничего не нашел по этому поводу. Я пытался прочитать документацию, но все руководства, примеры и сообщения, которые я нашел, начинаются с пространной структурированной модели, такой как spacy /en_core_web_sm, но как эта модель была создана в первую очередь? Я могу поверить, что кто-то должен снова тренировать все с просторностью.

Могу я получить от вас помощь?

Спасибо.

1 ответ

Что вы делаете, так это добавляете компонент Transformer в свой конвейер и указываете имя своей модели HuggingFace в качестве параметра для него. Это описано в документации , хотя у людей возникают проблемы с ее поиском. Важно понимать, что Transformer — это только часть конвейера spaCy, и вы должны понимать, как все это сочетается друг с другом.

Чтобы извлечь из документов, вот как вы указываете пользовательскую модель в конфигурации:

      [components.transformer.model]
@architectures = "spacy-transformers.TransformerModel.v3"
# XXX You can change the model name here
name = "bert-base-cased"
tokenizer_config = {"use_fast": true}

Возвращаясь к тому, почему вам нужно понимать структуру spaCy, очень важно понимать, что в spaCy Transformers являются только источниками функций. Если ваша модель HuggingFace имеет голову NER или что-то в этом роде , она не будет работать. Поэтому, если вы используете пользовательскую модель, вам нужно будет обучить другие компоненты, такие как NER, поверх нее.

Также обратите внимание, что в spaCy есть множество встроенных моделей, отличных от Transformers. Они очень быстро обучаются и во многих ситуациях дают производительность, сравнимую с трансформерами; даже если они не столь точны, вы можете использовать встроенные модели для настройки конвейера, а затем просто заменить трансформатор.

все руководства, примеры и сообщения, которые я нашел, начинаются с пространственной структурированной модели, такой как spacy/en_core_web_sm, но как эта модель была создана в первую очередь?

Вы видели быстрый старт ? Предварительно обученные модели создаются с использованием конфигураций, аналогичных тем, что вы получаете от этого.

Другие вопросы по тегам