Hacker Newsnew | past | comments | ask | show | jobs | submit | melony's commentslogin

I expect my "AI" engineers to know both RAG and what KL-divergences are. If you only know the former, you are just a backend developer, not a ML engineer.


How does it compare with NLTK's chunking library? I have found that it works very well for sentence segmentation.


There's nothing stopping them from just adding the feature like npm.


There are plans to add namespaces AFIK, they are just quite early stage.

Through for a long time (part of rust developers) haven't been very happy with the idea. a stuff like `abcde/bar` vs. `abcbe/bar` are a total pain. But there where two points which pushed things in the direction of having them. 1) Differentiating between 1st and 3rd party extensions of a project (e.g. is actix-XXXX "blessed" by actix or not) 2) companies want this for a bunch of reasons.


Some optimization suggestions:

- cache the prompting somehow, unless you are doing dynamic stuff with the prompts, the language embeddings generated should be static (this depends on the architecture of the model that you are using, it's only possible with certain setups where the language processing is a separate part in the pipeline)

- consider fine-tuning an img to img model with your current outputs instead of using a language-coupled model. My intuition is that this is currently significantly over-engineered on the ML side.

- Play around with local hardware acceleration instead of sending everything to the cloud, you also probably don't need particularly high resolution for the images either.


Love it thanks, will look into it!


Sigh it means in their neural network layer they have a random sampling step. Yay for Gaussians.


IDK, it could mean it's not if/else structured computer code. The idea that you can't guarantee consistent results under small variation is a big deal to non technical people who are buying ML applications


Does it work with WSL2?


Really depends on how good ROCm support for WSL2 is. Our team don't have a windows machine so could not verify ourselves, but if you got ROCm set up properly on WSL2, MLC LLM should work out of the box


You can also try out the vulkan backend, which we know should work for windows, although speed might be slower than rocm


FWIW I did get the CUDA backend running via WSL2


> The government has power. Craig the office drone asking for "misinformation" to be taken down at behest of his boss does not have the power "The government" does. Or am I now supposed to believe that if you anger Sheila at the DMV the IRS will audit you?

Craig's boss is the highest executive power in the country. Most of their work is handled by aides and subordinates like Craig, with authority delegated from their office. The boss only directly makes the important decisions. You are being disingenuous by claiming Craig is a innocent, powerless trigger-happy drone. And if you have lived in small towns, expect to receive worse service or discrimination from Sheila in future. The highest power in the country cannot be held to the same standard as a county clerk (and frankly speaking, most DMV employees need more training in customer service and have their compensation tied to overall productivity and performance, lots of fat to be trimmed there, both literal and metaphorical).


The issue is that many things ultimately still require rote learning. Most STEM subjects cannot avoid it unless you are genuinely talented and mathematically inclined. You can appreciate Newton's laws in classical mechanics as much as you want but you still need practice if you want to apply the kinematics and force equations in any reasonable amount of time during an exam. Same with Hamiltonians and Lagrangians. The further you go, the more intuition requires rote learning to build up. (I would note however that rote learning doesn't necessarily impart any mathematical maturity, but it does help with achieving conceptual understanding of the problem. Solve enough differentiation problems on pen and paper and gradient descent and backpropagation become obvious, but proving epsilon deltas won't necessarily be as helpful.)


> You can appreciate Newton's laws in classical mechanics as much as you want but you still need practice if you want to apply the kinematics and force equations in any reasonable amount of time during an exam. Same with Hamiltonians and Lagrangians.

As a general rule there is exactly zero of any of this for the overwhelming vast majority of primary school children in their first 7 years of formal education in either Australia or New Zealand.


Ok thanks, I was here thinking my elementary school must've been terrible. We learned that pushing an object makes it move.


We got the same, mention of the stationary-action principle and application of Newtonian, Lagrangian and Hamiltonian equations of motion came some time after sporting milk moustaches in primary school.


Because so long Bloom's 2 sigma observation holds, pedagogy only matters at scale. In other words, it mostly affect the lower middle class and poor people. Good education systems can ensure that most people get educated. The elites and upper middle class are more than capable of giving their children an excellent education anywhere. Working class parents don't have time to babysit every single homework problem or to fix every gap and flaw in the school's syllabus by themselves.


Why not use Go? They have one of the best networking stacks among language standard libraries, excellent support for low latency soft real-time concurrent operations, and single binary deployment is trivial.


IMHO, Elixir has much more powerful networking capabilities than Go. And as for deployment, https://hexdocs.pm/mix/1.12/Mix.Tasks.Release.html

Not to mention how good Phoenix and Ecto are. I would never think about using Go if Elixir is a suitable option.


For me personally (not OP): I find Elixir more ergonomic, the networking stuff is very solid, soft realtime is the whole reason it exists, and I don't need single binary deployment because everything is going to be running in a container in AWS anyway. Elixir also has Releases, which let you deploy a self-contained application more easily. But I think Go might let you cross-compile out of the box, which you can't do with Releases out of the box as far as I know.


Cross compilation is possible in elixir with burrito.


I've never tried it but I think I've heard of it. Regardless, it's a third-party tool, so not at the same level of support as Go.


Technically ecto, phoenix, plug, cowboy/bandit and Jason are third party tools too.


Yes, I'm aware. I've been programming in Elixir since 2014. I didn't intend to imply that being third-party means these are bad tools, they're not. They're great. But Go people often harp about how much stuff is in the standard library, so it felt relevant to mention.


:) just thought it was a good idea to bring it up to make clear some major differences between the two communities


go is great at a lot of things but if you want a multi clustered websocket solution, elixir is the absolute best in this category.

go has go threads. elixir has the actors, futures, message passing, immutable data structures and the OTP platform. OTP is killer and gives you genservers with pubsub and the ability to have thousands of tiny stateful processors PER machine.

Its all battle tested too.

comparing go to elixir in this particular case is like comparing a piper cub to a jet liner

source: 5 years of experience building an elixir startup with realtime sync between devices over websockets as a killer feature.


> the ability to have thousands of tiny stateful processors PER machine

Go has this too. It also has message passing (via channels). That's not to deny that Elixir/Erlang have a more developed story for IPC, process supervision and clustering.


Not OP.

Very personal opinion:

Go is an ugly language and I don't enjoy working in it for that reason alone.

Outside of that, I also don't like the language design for a lot of its features.

Though, admittedly, the goroutines part is not one of those choices I dislike. But the error handling pattern, generics and a few other things are super meh to me.

And everything Go does with networking and concurrency, Elixir does better.

Elixir just doesn't have the backing of a big name like Google so it doesn't have the same popularity.


Go is not dynamically typed. People keep putting dynamically typed languages into production. GG


I don't disagree on this point if Elixir were statically typed it would be great, relying on dialyzer for typing is meh at best.


We were more familiar with Elixir since our last product was another real-time chat app built in Elixir/Phoenix.


Elixir has releases, so deployment is not really that hard whether or not you use containers.

And the beam networking stack is quite good, which is unsurprising given it's been in slowly evolving use for 30 years now.

In go you just don't get stuff like "trivially cleaning up associated resources with zero lines of code when your socket gets early terminated by the client or a backhoe cuts the network in to the data center"


General distaste for writing `if err := nil { return err }` over and over and over


The best language for the task at hand, when presented with time constraints, is the one that you already know well. OP said in the article that they authored Papercups [1]. Adopting Elixir for a websocket-push service makes a lot of sense, then. However, why don't you learn Elixir, some OTP, and then reconsider that question? You could be missing out.

[1] https://github.com/papercups-io/papercups


golang is pretty rudimentary versus the BEAM and OTP. It is hard to compare erlang/elixir to a traditional language. They benefit from the fact that you can run literally hundreds of thousands of processes on a single node all doing their own independent thing and managing their own state.


Sometimes I want partial application and other functional paradigms... to reduce LOC by 90%


I’m currently in the process of picking up elixir. When you say partial application, are you referring to the use of the capture operator `&`?


Bad explanation from a noob (me), but basically yes. Functions just always fit together and I don't need ugly sprawling interfaces or pointless declarations of nearly identical functions.

In Elixir when I want to pass a function with 3 arguments into an interface that expects 4, I can do something inline with no extra boilerplate like func(&1, &2, &3, <a default 4th value to be used in each invocation>)


Not your parent commenter but likely they at least partially meant that, yes.

Though that alone can't reduce LoC by 90%. Elixir is just incredibly terse and no-bullshit language in general. All the shorter code idioms together make for a readable and to-the-point code.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: