应聘岗位:百度大模型算法工程师
面试轮数:第二轮
整体面试感觉:偏简单
在自我介绍环节,我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长,展示了自信和沟通能力。
具体题意记不清了,但是类似 【208. 实现 Trie (前缀树)】
Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。
请你实现 Trie 类:
Trie() 初始化前缀树对象。
void insert(String word) 向前缀树中插入字符串 word 。
boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。
boolean startsWith(String prefix) 如果之前已经插入的字符串 word 的前缀之一为 prefix ,返回 true ;否则,返回 false 。
示例:
输入 ["Trie", "insert", "search", "search", "startsWith", "insert", "search"] [[], ["apple"], ["apple"], ["app"], ["app"], ["app"], ["app"]] 输出 [null, null, true, false, true, null, true] 解释 Trie trie = new Trie(); trie.insert("apple"); trie.search("apple"); // 返回 True trie.search("app"); // 返回 False trie.startsWith("app"); // 返回 True trie.insert("app"); trie.search("app"); // 返回 True
提示:
1 <= word.length, prefix.length <= 2000
word 和 prefix 仅由小写英文字母组成
insert、search 和 startsWith 调用次数 总计 不超过 3 * 104 次
题目解答
class Trie(object): def __init__(self): self.children = [None]*26 self.is_end = False def insert(self, word): """ :type word: str :rtype: None """ node = self for c in word: c = ord(c)-ord("a") if not node.children[c]: node.children[c] = Trie() node = node.children[c] node.is_end = True def searchPrefix(self, prefix): node = self for c in prefix: c = ord(c)-ord("a") if not node.children[c]: return None node = node.children[c] return node def search(self, word): """ :type word: str :rtype: bool """ node = self.searchPrefix(word) return node is not None and node.is_end def startsWith(self, prefix): """ :type prefix: str :rtype: bool """ return self.searchPrefix(prefix) is not None # Your Trie object will be instantiated and called as such: # obj = Trie() # obj.insert(word) # param_2 = obj.search(word) # param_3 = obj.startsWith(prefix)
样本构建的流程是怎样的,并且为什么 GCN 相较于其他方法在效果上更胜一筹?
节点特征指的是什么?
查询流程?
使用什么向量数据库?
介绍一下 RAG 原理?
RAG 如何解决多实体提问问题?
`用户提问:感冒和咳嗽需要吃什么药?`
Prompt是如何生成的,优化目标是什么,任务是什么?
OCR 抽取效果不好,需要怎么排查问题?
回答:学过但是没用过
回答:
RNN与GNN的区别: 1. 数据类型: - RNN 设计用于处理序列数据,即数据点按时间顺序排列,如时间序列分析、语音识别和自然语言处理。 - GNN 专门用于处理图结构数据,图由节点和边组成,代表实体及其关系,如社交网络、交通网络和分子结构。 2. 结构和工作原理: - RNN 的核心是循环单元,它能够在序列的每个时间步上保持信息的状态,但是长序列会导致梯度消失或梯度爆炸问题,影响学习长期依赖。 - GNN 通过节点和边的特征以及图结构本身的信息,利用特殊的邻居节点更新机制来学习图中的特征表示,更好地捕捉节点间的依赖关系。 3. 长期依赖问题: - RNN 在处理长序列时存在长期依赖问题,虽然有LSTM(长短期记忆网络)等变体来缓解这一问题,但本质上是序列模型。 - GNN 通过图结构天然地能够捕捉节点间的依赖关系,因此在处理具有明确关系的数据时更为有效。 各自适用的场景: - RNN 适用于处理时间序列数据、文本序列等,如股票价格预测、语音识别、机器翻译(序列到序列的任务)。 - GNN 适用于处理结构化数据,如社交网络分析、推荐系统、生物信息学(如蛋白质结构预测)、地理信息系统等,其中实体和关系是数据的核心组成部分。 总的来说,RNN适合处理时间或顺序上的数据,而GNN适合处理具有明确结构关系的数据。两者各有优势,选择哪种模型取决于具体问题和数据的特点。
回答:BERT是Transformer Encoder,属于自监督训练方式,然后两大预训练任务,主要用于下游任务抽特征,GPT是Decoder,自回归训练,主要是预测下一个词的分布,依赖大语料库,GPT-3可以表现出Few-shot/zero-shot learning
回答:说了GPT任务对简单、比较依赖语料库的大小,BERT的MLM比较直觉且个人能训练,GPT只有openai等公司有成品
回答:Few-shot先给定任务范式描述,Zero-shot就是直接做
回答:谈了DL研究一些计算机网路的问题,比如网络拓扑、交换机拓扑等,分布式训练时会有通信,也会用到进程相关知识
回答:固定BERT,训练分类头或者使用Adapter
回答:首先检查代码结构和分类器的网络结构和BERT量级是否匹配,学习率+余弦退火调整,改为Adapter,检查数据集质量,验证阶段代码是否有误
回答:反问文本来源不同是否混合或完全分开,结合多模态融合的技术,增加一个学习任务,对不同来源的文本表示进行线性变换投影到相同的特征空间中
百度的面试篇项目面一点,整体效果还行,面试官给人感觉比较温和。
领取方式在文末
学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。
①智能客服:某科技公司员工在学习了大模型课程后,成功开发了一套基于自然语言处理的大模型智能客服系统。该系统不仅提高了客户服务效率,还显著降低了人工成本。
②医疗影像分析:一位医学研究人员通过学习大模型课程,掌握了深度学习技术在医疗影像分析中的应用。他开发的算法能够准确识别肿瘤等病变,为医生提供了有力的诊断辅助。
③金融风险管理:一位金融分析师利用大模型课程中学到的知识,开发了一套信用评分模型。该模型帮助银行更准确地评估贷款申请者的信用风险,降低了不良贷款率。
④智能推荐系统:一位电商平台的工程师在学习大模型课程后,优化了平台的商品推荐算法。新算法提高了用户满意度和购买转化率,为公司带来了显著的增长。
…
这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。
如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
整个学习分为7个阶段
涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
从入门到进阶这里都有,跟着老师学习事半功倍。
如果二维码失效,可以点击下方链接,一样的哦
【CSDN大礼包】最新AI大模型资源包,这里全都有!无偿分享!!!
朋友们如果有需要的话,可以V扫描下方二维码联系领取~