Ошибка сегментации при использовании faiss `index.search ()` in fastapiPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка сегментации при использовании faiss `index.search ()` in fastapi

Сообщение Anonymous »

Я пытаюсь выполнить индексный поиск, учитывая вектор в индексе FAISS, который сохраняется на диске и читается в память. Это происходит в функции, которая называется в конечной точке с использованием FastApi.

Код: Выделить всё

# Endpoint
@app.get('/neighbours', response_model=Neighbours)
async def get_neighbours(case: str, ids: str, request: Request):
"""
Retrieves a set of neighbors for a single id
"""
id_list = ids.split(';')
return Neighbours(result=get_neighbours_from_id(case, [int(id) for id in id_list]))
< /code>
# Functions and objects
class Neighbour(BaseModel):
id: int
neighbours: List[int]

class Neighbours(BaseModel):
result: List[Neighbour]

def get_neighbours_from_id(case, ids):

case_path = validate_case_path(case)

index = read_index(case_path.as_posix())
# The above works well, the index is loaded properly.

vec = index.reconstruct_n(0, 1)
# This also works, I can see the vector being reconstructed.

faulthandler.enable()
faulthandler.dump_traceback()
# Enabling faulthandler for the traceback

d, i = index.search(vec, 1)
# This is where the code crashes.
< /code>
Код вылетает, когда я пытаюсь выполнить поиск по загруженному индексу с учетом реконструированного вектора, со следующим Traceback: < /p>
Current thread 0x000000010781adc0 (most recent call first):
File "/../api/app/vectors.py", line 37 in get_neighbours_from_id
File ".../api/service.py", line 87 in get_neighbours
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/fastapi/routing.py", line 160 in run_endpoint_function
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/fastapi/routing.py", line 227 in app
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/starlette/routing.py", line 61 in app
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/starlette/routing.py", line 259 in handle
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/starlette/routing.py", line 656 in __call__
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 18 in __call__
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/starlette/exceptions.py", line 71 in __call__
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/starlette/middleware/cors.py", line 84 in __call__
File ".../pypoetry/virtualenvs/env1-py3.8/lib/python3.8/site-packages/starlette/middleware/base.py", line 34 in coro
File ".../anaconda3/lib/python3.8/asyncio/events.py", line 81 in _run
File ".../anaconda3/lib/python3.8/asyncio/base_events.py", line 1859 in _run_once
File ".../anaconda3/lib/python3.8/asyncio/base_events.py", line 570 in run_forever
File ".../anaconda3/lib/python3.8/asyncio/base_events.py", line 603 in run_until_complete
File ".../anaconda3/lib/python3.8/asyncio/runners.py", line 43 in run
File ".../run_service.py", line 19 in 
Fatal Python error: Segmentation faultFatal Python error: Fatal Python error:

Segmentation faultFatal Python error:
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
Traceback заставляет меня думать, что это что-то связано с Asyncio или многопоточным чтением в FastApi?

Код: Выделить всё

import faiss

index = faiss.read_index("my_index.index")

vec = index.reconstruct_n(0, 1)

d, i = index.search(vec, 1)

print(i)
# Works properly.
Я рассмотрел эту проблему, но, похоже, она зафиксирована в новых версиях Faiss, и это то, что я использую.
Большое спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/721 ... in-fastapi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Faiss Index.search возвращает разные результаты после сохранения и загрузки в файловую систему
    Anonymous » » в форуме Python
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Faiss DB Vector Search
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Faiss DB Vector Search
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • ValueError: клиент должен быть экземпляром pinecone.index, Got
    Anonymous » » в форуме Python
    0 Ответы
    82 Просмотры
    Последнее сообщение Anonymous
  • Почему -webkit-appearance: никто не требуется для стилирования ввода [type = "search"] ::-webkit-search-cancel-button
    Anonymous » » в форуме Html
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»