面试小米大模型算法工程师,心态炸了!!!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。

总结链接如下:

重磅消息!《大模型面试宝典》(2024版) 正式发布!

喜欢记得点赞、收藏、关注。更多技术交流&面经学习,可以文末加入我们。


本文章主要记录了本小菜研找实习的坎坷历程,欢迎大佬们给建议!!!

应聘岗位:小米-NLP 算法工程师

1. 自我介绍

在自我介绍环节,我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长,展示了自信和沟通能力。

2. 技术问题

2.5 RAG 相关面试题

  1. 聊一下RAG项目总体思路?

  2. 使用外挂知识库主要是为了解决什么问题?

  3. 如何评价RAG项目的效果好坏,即指标是什么?

  4. 在做RAG项目过程中遇到哪些问题?怎么解决的?

  5. RAG项目里面有哪一些亮点?目前开源的RAG项目非常多,你的项目和他们有什么区别?

  6. 数据集怎么构建的,什么规模,评估指标是什么,这些指标存在哪些问题?

  7. 模型底座是什么,这些不同底座什么区别,什么规模?

  8. 使用哪一种训练方法,什么sft,这些方法有什么不同,有什么优缺点,原理上解释不不同方法的差别?

  9. 模型推理是怎么做的,有没有cot,tot等等,还是单轮?

  10. 大模型可控性如何实现,怎么保证可控性?

  11. 模型部署的平台,推理效率怎么样,如何提升推理效率?

  12. 项目最后上线了么,上线之后发现什么问题,如何解决?

  13. 给一个总的输入输出样例,每一步包含什么prompt,多轮推理每一步输出什么结果,模拟一下,数据集格式是否要调整成这样,数据形式是什么,怎么拆分成多轮形式?

2.6 Agent 相关面试题

  1. 了解 Ai Agent 么?

  2. 知道 Multi-Agent 么?

  3. Multi-Agent 如何 实现多代理协作的?

  4. Multi-Agent 如何 实现多代理竞争的?

  5. 你了解哪些 开源 Agent?有部署过么?效果怎么样?

2.1 self-attention的计算方式?

2.2 说一下 transformer的模型架构和细节?
2.3 说一下大模型高校参数微调方式 p-tuning v2?

P-Tuning V2在P-Tuning V1的基础上进行了下述改进:

  • 在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层,这与Prefix Tuning的做法相同。这样得到了更多可学习的参数,且更深层结构中的Prompt能给模型预测带来更直接的影响。

  • 去掉了重参数化的编码器。在 P-tuning v2 中,作者发现重参数化的改进很小,尤其是对于较小的模型,同时还会影响模型的表现。

  • 针对不同任务采用不同的提示长度。提示长度在提示优化方法的超参数搜索中起着核心作用。在实验中,我们发现不同的理解任务通常用不同的提示长度来实现其最佳性能,这与Prefix-Tuning中的发现一致,不同的文本生成任务可能有不同的最佳提示长度。

  • 可选的多任务学习。先在多任务的Prompt上进行预训练,然后再适配下游任务。一方面,连续提示的随机惯性给优化带来了困难,这可以通过更多的训练数据或与任务相关的无监督预训练来缓解;另一方面,连续提示是跨任务和数据集的特定任务知识的完美载体。

2.4 在 大模型任务中,你用到 LoRA,讲一下 LoRA 实现原理?

LoRA 的思想很简单:

  • 在原始 PLM (Pre-trained Language Model) 旁边增加一个旁路,做一个降维再升维的操作,来模拟所谓的intrinsic rank。

  • 训练的时候固定 PLM 的参数,只训练降维矩阵 A 与升维矩阵 B 。而模型的输入输出维度不变,输出时将 BA 与 PLM 的参数叠加。

  • 用随机高斯分布初始化 A ,用 0 矩阵初始化 B ,保证训练的开始此旁路矩阵依然是 0 矩阵。

3. Leetcode 题

具体题意记不清了,但是类似 【两数之和】

  • 题目内容

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:
输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6 输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6 输出:[0,1]
提示:
2 <= nums.length <= 10**4
-109 <= nums[i] <= 109
-109 <= target <= 109
  • 代码实现
def twoSum(nums, target):
    hashmap={}
    for ind,num in enumerate(nums):
        hashmap[num] = ind
    for i,num in enumerate(nums):
        j = hashmap.get(target - num)
        if j is not None and i!=j:
            return [i,j]

技术交流&资料

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

成立了算法面试和技术交流群,相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:来自CSDN + 技术交流

通俗易懂讲解大模型系列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值