spaCy中llm_ner默认调用OpenAI模型问题及替代方案咨询
问题解答
为什么llm_ner默认调用OpenAI模型?
spaCy的llm_ner组件属于spacy-llm扩展库,官方预设的默认配置是使用OpenAI的GPT模型完成NER任务,因此直接调用nlp.add_pipe("llm_ner")时,会自动加载OpenAI相关配置,进而尝试读取OPENAI_API_KEY环境变量。
如何改用HuggingFace模型(如Dolly)或spaCy内置LLM?
切换模型需要在添加llm_ner组件时传入自定义配置,明确指定模型类型与参数,具体实现如下:
1. 使用HuggingFace的Dolly模型
先安装必要依赖:
pip install spacy-llm transformers accelerate
再通过配置字典指定模型:
import spacy # 定义自定义配置,指定使用Dolly模型 config = { "llm": { "model": { "@llm_models": "spacy.Dolly.v1", "name": "databricks/dolly-v2-3b", "config": {"max_length": 1024} } } } # 加载空白英文管道并添加配置好的llm_ner组件 nlp = spacy.blank("en") llm_ner = nlp.add_pipe("llm_ner", config=config) # 测试NER功能 doc = nlp("Apple is planning to build a new factory in China.") print([(ent.text, ent.label_) for ent in doc.ents])
2. 使用spaCy内置LLM模型
spaCy-llm提供了本地模型等内置选项,配置方式类似:
import spacy # 配置使用本地部署的spaCy内置LLM模型 config = { "llm": { "model": { "@llm_models": "spacy.Local.v1", "path": "./path/to/your/local/model", "config": {"max_tokens": 512} } } } nlp = spacy.blank("en") llm_ner = nlp.add_pipe("llm_ner", config=config)
注意:使用大体积的HuggingFace或本地模型时,需确保硬件资源充足(如足够的GPU显存)。
内容的提问来源于stack exchange,提问作者ronnys
相关产品推荐
相关产品推荐

