迁移学习被称为“NLP领域的ImageNet时刻”。近期研究表明,模型可以利用从海量数据样本中提取的详细、具备上下文感知的语言知识进行初始化。本演讲将解释spaCy对高效易用迁移学习的新支持,并展示如何利用标注工具Prodigy快速启动新的NLP项目。
NLP一直难以超越“词袋”模型的局限。Word2Vec(以及GloVe、FastText等)让我们能够预训练词义。如何学习词汇在上下文中的含义?或者整个句子的含义?
采纳研究中已验证有效的方法,提供快速、生产就绪的实现。性能目标:每秒处理10,000词。生产模型需要运行成本低廉(且无需强大的GPU)。
训练CNN基于上下文预测每个词的向量。不预测确切的词,而是预测其大致含义——这要简单得多!含义表示通过Word2Vec、GloVe或FastText学习。
$ pip install spacy-nightly
$ spacy download en_vectors_web_lg
$ spacy pretrain ./reddit-100k.jsonl en_vectors_web_lg ./output_dir
$ spacy train en ./model_out ./data/train ./data/dev --pipeline tagger,parser --init-tok2vec ./output_dir/model-best.t2v
✓ Saved best model to ./model_out/model-bestimport spacy
nlp = spacy.load("./model_out/model-best")
doc = nlp("This is a sentence.")
for token in doc:
print(token.text, token.pos_, token.dep_)使用GloVe | 使用LMAO | LAS分数 |
|---|---|---|
❌ | ❌ | 79.1 |
✅ | ❌ | 81.0 |
❌ | ✅ | 81.0 |
✅ | ✅ | 82.4 |
对比参考:某机构'17论文为82.3,某机构'18论文为83.9,模型大小仅3MB。
$ prodigy ner.teach product_ner en_core_web_sm /data.jsonl --label PRODUCT
$ prodigy db-out product_ner > annotations.jsonl更快速地尝试更多想法。大多数想法不会成功——但少数会大获成功。在尝试规模化之前先找出有效的方法。构建完全自定义的解决方案,避免被某机构锁定。FINISHED
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。