-
Notifications
You must be signed in to change notification settings - Fork 11.3k
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
Target clean
now removes legacy binary names
#8257
Conversation
… upgrade / migration confusion arising from ggml-org#7809.
d4b48fb
to
76eefa5
Compare
Thanks for your quick response! I think this is a good step in the right direction. Eventually, maybe an official install/update script would be wise? Something along the lines of ooba? |
Good to hear, thank you! Would you be willing to share more details about how you deploy llama.cpp (do you use published Docker images, do you build locally, etc), and the particulars of how the binary name change threw you for a loop (and were difficult to catch / correct)? Thank you!
Just to be clear, you're talking about something like the install script that oobabooga has? |
You're welcome and thank you!
Happily. Also, please don't hesitate to ask me for any other help you might need. Contrary to popular belief, I'm here to help.
I don't really know what I'm doing, so criticism is appreciated.
That's the initial install script and launcher. An install script might be useful, but I'm referring to the update scripts, like update_wizard_linux.sh, which, presumably, could be designed to avoid a situation like this. There are many possible ways to handle these changes better that wouldn't screw people over. The devs just need to start taking these things more seriously (which it seems like you are and I appreciate) |
Wonderful, thank you!
This is INCREDIBLY helpful to have included, thank you! I don't have too many suggestions. You could potentially add a step to
Thanks for explaining this. This was very painful, and I agree with you -- Llama.cpp development moves super quickly, and it's incredibly difficult to keep on top of things. I used to subscribe to all PRs, but I stopped that a while ago, and I don't even try to keep up with everything anymore. It's too much. I don't know how Georgi does it as well as he does. That said, the speed and willingness to break things is a philosophical choice that cuts both ways. On the one hand, it has freed up the project to accomplish a great many things and remain at the bleeding edge far longer than many other projects. But it's a barrier to adoption in many circles (as you've noted), and I don't know where the best balance to strike is. I think that there would be space for a volunteer to write a blog / newsletter cataloging the latest updates every X weeks or so - that could be a helpful way for someone to contribute. I know I'm not the person for that, but it might help in these sorts of cases. But all that said, I'm still interested in reducing pain for these changes as much as we can. I liked when you said that this PR was a good first step, but it's clear from your explanation that this wouldn't have been enough, and we need to do more. Off the top of my head, I can think of two main approaches we could try.
This is not an ideal situation, because it would discourage migration.
The second option is only slightly more work, but I think it might be the best everyone's purposes. If there are any suggestions for a third option, I'd love to consider them.
I guess something like this might be that third option, though I haven't quite wrapped my head about how this would have helped in a binary name change sort of situation. If we add an install script, then we've changed the paradigm for what people should run to update to the newest version, and they could miss this new script as easily as they missed the binary name changes. Thanks again for your report and for thinking through this with me! I especially appreciate what you're doing with releasing quants of bleeding edge models -- that's a really valuable service! |
You're welcome. Thank you!
You're welcome and thank you again!
This is incredibly helpful, thank you! I looked up "make clean" and for the benefit of anyone reading this, this is what I found:
You're welcome and thank you.
I subscribe to a bunch of them, but far from all. I seriously doubt the majority of the userbase is as involved as I am. That's why when something hurts me, I understand there's a very good chance the average user got hurt too. This is actually what frustrates me more than anything. It's like I can feel the negative impact on the community as a whole, if that makes sense.
It truly is more than any single person can reasonably be expected to keep up with. This makes some of the devs' attitudes even more frustrating. If I can't keep up, most people won't be able to either, for many reasons.
Me neither. Some people are just super geniuses with everything else it takes.
This is not lost on me. I think people understand when breaking things is called for. I also know there are many ways to lessen, or even eliminate, the impact these breaks have on the users (and other devs, to be fair). In my opinion (and the opinion of many others, judging by the general sentiment I pick up on reddit), llama.cpp takes it too far too often. Ooba had the same reputation for a while and the end result is the userbase going elsewhere. Users matter.
Barriers to adoption are different. If you're upfront about what to expect from a project, no one should get hurt. The problem is when you make it seem like something is easy to use, establish a large userbase (in this case, llama.cpp is basically the de facto standard), and then rug pull. If you want my opinion, I think the main thing that needs to change is attitude. The elitism. Aside from that, I think breaking changes should be handled in a way that, ideally, doesn't actually break things. Usually, that's possible. But the devs too often just don't care. We have decades of software development examples to learn from and I'd argue most of these problems have been long solved. Most things don't need to break these days. And I do mean that while keeping the current pace of progress. Perhaps things might go 5% slower as devs need time to come up with ways to mitigate impact. Fortunately, I think there are solutions, that once implemented, can be effectively permanent and not require further effort.
Respectfully, I don't think that's the right approach. I mean, the readme didn't work.
And that makes you better than most of the devs I've interacted with.
I guess what I was really saying is that your attitude is the necessary first step, and it's a huge one. You can't fix a problem if you can't even acknowledge you have one. I don't think you need to do anything, but it would be appreciated.
Good idea. There are ways to encourage migration that are compatible with this.
Another good idea.
I don't know the specifics, but I'm sure it can be done. I think looking to other projects that have solved this problem is a good approach.
A (hopefully) one-time change that solves most future changes. You could maybe put notices in the current scripts. I think that's where you'll reach the most people. In general, the program itself, I believe, is the best place for notifications.
I haven't released any quants, although I've considered it. I haven't been confident enough to release anything publicly yet. Considering this past month of quants were all untrustworthy due to the currently discussed issue, I think my instincts are correct. Once I'm confident, my upload bandwidth might be a barrier (20 Mbps). |
Added step to
clean
target to remove legacy binary names to reduce confusion reported by @crashr, @mirekphd, @oldmanjk, and others when upgrading after #7809.I don't think this will take care of everything, but maybe this would help a bit -- what do y'all think?