Aws lambda 如何在没有管道的情况下运行变压器?

Aws lambda 如何在没有管道的情况下运行变压器?,aws-lambda,pipeline,huggingface-transformers,Aws Lambda,Pipeline,Huggingface Transformers,我发现自己正在处理一个不支持多处理的环境。没有变压器管道,我如何运行蒸馏器 下面是当前的代码: { "errorMessage": "[Errno 38] Function not implemented", "errorType": "OSError", "stackTrace": [ " File \"/var/task/lambda_function

我发现自己正在处理一个不支持多处理的环境。没有变压器管道,我如何运行蒸馏器

下面是当前的代码:

{
  "errorMessage": "[Errno 38] Function not implemented",
  "errorType": "OSError",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 18, in lambda_handler\n    X = nlp_qa(context=context, question=question)\n",
    "  File \"/mnt/access/transformers/pipelines.py\", line 1776, in __call__\n    features_list = [\n",
    "  File \"/mnt/access/transformers/pipelines.py\", line 1777, in <listcomp>\n    squad_convert_examples_to_features(\n",
    "  File \"/mnt/access/transformers/data/processors/squad.py\", line 354, in squad_convert_examples_to_features\n    with Pool(threads, initializer=squad_convert_example_to_features_init, initargs=(tokenizer,)) as p:\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/context.py\", line 119, in Pool\n    return Pool(processes, initializer, initargs, maxtasksperchild,\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/pool.py\", line 191, in __init__\n    self._setup_queues()\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/pool.py\", line 343, in _setup_queues\n    self._inqueue = self._ctx.SimpleQueue()\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/context.py\", line 113, in SimpleQueue\n    return SimpleQueue(ctx=self.get_context())\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/queues.py\", line 336, in __init__\n    self._rlock = ctx.Lock()\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/context.py\", line 68, in Lock\n    return Lock(ctx=self.get_context())\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/synchronize.py\", line 162, in __init__\n    SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx)\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/synchronize.py\", line 57, in __init__\n    sl = self._semlock = _multiprocessing.SemLock(\n"
  ]
}
导入json
导入操作系统
导入系统
sys.path.append(“/mnt/access”)
进口火炬
从transformers导入AutoTokenizer、AutoModelForQuestionAnswering
从变压器。管道进口管道
def lambda_处理程序(事件、上下文):
打印(“在:”,os.listdir(“/mnt/access”)之后)
代币器=自动代币器。来自预训练('/mnt/access/Dis_Save/'))
model=automodelforquestionresponding.from_pretrained('/mnt/access/Dis_Save/'))
nlp_qa=管道(“问答”,标记器=标记器,模型=模型)
context=“tra”
问题=“tra”
X=nlp_qa(上下文=上下文,问题=问题)
返回{
“状态代码”:200,
'body':json.dumps('Hello from Lambda!')
}
我现在收到的错误消息:

{
  "errorMessage": "[Errno 38] Function not implemented",
  "errorType": "OSError",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 18, in lambda_handler\n    X = nlp_qa(context=context, question=question)\n",
    "  File \"/mnt/access/transformers/pipelines.py\", line 1776, in __call__\n    features_list = [\n",
    "  File \"/mnt/access/transformers/pipelines.py\", line 1777, in <listcomp>\n    squad_convert_examples_to_features(\n",
    "  File \"/mnt/access/transformers/data/processors/squad.py\", line 354, in squad_convert_examples_to_features\n    with Pool(threads, initializer=squad_convert_example_to_features_init, initargs=(tokenizer,)) as p:\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/context.py\", line 119, in Pool\n    return Pool(processes, initializer, initargs, maxtasksperchild,\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/pool.py\", line 191, in __init__\n    self._setup_queues()\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/pool.py\", line 343, in _setup_queues\n    self._inqueue = self._ctx.SimpleQueue()\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/context.py\", line 113, in SimpleQueue\n    return SimpleQueue(ctx=self.get_context())\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/queues.py\", line 336, in __init__\n    self._rlock = ctx.Lock()\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/context.py\", line 68, in Lock\n    return Lock(ctx=self.get_context())\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/synchronize.py\", line 162, in __init__\n    SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx)\n",
    "  File \"/var/lang/lib/python3.8/multiprocessing/synchronize.py\", line 57, in __init__\n    sl = self._semlock = _multiprocessing.SemLock(\n"
  ]
}
{
“errorMessage”:“[Errno 38]功能未实现”,
“errorType”:“OSError”,
“stackTrace”:[
“文件\“/var/task/lambda_function.py\”,第18行,在lambda_处理程序中\n X=nlp_qa(context=context,question=question)\n“,
“File\”/mnt/access/transformers/pipelines.py\”,第1776行,在调用特性列表=[\n]中,
“File\”/mnt/access/transformers/pipelines.py\”,第1777行,在“班”中将示例转换为特征(\n“,
“File\”/mnt/access/transformers/data/processors/squad.py\”,第354行,在“将示例”转换为“特征”中,将池(线程,初始值设定项=squad\u convert\u示例”转换为“特征”\u init,initargs=(令牌设定项,))作为p:\n“,
“File\”/var/lang/lib/python3.8/multiprocessing/context.py\”,第119行,在池\n返回池中(进程、初始值设定项、initargs、maxtasksperchild,\n“,
“File\”/var/lang/lib/python3.8/multiprocessing/pool.py\”,第191行,在\uuuu init\uuu\n self.\u setup\u queues()\n中,
“File\”/var/lang/lib/python3.8/multiprocessing/pool.py\”,第343行,在\u setup\u queues\n self.\u inqueue=self.\u ctx.SimpleQueue()\n中,
“文件\”/var/lang/lib/python3.8/multiprocessing/context.py\”,第113行,在SimpleQueue中\n返回SimpleQueue(ctx=self.get\u context())\n“,
“File\”/var/lang/lib/python3.8/multiprocessing/queues.py\”,第336行,在\uuuu init\uuun self.\u rlock=ctx.Lock()\n中,
“文件\”/var/lang/lib/python3.8/multiprocessing/context.py\”,第68行,在Lock\n return Lock(ctx=self.get\u context())中\n“,
“File\”/var/lang/lib/python3.8/multiprocessing/synchronize.py\”,第162行,在\uuuuu init\uun SemLock.\uuuu init\uuuu(self,信号量,1,1,ctx=ctx)\n中,
文件\“/var/lang/lib/python3.8/multiprocessing/synchronize.py\”,第57行,在\uuuu init\uuu\n sl=self.\u semlock=\u multiprocessing.semlock(\n)
]
}
其他代码:

从transformers导入AutoTokenizer、AutoModelForQuestionAnswering
进口火炬
导入json
导入系统
sys.path.append(“/mnt/access”)
代币器=自动代币器。来自预训练(“/mnt/access/Dis\u Save/”)
model=automodelforquestionresponding.from_pretrained(“/mnt/access/Dis_Save/”,return_dict=True)
def lambda_处理程序(事件、上下文):
text=r“”

即使在单核环境中,管道也应该工作。如果您收到错误消息,请包括一条错误消息。请查看此消息以获取抽取式问题回答。多处理与Transformers管道有什么关系?@cronoik“errorMessage”:“[Errno 38]函数未实现”,“errorType”:“OSError”,“stackTrace”:[“File\”/var/task/lambda_function.py\”,第18行,在lambda_handler\n X=nlp_qa(context=context,question=question)\n“,@cronoik关于多处理是导致无法工作的原因……AWS支持人员告诉我……这就是我的全部know@cronoik是的,给你。