Skip to content

What needs to be done before finalfusion 1? #46

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
danieldk opened this issue Aug 29, 2019 · 4 comments
Closed

What needs to be done before finalfusion 1? #46

danieldk opened this issue Aug 29, 2019 · 4 comments
Assignees

Comments

@danieldk
Copy link
Member

danieldk commented Aug 29, 2019

I think that for downstream users it would be great if we had a first release. Due to semver, once we release 1.0.0, we cannot break APIs anymore in 1.x.y. Basically, once someone puts

finalfusion = "1"

in their Cargo.toml, it should always work for 1.x.y. Of course, we can extend the API.

This issue is for discussing what still needs to be done before 1.0.0. What sore thumbs are sticking out. Also, we should probably look if there are any public APIs that need to be private or crate-private.

@danieldk
Copy link
Member Author

Just realized that there is one big blocker: we expose ndarray types in interfaces and ndarray is not 1 yet.

If we'd go to version 1 now, we would be stuck with ndarray 0.12.

@sebpuetz
Copy link
Member

Spontaneously adding a chunk for word frequencies comes to mind, I believe we have discussed this somewhere in the past but I forgot what the outcome was.

That would require changes to Embeddings::new which is part of the public API unless we'd want to expose some set_frequencies method post 1.0.0.

Another thing that comes to mind is that we could discuss batched embeddings lookup, taking &[&str] and returning Array2<f32>, although I'm not sure if such a method would be too niche. This probably wouldn't touch any existing API, unless we'd want an abstraction for embedding() too handle both cases.

Eliminating dead buckets would be another change where I'm unsure how it touches existing APIs. This would probably implemented by adding a new vocabulary type which in turn would probably add a new variant to the public VocabWrap enum.

There might be more ideas lurking around, I'll add those here later.

@sebpuetz
Copy link
Member

Judgin by rust-ndarray/ndarray#670 the next release will be 0.13 with no signs of a 1.x release any time soon.

@danieldk
Copy link
Member Author

One other thing that I still want to do that also extends enums is the mmap'ed variant of quantized embedding matrices. I will put this high on my todo list, because it would be nice to have this in sticker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants