Of course, there are lots of factors that can change the RAM usage: quantization, context size, KV cache. And this says nothing about whether the model will respond quickly enough to be pleasant to use.
468 karma · joined July 4, 2023
Of course, there are lots of factors that can change the RAM usage: quantization, context size, KV cache. And this says nothing about whether the model will respond quickly enough to be pleasant to use.
I'm not an expert, but let me brainstorm a bit here. Something closer to the specific correlation might be what you want? In vague terms it would measure how much the various bytes of a file are related to each other, by considering how much more likely they are to be given values taken together vs considering each byte individually.
But once again, having extremely high specific correlation might indicate a trival low-complexity example? I'd have to play around with it some more to get a good intuition for how it behaves.
Edit: It seems like this might also be very sensitive to parametrization. The specific correlation in terms of byte values would not be much more useful than the information content, because the marginal distributions aren't very interesting (eg over all files, how likely is byte #57 to be 0xf3 or whatever). It would be a better measure with more meaningful variables, or even something like a markov chain where you consider many short substrings.
Anyway, specific correlation (like information) measures a specific file. The expected specific correlation over all possible files gives the total correlation, which (like entropy) measures the whole distribution. Total correlation is also the KL divergence between the joint distribution and the product of the marginal distributions! Total correlation is also the same thing as mutual information, just generalized to more than two variables. And specific correlation is the generalization of pointwise mutual information.
If you dig deeper into the type theory, it gets really interesting and complicated because types themselves can start to include any arbitrary code. And that's where Idris comes in! But after doing a whole project on Idris in college, I agree it is way outside the overturn window. Python and typescript rightfully keep it simple.
Obviously predicting the future is hard, and we won't know where this stops till we get there. But I think a degree of skepticism is warranted.
Edit: I'll note some new models (SD3 and Flux) have a wider latent dim and seem to suffer from this problem less.
AI generated images are also biased strongly towards medium lightness. The photographer's adjusting of the tone curve may simply give it that "look".
Ironically, some older SD1/2-era models work a lot better for complete removal.
I haven't written a Rust web server since before async/await, back in the Actix days. Axum is definitely an improvement on that. But I think the async ecosystem still has a long way to go.
For a long time GNNs were pitched as a generalization of CNNs. But CNNs are more powerful because the "adjacency weights" (so to speak) are more meaningful: they learn relative positional relationships. GNNs usually resort to pooling, like described here. And you can output an image with a CNN. Good luck getting a GNN to output a graph. Topology still has to be decided up front, sometimes even during training. And the nail in the coffin is performance. It is incredible how slow GNNs are compared to CNNs.
These days I feel like attention has kinda eclipsed GNNs for a lot of those reasons. You can make GNNs that use attention instead of pooling, but there isn't much point. The graph is usually only traversed in order to create the mask matrix (ie attend between nth neighbors) and otherwise you are using a regular old transformer. Often you don't even need the graph adjacencies because some kind of distance metric is already available.
I'm sure GNNs are extremely useful to someone somewhere but my experience has been a hammer looking for a nail.
Rust's `join_all` uses `FuturesUnordered` behind the scenes, which is pretty intelligent in terms of keeping track of which tasks are ready to make progress, but it does not use tokio/async_std for scheduling. AFAICT the only thing being measured about tokio/async_std is the heap size of their `sleep` implementations.
I'd be very interesting in seeing how Tokio's actual scheduler performs. The two ways to do that are:
- using https://docs.rs/tokio/latest/tokio/task/join_set/struct.Join... to spawn all the futures and then await them
- spawn each future in the global scheduler, and then await the JoinHandles using the for loop from the appendix
As other commenters have noted, calling `sleep` only constructs a state machine. So the Appendix isn't actually concurrent. Again, you need to either put those state machines into the tokio/async_std schedulers with `spawn`, or combine the state machines with `FuturesUnordered`.
If we are asking whether MOND is useful, then the answer is probably yes. You might use it for simulations of galaxy formation where Newtonian gravity is considered a reasonable approximation today. But MOND is not a correct model of the universe. There is no place in the universe that Newtonian gravity applies, only places where the error is an acceptable trade-off for simpler calculation.
Newtonian gravity is an approximation. A perfectly acceptable one in many contexts, but still measurably incorrect.
Another comment linked to https://tritonstation.com/new-blog-page/, which is an excellent read. It makes the case that GR has never been tested at low accelerations, that is might be wrong. But we know for a fact MOND is wrong at high accelerations. Unless your theory can cover both, I don't see how it can be pitched as an improvement to GR.
Edit: this sounds a bit hostile. to be clear, I think modified gravity is absolutely worth researching. but it isn't a silver bullet
Ostensibly the patent system exists to incentivize open publishing of new technologies, but it isn't worth squat if full of vague language written by lawyers.
I do still like declarative parsing over imperative, so I wrote https://docs.rs/inpt on top of the regex crate. But Andrew Gallant gets all the credit, the regex crate is overpowered.
Technically that counts as "AI in nuclear fusion", but it isn't any sort of breakthrough. In almost every case the effects of AI are marginal. Not zero exactly, but nowhere near the breathless hype.
I live in Colorado and couldn't be more pissed off. We had a shot at viable 3rd parties and blew it.
Actix does exactly that, but it needs a bespoke ActorFuture trait with extra poll arguments. But until https://lang-team.rust-lang.org/design_notes/general_corouti... gets worked through, there is no way for actix to support async/await.
- handle messages sequentially per-actor (like Ractor, and like Bastion in practice)
- create your own future trait without async/await (like Actix)
I keep hoping the language team will get coroutines off the ground, but it hasn't happened yet.