首页 > 编程语言 >百度大模型算法工程师二面:我的亲身经历分享!

百度大模型算法工程师二面:我的亲身经历分享!

时间:2024-10-23 14:45:53浏览次数:8  
标签:node word AI 亲身经历 self Trie 二面 模型 百度

百度大模型算法工程师面试题

应聘岗位:百度大模型算法工程师

面试轮数:第二轮

整体面试感觉:偏简单

面试过程回顾

1. 自我介绍

在自我介绍环节,我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长,展示了自信和沟通能力。

2. Leetcode 题

具体题意记不清了,但是类似 【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)

3. 技术问题回答

3.1 结合 GNN 科研项目进行提问
  1. 样本构建的流程是怎样的,并且为什么 GCN 相较于其他方法在效果上更胜一筹?
  2. 节点特征指的是什么?
3.2 结合 基于 RAG 的医学问答项目进行提问
  1. 查询流程?
  2. 使用什么向量数据库?
  3. 介绍一下 RAG 原理?
  4. RAG 如何解决多实体提问问题?
    用户提问:感冒和咳嗽需要吃什么药?
3.3 结合多模态科研项目进行提问
  1. Prompt是如何生成的,优化目标是什么,任务是什么?
  2. OCR 抽取效果不好,需要怎么排查问题?
3.4 技术问题
  1. 您是否使用过Pytorch提供的预训练模型,例如torchvision、transformers以及OpenAI开源的ClIP?对分布式训练有经验么?

回答:学过但是没用过

  1. RNN与GNN之间有哪些区别,以及它们各自适用于哪些场景?

回答:

RNN与GNN的区别:
1. 数据类型:
   - RNN 设计用于处理序列数据,即数据点按时间顺序排列,如时间序列分析、语音识别和自然语言处理。
   - GNN 专门用于处理图结构数据,图由节点和边组成,代表实体及其关系,如社交网络、交通网络和分子结构。
2. 结构和工作原理:
   - RNN 的核心是循环单元,它能够在序列的每个时间步上保持信息的状态,但是长序列会导致梯度消失或梯度爆炸问题,影响学习长期依赖。
   - GNN 通过节点和边的特征以及图结构本身的信息,利用特殊的邻居节点更新机制来学习图中的特征表示,更好地捕捉节点间的依赖关系。
3. 长期依赖问题:
   - RNN 在处理长序列时存在长期依赖问题,虽然有LSTM(长短期记忆网络)等变体来缓解这一问题,但本质上是序列模型。
   - GNN 通过图结构天然地能够捕捉节点间的依赖关系,因此在处理具有明确关系的数据时更为有效。

各自适用的场景:
- RNN 适用于处理时间序列数据、文本序列等,如股票价格预测、语音识别、机器翻译(序列到序列的任务)。
- GNN 适用于处理结构化数据,如社交网络分析、推荐系统、生物信息学(如蛋白质结构预测)、地理信息系统等,其中实体和关系是数据的核心组成部分。
总的来说,RNN适合处理时间或顺序上的数据,而GNN适合处理具有明确结构关系的数据。两者各有优势,选择哪种模型取决于具体问题和数据的特点。
  1. GPT和BERT在文本表征方面有哪些结构和工作原理上的差异?

回答:BERT是Transformer Encoder,属于自监督训练方式,然后两大预训练任务,主要用于下游任务抽特征,GPT是Decoder,自回归训练,主要是预测下一个词的分布,依赖大语料库,GPT-3可以表现出Few-shot/zero-shot learning

  1. 因为说了BERT好训练一些,问了为什么?

回答:说了GPT任务对简单、比较依赖语料库的大小,BERT的MLM比较直觉且个人能训练,GPT只有openai等公司有成品

  1. 说一说你对 Zero-shot和Few-shot的理解

回答:Few-shot先给定任务范式描述,Zero-shot就是直接做

  1. 怎么看待计算机网络和操作系统在DL中的作用

回答:谈了DL研究一些计算机网路的问题,比如网络拓扑、交换机拓扑等,分布式训练时会有通信,也会用到进程相关知识

  1. 你来调优一个BERT模型适应一个数据集或任务会怎么做

回答:固定BERT,训练分类头或者使用Adapter

  1. 训练完模型后准确率很低,怎么优化

回答:首先检查代码结构和分类器的网络结构和BERT量级是否匹配,学习率+余弦退火调整,改为Adapter,检查数据集质量,验证阶段代码是否有误

  1. 有一批文本数据,来源和质量不太一样,使用时如何处理

回答:反问文本来源不同是否混合或完全分开,结合多模态融合的技术,增加一个学习任务,对不同来源的文本表示进行线性变换投影到相同的特征空间中

个人本次面试总结

百度的面试篇项目面一点,整体效果还行,面试官给人感觉比较温和。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

标签:node,word,AI,亲身经历,self,Trie,二面,模型,百度
From: https://blog.csdn.net/python12345678_/article/details/143184502

相关文章

  • 百度地图引入个性化样式,加载时出现大片白块的解决办法
    百度地图引入个性化样式,加载时出现大片白块的解决办法问题描述大屏使用某个地区的详细地图,设置了百度地图自定义样式为深蓝色地图,但是加载的时候,瓦片会出现大片白色的情况,之后才会加载出来深蓝色地图,本文介绍一个方法,来解决加载的时候出现大片白色的问题直奔主题前端......
  • PbootCMS网站百度site网址异常的解决办法
    解决PBootCMS网站异常URL收录问题的方法1.更新系统和补丁确保安全:首先,登录PBootCMS后台,检查是否有新的系统更新或安全补丁。如果有,请及时安装,以修复可能存在的安全漏洞。操作步骤:进入PBootCMS后台管理界面。导航至“系统设置”或“系统更新”模块。检查并安装所有可用的......
  • 告别繁琐的云平台开发!IoT_CLOUD之【百度云】
    ​众所周知,市面上有很多云平台,阿里云、腾讯云、中移OneNET、华为云、百度云、涂鸦云、Tlink云等等......并且每家云平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对接不同的协议,看着都头大!!!为解决繁琐的云平台开发困扰,合宙IoT_CLOUD应运而生,一库打通所有云平......
  • pbootcms网站后台 百度普通收录推送发生错误:site error
    在使用PBootCMS网站后台进行百度普通收录推送时,如果遇到“siteerror”错误,通常是由于百度对每天提交的数量进行了限制。默认情况下,大部分企业账户每天只能提交10条链接。以下是一些解决和优化方法:1.了解百度推送限制每日限额:百度对普通收录推送的每日限额通常是10条链......
  • 百度萝卜快跑 vs 特斯拉FSD,谁才是真正的智能驾驶王者?
    近日,随着特斯拉无人出租车的发布,详情见《太前卫了!特斯拉无人出租车Cybercab登场,方向盘&踏板都没了!》,自动驾驶界的“争霸赛”在国内外掀起了热潮。面对之前已经上路的萝卜快跑,问题来了:百度的“萝卜快跑”和特斯拉的FSD,到底谁才是真正的“王者”?这场科技大对决不仅仅是两个系......
  • 告别繁琐的云平台开发!IoT_CLOUD之【百度云】
    ​众所周知,市面上有很多云平台,阿里云、腾讯云、中移OneNET、华为云、百度云、涂鸦云、Tlink云等等......并且每家云平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对接不同的协议,看着都头大!!!为解决繁琐的云平台开发困扰,合宙IoT_CLOUD应运而生,一库打通所有云平......
  • cpp:指针转化(百度AI:static_cast/dynamic_cast/const_cast/reinterpret_cast)
    cpp:指针转化(百度AI:static_cast/dynamic_cast/const_cast/reinterpret_cast)    一、c++指针转化概述: 在C++中,指针转换主要包括静态转换、动态转换、常量转换和重新解释转换四种类型。‌ ‌1、 静态转换(static_cast)‌: -- 用于基本数据类型之间的转换,如将int转换......
  • Vue快速嵌入百度地图,避坑提效指南
    Vue快速嵌入百度地图,避坑提效指南在Vue项目中引用百度地图并没有高德地图那么方便,但是项目要用,这里分享下找到的方法,方便使用到的时候能快速接入,避雷避坑!新建bmap.js文件exportdefault{init:function(){constAK="这里是你申请的百度AK";cons......
  • Vue2 - 详细实现安装引入百度地图并查询展示周边交通/教育/医疗/商场/生活/娱乐等POI
    前言Vue3版本,请访问在vue2|nuxt2项目开发中,详解高德地图根据当前定位获取周边附近的商圈,vue2高德地图获取周边商圈并将这些地址位置列出来供用户点击跳转和选择,获取当前位置或指定区域周边的交通出行、学校教育、医院诊所、商场购物、生活娱乐、旅游景点、酒店民宿......
  • 关于驰骋BPM平台对接百度云OCR识别的操作介绍
    前言        在当今数字化时代,高效准确地处理信息至关重要。驰骋BPM平台与百度云OCR识别的对接,为用户带来了强大的文档识别和数据提取能力。一、准备工作拥有百度云账号:首先,你需要注册一个百度云账号(https://console.bce.baidu.com/),并开通百度云OCR服务。在百......