# 飞书云文档 飞书云文档 代码熊的大模型知识库 企业公开 搜索 目录(暂无内容) 与我分享 🎯 从0到∞: 大语言模型知识面试一本通 1. 大语言模型基础 2. 大语言模型架构 3. 大语言模型预训练 4. 大模型监督微调 5. 大语言模型强化学习 6. 提示工程与RAG 7. 大模型推理侧优化 8. 大语言模型评测 9. 多模态笔记 10. 大模型项目实践 2025年最好的大模型学习路线 缓冲区:论文笔记 补充篇:笔试、面试技巧 Leetcode必学技巧 Leetcode常见模版 新鲜面经 互联网提前批入口总结 手撕合集(更新中) 代码熊大模型学习圈加入指南 🧭 分享知识库 回收站 代码熊的大模型知识库 🎯 从0到∞: 大语言模型知识面试一本通 新鲜面经 外部 最近修改: 9月18日 09:50 分享 新鲜面经 古希腊掌管代码的神 古希腊掌管代码的神(Lark版) 9月18日修改 AI 速览 试用 本文讨论了多家公司面试的面经,涵盖阿里、美团、滴滴等公司,涉及项目经历、八股知识、场景题、手撕代码等多方面问题。关键要点包括:1.阿里面试要点:一面涉及实习项目评价指标、八股知识及梯度下降求平方根手撕代码;二面关注项目经历、模型相关问题及二维矩阵联通量数量的手撕代码;三面聊项目、论文及模型关系等。2.美团面试要点:询问项目业务目标、数据处理技巧、DPO相关问题及有序链表删除重复元素的手撕代码。3.滴滴面试要点:探讨SFT和DPO区别、语料筛选、reward model手撕loss函数等问题及搜索旋转排序数组的手撕代码。4.华为面试要点:涉及GRPO、PPO、DPO计算资源估算及字符串多key排序的手撕代码。5.理想面试要点:考察强化学习演进、数学原理、模型训练方式及有序链表合并的手撕代码。6.文远知行面试要点:询问模型结构、finetune方法、轨迹预测场景题及树的合法序列总数的手撕代码。7.其他公司面试要点:各公司还涉及不同的专业知识问题,如模型蒸馏、tokenizer工作原理、困惑度含义等,以及不同的手撕代码题。 展开 阿里1面 • 实习项目相关: 项目上线前的评价指标?RAG子模块的评价指标? 遇到最难的问题?解决的思路? 线上指标,日流量? • 八股: 过拟合原因?有什么常见解决思路 模型的loss函数前乘以10,会对训练造成什么影响? 造成多模态大模型幻觉的原因?现在常见的缓解思路。 • 场景题:识别图片并生成商品描述,会怎么做?如果这个产品MLLM压根没见过,怎么办? • 手撕:梯度下降求平方根 代码块 ```Bash def my_sqrt(x, lr=0.01, epochs=1000): a = x x = x/2.0 for _ in range(epochs): g = 2*(x**2-a)*2*x x = x - lr * g return x ``` 阿里2面 • 项目经历?数据处理?模型怎么改的?训练时间?数据量?用了多少节点?下游任务SFT后怎么解决通用能力下降? • deepseek的创新?deepseek v3的MoE架构在inference阶段怎么用的?deepseek v3的rope实现?deepseek r1的训练过程? • 做过rag是吗?介绍graph rag?bge和gte模型怎么训练的?为什么不能直接用bert-base来做余弦相似度召回?sentence-bert和bge的原理区别?sentence-bert在训练推理阶段的区别? • 对比学习的常用loss有哪些?InfoNCE的超参数?温度系数对训练的影响? • 模型训练的显存估计?由哪几部分组成?除了Model States之外还有哪些显存占用? • 模型训练显存不够怎么办?gradient checkpointing原理?gradient_accumulation原理? • 多模态大模型的预训练原理?预训练一般分为几个阶段?ViT现在一般用什么方法进行预训练? • 介绍论文(随便聊聊) 手撕:二维矩阵,里面全是0/1,找联通1联通量的数量。 代码块 ```Python from collections import deque matrix = [[0, 0, 1], [0, 1, 0]] m, n = len(matrix), len(matrix[0]) flag = [[False] * n for _ in range(m)] q = deque() d = [-1, 0, 1, 0, -1, 0] def bfs(i: int, j: int): q.append((i, j)) while q: i, j = q.popleft() flag[i][j] = True for k in range(4): new_i, new_j = i + d[k], j + d[k + 1] if 0 <= new_i < m and 0 <= new_j < n: if matrix[new_i][new_j] == 1 and not flag[new_i][new_j]: q.append((new_i, new_j)) if __name__ == '__main__': count = 0 for i in range(m): for j in range(n): if matrix[i][j] == 1 and not flag[i][j]: bfs(i, j) count += 1 print(count) ``` 追问:怎么把上面代码转化为dfs(不能用递归)? 并查集原理? 面经.pdf 评论(0) 13 13 13 人点赞 上传日志 联系客服 功能更新 帮助中心 效率指南