最近技术群的一位小伙伴,分享了他面试阿里大模型算法工程师的经历与经验。
今天整理后分享给大家,如果你对这块感兴趣,可以文末加入我们的技术群
应聘岗位:阿里大模型算法工程师 面试轮数:第二轮 整体面试感觉:偏难
在自我介绍环节,我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长,展示了自信和沟通能力。
【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
llama2 中使用的注意力机制是什么?手写实现下分组注意力。
了解 langchain 吗?讲讲其结构。
对位置编码熟悉吗?讲讲几种位置编码的异同
RLHF的具体工程是什么?包含了哪几个模型?
分别讲讲 encoder-only、decoder-only、encoder-decoder 几种大模型的代表作。
具体讲讲 p-tuning、lora 等微调方法,并指出它们与传统fine-tuning微调有何不同。
显存不够一般怎么解决的?
几种主流大模型的 loss 了解过吗? 有哪些异同?
了解半精度训练吗?展开讲讲。
deepspeed 用过吗? 展开讲讲。
注:我回答了大部分问题,但仍有部分问题回答不够准确。后期会总结一下,然后重新写一下上面的面试题,并贴到 留言栏!!!
很多题目非常强调实践,没有做过大模型的项目且没有针对性准备过,很难回答上。
大模型微调是很多公司的考察重点。
几种模型的注意力机制、位置编码要熟悉。
4.RLHF的几步多熟悉熟悉
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了大模型面试与技术交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流