164 comments

[ 5.1 ms ] story [ 266 ms ] thread
Use this to add AI to your product to appease management.

Next week, “refactor” it out and brag to manager about cost savings and performance boosts, don’t mention “removing the AI”.

NPM packages can never be removed once added to a codebase. You can only add more.
Boss: What have you been working on for the last quarter?

Me: I leveraged Deep Intelligence to build a Next-Gen Parity Classifier with 99.9% accuracy.

Smart Boss: And what did you actually do?
Can we get a leftpad-ai please?
Ahem secure-left-ai-405b-quantized.
This works great for situations where you can’t trust traditional intelligence. Thank you for your contribution
why stop there? let's get an is-true-ai that checks if a boolean is true using AI
I remember when the whole isEven package was ridiculed for the first time a while ago, back then I thought about training a NN to predict the odds of a number being even, as a joke. I don't actually remember if I actually wrote code for it, but in the end I thought no one would laugh and gave up
When I watched Andrej Karpathy's NN videos a year or two back, I trained a Neural Network to multiply an integer by two. This was with a rather small training set but if you rounded the results (which was a floating point), they were mostly correct. For positive numbers. My training data didn't include any negative numbers so they were hilariously bad.
This package should be updated to use the newer gpt-4o-mini model, rather than gpt-3.5-turbo.

Its 3x cheaper, twice as fast, and supports cached input just in case you need to double check if the last number you entered was even. It also has a knowledge cutoff of September 30 2023, which helps for any newly discovered even numbers since gpt-3.5s launch!

Perhaps I should file an issue to increase the accuracy by including a RAG database in LanceDB with embeddings for the set of even numbers up to 32-bits.
Feeding that into your prompt will increase the token costs
This doesn't work if I use a reasoning model like o3, which does not allow setting max_tokens.

Without reasoning, how can I be SURE a number is even?

I think before you would deploy this to prod, you should wrap it with a few guardrails to make sure it’s not hallucinating. Pretty simple — just take the output from the llm and see if it agrees with a simple mod2 operation.

Of it agrees, return model output to the user. Otherwise do a couple of retries with different prompts.

mod2 is outdated and has not been updated for years, nobody uses it anymore
This package has saved me so many hours of tedious gruntwork. It's like a junior developer - you still have to manually check their work, but when it's correct, it's a great productivity improvement.

And don't forget where this will go in a couple years with improved models and more computing power, it's gonna be awesome!

[/i]

pro tip: play around with the temperature especially when using big numbers as input
Wow, amazing tip. This hack improved my workflow by 10x.
Only 9x for me. What am I doing wrong? Can you share your vscode colour scheme file?
What model were you using? You need to use gpt-3.14-tastesgreat-lessfilling, I've used it to write 130 side hustle projects this month with only prompting.
Vibe coding your way to greatness. Wish I could do that, but it seems too hard becoming a prompt engineer. Stringing together words? That's why we have AI!
Are there actually still Junior Developers out there? I thought no one is hiring Junior Developers.
Its actually the opposite of how people think.

We hire junior devs, but not senior, and dont replace our senior devs. So our developer base is moving towards being junior weighted with less senior. The reason being a junior dev is cheaper, complains less, is more capable now through utilising generative AI, works harder to impress knowing they arent in a safe position, and we can let them go more easily with less process and less reasons needed to be given.

you're so wrong. This only works if what you do is so simple that any junior develper can sufficiently do it well. Senior developers with AI is gonna destroy a bunch of junior developers with AI.
>You're so wrong, this only works if..

wrong? I'll gladly continue this 'wrong' approach if it continues to be as successful as it has over the last 6 months. Aswell as it being entertaining seeing the level of cope among 'senior' developers watching someone on 1/4th of their salary design systems better than they can

Do you plan on promoting them eventually or just replacing them once they realize they’re getting a bad deal?
Theyre getting paid and have a job. If they dont like that deal they can go find another one elsewhere.

But its going to get increasingly difficult to justify promoting them to higher salaries if generative AI continues as it is, as the bottom line is that there will be another junior dev out there that will do the role on less.

I recognize I’m not going to change your mind on this, but I’ll sure be interested to hear how all those systems are working in a year or two - although from your comments elsewhere, you run a consultancy, so I guess that’s not your problem, either.
Many people without experience ask this same question.

It isnt relevant. They arent just producing code and pushing it, saying it works. It undergoes the same extensive testing for stability and security as the solution written by anyone else goes through. If it passes that, then its as likely to have issues further down the line as the solution written solely by the senior dev would have.

> 1/4th of their salary

If they + AI are a replacement for senior devs, shouldn't they be paid accordingly?

That would defeat the purpose. The whole point is to reduce costs by getting a cheap junior dev and having them operate AI to produce the same or better result for far less
So the point is to use technological advancements only to increase company profit and not pass any on to the actual workers. If a junior costs 1/4 of a senior, they could easily paid more from the 3/4s saved (since they're also more valuable now), but I guess shareholder millions come first.
Of course. I'm running a business, not a welfare program
What a way to summarize the decades of apathy that led to the current state of wealth inequality.
Apathy? More like the fact that the majority of people are too lazy, not motivated enough, not willing to take risks, and go out and build something of their own that results in wealth, and prefer to sit safe as someones employee, complaining about 'wealth inequality'
It's interesting to watch you put zero value on work/effort/labor and huge value on risk taking (which is very different for people with different "safety nets").
Hey are you hiring? If you are shoot me an email, my address is in my profile. I love operating AI and being someone else's employee.
Did the juniors decide it was a better system or the seniors?
It is legitimately hard to tell if this is a parody account.
Thats because youre conditioned in your culture to want the nice lies that tell you other people care by a society that wraps everything in BS.

Foreigners may consider my culture brutal and unforgiving, but at least its honest from the outset

Developers who aren't using it are already falling behind.
Remember, it's not that AI that will take your job, it's the developers who need an AI to tell them if a number is even that will take your job.
This exactly. It is more important to move fast. Screw the edge cases. As long as it’s correct _most_ of the time, you can always fix anything that’s broken tomorrow.
It's called "eventual consistency".
And C10k was never about those 10.000 socket connections getting the right response, either!
Why on earth did the software engineering interviews were checking candidates’ ability to think about edge cases? Clearly management does not care.
You laugh now, but our jobs are going to be toast in 10 years.

I thought self-driving would never happen, and now it's here.

Almost here. Elon said Full Self Driving would mean full self driving within a year! That means we are less than 12 months away from not needing to drove ourselves anymore.
I was talking about Waymo. It's real and it's spreading everywhere.

Give it another 10-20 years and your job will probably face the same fate.

15 years would be perfect to still reach retirement age. After that, good luck to whoever's left in the profession.
waymo was that company that still heavily relies on manual remote operator intervention, right?
Regardless, the car mostly driving itself while remote operators handle particularly tricky situations is a feat which will allow driver-not-in-vehicle taxis to take over. My understanding (which admittedly could be the victim of successful PR) is that the vast majority of the driving and even a majority of the trips are fully automated.
"particularly tricky situations" is doing a lot of heavy lifting here to describe situations every owner of a driving license is expected to handle routinely.

driver-not-in-vehicle is an interesting approach, but calling it "self-driving" is doing the mechanical turk without the reveal. Someone less charitable might assume intentional misrepresentation for the sake of winning an internet argument.

(comment deleted)
Honestly this should take string input as well. Finally I could find out if a Unicode duck or the word "syzygy" are even!
You might be able to optimize this by using embeddings. Store all the numbers and search "odd" and "even" until you find your number.
This hit way too close to home, I’m cackling.
Lacks an isVeryEven() method, otherwise looks feature complete.
I’m waiting for them to add the isEvenSteven() method. Then I can integrate this with my escrow smart contract.
How reliable is this? I'm half joking too but I wouldn't mind reading a report comparing this on OpenAI and various other LLMs.

Somehow I doubt it'll be 100%... right?

normally llms are pretty bad at math, but in this case it should just look at the final digit and map 10 values which I can't imagine going wrong
I'm just curious how _low_ can you go before it does go wrong.
I mean if this were a check for primes the answer would be 1.
The tokenizer might lump the last digit together with some preceding digits though. I know o200k_base (OpenAI -o models) tends to give groups of three (900001 for example is 900-001).

Anyway, I wouldn't be surprised if a non-finetuned model made some mistakes.

I tried with this on chatgpt.com (anonymous) and it was wrong:

>You are an AI assistant designed to answer questions about numbers. You will only answer with only the word true or false.

>Is 393330370227914821469106615363204944758938252979261537157082994586230072180858944545028761701928694832864623009988147774229437650643225379825905427239525512110359581021414640894111281701792224552922491447051506246553646282117414112976459608594044929244664050172002138933343230226871897567 an even number?

response:

>True

The prompt was the same used as the library: https://github.com/Calvin-LL/is-even-ai/blob/b00dbfcbb89a197...

To be fair, Javascript double point precision get tripped up by such large numbers as well.
its as accurate as how Tiktokenizer deal with numeral characters
Might be more reliable to ask it to generate a JS function to compute is-even, then just js eval the returned code with the args.

What could go wrong

60% of the time, it works every time
I’m glad you included an isOdd() method. I was about to ask how you’d check for that.
Venture capitalist here… how can I invest?
Finally, a reason to use AI.
(comment deleted)
This is pretty useless to be honest. It's good for telling whether a number is even, but in our industry we need more powerful functionality. We also need to know whether a number is odd.
Someone should implement this using tool calls.
RTFM, it's not only implementing isOdd but also a large set of rarely used advance operations such as isEqual, or isGreaterThan

Trully AI is astonishing

Great news! The package includes an isOdd function as well!
isn't it breaking the one package one responsibility principle?uncle bob wouldn't be happy, it doesn't seem clean
Why a specific function ?

With a few lines of code, you can just create a list with all the numbers that are even and when you need to check if a number is odd, you simply have to check if it's in the list.

Do we have enough spaces in the ALL_NUMBERS array or do we want to group them by thousands?

ALL_NUMBERS_00001

ALL_NUMBERS_00002

Yeah, some of the bigger numbers were a problem, so we switched to using a horizontally scaling db cluster so that we could cover all of the (useful) numbers. When we encounter a new number, it gets routed to the appropriate db where the results of the function are cached after being calculated. We're thinking of spinning it off as an API service actually if there's any interest.
we fired all our junior devs so we can't write code any more
Yes, this is what we do as a RAG workflow. We created a list of all 32bit unsigned integers and whether they were even or odd, and we pass that into the context. The future is amazing!
I.. can't tell if you're joking or not. Pretty sure someone out there is unironically doing something as stupid as this in production
The good news is they're definitely joking. The bad news is that indeed, there's definitely someone out there doing this unironically.
Yes, there is.

A former co-worker had to print 5 lines of text. Sometimes, some of the lines were empty but he didn't want to print an empty line.

So he did the usual, use 'if', a lot of 'if'. He handled all the possible cases of empty VS not empty lines.

I'm new to RAG and have a question: how do you get all the numbers into the context window?

Does the RAG part look up just the needed number?

I think that Gemini has a million token window (yes?) - do you have access to a model with a larger window?

Regardless, I find your ideas intriguing and wish to subscribe to your Substack.

We have an agentic system that looks up the context size, and then summarizes the even/odd table if necessary. We lose a little bit of accuracy, but now we can handle any model. Be sure to like & subscribe!
Have you tried quantizing them down to 4 bits to save on RAM?
I have found that even 2 bit quantization works, but you have to make sure you only discard the LABs (that’s what we are calling the Left Aligned Bits internally). I have no idea why it works so well but it has cut our costs significantly.
You can achieve this super simply this by prompting the OpenAI API to call this tool and reverse the output.
I tried that, but I kept getting "eurt" and "eslaf" and I'm not sure what to do with those. Do I need to send it back to the AI?
you might need to upgrade your vercel plan
Simply add one to the number and then test it again.
"This is pretty useless to be honest."

I remember saying that about Bitcoin 15 years ago.

…but there’s only one dependency!! This goes against the NPM ethos of importing anything and everything that you might be tempted to just handle yourself. I’ll be waiting for the Enterprise Version that uses the appropriate number of dependencies.
(comment deleted)
Great that this is a library. Really need this as a SaaS too. iseven.ai anyone?
With this amount of innovation and market fit, I see $2B evaluation in ~3 months EASILY. Exit to one of the large players for $3B.
Boss: replace all ancient assembly opcodes with AI-powered ones!
(comment deleted)
(comment deleted)