Live data from Hacker News

Advent of Code 2023's new AI/LLM Policy

adventofcode.com

91–100 of 133 posts

Re: Advent of Code 2023's new AI/LLM Policy

#91
I'd like to see an AI leaderboard consisting of 100% LLM-generated submissions. These submissions could then be evaluated for quality and scored, using a new set of measures for code quality.

We can also learn a thing or two about prompt engineering.

Re: Advent of Code 2023's new AI/LLM Policy

#92
post #70
post #20

Earlier quoted context omitted.

"I feel like it's harder to get better at programming if you ask an AI to do the programming for you" I've been thinking about this for a full year now, and I'm ready to present my opinion: I think AI assistance makes it easier, not harder to get better at programming. Sure, if you're lazy you won't learn anything because you'll get the AI to do all the work for you. But if you're that lazy I imagine you wouldn't hav…

I’m sure you feel like you’re getting better by working with an AI, but make sure to test your skills without any AI help. The ”illusion of competence” effect can be really strong, and it sneaks up on you without you noticing it.

I am curious, why is this an illusion? I have experienced the same (or at least similar) feeling of getting better after getting my hands on a search engine like google. I never stopped using a search engine since then to check if I am suffering from this “illusion” you’re talking about. Should we?

Re: Advent of Code 2023's new AI/LLM Policy

#93
post #66
post #52

Earlier quoted context omitted.

> With that said, I don't think LLMs will be helpful with some of the tougher problems. It's a hard thing to test, because I assume CoPilot would do well with previous year challenges due to the massive amount of public code available on the same problems. I'm not 100% sure on this, but I think copilot isn't trained on anything past January 2022 (the gpt-3.5 and 4 cutoff dates), so I think it still shouldn't do well…

You mean September 2021, right?

I'm basing that off this community post and a few other forums that noted that GPT knows about events after September 2021. Point stands either way.

https://community.openai.com/t/what-is-the-actual-cutoff-dat...

Re: Advent of Code 2023's new AI/LLM Policy

#94
post #70
post #20

Earlier quoted context omitted.

"I feel like it's harder to get better at programming if you ask an AI to do the programming for you" I've been thinking about this for a full year now, and I'm ready to present my opinion: I think AI assistance makes it easier, not harder to get better at programming. Sure, if you're lazy you won't learn anything because you'll get the AI to do all the work for you. But if you're that lazy I imagine you wouldn't hav…

I’m sure you feel like you’re getting better by working with an AI, but make sure to test your skills without any AI help. The ”illusion of competence” effect can be really strong, and it sneaks up on you without you noticing it.

I'm sure you think you're getting better at programming by using a compiler, but make sure you test your skills by writing assembly without the compiler.

Re: Advent of Code 2023's new AI/LLM Policy

#95
post #81

Useful reminder to sort out my AoC++ donation for this year. Done. Being in the UK I've never bothered attempting to target the global leader-board as 5am is just too early. According to my research I probably could scrape in here or there (looking at the time between the timestamp on my input file - which I download by running a script manually - and my solution times) but then I assume I'd be one of thousands who c…

Being in the UK, I've never bothered with leaderboards either because of the timezoning.

I haven't even bothered with the private leaderboards as friends have varied commitments that still adds a time advantage to others.

AoC has always been about competing against myself

Re: Advent of Code 2023's new AI/LLM Policy

#96
This policy does make sense, but feels like it won't age well.

Using LLMs to "win" at Advent of Code is - for me - a bit like getting an app to solve a Sudoku for you. You've got to end state pretty quick, and building the app to solve Sudokus is fun (trust me), but when you are trying to have fun and stretch your brain by solving a puzzle, how has that helped?

I think Advent of Code for me is about having fun trying to solve problems in my head and with my favourite IDE and programming language while having my first cup of tea of the day. I wouldn't want to use an LLM. I don't care about the global leaderboards.

I definitely see though how using one could be fun. And building code that can drive an LLM to solve the problem sounds like a ton of fun. So it would be nice to allow those who want to do that to flag it as such and to have their own leaderboards, or for it to show in leaderboards and allow them to be filtered in/out.

And like I say, at some point it will feel as weird as saying "no compilers".

Re: Advent of Code 2023's new AI/LLM Policy

#97
post #22

Maybe I'm a dinosaur but I'm utterly mystified by folks who are interested in making the leaderboard or even solving AoC puzzles with AI assistance. To me it feels like going to a 5k charity run, taking a motorcycle to the finish line, and parading your gold medal around. Like, who are you impressing? And are you even proud of yourself? I understand the appeal of using the best and fastest means when there are real-w…

I tried solving last years AOC with chatgpt a few months ago and while it did just straight up produce solutions for the first 2 or 3 questions with minimal work on my part, after that, it required a lot of work to get it to a solution. It would have been faster to just write the code myself.

I use copilot a lot and use chatgpt a lot to help with coding problems and doing things like writing short bash scripts for me, so I feel like I have a good grasp of what it's capable of doing, and the amount of work you'd have to do to break the problem into small enough chunks that it can understand and solve it is similar, if not more, than the amount of work you'd have to do to just solve it yourself. At least in its current state.

Re: Advent of Code 2023's new AI/LLM Policy

#98

"(If you want to use AI to help you solve puzzles, I can't really stop you, but I feel like it's harder to get better at programming if you ask an AI to do the programming for you.)" I'd say that whatever "better at programming" is quickly evolving. AI is a tool like high level languages, IDEs, autocomplete or all the different types of code analyzers. How is ignoring a powerful tool like AI going to get you better a…

Right, the policy seemed fine to me until it got to this part. AI can be a way to get better at programming too. When I was learning Elixir, I watched José Valim work through the AoC puzzles[0] and followed along, typing in what José had and then working to understand it. José was doing the programming but it helped me get better at programming I think. [0] https://www.twitch.tv/collections/YDM6eKu6bhV1Nw

In that case, you're not actually competing in the competition, and that kind of thing _is_ useful. However, it'd be very much against the spirit of the competition to take those answers and use them as your own, and that's really what the policy is getting at.

Re: Advent of Code 2023's new AI/LLM Policy

#99
post #8

This looks like a good policy to me. I used ChatGPT (3.5 - 4 wasn't out yet) to help with Advent of Code last year and found it extremely useful - but I was careful not to attempt to make the leaderboard because it felt unfair to me: https://simonwillison.net/2022/Dec/5/rust-chatgpt-copilot/

Extremely useful for getting over fighting the borrow checker while learning Rust, or extremely useful for a proficient programmer in the language being used? Did ChatGPT actually solve the fundamental problems beyond ~day 15? Or just help you with the BC and parsing the data and other little boilerplate like that?

It was useful in that it helped me learn Rust syntax faster - using ChatGPT-assistance was a lot more productive and less frustrating than constantly running searches and referring to documentation.

I gave up after day 15 because it got too time consuming, with or without ChatGPT help.

Re: Advent of Code 2023's new AI/LLM Policy

#100
post #56

Earlier quoted context omitted.

> Try it out yourself, make up some little math word problems and ask chatGPT or something. I have, and chatGPT simply sucks at logical reasoning in the way that is required for mathematics. It's extremely easy to make it trip up by just formulating questions in a slightly nonstandard way (so that it doesn't exactly match what it has been trained on), e.g. > User: prove that there are only finitely many primes > Chat…

You're right about the basic mistakes they can make - they can also excel at the same tasks if prompted differently. But I was making a slightly different point. The point is they can reason about things in a better-than-chance way (I mean, a much-better-than-chance way) when given problems not in the training set. Have you read the Codex paper? Seriously, go look, an LLM even from years ago (which is like decades ag…

If your statement is that they can perform significantly better than chance, given certain favourable conditions (e.g. good prompt engineering), then I'll agree, although I'm not sure how helpful it is given that you can never know whether what they reply is garbage or not.

But even given "careful prompt engineering" it's still extremely easy to make ChatGPT trip up (I don't have access to GPT-4, so let's talk about ChatGPT for now):

> User: User I am a student of machine learning and I have a graduate-level of understanding of certain subfields of machine learning and mathematics. I would like to ask you a tricky question about math. Please think carefully and step-by-step. Because, as a language model, each token you generate is a way to perform more computation, please write out your understanding of the problem and your steps of thinking about it. The challenge is as follows: decide whether or not there exists an algorithm that can decide for any statement in propositional logic whether it's true or not

> ChatGPT: The problem you're describing is known as the decision problem for propositional logic, or the "satisfiability problem" (SAT). It asks whether there exists an algorithm that can determine, for any given statement in propositional logic, whether it's true or not. This problem is fundamental in computer science and mathematical logic.

> I will walk you through the key concepts and steps in thinking about this problem:

> Propositional Logic: In propositional logic, statements are composed of variables and logical connectives (AND, OR, NOT, etc.), and the goal is to determine whether a given combination of truth values for these variables makes the statement true (satisfiable) or false (unsatisfiable).

> Formal Statement of SAT: The SAT problem can be formally stated as follows: Given a propositional formula (a statement in propositional logic), can we design an algorithm that correctly decides whether there exists an assignment of truth values to the variables that makes the formula true?

> Assume There Exists Such an Algorithm: Let's assume, for the sake of argument, that there exists an algorithm SAT that can decide the satisfiability problem for any propositional formula.

> Constructing a Contradiction: Now, we'll use a technique similar to the one used in the proof of the Halting Problem to create a contradiction. We define a new formula, Q, that represents a situation where SAT contradicts itself. We construct Q as follows:

> Q(P):

> if SAT(P) == True:

> NOT(P) # Negation of the input formula P

> else:

> P

> In other words, if SAT says that P is satisfiable, Q takes the negation of P, making it unsatisfiable, and if SAT says that P is unsatisfiable, Q takes P itself.

> Consider Q(Q): Now, let's consider what happens when we apply Q to itself, i.e., Q(Q).

> If SAT(Q) == True, then Q(Q) should be unsatisfiable because it takes the negation of itself.

> If SAT(Q) == False, then Q(Q) should be satisfiable because it takes itself.

> Contradiction: We've reached a contradiction. If SAT(Q) == True, then Q(Q) should be unsatisfiable, but our definition of Q says it should be satisfiable. If SAT(Q) == False, then Q(Q) should be satisfiable, but our definition of Q says it should be unsatisfiable. This contradiction arises because SAT cannot consistently determine the satisfiability of Q(Q).

> Conclusion: As in the Halting Problem, we've demonstrated that there are cases where the algorithm SAT fails to give a correct answer. Therefore, we can conclude that SAT (or any similar algorithm) cannot exist to solve the satisfiability problem for all cases.

> This proof shows that there is no general algorithm that can decide the satisfiability of any propositional formula. The SAT problem is known to be NP-complete, which means it's one of the most challenging problems in computational complexity theory. While efficient algorithms exist for many instances, there's no guarantee of a general solution for all possible cases. This has significant implications for problems in complexity theory and computer science, including issues related to algorithmic efficiency and the limits of computation.

This is absolute garbage. Even worse than garbage, it adds the additional insult of being plausibly-sounding garbage to people who've had maybe a cursory introduction to theoretical CS. And notice that it's not even that hard to come up with such an example: a question like this could plausibly be on a problem set for an intro theoretical CS course (if it's not too easy for even that).

My main point is that this betrays an absolute incapability of ChatGPT to perform basic deductive reasoning reliably. It clearly knows that the referenced statement is about SAT, and, if you prompt it directly, it also knows that SAT is decidable, but it somehow isn't able to connect these two facts.

BTW my objection was related to mathematics, not coding. It's possible that, in the average case, LLMs perform much better at coding, since the level of rigour required in many cases is less than in mathematics. But when it comes to pure deductive reasoning, I wouldn't trust LLMs. Or at least not ChatGPT.

Post reply on HN