I'd actually love to see a relatively high-performance (i.e., including a decent JIT) runtime for a dynamic language that's written in Rust. There's a lot of implementations like Rust Python, the Boa JS engine, etc. that are purely interpreted – and fun! – but I haven't seen a proper, high-performance VM yet.
I considered writing such a JVM in Rust, following writing one in C (https://github.com/anematode/b-jvm) that could JIT WebAssembly code and run in the browser, but decided it would be too time-consuming.
Obviously such a VM would involve a lot of unsafe, but I'm wondering if you could establish some proper, compile-time-checked invariants that make things a lot safer, without the complicated sandboxing that modern JS runtimes use to make it harder for JIT bugs to escalate into full blown RCE.
Why the snark? wasmtime is a (pretty popular) Rust project which uses a JIT, demonstrating that it's not incompatible with Rust. Obviously a proper VM wouldn't depend on wasmtime, but implement its own JIT and paraphernalia.
fair. i guess i used “rust” in collective noun sense for “rust the ecosystem and community”; from my armchair experience there’s a big contingent of that community that abhors unsafe and software that uses it, and it’s that community/ecosystem aspect that prohibits unsafe since of course the language and compiler support it just fine.
The community does not abhor use of unsafe. The community abhors bad usage of unsafe: unsafe code should be used only when necessary, and ideally to build safe abstractions.
This is terrifying. Evidently based on prior art by Mr. Pizlo – indeed, where's the acknowledgement of that?? (edit: I missed it) – but I'm assuming that was never translated into code.
I love the idea of experimentation and innovation; I abhor the idea of it being dependent on Anthropic and their theft. I've never rooted for the Chinese labs more strongly than after seeing this.
Some parts that really standout to me and still relevant today.
>And, of course, there is no doubt that if we lived in a police state, it would be easier to catch terrorists. If we lived in a country that allowed the police to search your home at any time for any reason; if we lived in a country that allowed the government to open your mail, eavesdrop on your phone conversations, or intercept your email communications; if we lived in a country that allowed the government to hold people in jail indefinitely based on what they write or think, or based on mere suspicion that they are up to no good, then the government would no doubt discover and arrest more terrorists. But that probably would not be a country in which we would want to live.
And
>Preserving our freedom is the reason that we are now engaged in this new war on terrorism. We will lose that war without firing a shot if we sacrifice the liberties of the American people.
And, this one. Which leaves me feeling heavyhearted.
>In the end, the high water mark for my three amendments was 13 votes – that was on the amendment to the computer trespass provision. Prior to that vote the majority leader of the Senate stood up and implored the Senate to vote down all of my amendments, not on their merits, but because a deal had been struck on this bill. This was not, in my view, the finest hour for the United States Senate. The debate on a bill that may have the most far reaching consequences on the civil liberties of the American people in a generation was a non-debate. The merits took a back seat to the deal.
There is no question in my mind that the terrorists won. The result of the Patriot Act has been exactly what was predicted: a country that no longer respects the fundamental freedoms that birthed it.
In my eyes, the US government itself transformed into the most active and prolific terrorist organization on the planet.
One thing that stuck out to me is that deals with a lot more data formats, in particular, low-precision formats like FP4, FP6 and FP8. Manipulating those formats can take a lot of annoying effort; in general, x86 (until AVX-512, at least) has unconvincing support for so-called "lane-crossing" instructions that move data across 16-byte boundaries within a vector. So you can imagine unpacking, e.g., tightly packed 7-bit data to 8-bit data is a real slog.
I can already immediately think of a use case for vunpackb in some of the stuff I'm working on, where we'd like to efficiently unpack weights from the high half of a vector.
Separately, adding all signed–unsigned variants of the VNNI dot product instructions is a welcome (albeit niche) change. There was an annoying divergence here between major ISAs: x86 added vpdpbusd which computed a dot product between u8 and i8, while ARM added vdotq, which computes a dot product either between u8 and u8 elements, or i8 and i8. So for broad compatibility, you generally had to restrict one of your inputs to [0,127]. This difference shows in the design of (for example) WASM relaxed SIMD, where the result of wasm.dot.i8x16.i7x16.add.signed is implementation-defined if you exceed the [0,127] range. ARM later added mixed-sign variants, and now x86 consummates it.
Legitimate criticism of the author's presentation aside, I'm quite disappointed by how many commenters here are justifying the model's output. I guess there's a lot of misanthropy and nihilism here?
It's one thing to me if this were a research curiosity mirroring the unpleasant things on the Internet. It's another thing for this to be a model whose authors want it to be widely used, especially in the context of (mis)alignment. Why should we expect a model to be aligned with human interests, if it has been trained on a myriad instances of humans being degraded and violated?
>Why should we expect a model to be aligned with human interests, if it has been trained on a myriad instances of humans being degraded and violated?
Understanding more about what exists in the real world, outside of its pile of weights, is separate from alignment. If an AI model learns that it is possible for a house to burn down. That doesn't mean an AI will want to burn down a house.
Exposure to horrors doesn't imply capability or desire to commit said horrors. But it does seem like kind of a prerequisite.
All else being equal, I think I'd prefer my models to be naive about human degradation and torture, for instance. Exceptions made for specialized models used for police work etc.
I do think broader alignment is necessary either way but that seems like an extra guardrail it'd be nice to have.
In practice it's been shown that LLMs perform better when trained on more diverse data. Training on images in this domain can improve the performance of other domains. I would prefer to have models train as much data that exist.
>specialized models used for police work
The benefit of AGI is that you do not need to have special models for different domains.
Context matters; how many of these images in the training data are taken from shock websites, and therefore associated with misanthropic commentary, versus legitimate sources like medical journals or historical pictures? Based on the samples posted by the author, it seems likely to be mostly the former. Whereas most discussions of burning a house down (not saying all, of course!) are probably in a neutral or negative context (e.g., news articles describing a crime).
"Understanding more about what exists in the real world" is a remarkable euphemism, btw.
The AI doesn't want or understand anything; it presents a statistically likely output given an input. Including this stuff in the inputs guarantees it is available as an output.
This is far too simplistic. Some things just don't belong in the training data. Along similar lines, Grok was found to generate images of child sexual abuse: https://www.bbc.com/news/articles/cvg1mzlryxeo
reply