News for hackers. Stuff that matters.
Re:If you can't reproduce the model then it's not open-source by jncfhnb on Wednesday January 17, 2024 @05:13PM (#39034294)
No it’s not. You have everything you need to modify the models to your own liking. You can explore how it works.

This analogy is bad. Models are unlike code bases in this way.

Re:If you can't reproduce the model then it's not open-source by tonyarkles on Wednesday January 17, 2024 @05:53PM (#39034754)
> You have everything you need to modify the models to your own liking.

What if I wanted to train it using only half of its training set? If the inputs that were used to generate the set of released weights are not available I can’t do that. I have a set of weights and the model structure but without the training dataset I have no way of doing that.

To riff on the parent post, I have:

    Source + Compiler => Binaries
For the vast majority of open source models I have:

    [unavailable inputs] + Model Structure => Weights
They’re not exactly the same as the source code/binary scenario because I can still do this (which isn’t generally possible with binaries):

    Model Structure + Weights + [my own training data] => New Weights
Another way to look at it is that with source code I can modify the code and recompile it from scratch. Maybe I think the model author should have used a deeper CNN layer in the middle of the model. Without the inputs I can’t do a comparison.
Re:If you can't reproduce the model then it's not open-source by jncfhnb on Wednesday January 17, 2024 @07:38PM (#39035829)
> Maybe I think the model author should have used a deeper CNN layer in the middle of the model. Without the inputs I can’t do a comparison.

You can fine tune into a different model architecture.

You’re right on not being able to retrain the model from scratch on half its data without that data but that’s likely pointless.

Re:If you can't reproduce the model then it's not open-source by tonyarkles on Wednesday January 17, 2024 @10:23PM (#39037311)
I’d be happy to be wrong about this but my understanding is that changing the architecture of the last few layers is feasible with fine-tuning but changing middle layers isn’t likely going to work very well without having the full original input set.

> likely pointless

It doesn’t take too much creativity to come up with ideas about why someone might want to do that:

- researchers who want to investigate how much the dataset can be reduced (and thus training cost) and what the accuracy penalty is

- someone who wants to for either religious or ethical reasons minimize the probability that the model was trained on pornography

- someone who’s curious about whether there’s significant redundancy in the existing input datasets

- someone who’s curious about whether there are a much smaller subset of images in the input dataset that can quickly help the first few CNN input layers converge before training the middle and output layers on the larger dataset.

Edit: I suspect the real reason they don’t want to share the input dataset is purely because a high-quality annotated dataset is a valuable commodity. While I don’t do ML work myself day-to-day, I do work with a team that does in a very niche field and I can only imagine how much effort they had to go through to get the annotated dataset that they’ve put together. Even just collecting the images for it involved many hours of drone flights in different locales around North America in varying weather and lighting.

Re:If you can't reproduce the model then it's not open-source by jncfhnb on Wednesday January 17, 2024 @11:07PM (#39037687)
Original input set is irrelevant.

You will need some data of your own of course to fill in the blanks

Edit; however conversely, you can also splice out layers from one model into another original model. It’ll take some retraining, but this works!

Re:If you can't reproduce the model then it's not open-source by anothernewdude on Wednesday January 17, 2024 @06:15PM (#39034982)
You can do the same with binaries. Can modify those all you want.

Models are the compiler + makefiles. Dataset is the code.

Re:If you can't reproduce the model then it's not open-source by jncfhnb on Wednesday January 17, 2024 @07:33PM (#39035778)
No, it’s not the same. Yes, you can technically modify binaries, but it’s not at all the preferred way to modify the program.
Re:If you can't reproduce the model then it's not open-source by anothernewdude on Thursday January 18, 2024 @07:48AM (#39041069)
Congratulations. You've almost finished understanding my comment.
Re:If you can't reproduce the model then it's not open-source by jncfhnb on Thursday January 18, 2024 @08:41AM (#39041557)
Well you’ve failed and managed to be a dick
Re:If you can't reproduce the model then it's not open-source by hn_acker on Thursday January 18, 2024 @07:17PM (#39049925)
I don't know about the OSI's open source definition [1] in general, but specific licenses might consider makefiles and build scripts to be part of the source code. (For what it's worth, the free software definition from the FSF does consider makefiles and build scripts to be part of the source code [2].)

[1] https://opensource.org/osd/

[2] https://www.gnu.org/philosophy/free-sw.html