Closed cjrh closed 9 months ago
Thanks for the detailed report, I am indeed able to reproduce the errors you see. I also think it might be due to some bugs in the underlying NGT code and it would be worth reporting it there too. I will try to investigate NGT code.
Ok I made a reproducer using ngt-py and made a corresponding issue there ☝🏼
@cjrh @lerouxrgd this looks to be fixed in the latest release https://github.com/yahoojapan/NGT/releases/tag/v2.1.5
GitHub automatically closed this issue when I merged the PR, however there seems to be an issue remaining for Lorenz and SparseJaccard distances. I have mentioned it in the related NGT issue.
As Lorentz
and SparseJaccard
seem a bit special, I have released 0.7.0
that fixes the issue for the other distances.
Summary
I've come across a problem when calling
index.remove(id: VecId)
, but it only happens with certain distance types:NormalizedAngle
NormalizedCosine
NormalizedL2
The common theme seems to be that these are normalized?
This is the error that is produced:
Reproducer
I've made a basic project with test cases:
ngtbug.zip
These are the versions in use:
and in the lock file,
ngt-sys
is at 2.1.3.This is test case, to explain what is happening:
This is the output from the test run:
The failures in
SparseJaccard
andLorentz
are interesting but unrelated to my issue. I need to useNormalizedCosine
for my application.Comments
It is possible this is an issue with the upstream NGT library. I am not sure but I decided to ask here first. It is also possible that I have missed some detail about these distance types are supposed to be used.