TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

LLMs, Theory of Mind, and Cheryl's Birthday

290 点作者 stereoabuse7 个月前

27 条评论

whack7 个月前
&gt; <i>At least with respect to this problem, they had no theory of mind.</i><p>This is very interesting and insightful, but I take issue with the above conclusion. Your average software engineer would probably fail to code up a python solution to this problem. But most people would agree that the average software engineer, and the average person, possesses some theory of mind.<p>This seems to be a pattern I&#x27;m noticing with AI. The goalposts keep moving. When I was a kid, the turing test was the holy grail for &quot;artificial intelligence.&quot; Now, your run-of-the-mill LLM can breeze through the turing test. But no one seems to care. <i>&quot;They are just imitating us, that doesn&#x27;t count.&quot;</i> Every couple years, AI&#x2F;ML systems make revolutionary advances, but everyone pretends it&#x27;s not a big deal because of some new excuse. The latest one being <i>&quot;LLMs can&#x27;t write a python program to solve an entire class of very challenging logic problems. Therefore LLMs possess no theory of mind.&quot;</i><p>Let me stick my neck out and say something controversial. Are the latest LLMs as smart as Peter Norvig? No. Are they smarter than your average human? Yes. Can they outperform your average human at a randomly chosen cognitive task that has real-world applications? Yes. This is pretty darn revolutionary. We have crossed the rubicon. We are watching history unfold in real-time.
评论 #41756483 未加载
评论 #41746836 未加载
评论 #41754845 未加载
评论 #41746764 未加载
评论 #41758210 未加载
jawns7 个月前
A long time ago, I created a version of this challenge called &quot;Cheryl&#x27;s Murder.&quot;<p>My notebook not only solves logical induction problems like &quot;Cheryl&#x27;s Birthday,&quot; but it also generates them.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;shaungallagher&#x2F;cheryls-murder&#x2F;blob&#x2F;master&#x2F;cheryls-murder.ipynb">https:&#x2F;&#x2F;github.com&#x2F;shaungallagher&#x2F;cheryls-murder&#x2F;blob&#x2F;master...</a>
评论 #41748189 未加载
评论 #41746996 未加载
oli56797 个月前
Gp1-o1 preview solves this puzzle correctly in 13 seconds and has a thorough logical deduction in the comments and explanation.<p>I think it’s a bit unfair on llm to ask it to retrieve the puzzle definition from its training data. I posted the info on the puzzle from his notebook.<p><a href="https:&#x2F;&#x2F;chatgpt.com&#x2F;share&#x2F;670103ae-1c18-8011-8068-dd217937278a" rel="nofollow">https:&#x2F;&#x2F;chatgpt.com&#x2F;share&#x2F;670103ae-1c18-8011-8068-dd21793727...</a>
评论 #41748677 未加载
评论 #41751233 未加载
评论 #41750809 未加载
erwald7 个月前
o1 mini seems to get it on the first try (I didn&#x27;t vet the code, but I tested it and it works on both examples provided in the notebook, `dates` and `gabe_dates`):<p><pre><code> from collections import defaultdict def find_cheryls_birthday(possible_dates): # Parse the dates into month and day dates = [date.split() for date in possible_dates] months = [month for month, day in dates] days = [day for month, day in dates] # Step 1: Albert knows the month and says he doesn&#x27;t know the birthday # and that Bernard doesn&#x27;t know either. This implies the month has no unique days. month_counts = defaultdict(int) day_counts = defaultdict(int) for month, day in dates: month_counts[month] += 1 day_counts[day] += 1 # Months with all days appearing more than once possible_months = [month for month in month_counts if all(day_counts[day] &gt; 1 for m, day in dates if m == month)] filtered_dates = [date for date in dates if date[0] in possible_months] # Step 2: Bernard knows the day and now knows the birthday # This means the day is unique in the filtered dates filtered_days = defaultdict(int) for month, day in filtered_dates: filtered_days[day] += 1 possible_days = [day for day in filtered_days if filtered_days[day] == 1] filtered_dates = [date for date in filtered_dates if date[1] in possible_days] # Step 3: Albert now knows the birthday, so the month must be unique in remaining dates possible_months = defaultdict(int) for month, day in filtered_dates: possible_months[month] += 1 final_dates = [date for date in filtered_dates if possible_months[date[0]] == 1] # Convert back to original format return &#x27; &#x27;.join(final_dates[0]) if final_dates else &quot;No unique solution found.&quot; # Example usage: possible_dates = [ &quot;May 15&quot;, &quot;May 16&quot;, &quot;May 19&quot;, &quot;June 17&quot;, &quot;June 18&quot;, &quot;July 14&quot;, &quot;July 16&quot;, &quot;August 14&quot;, &quot;August 15&quot;, &quot;August 17&quot; ] birthday = find_cheryls_birthday(possible_dates) print(f&quot;Cheryl&#x27;s Birthday is on {birthday}.&quot;)</code></pre>
评论 #41746691 未加载
评论 #41746751 未加载
评论 #41748487 未加载
ynniv7 个月前
The problem with evaluating LLMs is that there&#x27;s a random component, and the specific wording of prompts is so important. I asked Claude to explain the problem, then write python to solve it. When it ran there was an exception, so I pasted that back in and got the correct answer. I&#x27;m not sure what this says about theory of mind (the first script it wrote was organized into steps based on who knew what when, so it seems to grok that), but the real lesson is that if LLMs are an emulation of &quot;human&quot; intelligence, they should probably be given a python interpreter to check their work.
评论 #41747446 未加载
评论 #41756391 未加载
评论 #41763922 未加载
jfcoa7 个月前
This seems like a terrible test case since python examples are readily available in the training data: <a href="https:&#x2F;&#x2F;rosettacode.org&#x2F;wiki&#x2F;Cheryl%27s_birthday" rel="nofollow">https:&#x2F;&#x2F;rosettacode.org&#x2F;wiki&#x2F;Cheryl%27s_birthday</a><p>It&#x27;s interesting that so many of the model&#x27;s fail to retrieve this, but any thta do solve it should clearly be able to do so with no reasoning&#x2F;theory of mind.
评论 #41749299 未加载
评论 #41748527 未加载
pfisherman7 个月前
LLMs and NLP are to verbal reasoning what the calculator is to quantitative reasoning.<p>Language and by extension verbal reasoning is full of ambiguity and semantic slipperiness. For example, what degree of semantic similarity distinguishes synonymous from synonym-ish concepts? When do we partition concepts into homonyms?<p>I think part of the problem with how people evaluate LLMs is that the expectations that people have. Natural language != ontology. The expectation should be more Chomsky and less Boole. Asking it to solve math problems written in paragraph form is a waste of time. Use a calculator for that! Solving riddles? Code it up in prolog!<p>Instead you should be thinking of what operations you can do on concepts, meaning, and abstract ideas! That is what these things do.
评论 #41747338 未加载
joe_the_user7 个月前
Deducing things from the inability of an LLM to answer a specific question seemed doomed by the &quot;it will be able to on the next itteration&quot; principle.<p>It seems like the only way you could systematic chart the weaknesses of an LLM is by having a class of problems that get harder for LLMs at a steep rate, so a small increase in problem complexity requires a significant increase in LLM power.
评论 #41747224 未加载
评论 #41746876 未加载
评论 #41788023 未加载
extr7 个月前
this is an interesting problem but it’s more of a logic problem than a true test of theory of mind. when i think “theory of mind” i think being able to model an external agent with complete knowledge, incentives, and behavior. i would not doubt LLMs have something close to this for humans, almost by accident since they are trained on human outputs.
评论 #41747514 未加载
评论 #41747480 未加载
gkfasdfasdf7 个月前
This question was posed to o1, it is able to reason through it - but now I wonder if that is because the model is already aware of the puzzle.<p><a href="https:&#x2F;&#x2F;x.com&#x2F;d_feldman&#x2F;status&#x2F;1834313124058726894" rel="nofollow">https:&#x2F;&#x2F;x.com&#x2F;d_feldman&#x2F;status&#x2F;1834313124058726894</a>
评论 #41747089 未加载
tel7 个月前
I tried to replicate this and Claude 3.5 Sonnet got it correct on the first try. It generated a second set of dates which contained no solution so I asked it to write another python program that generates valid date sets.<p>Here&#x27;s the code it generated: <a href="https:&#x2F;&#x2F;gist.github.com&#x2F;tel&#x2F;8e126563d2d5fb13e7d53cf3adad862e" rel="nofollow">https:&#x2F;&#x2F;gist.github.com&#x2F;tel&#x2F;8e126563d2d5fb13e7d53cf3adad862e</a><p>To my test, it has absolutely no trouble with this problem and can correctly translate the &quot;theory of mind&quot; into a progressive constraint solver.<p>Norvig is, of course, a well-respected researcher, but this is a bit disappointing. I feel confident he found that his tests failed, but to disprove his thesis (at least as is internally consistent with his experiment) we just need to find a single example of an LLM writing Python code that realizes the answer. I found that on the first try.<p>I think it&#x27;s possible that there exists some implementation of this problem, or something close enough to it, already in Claude&#x27;s training data. It&#x27;s quite hard to disprove that assertion. But still, I am satisfied with the code and its translation. To relate the word problem to this solution requires contemplation of the character&#x27;s state-of-mind as a set of alternatives consistent with the information they&#x27;ve been given.
评论 #41751252 未加载
评论 #41751232 未加载
评论 #41751342 未加载
评论 #41751312 未加载
IanCal7 个月前
I&#x27;m not a huge fan of using these kind of riddles or gotchas. Other comments have riddle variants which feel also like ways of tripping someone up - if you don&#x27;t spot the change you fail. And what&#x27;s more the originals are things that lots of people struggle with (that&#x27;s why they&#x27;re riddles not basic questions).<p>There&#x27;s also little prompting, which feels like calling up a random person and demanding they solve a riddle straight away without talking it through.<p>Part of the assumption here is that if llms don&#x27;t write the right code they don&#x27;t understand what people know. I&#x27;d wager that a huge number of people couldn&#x27;t solve this puzzle yet fully understand what different people have their own internal thoughts and knowledge.
评论 #41748576 未加载
评论 #41749685 未加载
评论 #41749494 未加载
willguest7 个月前
This seems to amount to asking an LLM how it feels about Cheryl, discovering that it is performatively happy about her existence, and then deducing that the LLM has no capacity for genuine emotion, expressed in the form of logic.<p>The faulty premise lies in the formulation of the test and makes the responses both predictable, but also does a disservice to &#x27;mind&#x27; because it tries to interpret it in such a way that an LLM <i>could</i> begin to grapple with the basics, but not in a meaninful way.<p>Perhaps it is useful to help build better context-specific logic flows (generally known as software) but it doesn&#x27;t seem to provide any progress on the &quot;theory of mind&quot; front, which I guess is a borrowed notion.
diwank7 个月前
Script generated by o1-preview:<p><pre><code> ```python # List of possible dates dates = [ (&#x27;May&#x27;, 15), (&#x27;May&#x27;, 16), (&#x27;May&#x27;, 19), (&#x27;June&#x27;, 17), (&#x27;June&#x27;, 18), (&#x27;July&#x27;, 14), (&#x27;July&#x27;, 16), (&#x27;August&#x27;, 14), (&#x27;August&#x27;, 15), (&#x27;August&#x27;, 17) ] def solve_cheryls_birthday(dates): # Initial possible dates possible_dates = dates.copy() # Step 1: Albert&#x27;s statement # Create a count of each day day_counts = {} for month, day in dates: day_counts[day] = day_counts.get(day, 0) + 1 # Filter out months where a unique day exists (Albert knows Bernard doesn&#x27;t know) possible_months = set() for month in set(month for month, day in dates): month_days = [day for m, day in dates if m == month] if not any(day_counts[day] == 1 for day in month_days): possible_months.add(month) possible_dates = [ (month, day) for (month, day) in possible_dates if month in possible_months ] # Step 2: Bernard&#x27;s statement # Recount the days in the filtered possible dates day_counts_in_possible = {} for month, day in possible_dates: day_counts_in_possible[day] = day_counts_in_possible.get(day, 0) + 1 # Bernard can now deduce the date; keep dates where the day is unique possible_dates = [ (month, day) for (month, day) in possible_dates if day_counts_in_possible[day] == 1 ] # Step 3: Albert&#x27;s final statement # Recount the months in the possible dates month_counts_in_possible = {} for month, day in possible_dates: month_counts_in_possible[month] = month_counts_in_possible.get(month, 0) + 1 # Albert now knows the date; keep dates where the month is unique possible_dates = [ (month, day) for (month, day) in possible_dates if month_counts_in_possible[month] == 1 ] # The remaining date is Cheryl&#x27;s birthday if len(possible_dates) == 1: return possible_dates[0] else: return None # Solve the problem birthday = solve_cheryls_birthday(dates) if birthday: print(f&quot;Cheryl&#x27;s birthday is on {birthday[0]} {birthday[1]}&quot;) else: print(&quot;Unable to determine Cheryl&#x27;s birthday.&quot;) ``` </code></pre> Output:<p><i>Cheryl&#x27;s birthday is on July 16</i>
AdieuToLogic7 个月前
What is a software program?<p>The codification of a solution.<p>What is a solution?<p>An answer to a problem.<p>What is a problem?<p>The identification and expression of a need to be satisfied.<p>What is a need?<p>A uniquely human experience, one which only exists within the minds of people whom experience it.
评论 #41747650 未加载
RevEng7 个月前
It&#x27;s important to remember that modern LLMs are trained on bloody everything. They know every common logic problem, at least when stated the way they would have seen it.<p>If you want to test an LLM, always make up a new problem. It can be the same idea as an existing problem, but change all names and numbers.<p>I tested if GPT 3.5 could recognize chaos theory. If I stated it as the typical &quot;butterfly flaps its wings&quot; it instantly recognized it as the chaos theory example. If I totally changed the problem statement, it correctly identified that weather isn&#x27;t correlated with a single action by a single person, but it didn&#x27;t associate it with chaos theory.
wanderingbort7 个月前
Related to this in asked LLMs to directly solve the same riddle but then obfuscated the riddle so it wouldn’t match training data and as a final test added extraneous information to distract them.<p>Outside of o1, simple obfuscation was enough to throw off most of the group.<p>The distracting information also had a relevant effect. I don’t think LLMs are properly fine tuned for prompters lying to them. With RAG putting “untrusted prose” into the prompt that’s a big issue.<p><a href="https:&#x2F;&#x2F;hackernoon.com&#x2F;ai-loves-cake-more-than-truth" rel="nofollow">https:&#x2F;&#x2F;hackernoon.com&#x2F;ai-loves-cake-more-than-truth</a>
johnobrien10107 个月前
The approach is fundamentally flawed. You can’t query an LLM as to whether it has a theory of mind. You need to analyze how its internal logic works.<p>Imagine the opposite result had occurred, and the LLM had outputted something which was considered a theory of mind… Does that prove it has one, or that it was trained on some data that had something it used which made it sound like it has a theory of mind?
godelski7 个月前
I think the test is better than many other commenters are giving credit. It reminds me of responses to the river crossing problems. The reason people do tests like this is because we know the answer a priori or can determine the answer. Reasoning tests are about generalization, and this means you have to be able to generalize based on the logic.<p>So the author knows that the question is spoiled, because they know that the model was trained on wiki. They also tested to see if the model is familiar with the problem in the first place. In fact, you too can confirm this by asking &quot;What is the logic puzzle, Cheryl&#x27;s birthday?&quot; and they will spit you out the correct answer.<p>The problem also went viral, so there are even variations of this. That should tell us that the model has not just been trained on it, but that it has seen it in various forms and we know that this increases its ability to generalize and perform the task.<p>So then we&#x27;re left with reasoning. How do we understand reasoning? It is the logical steps. But we need to make sure that this is distinct from memorization. So throwing in twists (as people do in the river puzzles) is a way to distinguish memory from logic. That&#x27;s where these models fail.<p>People always complain that &quot;oh, but humans can&#x27;t do it.&quot; I refer to this as &quot;proof by self-incompetence.&quot; (I also see it claimed when it isn&#x27;t actually true) But not everybody reasons, and not all the time (trivial cases are when you&#x27;re asleep or in a coma, but it also includes things like when you&#x27;re hangry or just dumb). Humans are different from LLMs. LLMs are giving it 100%, every time. &quot;Proof by self-incompetence&quot; is an exact example of this, where the goal is to explain a prior belief. But fitting data is easy, explaining data is hard (von Neumann&#x27;s Elephant).<p>There&#x27;s also a key part that many people are missing in the analysis. The models were explicitly asked to *<i>generalize*</i> the problem.<p>I&#x27;ll give some comments about letting them attempt to solve iteratively, but this is often very tricky. I see this with the river crossing puzzles frequently, where there is information leakage passed back to the algo. Asking a followup question like &quot;are you sure&quot; is actually a hint. You typically don&#x27;t ask that question when it is correct. Though newer models will not always apologize for being wrong, when actually correct, when they are sufficiently trained on that problem. You&#x27;ll find that in these situations if you run the same prompt (in new clean sessions) multiple times that the variance in the output is very low.<p>Overall, a good way to catch LLMs in differentiating reasoning from memorization is getting them to show their work, the steps in between. It isn&#x27;t uncommon for them to get the right answer but have wrong steps, even in math problems. This is always a clear demonstration of memorization rather than reasoning. It is literally the subtly that matters.<p>I suspect that one of the difficulties in humans analyzing LLMs is that there is no other entity that is capable of performing such feats that does not also have a theory of mind and a world model. But a good analogy might be in facts that you know, but not understanding why they are &quot;the answer.&quot; I&#x27;m sure there&#x27;s many people who have memorized complexities for many sorting algos or leet code problems and couldn&#x27;t derive the answer themselves.<p>But I really don&#x27;t understand why we *need* LLMs to reason? A dictionary memorizes things, and so does wikipedia. Their lack in ability to reason does not make them any less marvelous of inventions&#x2F;tools. But maybe, if we&#x27;re looking to create intelligent and thinking machines, it isn&#x27;t as simple as scale. We love simple things, but few things are simple and correct (though far more things are simple and approximately correct).
评论 #41747073 未加载
评论 #41746993 未加载
m3kw97 个月前
could be an architectual issue with the LLMs because you need to juggle a lot of states just from one statement regarding a big problem. Sort of like if you ask it to write an app like facebook. It would give you a bunch of crap, which is worse.
nextworddev7 个月前
The majority of humans in flesh can&#x27;t solve the problem - so we need alternate measures for judging theory of mind capabilities in LLMs
评论 #41746911 未加载
评论 #41751544 未加载
评论 #41747117 未加载
评论 #41746924 未加载
dmead7 个月前
I wonder if they are any unique properties of those programs that we can figure out what stack overflow or textbooks they&#x27;re copying.
JPLeRouzic7 个月前
Most LLMs won a T-shirt with the following inscription: &quot; <i>I am not as smart as Peter Norvig </i>&quot;!
mark_l_watson7 个月前
Nice! I use various LLMs many times a day as a limited coding tool and something to bounce ideas off of, and it is impossible to not think about how LLMs work and what their limitations are.<p>I tried just asking Claude Sonet to solve the Cheryl’s Birthday word problem, changing the dates. Pretty cool that it can solve it as a word problem, and LLMs will keep getting better at coding.<p>As a slight tangent: I used a combination of Gemini, GPT-4o, and Claude last week to write Common Lisp code for a simple RDF data store and the subset of SPARQL queries that I thought I would need in embedded Common Lisp applications. This process was far from automatic: I initially provided almost two pages of English instructions, and I had to help debug non-working code by adding debug statements and then show the models the code with print statements and the new output. I also did the optional thing of asking for stylistic changes. TLDR: saved me time and I liked the final code.<p>I always enjoy it when people like Peter and Karpathy write relatively simple code to share ideas. I am a fairly good coder (I had the meaningless title Master Software Engineer at Capital One) but I like to read other people’s code, and I must admit that I spend more time reading code on GitHub than I spend reading technical papers.
fny7 个月前
How does solving a logic puzzle imply a theory of mind? I don’t mean to say that LLMs don’t have a theory of mind, just that deductive reasoning does not amount to empathetic evaluations of how someone else thinks and feels…<p>…unless you’re a programmer.
mrbungie7 个月前
Not really about Theory of Mind, but in the same line, I remember the other day someone argued with me that LLMs model the world, rather than just modelling language (that may represent the world).<p>I kept thinking about that problem and plausible experiments to show my point that LLMs are dumb about the physical world, even if they know perfectly how it works in terms of language&#x2F;representation. So I thought, what happens if I give an LLM an image and I ask a representation of said image in ASCII art (obviously without relying in Python and the trivial pixel intensity to character transform it usually proposes). Remember:<p>- LLMs should&#x27;ve been trained with a lot of RGB image training data with associated captions =&gt; So it should understand images very well.<p>- LLMs should&#x27;ve been trained with a lot of ASCII training data with associated captions =&gt; So it should draw&#x2F;write ASCII like an expert. Plus, it understands vision apparently (managed as tokens), so it should do well.<p>But it can&#x27;t do a decent translation that captures the most interesting features of an image into ASCII art (I&#x27;m pretty sure a human with an hour of time should be able to do it, even if its awful ASCII art). For example, I uploaded an image macro meme with text and two pictures of different persons kind of looking at each other. The ASCII art representation just showed two faces, that didn&#x27;t look at each other but rather away from each other. It just does not &quot;understand&quot; the concept of crossing sights (even if it &quot;understands&quot; the language and even image patches when you ask about where are they looking at, it will not draw that humanly important stuff by itself).<p>These things just work with tokens, and that is useful and seems like magic in a lot of domains. But there is no way in hell we are going to get into AGI without a fully integrated sensor platform that can model the world in its totality including interacting with it (i.e. like humans in training, but not necessarily in substrate nor training time hopefully). And I really don&#x27;t know how something that has a very partial model of the world can have a Theory of Mind.
评论 #41747457 未加载
评论 #41747544 未加载
aithrowawaycomm7 个月前
AI researchers need to learn what terms like &quot;theory of mind&quot; actually mean before they write dumb crap like this. Theory of mind is about attributing <i>mental states</i> to others, not <i>information.</i> What Norvig has done here is present a logic puzzle, one that works equally well when the agents are Prolog programs instead of clever children. There&#x27;s no &quot;mind&quot; in this puzzle at all. Norvig is being childishly ignorant to call this &quot;theory of mind.&quot; It&#x27;s hard to overstate my contempt for this kind of useless junk science, especially when it comes from an impressive pedigree.<p>Of course he is hardly the only offender: arrogant disregard for psychology is astonishingly common among LLM researchers. Maybe they should turn off ChatGPT and read a book.
评论 #41747942 未加载
评论 #41747645 未加载
评论 #41749319 未加载
评论 #41747110 未加载