最近技术群的一位小伙伴,分享了他面试阿里大模型算法工程师的经历与经验。
今天整理后分享给大家,如果你对这块感兴趣,可以文末加入我们的技术群
应聘岗位:阿里大模型算法工程师 面试轮数:第二轮 整体面试感觉:偏难
面试过程回顾
1. 自我介绍
在自我介绍环节,我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长,展示了自信和沟通能力。
2. Leetcode 题
【23. 合并 K 个升序链表】
- 题目内容
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
示例 1:
输入:lists = [[1,4,5],[1,3,4],[2,6]]
输出:[1,1,2,3,4,4,5,6]
解释:链表数组如下:
[
1->4->5,
1->3->4,
2->6
]
将它们合并到一个有序链表中得到。
1->1->2->3->4->4->5->6
示例 2:
输入:lists = []
输出:[]
示例 3:
输入:lists = [[]]
输出:[]
-
提示:
-
k == lists.length
-
0 <= k <= 10^4
-
0 <= lists[i].length <= 500
-
-10^4 <= lists[i][j] <= 10^4
-
lists[i] 按 升序 排列
-
lists[i].length 的总和不超过 10^4
-
题目解答
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def mergeKLists(self, lists: List[ListNode]) -> ListNode:
lists_len = len(lists)
if lists_len == 0:
return
return self.merge(lists,0,lists_len-1)
def merge(self,lists,left,right):
if left == right:
return lists[left]
mid = left+(right-left)//2
l1 = self.merge(lists,left,mid)
l2 = self.merge(lists,mid+1,right)
return self.mergeTwoList(l1,l2)
def mergeTwoList(self,l1,l2):
head = ListNode(0)
h = head
while l1 and l2:
if l1.val >= l2.val:
h.next = l2
l2 = l2.next
else:
h.next = l1
l1 = l1.next
h = h.next
if l1:
h.next = l1
if l2:
h.next = l2
return head.next
3. 技术问题回答
-
llama2 中使用的注意力机制是什么?手写实现下分组注意力。
-
了解 langchain 吗?讲讲其结构。
-
对位置编码熟悉吗?讲讲几种位置编码的异同
-
RLHF的具体工程是什么?包含了哪几个模型?
-
分别讲讲 encoder-only、decoder-only、encoder-decoder 几种大模型的代表作。
-
具体讲讲 p-tuning、lora 等微调方法,并指出它们与传统fine-tuning微调有何不同。
-
显存不够一般怎么解决的?
-
几种主流大模型的 loss 了解过吗? 有哪些异同?
-
了解半精度训练吗?展开讲讲。
-
deepspeed 用过吗? 展开讲讲。
注:我回答了大部分问题,但仍有部分问题回答不够准确。后期会总结一下,然后重新写一下上面的面试题,并贴到 留言栏!!!
面试总结
-
很多题目非常强调实践,没有做过大模型的项目且没有针对性准备过,很难回答上。
-
大模型微调是很多公司的考察重点。
-
几种模型的注意力机制、位置编码要熟悉。
-
4.RLHF的几步多熟悉熟悉
技术交流群
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了大模型面试与技术交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流
用通俗易懂方式讲解系列
- 用通俗易懂的方式讲解:自然语言处理初学者指南(附1000页的PPT讲解)
- 用通俗易懂的方式讲解:NLP 这样学习才是正确路线
- 用通俗易懂的方式讲解:28张图全解深度学习知识!
- 用通俗易懂的方式讲解:不用再找了,这就是 NLP 方向最全面试题库
- 用通俗易懂的方式讲解:实体关系抽取入门教程
- 用通俗易懂的方式讲解:灵魂 20 问帮你彻底搞定Transformer
- 用通俗易懂的方式讲解:图解 Transformer 架构
- 用通俗易懂的方式讲解:大模型算法面经指南(附答案)
- 用通俗易懂的方式讲解:十分钟部署清华 ChatGLM-6B,实测效果超预期
- 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain
- 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统
- 用通俗易懂的方式讲解:最全的大模型 RAG 技术概览
- 用通俗易懂的方式讲解:利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序
- 用通俗易懂的方式讲解:使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA