Skip to content

Compatibility between fast-plaid and next-plaid indices #51

@pau-mensa

Description

@pau-mensa

I've been trying to reuse indices that I created with fast-plaid but I haven't had success so far. The main README of next-plaid seems to imply that the indices are compatible, but here's what I've been able to find so far:

  • Residuals in fast-plaid are stored in little endian (<u1), while in next-plaid they are stored in |u1. This should be compatible (they are unsigned 8-bits after all), but seems like the memory mapping you built only accepts |u1.
  • Centroids in fast-plaid are stored in fp16, and in next-plaid they are stored in fp32.
  • next-plaid expects a config.json. fast-plaid never creates a config.json.
  • fast-plaid stores the embeddings.npy as a pickled object, while next-plaid uses npy.
  • next-plaid expects an embeddings_lengths.json (related to the previous item). Since fast-plaid uses pickled objects it never creates the embeddings_lengths.json file

Question

Do you expect compatibility between fast-plaid and next-plaid at some point or should I just stick with next-plaid and ditch fast-plaid altogether? If you don't want to support compatibility between the two libraries (which is fair in my opinion) I think you should make it a bit more clear in the README, especially since there is already a NextPlaid vs FastPlaid section.

Thanks!

Note

I did this comparison with next-plaid==1.1.3 and fast-plaid=1.4.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions