大模型的兴起,很多公司现在都开始进入AI开发的新篇章,那么或多或少也需要招聘一些AI的开发人员。
其实很多公司需要的,说白了就是一个AI开发工程师或者架构师,但是在招聘过程中,或多或少对要求写的太过夸张,学历必须是研究生,博士更好。必须熟悉各种算法原理,有paper经验等等。
不可否认,企业的出发点是好的,希望招到一个大牛,可是如果只是招一个AI开发的话,个人觉得有点得不偿失了。面试的时候也是一样,各种transformer的细节,mamba的细节,对于现在快速发展的ai应用,特别是cursor+sonnet的快速普及,如何可以找到一个可以快速开发AI应用上手的人,特别是如何识别这个人是否开发过AI应用,是很多公司面试所面临的问题。
那么,如果您是面试官,如何识别一个人真正的开发过AI应用呢?每个的想法肯定是不一样的。有的人会直接问langchain,llamaindex,有的人会问vectorstore的特性,我还见过有人问提示词的。
那么我先打个样,大家可以留言,说说大家认为最好的ai开发面试题。
我也面试了很多人,对于ai开发来说,我一般都会必问的一个问题就是,function call和tool call的区别。
其实在openai一开始,发布的是function call,它很方便的解决了openai与外部数据或api连接的问题,通过function call,openai可以将用户的自然语言绑定到用户自定义的函数,这才有后期的text2sql,以及text2anythings等新的ai应用出现。
那么既然有了functioncall,为什么openai还要出一个tool call呢,甚至现在openai的官网明确说明,已经放弃了functioncall,只建议大家使用tool call。
那肯定是functioncall有一些问题,已经慢慢的满足不了用户的需求了。
同时,既然我们提出了functioncall和toolcall的问题,就可以引申出FunctionMessage和ToolMessage的区别。
在openai中,消息的role可以有 system,user,assistant,function,tool等,同样,在langchain中,也有systemmessage,humanmessage,aimessage,functionmessage,toolmessage,特别是目前openai已经放弃functioncall的情况下,对于现在大家常用的toolcall和toolmessage,有没有什么需要注意的地方,比如,当我需要将toolmessage加入到chat_history的时候,需要注意什么,否则的话,会报错。
接下来,你可以在面试的时候,举例说明,比如:我现在有2个方法,一个是给用户发邮件的方法,一个是给用户发短信的方法。这2个方法已经写完了。
首先我把这2个方法,一个通过functioncall的方式绑定到llm。
当用户问:“”给张三发邮件,告诉他尽快提交10月份的发票。“” llm是否会执行?结果如何。
当用户问,“”给张三发邮件,告诉他尽快提交10月份的发票。给李四发短信,告诉他今天的会议取消,时间延期到明天上午10点“” llm是否会执行?结果如何。
当用户问,“”给张三发邮件,告诉他尽快提交10月份的发票。给李四发短信,告诉他今天的会议取消,时间延期到明天上午10点。2008年奥运会在哪个城市举办“” llm是否会执行?结果如何。
接下来,这2个方法,通过toolcall的方式绑定到llm,接着在问以上的问题。会有什么结果。
基本上这一套下来,如果他能回答的上来,基本上他肯定是做过大模型的应用开发了。如果回答的不好,基本上他对于agent和llm的开发,应该还有一定的欠缺。
最后,在问一下,在他的项目中,一个项目bind过多少过tool,大致了解一下他的应用规模,我觉得您对他的技术实力,基本就有数了。
以上就是我面试ai开发的一些思考,如果您也有ai开发面试经验,欢迎分享。
每周二四六直播,欢迎多多交流。