Code Monkey home page Code Monkey logo

Comments (8)

Narsil avatar Narsil commented on May 29, 2024 2

I don't have a super strong opinion against making a parameter but I have multiple indicators that make me feel like it's not correct.

  • The widgets don't send parameters and I don't think it's super user friendly to make users choose (how is a random user supposed to know which one to use ? )
  • It seems to me that models are trained with a certain similarity function, so using the other one doesn't make sense. Allowing to choose seems like we're allowing users to shoot themselves in the foot by using the wrong function.

Do you think we could take upstream to fix this properly and store somewhere the information in some configuration ? That seems the cleanest way to me right now.
What do you think ?

Again, we could just add the parameter

from api-inference-community.

osanseviero avatar osanseviero commented on May 29, 2024 2

Yes, since this information is really model-dependant, having it in https://huggingface.co/sentence-transformers/multi-qa-MiniLM-L6-cos-v1/blob/main/config.json (or config_sentence_transformers.json) makes more sense than adding a parameter for users to input

from api-inference-community.

NimaBoscarino avatar NimaBoscarino commented on May 29, 2024 2

Opened up an issue for this: UKPLab/sentence-transformers#1643

I'll leave this issue open for now until there's a resolution on that ST issue, unless you think otherwise!

from api-inference-community.

NimaBoscarino avatar NimaBoscarino commented on May 29, 2024 1

For just computing sentence similarity there isn't a setting in ST, they just make you use the util.cos_sim or util.dot_score methods, like here: https://www.sbert.net/docs/usage/semantic_textual_similarity.html The dot-score method isn't documented on that page though, and it's really only mentioned in the MS-MARCO page.

the default operator is correct but sometimes you would want to override

Yup, pretty much! In their other methods, like for paraphrase mining, they have the score function set to cos_sim by default, and users can override it. I don't personally know how common using the dot-product is, but it looks like there are some use-cases https://www.reddit.com/r/MachineLearning/comments/pd6wjh/comment/haobugl

from api-inference-community.

osanseviero avatar osanseviero commented on May 29, 2024

Yes, this sounds like a good idea. This would require an additional parameter which I think it's ok. Feel free to open a PR If you want :) cc @Narsil

from api-inference-community.

Narsil avatar Narsil commented on May 29, 2024

Isn't there a setting or a config that could be used within sentence-transformers to know which similarity to use ?

It feels like this shouldn't be passed by users as they are likely to not know which operator to use.

Or is what you are implying is that the default operator is correct but sometimes you would want to override ?

from api-inference-community.

Narsil avatar Narsil commented on May 29, 2024

I also remember there was such a configuration, but while writing this pipeline, we were told that cos_sim had basically won. (FYI)

from api-inference-community.

NimaBoscarino avatar NimaBoscarino commented on May 29, 2024

That sounds good to me! config_sentence_transformers.json seems like an appropriate place for it, but at the moment ST isn't actually using it for anything other than version numbers for ST, transformers, and PyTorch, e.g. https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2/blob/main/config_sentence_transformers.json

I'll open up an issue on ST for storing the similarity function in that file, and for having the ST util methods use use it, to get input from Nils.

from api-inference-community.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.