# 飞书云文档
飞书云文档
代码熊的大模型知识库
企业公开
搜索
目录(暂无内容)
与我分享
🎯
从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
人点赞
上传日志
联系客服
功能更新
帮助中心
效率指南