Как превратить существующую модель 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, но как эта модель была создана в первую очередь?
Вы видели быстрый старт ? Предварительно обученные модели создаются с использованием конфигураций, аналогичных тем, что вы получаете от этого.