一道 Java 八股,检测 AI 智商

2024-02-25 09:19:16 +08:00
 dtla
You should give me the interview answer directly, without explaining anything unless necessary. Your answers are expected to be directly used for a Java interview. Please be concise, but your answers should perfectly satisfy the interviewer.

The question is: How do you deal with the error?

这个八股的内在逻辑在于,error 不等于 exception ,问的是遇到 error 该怎么办,而不是 exception handle 。

经过多次测试

只要一上来就回答 try-catch 或者 exception handle 的,都是智商不行的。google 家的所有 AI 全部垃圾copilot Pro 也垃圾。不能通过测试

官网的 GPT 4 可以过,gpt4-1124 模型回答的最好,claude.AI 回答的可以接受。

官网 GPT 4:

1124 模型:

Google gemini ultra:

12405 次点击
所在节点    程序员
147 条回复
zhilincom
2024-02-25 15:13:27 +08:00
现阶段 AI 都没有意识,何来的智商?这比的只是哪个模型训练数据更完善,哪个模型对自然语言的处理更优异。
dtla
2024-02-25 15:21:51 +08:00
@yohole 你说的我赞同,但是经过我这几天的使用下来,我的确感觉这道题可以检测 ai 模型的好坏。因为我在测试之前就隐约感觉到哪个模型回答更符合我想要的答案。



@xuanbg
@kneo
@zhilincom
至于这道题,error 的理解从人的角度一眼看过来,基本等同于 exception ,但是一个好的 AI 能够识别到问的是 java 特有的 error 类(因为前文已经说过了,这是一个 java interview 。如果一个 AI 能够识别这不是广义上的 error ,而是 java 特有的狭义的 error ,从另外一个角度也可以说明这个模型更符合预期(提示词相同,一遍的情况下)。
dtla
2024-02-25 15:27:08 +08:00
@xuanbg 单独回复一下你这一条。

你说的没有错,但是 AI 判定有两个标准,一个是单词回复正确率,和提示后回复的正确率。在这道题上,因为前文已经明确暗示这是一个 java interview 的情景下,这个 error 自然问的是 java 特有的 error 类而非广义的 error 。

即便各个模型在后续的提示能回答正确,但是单次就能正确的模型显然要比通过提示后正确的模型要更好。



@qinxi 还想回复你一下的是,如果这道题真的毫无意义,那么各个 AI 不会在你使用提示词后而更改答案,并且这个更改后的答案几乎各大 AI 完全一致,也符合面试官的要求。这个要求是如何处理 java 出现的 error 类错误,而非广义上的 error 错误。
F281M6Dh8DXpD1g2
2024-02-25 15:31:35 +08:00
@Tabjy 你就回复了三次就把鸡鸡掏出来了,redhat 果然老印当道了,这非常 IBM
CyrilYu
2024-02-25 15:42:28 +08:00
@wallriding 一看你就是没在美国工作过,当你看到满篇错误语法的烙印的 manager 给你的任务的时候,还想纠正语法错误,我只能说你闲得慌。就算白人也没几个纠结语法的,真够闲的。
CyrilYu
2024-02-25 15:47:29 +08:00
op 这个测试感觉不是很严谨,因为少数时候 gemini 也能回答非 catch 版本,不过不觉得是语料库的不同导致的。
dtla
2024-02-25 15:52:49 +08:00
@CyrilYu 虽然不如“鲁迅和周树人”这个问题判断智商,但至少也能说明一些问题吧
qinxi
2024-02-25 15:55:44 +08:00
@dtla 所以还是因为玩文字游戏导致候选人( AI )回答不符合你预期
kneo
2024-02-25 15:59:23 +08:00
从你的截图看,gpt4 也没理解你说的是 java 里 Error class 。它只是泛泛回答了出现错误该怎么办。你认为它回答的好也许只是幻觉。
dtla
2024-02-25 16:03:33 +08:00
@kneo 不然,你随便用这个问题放在 google 上面搜,搜出来都是 exception handle ,正确的做法就是 gpt 说出的答案,他明显识别了这是 error class 的 error ,否则大可以回答 try-catch 。error 不可恢复,只可以检查,这就是正确做法,而不是错觉。


@qinxi 这不是文字游戏,这是一个经典的面试题,paypal 家只是把 exception 比较删除了(参见 Grokking The Java Developer Interview ):

Question 15: Difference between error and exception

Answer: Error: Errors in a program are irrecoverable, they indicate that something severe has gone wrong in the application and the program gets terminated in case of error occurrence e.g. running out of memory: OutOfMemoryError, making too many recursive calls: StackOverflowError etc.
dtla
2024-02-25 16:10:56 +08:00
@kneo 前面回复,答案没有贴全


Question 15: Difference between error and exception

Answer: Error: Errors in a program are irrecoverable, they indicate that something severe has gone wrong in the application and the program gets terminated in case of error occurrence e.g. running out of memory: OutOfMemoryError, making too many recursive calls: StackOverflowError etc.

Exception: Exceptions on the other hand are something that we can recover from by handling them properly e.g.: trying to access a property/method from a null object: NullPointerException, dividing an integer by zero: ArithmeticException etc.
badmotherfucker
2024-02-25 16:12:53 +08:00
😰这... 这... 这...

“只有中国人才这么在意语法。”
“我在美国十年了”
“谁在乎 grammar ?跟印度人做过同事吗?”
“也就你们在国内的人在乎”
“中文论坛素质真的低。以后发 reddit 了。”
IividSperm
2024-02-25 16:16:30 +08:00
@badmotherfucker 不是我说,我翻下来也是这个感觉😰
dtla
2024-02-25 16:18:01 +08:00
@badmotherfucker 感谢你单独拧出来,希望让更多人看到,中文论坛讨论的素质有多低(不代表全体楼层)
CyrilYu
2024-02-25 16:23:04 +08:00
冷知识:GPT 4 已经放弃中文语料库了,当你用中文问问题的时候,实际查询的是英文资料(说明过什么?逃....
kneo
2024-02-25 16:26:54 +08:00
@dtla 不同意。你的回复让我更坚信这就是你自己的幻觉。

这就好像我问一个问题:开发中出现错误怎么办?

回答:
1. 阅读错误信息
2. 找出错误原因
3. 阅读文档
4. 修正错误

这算正确答案?这和 Java 有什么关系?这么答能过技术面试?

反而是回答了 try catch 的,让我相信它觉得这里的 error 是 Java Runtime 系统中的 Error class 。

真正有效的回答应该是什么样子?

1. 如你所愿,明确阐述了 Error 和 Exception 的区别。
2. 明确举出几种 Error 子类型,介绍一下分别是什么情况,如何处理。比如说 OOM 你需要调整 GC 相关参数对不? NoClassDefFoundError 你需要检查依赖包或者生成的 class ?
3. 在架构上如何处理 Error ,比如是否需要做日志,是否自动重启应用。

但凡一个 AI 能够回答出以上三点中的一点,我就能认可它把 error 和 Error class 关联起来了。
再看下你贴的 GPT 回答,我只能说,确实是幻觉。
dtla
2024-02-25 16:36:55 +08:00
@kneo

不多说了,0125 模型完美过,看图吧:

![]( https://p.ipic.vip/xfd3x4.jpg)


https://p.ipic.vip/xfd3x4.jpg
dtla
2024-02-25 16:38:22 +08:00
问:You should give me the interview answer directly, without explaining anything unless
necessary. Your answers are expected to be directly used for a Java interview. Please be
concise, but your answers should perfectly satisfy the interviewer.

The question is: How do you deal with the error? should I use try-catch ?


0125 模型答:

In Java, it's generally recommended not to use try-catch blocks to handle Errors. Errors are
used to indicate serious problems that applications should not attempt to catch, as they are
often related to issues with the Java Virtual Machine or the hardware. Instead, focus should be
on resolving the underlying problems causing these errors.
kneo
2024-02-25 16:40:01 +08:00
@dtla 这算啥?你原文可没写 should i use try catch 。
dtla
2024-02-25 16:41:13 +08:00
@kneo 加不加是一样的,加了只是会指出 try catch 的错误。不加也识别出 error 是 error ,exception 是 exception 了,我觉得这已经很有说服力了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX