Torrents should really be the preferred method for distributing AI model weights. Why rely on a single point of failure like Hugging Face? BitTorrent was made for exactly this.
In my experience public torrents often die as they grow older. It doesn't help that BitTorrent V1 makes long term seeding annoying, and BitTorrent V2 is almost never used.
I never understood this, is there anything that makes it difficult for the original uploader, the one that supposedly offers the file directly, to offer a torrent instead for the same amount of time?
As far as perennity is concerned it seems strictly better.
The problems begin with taking 5-10 minutes to locate a file on the network. That's right, when you ask for a file it takes 5-10 minutes. Also if the file isn't in the network at all then it never terminates.
Nobody noticed because everyone just used the central web gateway that cached every file anyone ever accessed.
> Distros are a bad use case for P2P anyway since you depend on upstream as soon as you start upgrading and installing packages.
This is true for any distribution method not just p2p. You can even download a nightly through torrents so what does it matter how the data is transferred if it’s always going to require `apt update`?
Yeah, I just use the "netinstaller" ISOs since it's much smaller and never needs to be updated. If I had a need for air-gapped/offline installs I'd either download a larger ISO or just manually install packages from .deb as needed.
You can trivially have storage deduplication for the files served via torrent, transparent to the protocol. The most trivial version of this that you can do today with pretty much any client is having a single directory containing files serving multiple overlapping torrents.
I don't see why it would be. It's transparent to other clients just like it is to the protocol. It cannot be more complex than alternatives by construction.
Yes, models are a good use for P2P especially if everyone agrees to share the same torrent and someone (or a cohort) commit to seeding for the long haul.
Well, for a torrent to stay healthy, users have to seed after download, so it can't possibly have the same UX as a standard browser file download unless you want to either kill the ecosystem or hide from the user what is consuming upload bandwidth.
That said, for large files, I much prefer the UX of a well-designed torrent client like Transmission to my web browser. If nothing else, the downloads are reliably resumable.
> I much prefer the UX of a well-designed torrent client like Transmission to my web browser. If nothing else, the downloads are reliably resumable.
Brave browser had BitTorrent client built in for a while. I tried it a couple of times as I already use Brave for web browsing on my laptop. It was a very confusing BitTorrent client. I struggled to use it, and wasted time waiting for a download to complete only to not be able to find where the files were and then they disappeared. Using a decent BitTorrent client like you say is much preferable to the one that they had in Brave browser.
The biggest problem with BTv1 was the lack of per-file checksumming, and swarm merging (i.e. individual files have shared seeding pools across torrents). BTv2 specs the latter, but I think only BiglyBT actually implements it. Having both of those features from the get-go would've gone a LONG way to fixing the dead torrent problem.
Because history is path-dependent, as engineers keep learning over and over again. It doesn't matter whether Plan9 is theoretically superior to Linux - we're all on Linux and nobody's porting all the apps over.
HF is meant to be a single point of control. AI models and Linux distros aren't usually for normies, so distribution via torrents would make sense, especially to save the provider some bandwidth. Ubuntu has been offering torrent downloads for ages. No mention of torrents on HF. I believe most downloads will soon be account/EULA-walled.
ages ago I tried using IPFS to more or less accomplish this, I imagined it to act more like a weights/training data network fs that everyone would be able to participate in.
Yazi, If, and Ranger file managers use it to display images inline. Euporie allows you to run a graphical Jupyter console session.
Sixel is a very old standard and has been used to display graphics in terminals since the 80s. It fell out of favor when high-resolution bitmapped desktop environments became mainstream (and affordable), but it is still useful if you are doing remote console work and don't want to set up network hoops with ad hoc HTTP servers just to view a remote diagram.
That’s orders of magnitude faster, especially if we assume they’re not running their workloads on potatoes like mine. Is Ruby’s syntax really that much more complicated than C++, or is this a tooling problem?
I don't think the post necessarily means it took multiple hours to format the codebase, I think they're probably just saying they worked on it off-hours and landed it while no one was working so that it didn't run into merge conflicts.
I want to drop here the not very well known fact, that the SQL Standard grammar distinguishes between "SQL language identifier" and "regular identifier". According to the rules, a SQL language identifier can not end with an underscore (copied from ISO/IEC 9075-2:1999 "5.4 Names and identifiers":
<SQL language identifier> ::=<SQL language identifier start> [ { <underscore> | <SQL language identifier part> }... ]
<SQL language identifier start> ::= <simple Latin letter>
<SQL language identifier part> ::= <simple Latin letter> | <digit>
So, using names with trailing underscore should always be safe.
I know but it's not really a great way of running and developing apps, that's what I mean. The best tool for it is visual studio (full version) which doesn't run on Linux. And you have to run the bytecode interpreter. Whether it's mono or the official .net doesn't really matter.
I'd rather use something open like python, go etc. And most people do, there's few Linux apps that use .net. Microsoft didn't even use it for visual studio code.
Your arguments are all over the place. The Mono project is practically dead. Official .NET runs on Linux without issues. It uses the modern CoreCLR runtime on Linux. Some other targets, like WASM, still use a runtime based on Mono, but CoreCLR has been used on Linux for nearly a decade. Best IDE for it is JetBrains Rider (by far) which runs on Linux. It uses JIT compiler, not interpreter. For CLI tools, AOT compilation is also supported, which compiles to machine code like Go/C++/Rust do. Also, .NET is open. The only issue is that primary development is done by a single corporation.
FWIW the dotnet shop I work for has moved entirely to running on Linux Kubernetes in production and issues M series macbooks (with Jetbrains Rider licenses) to developers. The last Windows Server VM was decommissioned in 2019.
Now that you say it, I think our iPad doesn't have GPS indeed. The only app that required it and that we were using was the star map. Since we used the iPad at home it worked for us to just enter our position once manually.
Giving employees stock options does not solve the "employes should own the company" problem, when there is a market to sell the stock. Shareholders and employees have different goals and interests regarding the company. For example, the employees they may have to decide on the elimination of their own jobs in order to secure the value of their stock holdings (which btw. would make the company not owned by their employees anymore)
A more interesting approach would be a model where being a employee automatically gives you a vote on company wide decisions including. the distribution of profits, just how being a cititzen of a democratic country gives you a vote on the fate of your country (similar to the Mondragon Corporation in Spain)
so in the extreme case, the employees can decide to return 99% profits to themselves and return 1% to shareholders? It sounds cute but will be hard to make it work when incentives are not aligned well. Just like Communism sounds good in theory and everyone with a kind heart will like more equality but in practice, it destroys the entire cake.
I'm also interested. Setting up a passwordless SSH account for some public service sounds like a good way to give your machine away to North Korean hackers, because you forgot to set someting in /etc/sshd to "no".
Is there a usable description somewhere on how to do this safely?