面經分享|面了好未來NLP算法崗(實習),經歷坎坷但值了!

節前,我們組織了一場算法崗技術&面試討論會,邀請了一些互聯網大廠同學、參加社招和校招面試的同學,針對大模型技術趨勢、大模型落地項目經驗分享、新手如何入門算法崗、該如何備戰、面試常考點分享等熱門話題進行了深入的討論。

今天我分享一位小伙伴,今年成功找到實習機會,面試題整理后分享給大家,希望對后續找工作的有所幫助。喜歡記得點贊、收藏、關注。更多技術交流&面經學習,可以加入我們。


自我介紹

今年某985研二,本文章主要記錄了本小菜研找實習的坎坷歷程。

1. 自我介紹

在自我介紹環節,我清晰地闡述了個人基本信息、教育背景、工作經歷和技能特長,展示了自信和溝通能力。

2. 技術問題

2.1 lora的矩陣怎么初始化?為什么要初始化為全0?

初始化時,矩陣 A 隨機高斯初始化,矩陣 B 初始化為0。之所以要這樣初始化的原因是,在初始階段這兩個矩陣相乘為0,可以保證在初始階段時,只有左邊的主干生效。然后 BA 還會乘以一個縮放因子 a/r, a 也由我們自己指定。

訓練的時候,預訓練的權重矩陣全部都是凍結的。

2.2 gpt源碼past_key_value是干啥的?

在GPT(Generative Pre-trained Transformer)中,past_key_value是用于存儲先前層的注意力權重的結構。在進行推理時,過去的注意力權重可以被重復使用,避免重復計算,提高效率。

2.3 gpt onebyone 每一層怎么輸入輸出?

在GPT One-by-One中,每一層的輸入是上一層的輸出。具體而言,輸入是一個序列的嵌入表示(通常是詞嵌入),并通過自注意力機制和前饋神經網絡進行處理,得到輸出序列的表示。

2.4 模型輸出的分布比較稀疏,怎么處理?

可以采用一些方法來處理模型輸出的分布稀疏,例如使用softmax函數的溫度參數調節來平滑輸出分布,或者引入正則化技術,如Dropout,以減少模型對特定類別的過度依賴。

2.5 kl散度的公式和kl散度與交叉熵的區別?

KL(Kullback-Leibler)散度衡量了兩個概率分布之間的差異。其公式為:

KL散度指的是相對熵,KL散度是兩個概率分布P和Q差別的非對稱性的度量。KL散度越小表示兩個分布越接近。也就是說KL散度是不對稱的,且KL散度的值是非負數。(也就是熵和交叉熵的差)

2.6 介紹一下 文本embedding方法?

文本嵌入(Text Embedding)是一種將自然語言文本數據轉換為連續向量空間中稠密向量的技術,在這個向量空間中,語義相似的詞或文本片段會擁有相近的向量表示。這種技術是現代自然語言處理(NLP)中的基石,它使得計算機可以理解和處理文本數據,并將其應用到諸如分類、聚類、檢索、翻譯、問答等多種下游任務。

以下是一些常見的文本嵌入方法:

  1. Word2Vec

    • 包括CBOW(Continuous Bag-of-Words)和Skip-gram兩種模型,由Google在2013年提出。它們通過神經網絡學習詞語與其上下文之間的關系,生成固定長度的詞向量。
  2. GloVe

    • GloVe(Global Vectors for Word Representation),由斯坦福大學提出,該方法基于全局詞頻統計信息構建詞共現矩陣,通過優化目標函數直接學習每個詞的向量表示,使得詞向量的點積近似于它們在語料庫中的共現概率。
  3. FastText

    • 由Facebook AI Research開發,FastText在Word2Vec的基礎上增加了對字符級n-grams的考慮,尤其適合處理形態豐富的低資源語言以及未登錄詞的表示問題。
  4. Paragraph Vector (Doc2Vec)

    • 可以擴展到句子和段落級別,除了學習單詞向量外,還學習一個額外的“文檔向量”,能夠捕獲較長文本整體的語義特征。
  5. Transformer-based Embeddings

    • 隨著Transformer架構的出現,如BERT(Bidirectional Encoder Representations from Transformers)、GPT(Generative Pretrained Transformer)及其后續版本,預訓練語言模型進一步提升了文本嵌入的質量。這些模型在大量無標簽文本上進行自監督訓練,得到的詞嵌入包含了豐富的上下文信息。
  6. ELMo

    • ELMo(Embeddings from Language Models)利用雙向LSTM的語言模型上下文敏感地計算詞向量,詞的表示取決于其在句子中的具體上下文。
  7. Sentence-BERT (SBERT)

    對BERT等Transformer模型進行微調,使其可以直接生成句子級別的嵌入,特別適用于句子對齊、相似度計算等任務。

    通過這些文本嵌入技術,原本離散的文本數據得以轉化為具有數學性質的向量表達,從而可以在機器學習和深度學習算法中更高效地處理和分析。隨著技術的發展,新的嵌入方法不斷涌現,且越來越適應大規模多語言和跨模態的應用場景。

2.7 chatgpt的reward model怎么來的,三階段?

ChatGPT模型的訓練過程中,確實涉及到了一個基于人類反饋強化學習(Reinforcement Learning from Human Feedback, RLHF)的三階段過程。以下是這個過程的一個概述:

  1. 預訓練(Pre-training)階段
  • 在這個階段,GPT模型通過無監督學習的方式在大規模文本數據集上進行訓練。該模型的目標是預測下一個詞語給定前面的詞語序列,從而學習語言模型的基本結構和模式。
  1. 獎勵模型訓練(Reward Model Training)階段
  • 預訓練后的模型會被用于生成大量針對各種提示的回答。

  • 這些生成的回答會由人工標注員進行評估,并給出好壞或滿意度得分,形成一個帶有質量評分的數據集。

  • 基于這些人工標注的數據,訓練一個獎勵模型(Reward Model),該模型可以預測對于任何給定的輸入和輸出對,人類用戶可能給予多大的滿意程度分數。

  • 通過這種方式,獎勵模型能夠理解并量化哪些類型的回答更符合人類期望的標準。

  1. 強化學習微調(Fine-tuning with Reinforcement Learning)階段
  • 使用訓練好的獎勵模型作為指導信號,將預訓練模型與強化學習算法結合,對模型進行微調(fine-tuning)。

  • 模型現在以強化學習的方式進一步訓練,目標是在生成響應時最大化來自獎勵模型的預期獎勵,也就是得到更高的滿意度分數。

  • 通過迭代優化,ChatGPT模型逐漸學會根據上下文生成更加準確、有用且合乎倫理道德的回答。

最終,經過這三階段訓練流程,ChatGPT不僅具備了強大的語言生成能力,還能夠更好地理解和適應人類對話的需求,提供更為高質量的人工智能交互體驗。

3. Leetcode 題

287. 尋找重復數
  • 題目內容

給定一個包含 n + 1 個整數的數組 nums ,其數字都在 [1, n] 范圍內(包括 1 和 n),可知至少存在一個重復的整數。

假設 nums 只有 一個重復的整數 ,返回 這個重復的數 。

你設計的解決方案必須 不修改 數組 nums 且只用常量級 O(1) 的額外空間。

示例 1:

輸入:nums = [1,3,4,2,2]
輸出:2

示例 2:

輸入:nums = [3,1,3,4,2]
輸出:3
  • 代碼實現
class Solution:def findDuplicate1(self, nums: List[int]) -> int:''' 方法一:排序法解析:包含 n + 1 個整數的數組 nums ,其數字都在 [1, n] 范圍內(包括 1 和 n),也就是排序之后,第一個值不等于 位置索引的 數 為 重復數'''nums = sorted(nums)i = 1while i < len(nums):if nums[i] == nums[i-1]:return nums[i]i = i + 1def findDuplicate2(self, nums: List[int]) -> int:''' 方法二:位運算法'''nums = sorted(nums)i = 1while i < len(nums):print(nums[i] ^ nums[i-1])if nums[i] ^ nums[i-1]==0:return nums[i]i = i + 1def findDuplicate3(self, nums: List[int]) -> int:''' 方法三:快慢指針法解析:存在相同值,也就表示 快慢指針 會 相遇'''slow = 0fast = 0while 1:slow = nums[slow]fast = nums[nums[fast]]if slow==fast:fast = 0while 1:if slow==fast:return slowslow = nums[slow]fast = nums[fast]def findDuplicate(self, nums: List[int]) -> int:'''方法四:哈希表法'''dic = set()for num in nums:if num not in dic:dic.add(num)else:return num

技術交流群

前沿技術資訊、算法交流、求職內推、算法競賽、面試交流(校招、社招、實習)等、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企開發者互動交流~

我們建了算法崗技術與面試交流群, 想要進交流群、需要源碼&資料、提升技術的同學,可以直接加微信號:mlc2060。加的時候備注一下:研究方向 +學校/公司+CSDN,即可。然后就可以拉你進群了。

方式①、微信搜索公眾號:機器學習社區,后臺回復:加群
方式②、添加微信號:mlc2060,備注:技術交流

用通俗易懂方式講解系列

  • 用通俗易懂的方式講解:自然語言處理初學者指南(附1000頁的PPT講解)
  • 用通俗易懂的方式講解:1.6萬字全面掌握 BERT
  • 用通俗易懂的方式講解:NLP 這樣學習才是正確路線
  • 用通俗易懂的方式講解:28張圖全解深度學習知識!
  • 用通俗易懂的方式講解:不用再找了,這就是 NLP 方向最全面試題庫
  • 用通俗易懂的方式講解:實體關系抽取入門教程
  • 用通俗易懂的方式講解:靈魂 20 問幫你徹底搞定Transformer
  • 用通俗易懂的方式講解:圖解 Transformer 架構
  • 用通俗易懂的方式講解:大模型算法面經指南(附答案)
  • 用通俗易懂的方式講解:十分鐘部署清華 ChatGLM-6B,實測效果超預期
  • 用通俗易懂的方式講解:內容講解+代碼案例,輕松掌握大模型應用框架 LangChain
  • 用通俗易懂的方式講解:如何用大語言模型構建一個知識問答系統
  • 用通俗易懂的方式講解:最全的大模型 RAG 技術概覽
  • 用通俗易懂的方式講解:利用 LangChain 和 Neo4j 向量索引,構建一個RAG應用程序
  • 用通俗易懂的方式講解:使用 Neo4j 和 LangChain 集成非結構化知識圖增強 QA
  • 用通俗易懂的方式講解:面了 5 家知名企業的NLP算法崗(大模型方向),被考倒了。。。。。
  • 用通俗易懂的方式講解:NLP 算法實習崗,對我后續找工作太重要了!。
  • 用通俗易懂的方式講解:理想汽車大模型算法工程師面試,被問的瑟瑟發抖。。。。
  • 用通俗易懂的方式講解:基于 Langchain-Chatchat,我搭建了一個本地知識庫問答系統
  • 用通俗易懂的方式講解:面試字節大模型算法崗(實習)
  • 用通俗易懂的方式講解:大模型算法崗(含實習)最走心的總結
  • 用通俗易懂的方式講解:大模型微調方法匯總

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713734.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713734.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713734.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【復試2.293.1】c語言——基礎雜項

1.define定義常量類似全局變量&#xff0c;引用是直接拼到代碼中去。 2.關于e 3.參數傳遞 形參直接接收的是數組的起始地址 4.數組越界亂碼問題 5.scanf讀字符串的時候會自動在末尾放0&#xff08;結束符 6.scanf是讀取輸入緩沖區的數據&#xff0c;是一種拿走操作。讀取若有…

文本多分類

還在用BERT做文本分類&#xff1f;分享一套基于預訓練模型ERNIR3.0的文本多分類全流程實例【文本分類】_ernir 文本分類-CSDN博客 /usr/bin/python3 -m pip install --upgrade pip python3-c"import platform;print(platform.architecture()[0]);print(platform.machine…

C語言實現航班管理

航班管理系統&#xff0c;用C語言實現&#xff0c;可以作為課程設計&#xff0c;代碼如下&#xff1a; #include<iostream> #include<fstream> #include<vector> #include<string> #include<stdlib.h> using namespace std; //信息基類 clas…

Linux第67步_linux字符設備驅動_注冊和注銷

1、字符設備注冊與注銷的函數原型” /*字符設備注冊的函數原型*/ static inline int register_chrdev(unsigned int major,\ const char *name, \ const struct file_operations *fops) /* major:主設備號&#xff0c;Limnux下每個設備都有一個設備號&#xff0c;設備號分…

【六袆 - React】Next.js:React 開發框架;Next.js開發框架的特點

Next.js&#xff1a;React 開發框架 Next.js的特點 1.直觀的、基于頁面的路由系統&#xff08;并支持動態路由&#xff09; Next.js 提供了基于文件系統的路由&#xff0c;意味著你可以通過創建頁面文件來定義路由。 偽代碼示例&#xff1a; // pages/index.js export defa…

【GStreamer】basic-tutorial-2:創建、鏈接GstElement,修改其屬性、狀態

【目錄】郭老二博文之:圖像視頻匯總 1、示例注釋 #include <gst/gst.h>int main (int argc, char *argv[]) {GstElement *pipeline,

MYSQL--JDBC優化

一.JDBC優化: 優化前提: 有時候我們并不清楚某些表當中一共有多少列,以及這些列的數據類型,這個時候我們就需要提前通過一些方法提前了解到這些數據,從而更好的進行輸出 具體語句: package cn.jdbc;import java.sql.*;public class JDBCDEmo1 {public static void main(String…

C語言中的動態內存管理技巧:實現靈活的內存分配和釋放

概念 在C語言中&#xff0c;動態內存管理是實現靈活內存分配和釋放的關鍵。合理地管理動態內存可以提高程序的效率和擴展性。本文將介紹C語言中常用的動態內存管理方法和技巧&#xff0c;幫助讀者優化內存分配和釋放的過程。 常用的動態內存管理方法 內存分配&#xff1a;C語…

【數學建模獲獎經驗】2023第八屆數維杯數學建模:華中科技大學本科組創新獎獲獎分享

2024年第九屆數維杯大學生數學建模挑戰賽將于&#xff1a;2024年5月10日08:00-5月13日09:00舉行&#xff0c;近期同學們都開始陸續進入了備賽階段&#xff0c;今天我們就一起來看看上一屆優秀的創新獎選手都有什么獲獎感言吧~希望能幫到更多熱愛數學建模的同學。據說點贊的大佬…

elment-ui table表格排序后 清除排序箭頭/恢復默認排序 的高亮樣式

問題描述&#xff1a; 1.默認排序是按照名稱升序排列&#xff08;圖一&#xff09; 2.在選擇了篩選項以及其他排序方式之后&#xff0c;箭頭高亮是這樣的&#xff08;圖二&#xff09; 3.當我點擊清空按鈕后&#xff0c;類型清空了&#xff0c;并且傳給后端的排序方式是名稱/升…

探索色彩搭配的奧秘:如何選擇適合產品的理想配色方案

title: 探索色彩搭配的奧秘&#xff1a;如何選擇適合產品的理想配色方案 date: 2024/3/1 20:47:45 updated: 2024/3/1 20:47:45 tags: 色彩搭配品牌形象用戶體驗情感連接信息傳達視覺層次色調選擇 引言 友善的色彩搭配和色調選擇是現代產品設計中不可忽視的關鍵因素。通過正確…

Linux yum安裝pgsql出現Bad GPG signature錯誤

官方文檔&#xff1a;https://www.postgresql.org/download/linux/redhat/ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql12-server sudo /usr/pgsql-12/bin/…

Rust使用calamine讀取excel文件,Rust使用rust_xlsxwriter寫入excel文件

Rust使用calamine讀取已存在的test.xlsx文件全部數據&#xff0c;還讀取指定單元格數據&#xff1b;Rust使用rust_xlsxwriter創建新的output.xlsx文件&#xff0c;并寫入數據到指定單元格&#xff0c;然后再保存工作簿。 Cargo.toml main.rs /*rust讀取excel文件*/ use cala…

Pytest-parametrize實現測試用例與測試數據分離

Pytest自動化框架&#xff0c;實現自動化測試用例與測試數據分離方法&#xff1a; 1.測試用例數據準備&#xff0c;使用yaml文件編輯&#xff0c;如下述teladress.yaml 2.通過pytest框架裝飾器pytest.mark.parametrize實現測試數據傳參 示例&#xff1a; 測試用例文件&…

Tomcat 架構

一、Http工作原理 HTTP協議是瀏覽器與服務器之間的數據傳送協議。作為應用層協議&#xff0c;HTTP是基于TCP/IP協議來傳遞數據的&#xff08;HTML文件、圖片、查詢結果等&#xff09;&#xff0c;HTTP協議不涉及數據包&#xff08;Packet&#xff09;傳輸&#xff0c;主要規定了…

c語言之字符串的輸入和輸出

c語言在輸出字符串時&#xff0c;用格式符‘%s"&#xff0c;代碼比較簡潔 如果說數組長度大于字符串長度&#xff0c;也只輸出\0前的內容 字符串默認后面有\0. 如果字符串有多個\0&#xff0c;會默認在第一個\0結束 #include<stdio.h> int main() {int i;char a…

GO數組切片

1. 數組 數組是一個由固定長度的特定類型元素組成的序列&#xff0c;一個數組可以由零個或多個元素組成。 因為數組的長度是固定的&#xff0c;所以在Go語言中很少直接使用數組。 Go語言數組的聲明&#xff1a; var 數組變量名 [元素數量]Type 1 數組變量名&#xff1a;數…

本地快速部署谷歌開放模型Gemma教程(基于WasmEdge)

本地快速部署谷歌開放模型Gemma教程&#xff08;基于WasmEdge&#xff09; 一、介紹 Gemma二、部署 Gemma2.1 部署工具2.1 部署步驟 三、構建超輕量級 AI 代理四、總結 一、介紹 Gemma Gemma是一系列輕量級、最先進的開放式模型&#xff0c;采用與創建Gemini模型相同的研究和技…

持續集成(CICD)- Jenkins插件安裝失敗解決辦法

解決辦法&#xff1a;將插件安裝更新源需要改成國內鏡像源 具體步驟如下&#xff1a; 步驟一&#xff1a;修改Jenkins工作目錄下的 hudson.model.UpdateCenter.xml 文件&#xff0c;將url 改為http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 步驟二…

RuoYi-Vue-Plus功能分析-jackson配置

文章目錄 前言一、配置文件二、配置類三、注解四、json工具類1. 工具內容2. 使用工具 前言 前端在給我發送請求的時候一般包含三個部分url&#xff0c;header&#xff0c;body。那么就會涉及我們后端如何接收這些請求參數并且我們處理完畢參數后前端又如何接收參數 通過url傳…