Live data from Hacker News

Snorkel AI: Putting Data First in ML Development

snorkel.ai

11–20 of 67 posts

Re: Snorkel AI: Putting Data First in ML Development

#11
I have a question for the snorkel folks if they're lurking here. With noisy label functions for large amounts of data, I could easily see the cases where the label functions fail correlating with classes that are already having a hard time (disadvantaged/underrepresented/marginalized groups, etc). Has there been any work on using these tools while making sure to avoid dangerous biases? It seems like the kind of tool that could amplify problems while still being really useful for an average case.

Re: Snorkel AI: Putting Data First in ML Development

#12
One of the things I’m really curious about is how Snorkel deals with poor labelling functions. More generally, labelling functions are another data source for the model and are just as susceptible to corruption and other real world issues like completeness, bias, counter factual issues and repetition. Perhaps even more so because these are manually constructed. For example, you can imagine that the person writing labelling functions writes effectively the same rule many times over. My understanding of the paper is that Snorkel would then weight this repeated labelling very heavily. I think weak supervision techniques (at least the ones under the Hazy Research umbrella) require a degree of skill in machine learning that is easy to underestimate if you just think about the problem as an issue of domain understanding (or writing labelling functions in Snorkel terms)

Re: Snorkel AI: Putting Data First in ML Development

#13
post #5

Earlier quoted context omitted.

Labels are knowledge about data. If you already know some rules that work reasonably well based on your domain experience, then Snorkel lets you capture those as "labeling functions" that may not cover the whole ground or can be "noisy". Snorkel can then build a model to label your data accounting for the "noise". Combining that with some "gold" labels (done by humans), you can use the generated labels on a large dat…

is not this done for years and called synthetic data generation, simulation etc.

Not data generation. Label generation. .. but the charitable interpretation of your question is valid - we've been doing such ensembling to make higher quality models for some time now. It's getting some good structure, practice and tooling around it is what I feel.

Re: Snorkel AI: Putting Data First in ML Development

#14
post #12

One of the things I’m really curious about is how Snorkel deals with poor labelling functions. More generally, labelling functions are another data source for the model and are just as susceptible to corruption and other real world issues like completeness, bias, counter factual issues and repetition. Perhaps even more so because these are manually constructed. For example, you can imagine that the person writing lab…

My understanding is different. I think you are talking about correlated data source. Snorkel's surprising innovation is that it does NOT overweigh correlated data source.

Re: Snorkel AI: Putting Data First in ML Development

#15
I spent some time trying Snorkel (the open source version) and its predecessor DeepDive.

It was extremely complicated to get it to do anything beyond the demos, and I was never successful to get it to do anything useful.

I ended up implementing some of the ideas myself, but I can't say I had any great success.

Re: Snorkel AI: Putting Data First in ML Development

#17
What does it actually do? I know "label data" but anything can do that.

Is it just a pipeline system with some helpers for running a couple of ML related functions?

Is it UI based?

Where do you run it?

I know these areas well and got nearly nothing from reading the splash page on the site.

Re: Snorkel AI: Putting Data First in ML Development

#18

What does it actually do? I know "label data" but anything can do that. Is it just a pipeline system with some helpers for running a couple of ML related functions? Is it UI based? Where do you run it? I know these areas well and got nearly nothing from reading the splash page on the site.

I also have problems understanding what exactly it does. I just briefly skimmed the paper, but it seems like the idea is as follows. Assuming you don't have ground truth labels for your data:

1. Generate many different nosiy labels for your data by writing functions. These don't need to be correct, but they should make uncorrelated errors. They are basically domain knowledge you have of your data.

2. Snorkel takes the output of these functions, and based on their (dis)agreement, builds a generative probabilistic model to uncorrelate your labels, which may have had some overlap in the errors.

3. You train your final discriminative model on the output of that probabilistic model.

So, the main idea is to create many noisy labels instead of relying on a single high-quality label and Snorkel does the hard work of figuring out how to smartly combine these labels so you can train on something clean.

Re: Snorkel AI: Putting Data First in ML Development

#19
post #8

Does anyone use Snorkel ( https://github.com/snorkel-team/snorkel )? From what I can tell, it seems like a research product. Not sure if any company uses them in a production environment.

There are some case studies on the website [0], but I would be wary of them. My experience from working in these kind of research environments is that the case studies are consulting jobs where a few PhD students do work for a company, and in return you can use the company name and write on your website whatever you want. They are probably not actually using the product. I'd be interested to hear about actual users and their experience.

[0] https://www.snorkel.ai/case-studies

Re: Snorkel AI: Putting Data First in ML Development

#20
post #14
post #12

One of the things I’m really curious about is how Snorkel deals with poor labelling functions. More generally, labelling functions are another data source for the model and are just as susceptible to corruption and other real world issues like completeness, bias, counter factual issues and repetition. Perhaps even more so because these are manually constructed. For example, you can imagine that the person writing lab…

My understanding is different. I think you are talking about correlated data source. Snorkel's surprising innovation is that it does NOT overweigh correlated data source.

So, I am specifically talking about the scenario where all your labelling functions are highly correlated and there is little or no ground truth data to come up with empirical weights for each of the labelling functions. An example is the scenario where you have the label functions: x>5, x>4.99, x>5.01 for some feature x. I am really struggling to see how Snorkel can correct for the correlation, especially given the relatively simple generative model in section 2.2 of the paper. https://arxiv.org/pdf/1711.10160.pdf
Post reply on HN