coder/hnsw

Persistence / serialization

Closed this issue · 4 comments

As graph construction as a high constant factor due to all the vector comparison and heap operations, applications may experience significant speedup if they can re-use graph states between program sessions.

Implementing this cleanly will be quite an undertaking so I'll leave it as an open issue and pursue if there are interested users.

@ammario I see there is a help-wanted label, but it was added by the bot. Would you like help on this?

@bearrito I'll take a stab at this today and tomorrow.

@bearrito No worries, it's not a pressing need.I found this project via https://golangweekly.com/issues/507 and I've worked with HNSW via FAISS and this looked like an interesting issue to contribute to.

I had the implementation mostly worked out in my head.
e32962b brings it to life.