亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

RAG實(shí)戰(zhàn)指南:兩天搭好企業(yè)私有知識(shí)庫(kù)問答機(jī)器人

RAG實(shí)戰(zhàn)指南:兩天搭好企業(yè)私有知識(shí)庫(kù)問答機(jī)器人 最近這半年幾乎每隔幾天就有人拿著公司內(nèi)部文檔來找我員工手冊(cè)、項(xiàng)目驗(yàn)收?qǐng)?bào)告、新產(chǎn)品培訓(xùn)資料、客服話術(shù)庫(kù)……問題都差不多——能不能讓大模型直接基于這些資料回答問題做成一個(gè)內(nèi)部問答機(jī)器人能而且現(xiàn)在做起來的成本比大多數(shù)人想象中低很多。答案就是RAG全稱Retrieval-Augmented Generation檢索增強(qiáng)生成。我第一次搭完一套能跑的RAG智能問答助手只花了兩天從文檔清洗、切片入庫(kù)到檢索驗(yàn)證、接入對(duì)話模型再上線跑通。這篇文章就把整個(gè)過程中的關(guān)鍵原理、每一步的具體操作以及運(yùn)行一周后踩到的三個(gè)檢索質(zhì)量坑完整寫出來。適合有基本Python基礎(chǔ)、正準(zhǔn)備給團(tuán)隊(duì)做私有知識(shí)庫(kù)問答的系統(tǒng)開發(fā)者參考。原理部分我用最直白的說法講清楚實(shí)操部分直接給可運(yùn)行的代碼。1. 為什么我需要一個(gè)“會(huì)查資料”的問答助手1.1 對(duì)話模型再?gòu)?qiáng)也答不好沒讓它看過的資料先說個(gè)我實(shí)際遇到的場(chǎng)景。某公司人力部門想用大模型回答員工關(guān)于考勤、請(qǐng)假、報(bào)銷的問題于是直接把員工手冊(cè)扔給通用對(duì)話模型問“年假怎么算”。結(jié)果模型給出的答案和公司手冊(cè)對(duì)不上反而更像網(wǎng)上的勞動(dòng)法規(guī)科普。原因并不復(fù)雜。大模型的本質(zhì)是一個(gè)基于海量文本訓(xùn)練出來的“下一個(gè)詞預(yù)測(cè)器”它記住的是互聯(lián)網(wǎng)上的通用規(guī)律和常識(shí)并不天然知道某個(gè)公司內(nèi)部手冊(cè)里寫了什么。訓(xùn)練數(shù)據(jù)里沒有你的員工手冊(cè)、沒有你的產(chǎn)品文檔、沒有你的項(xiàng)目驗(yàn)收?qǐng)?bào)告它當(dāng)然不可能憑空編出正確答案。更麻煩的是模型存在知識(shí)截止時(shí)間就算你試了很多提示詞技巧它也不可能知道手冊(cè)今年剛修訂的條款。所以想讓模型回答私有領(lǐng)域的問題唯一可靠的做法是把相關(guān)資料作為上下文“喂”給它讓它邊查資料邊回答。開卷考試永遠(yuǎn)比閉卷考試靠譜這就是RAG的核心思路。把文檔提前切好、存好等用戶提問時(shí)先檢索出相關(guān)片段再讓模型基于這些片段作答。1.2 RAG與微調(diào)的邊界誰解決什么問題為什么先嘗試RAG很多第一次接觸這個(gè)問題的人第一反應(yīng)是“那我去微調(diào)一個(gè)模型”。這我特別理解因?yàn)椤拔⒄{(diào)”聽起來更像一勞永逸的方案把知識(shí)直接寫進(jìn)模型參數(shù)里之后調(diào)用就不用帶資料了。但實(shí)際做過幾次微調(diào)項(xiàng)目之后我現(xiàn)在的結(jié)論是除非你的需求是改變模型的行為風(fēng)格、輸出格式或者做特定任務(wù)否則大多數(shù)“想讓模型知道某份資料”的需求都應(yīng)該先試RAG。我這么說的理由有三條。第一微調(diào)的成本高且周期長(zhǎng)每次資料更新都要重新訓(xùn)練一輪而RAG只是把文檔重新切塊入庫(kù)幾分鐘就能完成第二微調(diào)容易引入“災(zāi)難性遺忘”模型在學(xué)新知識(shí)的同時(shí)可能把原有的能力搞亂第三微調(diào)并不能根治幻覺模型在回答時(shí)依然可能“憑印象”發(fā)揮因?yàn)樗举|(zhì)上還是在閉卷作答。我之前遇到一個(gè)團(tuán)隊(duì)想做制度庫(kù)問答找外部資源微調(diào)了一個(gè)開源模型前前后后花了好幾周。結(jié)果上線后一問到訓(xùn)練數(shù)據(jù)里沒覆蓋的新制度模型照樣一本正經(jīng)地胡說。后來換成了RAG只做了一件事——把制度文檔切塊入庫(kù)回答時(shí)強(qiáng)制模型引用原文片段問題立刻解決。這個(gè)對(duì)比讓我印象很深知識(shí)更新的場(chǎng)景里RAG不是“備選方案”而是“首選方案”。2. RAG四大環(huán)節(jié)拆解從切文檔到生成回答2.1 索引階段把PDF變成一顆“可檢索的樹”整個(gè)RAG管道可以拆成四個(gè)階段索引、檢索、增強(qiáng)、生成。我建議先別急著寫代碼把這四個(gè)環(huán)節(jié)吃透后面遇到問題才能定位到具體環(huán)節(jié)。第一個(gè)階段是索引也有人叫“入庫(kù)”。原始文檔通常是一份幾十頁的PDF或Word模型一次只能讀有限的上下文不能把整本手冊(cè)全塞進(jìn)去。所以第一步是把文檔拆成一個(gè)個(gè)“片段”行業(yè)內(nèi)叫chunk。為什么要切塊如果一整本手冊(cè)作為一個(gè)片段向量的語義信息會(huì)被平均掉檢索時(shí)根本無法精確找到“年假怎么算”對(duì)應(yīng)的那一頁如果切得太碎比如按一句話切又容易丟失上下文導(dǎo)致檢索回來的片段只有半句結(jié)論沒有前因后果。我常用的做法是先把Word或PDF解析成純文本去掉頁眉、頁腳、頁碼和目錄這些噪聲然后按標(biāo)題層級(jí)和段落語義把內(nèi)容切成大約500個(gè)token一個(gè)的chunk每個(gè)chunk會(huì)記錄來源章節(jié)、頁碼等元信息。這一步很像給一本書做目錄和小結(jié)只不過這個(gè)“小結(jié)”是后續(xù)檢索的最小單位。切好塊之后要做的是Embedding也就是把每段文字轉(zhuǎn)成一組向量??梢源直┑乩斫鉃榻o每段文字在“語義空間”里標(biāo)一個(gè)坐標(biāo)語義越接近的文字坐標(biāo)距離越近。這樣用戶提問時(shí)我只需要把問題也轉(zhuǎn)成向量就能在庫(kù)里找最接近的片段。最后這些向量會(huì)存進(jìn)向量數(shù)據(jù)庫(kù)傳統(tǒng)數(shù)據(jù)庫(kù)按字段查詢向量庫(kù)專門做高維向量的相似度搜索返回“語義上最相似”的TopN條記錄。2.2 檢索階段向量找相近關(guān)鍵詞找精確兩者不矛盾第二個(gè)階段是檢索。用戶輸入一個(gè)問題系統(tǒng)先把它做同樣的Embedding再用余弦距離等方式和庫(kù)里的所有片段向量做最近鄰搜索返回得分最高的前幾個(gè)片段。這里有一個(gè)大多數(shù)人第一次做RAG容易踩的認(rèn)知誤區(qū)以為向量檢索能解決一切。其實(shí)向量檢索擅長(zhǎng)的是“語義相似”它對(duì)泛化表達(dá)、同義改寫特別有效。比如用戶問“離職要提前多久說”手冊(cè)里寫的是“解除勞動(dòng)合同需要提前通知”兩句話沒有共同詞匯但向量檢索能發(fā)現(xiàn)它們語義相近。但它也有明顯短板對(duì)專有名詞、編號(hào)、縮寫、精確型號(hào)很鈍感。公司內(nèi)部系統(tǒng)簡(jiǎn)稱“DSAP”手冊(cè)里全稱“業(yè)務(wù)數(shù)據(jù)支撐平臺(tái)”用戶問“DSAP怎么登錄”向量檢索很可能召回不到。這時(shí)候需要關(guān)鍵詞檢索來兜底比如BM25這種經(jīng)典算法它按字面重合度打分看到“DSAP”就直接命中原文。所以生產(chǎn)級(jí)RAG現(xiàn)在普遍做混合檢索向量召回一批語義相近的關(guān)鍵詞召回一批字面精確的再把兩批結(jié)果合并去重。用生活化的說法向量檢索像“靠意思找人”關(guān)鍵詞檢索像“看身份證認(rèn)人”兩者互補(bǔ)才是完整的檢索能力。2.3 增強(qiáng)與生成把“證據(jù)片段”塞進(jìn)提示詞里第三個(gè)階段叫增強(qiáng)很多人把它理解成簡(jiǎn)單的“拼字符串”其實(shí)沒那么簡(jiǎn)單。核心是把檢索到的若干片段整理成有結(jié)構(gòu)的上下文塞進(jìn)提示詞模板里讓模型閱讀這些片段之后再作答。我常用的提示詞模板長(zhǎng)這樣你是一名企業(yè)內(nèi)部知識(shí)庫(kù)問答助手。請(qǐng)只根據(jù)以下提供的資料片段來回答用戶的問題。 回答要求 1. 如果資料中有明確依據(jù)請(qǐng)先給出結(jié)論再引用對(duì)應(yīng)片段編號(hào)說明依據(jù)。 2. 如果資料中沒有相關(guān)信息請(qǐng)直接回答“資料中未找到相關(guān)內(nèi)容”不要自行推測(cè)。 3. 不要使用資料之外的常識(shí)進(jìn)行補(bǔ)充除非你明確說明這是推測(cè)。 資料片段 [1]來源員工手冊(cè) 第3章 考勤管理 內(nèi)容... [2]來源員工手冊(cè) 第4章 休假制度 內(nèi)容... 用戶問題試用期離職需要提前幾天申請(qǐng)最后一個(gè)階段是生成。模型拿到增強(qiáng)后的提示詞在自己的語言能力幫助下從給定的片段里提取并組織答案。這里有個(gè)關(guān)鍵參數(shù)溫度。我會(huì)在RAG場(chǎng)景里把temperature調(diào)到0或接近0因?yàn)槲覀円氖侵矣谫Y料的答案而不是發(fā)散創(chuàng)造。整個(gè)鏈路的名稱也由此而來先Retrieval檢索再Augmented增強(qiáng)提示詞最后Generation生成答案。3. 環(huán)境準(zhǔn)備與選型我需要準(zhǔn)備哪些工具和模型3.1 選型對(duì)照三套可落地方案我實(shí)際跑過的體驗(yàn)了解了原理接下來是選型。很多教程一上來就推薦一大堆框架反而把初學(xué)者搞暈。我按落地成本和資源條件把實(shí)際跑過的組合分成三套方案Embedding模型生成模型向量庫(kù)適合場(chǎng)景方案A全API調(diào)用供應(yīng)商的Embedding接口通用對(duì)話大模型APIChroma本地持久化快速原型驗(yàn)證不想折騰GPU方案B混合部署本地開源Embedding模型CPU可跑通用對(duì)話大模型APIChroma或FAISS數(shù)據(jù)量不大、對(duì)檢索延遲有要求方案C全本地本地開源Embedding模型本地量化開源對(duì)話模型Milvus或Qdrant數(shù)據(jù)敏感、必須離線部署我個(gè)人的建議是第一次跑通直接用方案A或方案B先驗(yàn)證效果不要一上來就追求全本地。全本地方案要處理GPU資源、模型量化、推理框架等問題學(xué)習(xí)曲線陡很多。我曾經(jīng)幫某公司做過一個(gè)內(nèi)部知識(shí)庫(kù)Demo一開始就上全本地結(jié)果一周時(shí)間大部分花在部署模型上業(yè)務(wù)方連效果都沒看到。后來改成方案B一天就把Demo跑起來了效果反饋好之后再慢慢規(guī)劃本地化。Embedding模型方面我常用的做法是優(yōu)先選開源中文表現(xiàn)穩(wěn)定的模型例如bge系列或m3e系列。它們?cè)谥形恼Z義匹配上比很多通用多語言模型更討喜而且支持CPU推理幾百M(fèi)B內(nèi)存就能跑。向量庫(kù)的選擇上入門用Chroma足夠因?yàn)閜ip安裝就能用、數(shù)據(jù)自動(dòng)持久化在本地目錄適合中小知識(shí)庫(kù)數(shù)據(jù)量到百萬級(jí)向量以上再考慮Milvus這類分布式方案??蚣芊矫鍸angChain和LlamaIndex確實(shí)能省不少代碼但我建議第一遍手寫把鏈路里每一行都搞明白之后再?zèng)Q定要不要上框架。3.2 環(huán)境搭建最容易忽略的依賴版本問題環(huán)境搭建的坑往往不在邏輯而在依賴版本。我給你們看一份我跑通全鏈路的最低依賴清單python3.10 chromadb0.4.24 sentence-transformers pypdf python-docx rank-bm25 openai我特別想提醒幾個(gè)坑。第一個(gè)是numpy版本沖突chromadb對(duì)numpy版本有要求如果你不小心裝了過新的numpy啟動(dòng)向量庫(kù)時(shí)大概率會(huì)報(bào)底層庫(kù)加載失敗解決辦法是把numpy固定到兼容版本再裝第二個(gè)是sentence-transformers和transformers、torch三者之間有版本聯(lián)動(dòng)建議在干凈虛擬環(huán)境里一次裝齊不要零散安裝第三個(gè)是中文路徑問題Chroma持久化目錄如果包含中文或特殊字符某些版本下會(huì)報(bào)錯(cuò)項(xiàng)目目錄最好用英文。另外如果你手頭沒有獨(dú)立GPU生成模型部分要走API路線這樣開發(fā)機(jī)上只需要跑Embedding一個(gè)普通的CPU實(shí)例就能撐住。如果你堅(jiān)持本地部署7B量級(jí)的對(duì)話模型建議量化到4bit并且準(zhǔn)備至少6GB以上顯存否則推理速度會(huì)讓人失去耐心。裝完環(huán)境后先跑一個(gè)最小的“文檔-檢索-回答”閉環(huán)Demo成功之后再往里填業(yè)務(wù)數(shù)據(jù)這是效率最高的推進(jìn)方式。4. 手把手搭一個(gè)“某公司員工手冊(cè)問答”Demo4.1 第一步文檔清洗與切分這一步?jīng)Q定了后面90%的質(zhì)量實(shí)踐部分我以一個(gè)虛擬的“某公司員工手冊(cè)”為例假設(shè)它是大約120頁的Word文檔包含考勤、休假、薪酬、報(bào)銷、保密等章節(jié)。我會(huì)帶著你把完整鏈路跑一遍。文檔清洗是這個(gè)步驟里最臟最累的活但絕對(duì)值得做。我的標(biāo)準(zhǔn)流程是先用python-docx把Word轉(zhuǎn)成純文本然后用正則把頁眉、頁腳、頁碼、目錄項(xiàng)剝掉再把“第X章”和“X.X”這類標(biāo)題單獨(dú)標(biāo)記出來。不要小看這一步很多項(xiàng)目后來檢索效果差查到最后發(fā)現(xiàn)是清洗階段把章節(jié)標(biāo)題弄丟了導(dǎo)致語義單元全亂。清洗完成后就是切分。我寫了一個(gè)比較穩(wěn)的切分函數(shù)原則是“優(yōu)先按標(biāo)題層級(jí)其次按自然段合并”import re def split_into_chunks(text, max_tokens500, overlap_tokens80): # 先把標(biāo)題行識(shí)別出來 lines text.split(\n) chunks [] current_chunk current_title for line in lines: stripped line.strip() if not stripped: continue # 以“第X章”、“X.X”、“X.X.X”為標(biāo)題邊界 if re.match(r^(第[一二三四五六七八九十百千]章|\d(\.\d)*), stripped): if current_chunk: chunks.append({ title: current_title, content: current_chunk.strip() }) current_title stripped current_chunk stripped continue current_chunk \n stripped # 簡(jiǎn)單估算token數(shù)超過閾值就切一段 if len(current_chunk) max_tokens * 1.3: chunks.append({ title: current_title, content: current_chunk.strip() }) # 保留尾部少量token作為重疊避免邊界斷語義 overlap current_chunk[-overlap_tokens:] current_chunk overlap if current_chunk: chunks.append({ title: current_title, content: current_chunk.strip() }) return chunks這段代碼核心思想是當(dāng)遇到一個(gè)新的章節(jié)標(biāo)題時(shí)把上一個(gè)chunk保存下來當(dāng)chunk長(zhǎng)度超標(biāo)時(shí)保留最后幾十個(gè)token作為下一個(gè)chunk的開頭這樣“年假滿10年”和“年假滿20年”這類被切到不同塊的內(nèi)容至少會(huì)有一小段交叉不至于徹底斷裂。切分結(jié)果里我給每個(gè)chunk帶了title字段后面檢索時(shí)可以直接展示“來源章節(jié)”這對(duì)用戶確認(rèn)答案非常有用。4.2 第二步Embedding入庫(kù)與檢索驗(yàn)證切完之后就是向量化入庫(kù)。這里我強(qiáng)烈建議單獨(dú)寫一個(gè)初始化腳本而不是在問答主程序里每次重新嵌入因?yàn)镋mbedding幾百個(gè)chunk雖然快但每次啟動(dòng)都跑一遍就太浪費(fèi)了。from sentence_transformers import SentenceTransformer import chromadb # 加載Embedding模型CPU即可第一次運(yùn)行會(huì)下載權(quán)重 model SentenceTransformer(bge-m3) # 創(chuàng)建Chroma客戶端數(shù)據(jù)持久化到本地 ./rag_db 目錄 client chromadb.PersistentClient(path./rag_db) collection client.get_or_create_collection( nameemployee_handbook, metadata{hnsw:space: cosine} # 用余弦距離衡量語義相近程度 ) # 假設(shè)chunks是上一節(jié)切分得到的list ids [fchunk_{i} for i in range(len(chunks))] documents [c[content] for c in chunks] metadatas [{title: c[title]} for c in chunks] # 成批轉(zhuǎn)為向量并寫入 embeddings model.encode(documents, normalize_embeddingsTrue).tolist() collection.add( idsids, documentsdocuments, metadatasmetadatas, embeddingsembeddings )入庫(kù)之后不要急著接大模型先做一步純檢索驗(yàn)證。這一步很關(guān)鍵如果檢索階段拿回來的片段就是錯(cuò)的后面接什么模型都救不回來。def search(query, top_k5): q_emb model.encode([query], normalize_embeddingsTrue).tolist() results collection.query( query_embeddingsq_emb, n_resultstop_k, include[documents, metadatas, distances] ) return results # 驗(yàn)證一下“試用期離職”這個(gè)問題 results search(試用期員工提出離職需要提前幾天) for i, doc in enumerate(results[documents][0]): title results[metadatas][0][i][title] print(fTop{i1} [來源:{title}] {doc[:100]}...)我實(shí)際跑這段時(shí)發(fā)現(xiàn)前兩條確實(shí)命中了休假制度相關(guān)章節(jié)但第三條已經(jīng)開始跑偏回到了考勤章節(jié)。這說明單靠向量檢索的前3個(gè)結(jié)果里有噪聲正?,F(xiàn)象后面我重排序章節(jié)會(huì)專門處理。但至少這一步能讓你直觀感受到“檢索質(zhì)量”是什么也方便后續(xù)做參數(shù)調(diào)優(yōu)。4.3 第三步把檢索結(jié)果組裝成Prompt并接入對(duì)話模型檢索驗(yàn)證通過后接生成模型就只剩最后一步了組裝提示詞調(diào)用接口。我習(xí)慣把所有上下文片段編號(hào)然后要求模型在回答時(shí)標(biāo)注編號(hào)這樣用戶能對(duì)照原始文檔也方便排查問題。def build_prompt(query, search_results): context_lines [] for i, doc in enumerate(search_results[documents][0]): title search_results[metadatas][0][i][title] context_lines.append(f[{i1}]來源{title}\n{doc}) prompt f你是一名企業(yè)內(nèi)部知識(shí)庫(kù)問答助手請(qǐng)只根據(jù)以下資料片段回答用戶問題。 如果資料中沒有明確依據(jù)請(qǐng)回答“資料中未找到相關(guān)內(nèi)容”不要自行推測(cè)。 回答時(shí)先給結(jié)論再引用片段編號(hào)說明依據(jù)。 資料片段 {chr(10).join(context_lines)} 用戶問題{query} return prompt對(duì)話模型的接入現(xiàn)在大部分服務(wù)端都提供兼容格式的接口調(diào)用方式大同小異。我用一個(gè)通用的OpenAI SDK風(fēng)格示例from openai import OpenAI client OpenAI( api_key你的密鑰, base_url你的模型服務(wù)地址 ) def ask(query): results search(query, top_k5) prompt build_prompt(query, results) resp client.chat.completions.create( model你的模型名稱, messages[ {role: system, content: 你是嚴(yán)謹(jǐn)?shù)闹R(shí)庫(kù)問答助手。}, {role: user, content: prompt} ], temperature0.0, # 關(guān)鍵RAG場(chǎng)景追求確定性不要發(fā)散 streamFalse ) answer resp.choices[0].message.content return answer, results # 試一下 answer, results ask(試用期員工提出離職需要提前幾天) print(answer)跑完之后你會(huì)看到模型根據(jù)檢索到的片段給出了帶編號(hào)依據(jù)的回答。這一步完成后一個(gè)最樸素的RAG系統(tǒng)就已經(jīng)能用了。接下來真正拉開差距的是上線之后那些“看著能用但經(jīng)常出錯(cuò)”的細(xì)節(jié)問題。5. 運(yùn)行兩天后遇到的三類檢索質(zhì)量問題和我的修復(fù)方案5.1 “答案被攔腰切斷”——chunk邊界設(shè)計(jì)不當(dāng)系統(tǒng)運(yùn)行到第二天有人來問“全年帶薪年假天數(shù)怎么算”。模型回答里只寫了“工作滿1年不滿10年享受5天年假”后半段“滿10年不滿20年享受10天”完全沒出現(xiàn)。用戶一看就反饋“答案不完整”。我第一反應(yīng)是調(diào)大生成模型的上下文沒用。后來把檢索返回的片段打出來一看才發(fā)現(xiàn)命中的前3個(gè)chunk里只有第一個(gè)chunk包含了“滿1年不滿10年”的部分而“滿10年不滿20年”位于同一個(gè)小節(jié)的下一段被切分函數(shù)分到了另一個(gè)chunk且那個(gè)chunk的相似度排名掉到了第6名以外。這個(gè)案例讓我意識(shí)到切分不能只看token數(shù)還要考慮語義單元。同一類規(guī)則最好放在同一個(gè)chunk里。我的修復(fù)方案是兩件事第一把“年假規(guī)則”這一類小節(jié)整體設(shè)為一個(gè)chunk而不是機(jī)械地按長(zhǎng)度切第二把默認(rèn)top_k從3提升到召回20條之后再做重排避免因?yàn)榕琶▌?dòng)漏掉關(guān)鍵片段。修復(fù)后重新測(cè)試完整答案回來了。5.2 “看起來很有道理但完全不對(duì)”——需要重排序而不是單純信任TopK另一個(gè)經(jīng)典問題是“幻覺型錯(cuò)誤”。有員工問“如何申請(qǐng)加班調(diào)休”模型居然按照“加班工資”的規(guī)則回答了一大段。單獨(dú)看那一段結(jié)構(gòu)和口吻都很正經(jīng)但完全不是用戶想要的。查日志后我發(fā)現(xiàn)檢索階段返回的片段里確實(shí)包含“加班工資”的段落而且和“加班調(diào)休”的向量相似度很高。問題在于向量檢索擅長(zhǎng)找“語義相近”但不擅長(zhǎng)判斷“意圖相關(guān)”。在向量空間里“加班調(diào)休”和“加班工資”的距離可能比“加班調(diào)休”和“請(qǐng)假流程”還近所以單純按照向量相似度排序正確答案經(jīng)常排在錯(cuò)誤答案后面。解決辦法是在向量召回之后加一層重排序。我引入了cross-encoder類型的中文重排序模型比如bge-reranker系列。它的做法不是先轉(zhuǎn)成向量再比距離而是把“用戶問題”和“每個(gè)候選片段”一起拼起來輸入模型逐對(duì)打分精度更高代價(jià)是速度慢所以只對(duì)召回后的候選集做。具體代碼如下from transformers import AutoModelForSequenceClassification, AutoTokenizer rerank_model_name bge-reranker-v2-m3 tokenizer AutoTokenizer.from_pretrained(rerank_model_name) rerank_model AutoModelForSequenceClassification.from_pretrained(rerank_model_name) def rerank(query, candidates): pairs [[query, doc] for doc in candidates] inputs tokenizer(pairs, paddingTrue, truncationTrue, return_tensorspt) scores rerank_model(**inputs).logits.view(-1).tolist() # 返回按得分降序的索引 return sorted(range(len(scores)), keylambda i: scores[i], reverseTrue) # 假設(shè)從向量檢索取回20個(gè)候選 results search(如何申請(qǐng)加班調(diào)休, top_k20) candidates list(results[documents][0]) ranked_idx rerank(如何申請(qǐng)加班調(diào)休, candidates) # 只取重排后前2個(gè)并過濾低分片段加上重排之后正確答案的排名明顯上升“加班工資”那段被壓下去了。這里還要配合一個(gè)閾值過濾相關(guān)性得分低于某個(gè)值的片段直接丟棄寧可不答也不要拿無關(guān)資料硬答。閾值需要在你的具體語料上調(diào)沒有一個(gè)萬能值我在這套手冊(cè)上取的是0.4左右。5.3 “明明有文檔卻沒檢索到”——混合檢索補(bǔ)漏第三個(gè)問題最隱蔽。有人問“班車T3線??磕男┱军c(diǎn)”系統(tǒng)回答“資料中未找到相關(guān)內(nèi)容”但我用關(guān)鍵詞在庫(kù)里人工搜明明有這段寫的是“通勤車三號(hào)線”。這就是我之前提到的向量檢索對(duì)編號(hào)、縮寫的盲區(qū)?!癟3線”這種寫法和“三號(hào)線”在向量空間里的距離并不近尤其是在既有中文字符又有字母數(shù)字混合的情況下。光靠向量召回就是找不到。修復(fù)方案是加混合檢索。我在系統(tǒng)里維護(hù)了一套BM25關(guān)鍵詞索引對(duì)每個(gè)chunk做關(guān)鍵詞打分然后把BM25召回的結(jié)果和向量召回的結(jié)果合并去重后一起進(jìn)入重排階段。這樣即使是完全靠字面匹配才能找到的內(nèi)容也能被撈回來。核心實(shí)現(xiàn)不復(fù)雜。先對(duì)文檔做分詞然后基于詞頻建立倒排索引查詢的時(shí)候同時(shí)算BM25得分。當(dāng)然生產(chǎn)環(huán)境如果已經(jīng)有了Elasticsearch直接用它的BM25能力會(huì)更省事。我在這套Demo里的做法是引入rank-bm25庫(kù)配合jieba分詞做中文適配代碼大致這樣import jieba from rank_bm25 import BM25Okapi # 初始化時(shí)構(gòu)建BM25索引 tokenized_chunks [list(jieba.cut(c[content])) for c in chunks] bm25 BM25Okapi(tokenized_chunks) def hybrid_search(query, top_k_from_vector20, top_k_from_bm2520, final_top_k5): # 向量召回 vec_results search(query, top_ktop_k_from_vector) # BM25召回 query_tokens list(jieba.cut(query)) bm25_scores bm25.get_scores(query_tokens) bm25_top_indices sorted(range(len(bm25_scores)), keylambda i: bm25_scores[i], reverseTrue)[:top_k_from_bm25] # 合并去重后統(tǒng)一重排 candidate_set set() for doc in vec_results[documents][0]: candidate_set.add(doc) for idx in bm25_top_indices: candidate_set.add(chunks[idx][content]) candidates list(candidate_set) # 進(jìn)入重排階段取前N個(gè)這一版改完之后T3線的問題解決了順帶把“DSAP系統(tǒng)無法登錄”這類縮寫問題也解決了一大半。到這一步這個(gè)RAG系統(tǒng)才算真正具備了一點(diǎn)“能用”的底氣。6. 這套系統(tǒng)上線前必須做好的三件事評(píng)估、兜底、成本6.1 用一個(gè)小腳本評(píng)估“有沒有答對(duì)”很多團(tuán)隊(duì)把RAG跑通就上線然后靠用戶罵罵咧咧來發(fā)現(xiàn)問題這個(gè)成本太不可控了。我現(xiàn)在的習(xí)慣是上線前先準(zhǔn)備至少二三十條問答測(cè)試集覆蓋典型問題、邊界問題、否定表述、縮寫問題這幾類然后做一個(gè)半自動(dòng)評(píng)估。評(píng)估分兩層。第一層看檢索命中率給定問題檢索返回的前幾個(gè)片段里有沒有包含答案所在的原始段落如果檢索都錯(cuò)了生成一定錯(cuò)問題出在索引和檢索環(huán)節(jié)第二層看生成正確率模型給出的答案內(nèi)容是否正確、是否忠于引用片段。第一層可以腳本化第二層目前最穩(wěn)的還是人工抽檢或者用一個(gè)獨(dú)立的評(píng)估模型來打分避免用回答模型自己給自己評(píng)分。我給團(tuán)隊(duì)寫過一個(gè)簡(jiǎn)單的評(píng)估腳本邏輯就是遍歷測(cè)試集調(diào)用系統(tǒng)拿到答案和引用片段然后讓另一個(gè)模型按1到5分評(píng)估答案和標(biāo)準(zhǔn)答案的一致程度。分?jǐn)?shù)低于3的自動(dòng)進(jìn)入bad case清單每周人工過一遍。這套機(jī)制價(jià)值不在于精確測(cè)量而在于讓質(zhì)量波動(dòng)可見并且給后續(xù)優(yōu)化提供方向。6.2 兜底策略不知道勝過一本正經(jīng)胡說RAG的底線不是“每個(gè)問題都答得很漂亮”而是“答錯(cuò)的成本可控”。我做過一個(gè)很重要的設(shè)定當(dāng)檢索結(jié)果的最高相關(guān)性得分低于閾值時(shí)系統(tǒng)不進(jìn)入生成環(huán)節(jié)直接返回“資料中暫時(shí)未找到相關(guān)內(nèi)容請(qǐng)補(bǔ)充關(guān)鍵詞或咨詢相關(guān)部門”。這比讓模型硬答更安全尤其是面向企業(yè)內(nèi)部員工時(shí)錯(cuò)誤答案造成的信任損失遠(yuǎn)大于“不知道”帶來的不便。同時(shí)在提示詞里反復(fù)強(qiáng)調(diào)“未找到就直說”并把“不要自行推測(cè)”寫成強(qiáng)制性要求?;卮鸬恼故卷撁嫔弦矔?huì)把命中的原文片段一并展示出來用戶自己能核對(duì)答案出處。這個(gè)設(shè)計(jì)看起來樸素但對(duì)提升可信度非常有效很多用戶反饋“能看到來源答錯(cuò)了也敢相信”。6.3 成本賬用300頁文檔運(yùn)行一個(gè)月大概花多少錢最后算一筆賬讓大家心里有數(shù)。假設(shè)員工手冊(cè)清洗后約有3000到5000個(gè)chunk取決于切分粒度Embedding這一步如果是本地CPU跑基本就是一次性幾十分鐘的電費(fèi)如果走API的Embedding接口按token計(jì)費(fèi)幾千個(gè)chunk總共也就幾十萬token費(fèi)用可以忽略。向量庫(kù)存儲(chǔ)更是小頭幾千條向量也就幾MB。真正的成本在問答階段。每一輪問答需要把用戶問題做一次Embedding再把檢索到的幾百上千token片段和生成結(jié)果一起消耗模型token。假設(shè)一次問答約消耗1500個(gè)token的總輸入輸出如果每天200次問答、一個(gè)月6000次用通用API模型一個(gè)月的花費(fèi)大約在幾十到幾百元量級(jí)具體取決于你選的模型檔位。如果改成全本地部署主要是硬件折舊和電費(fèi)一次投入買一塊消費(fèi)級(jí)顯卡就能撐住不少并發(fā)。聽起來是不是不算貴但我要提醒RAG真正的隱性成本不是算力而是人工。文檔版本管理、切片邊界維護(hù)、bad case跟進(jìn)、用戶反饋迭代這些都需要有人持續(xù)投入。如果文檔本身寫得含糊不清RAG的上限也就到那里了。上線前最好明確由誰負(fù)責(zé)定期更新知識(shí)庫(kù)內(nèi)容這比研究任何技術(shù)參數(shù)都重要。最后分享一個(gè)小經(jīng)驗(yàn)不要等系統(tǒng)上線后才開始積累bad case。從第一天起我就習(xí)慣把每天的query、答案、命中的原文片段全部記錄到日志里每周固定半小時(shí)翻一遍錯(cuò)誤案例。這件事堅(jiān)持下來你會(huì)發(fā)現(xiàn)大部分問題都出在文檔本身寫得不夠清楚或者切塊不合理上而不是模型不夠強(qiáng)。先把手頭文檔整理干凈比換更貴的模型管用得多。RAG系統(tǒng)的價(jià)值上限約等于你文檔整潔程度的上限。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一级毛片久久久久久久女人18| 蜜桃视频精品一区二区| 亚洲限制级| 亚洲AV成人精品网站在AV| 2017大香蕉国产精品久久| 日韩性爱视频在线免费观看| 快播电影网日韩新片| 精品久久一区二区三区四区五区| 久久一区二区高清免费| 四虎av在线| 91天美传媒精品| 国产精品免费视频不卡| 亚洲欧美国产中文视频| 99在线啪| 欧美久久婷| 极品尤物在线观看| 国产h片在线观看视频| 超碰九7免费| 91久久久视| 日日夜夜干| 亚洲无吗在线视频| 精品国产av一区二区三区四区入口| 曰韩香蕉97| 福利风月五月天影院| 欧美人人AAA| 日本免费人成视频播放120秒| 亚洲蜜臀精品视频久久| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 日韩乱码Av| 亚洲AV秘 精品久久老牛影视| 96精品久久久久久久久久| 综合大香蕉美。| 日日日大屁股骚女人精品| 久久精精区一区二区一蜜桃一区二区| 天天色播亚洲综合网站| 亚洲伊人a线观看视频| 国产福利合集| 91综合熟女| 少妇色欲综合网2| 偷拍导航视频网站| 亚洲欧美综合图片| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 亚洲永久永久永久永久一级一级一级精品| 亚洲,欧美,春色,另类| 亚洲欧美国产日本一区二区三区| 日韩黄色成人性爱| 亚洲女毛多水多21P| 国产精品网址| 免费αⅴ在线观看| 日本成人电影资源网| 国产三级在线现体验区| 亚洲色图尤物视频| 操操啪| 亚洲国产一区二区入口| 精品久久无码午夜福利| 欧美亚洲自拍另类人妻| 伊人操你| 欧美亚洲一级在线观看| 日韩性爱播放| 精品久久人妻成人网| 狠狠操夜夜| 欧美日日操| 日韩Va亚洲va欧美Ⅴa久久| 精品人妻中文字幕4399| 黄色大香焦1级‘′‘| 最近的最新的中文字幕视频| 秋霞男人网| 欧美国产视频| 97天天插| 啊啊啊啊嗯嗯在线久久久| 欧美日韩小说| 精品九九九九| 日本岛国黄色网址| 欧美色三级片91| 91+欧美| 欧美 亚洲 制服 精品| 有码人妻系列| 天美传媒av一区二区| 夜夜狼人妻| 欧美青青视频| 久久线上视频免费看| 少妇天堂| 国产成年女人免费视频播放a| www.久久制服糖| 99精品在线观看| 97超级欧美| 日韩本不卡视频在线观看 | 啊啊啊 在线| 99热这里都是精品| 一级黄色视频网| 强奸乱伦av电影| 在线中文字幕极品av| 天美麻花大全视频| 夜夜操狠狠操| 人人噜夜夜操| 久久老熟女| .精品人妻一区二区三| 你懂得91| 男人天堂免费| 中文字幕国产| 动漫av中文| 日语五十路和六十路亚洲国产精品| 蜜乳性色无码专日粉嫩骚逼AV| 99少妇精品视频| 蜜臀一二三区| 色五月婷婷中文字幕| 性性久久| 91亚洲色人| 日本一区二区三区欧美日韩中文字幕| 精品少妇999| 国产激情久久久| 941超碰| 人人操人人摸人人看人人插| 激情久久日韩精品中文字幕麻豆| 亚欧免费| 色超碰综合| 黄片qw| 红桃视频高潮| 啪啪性爱免费视频| 综合日韩激情另类图片| 精品国产一区二区三区四区在线看| 久久欧美1卡2卡3| 96国产精品| 久9热| 久伊人网78| 天堂8在线新版官网| 亚洲人久久久网| 日韩欧美成人性爱在线| 中日992视频| 久久精品一区二区三区不卡| 国产女人视频三四五区| 亚洲aw毛茸茸在线| 影音先锋日本一区二区| 国产精品天干天干综合网麻豆| 久久精品国产99精品亚洲蜜...| 在线观看十八禁| 亚洲国产精品无石码久久 | 国产五码丝袜屁眼| 中国乱伦一区二区| 日韩欧美女求操每天更新| 免费黄色视频网址| 2017av无码免费无线播| 牛牛久久国产精品视频一二三| 免费看黄视频亚洲网站| 亚洲激情欧美色图| 夂久色| 亚洲天堂五月天国产| 丝袜综合| 美女黄频a美女大全免费皮| 91成人精品| 5252色欧美在线| 日韩激情小说一区二区| 久久东京热久久| 天天享受天天看| 极品尤物自安慰| 日韩91网| 丁香婷婷激情五月天无毒不卡 | 日本少妇va7777| 思思热久久成人| 91天堂丝袜美腿| 在线女人91| 污污汅18禁网站在线永久免费观看| 久久精品六区| 91AV天美在线视频| 天天肏美女| 最新三级网址| 国产91精品在线免费| 撸撸成人在线视频| 99热免费| 开心激情婷婷| 97干在线视频| 一本一道vs波多野结衣| 人妻夜夜爽天天爽三区麻豆AV网站| 国产精品久久久久久久久久久久久久久 | 人人操人人操人人操人人操人人操人人人11.CM | 国产精品suv一区| 2025亚洲男人天堂| 天天躁日日躁AAA片李宗瑞| 午夜毛片亚洲精品片国产久久久| 中国熟女网站| 加勒比AV网| 久久精品99| 欧美1区二区三区公司| 欧美96在线|欧| 极品色电影院| 91日产欧美| 狼人综合婷婷激情四射| 国产亚洲色婷婷久久99精品91| 成人小说视频在线精品欧美| 免费岛国一级片| 成人AV在线网站| 都市激情人妻一区二区青青操视频 | 清纯唯美激情四射| 99无码精品| 日人妻视频91| 欧美黄色大香蕉一区二区| 久久亚洲AV无码专区首页| 26UUU欧美日本| 中文字幕成人乱码熟女精品国50| 天天草AV| 9久精品视频在线观看| 青青草色情网站视频| 91青视频| 日本不卡三级网在线播放| 美日韩成人| 黄色区免费观看中文字幕| 黄片免费视频2019| 人人操 欧美| 狼人狠干| 亚洲av综合伊人久久| 思思久热在线精品66| 亚洲色婷婷久久久综合日本| 91综合网站| 91亚洲网站| 香港久久久| 婷婷探花久久精品一区| 欧美在线大香999| 国产精品一区二区三区四区五区| 超清中文乱码字幕| 伊人久久综合影院| 成人性爱电影一区二区| 婷婷六月天| 麻豆2区1区天美| 嗯嗯嗯嗯啊啊啊好紧好大| 人妻在线臀日韩| 欧美狠狠操| 91天天爱| 99999久久精| 激情婷婷丁香网| 大鸡巴久久| 熟女欧美日韩综合婷婷| 欧美天堂第二区| ai欧美亚洲小说| 中文熟女五十乱码在线| 少妇色欲综合网2| 97在线视频免费观看| 夜夜操中文字幕| 国内毛片热久久思思热| 青青青国产手线观看视频2| 无遮挡又黄又刺激的视频| 日本三级一区二区 在线| 上海一级黄片| www.婷婷| 天天综合欧美综合| 青操影院| 久久久久亚洲Av无码专区老牛影视 | 91丨九色丨东北熟女| www五月| 欧美黄色图片| 超碰在线在公开超碰在线在公开| 欧成人精品H无码| 人人摸.人人色| 天天色播亚洲综合网站| 久久久网一区| 天天综合网网欲色| 亚洲高清无码AAA久久久精品| 熟女日韩| 日本道人妻久久久在线不卡色视频| 欧美狠狠狠| 九九视频黄色片| 国模少妇一区二区三区| 97超碰色屌| 久久精品女同亚洲女同13| 91大神精品长腿在线观看网站| 日本女优在线视频福利| 97色论| 抽插亚洲无码| 人人操人人操草草| 碰超人人在线一区二区三区| 肏逼视频日本| 国产67194| www.99热在线只有精品| 亚洲国产丝袜熟女av| 亚洲精品第一| 天美传媒AV国产在线| 亚欧洲日韩国产精品| 免费在线黄片视频| 劲爆欧美人妖三区91| 揉揉揉夜夜| 国产精品一二三在线看| 麻豆精品A片免费观看| 国产91美女视频| 国产中文精品一区二区在线观看| 安徽熟妇视频| 欧美日韩大香蕉| 99热这里只有精品8| 欧美伦乱爱| 国产午夜精品理论片一二三区区 | 日韩欧美资源| 日本高清视频xxxx| 欧美少妇第一页| 日韩三级伦理中文字幕| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 青青伊人这里只有精品| 丁香婷婷久久| 欧美aaaaaaa| 毛片久久| 成人性爱电影网| 国产一区二区在线播放量| 亚洲精品男人的天堂| 九九久精品| 亚洲欧美在线观看2021| 亚洲天天影视色综合| 精品无码久久久久久国产浪潮| www.狠狠干.coom | 簧片免费看视频| 亚洲欲色| 暴力av在线| 久久草草亚洲蜜桃臀| 91国产精品熟女| 91 刺激在线| 91熟女在线| 亚洲色吧网| 精品免费视频国产一区| 亚洲综合影视| 18禁的网站在线| 午夜精品久久久久久久| 色欲天天综合网| 欧美色乱| 久噜噜| 免费簧片在线观看| 欧美日韩在线小说| 久久超碰98| 免费看A片毛毛片在线播| 69久久| 久久超碰98| 18禁无码永久免费无限制| 中出20p| 99色综合| 日韩电影在线观看网址| 校园春色宗合网| 免费黄色A片| 99re99在线视频| 草b在线| 国内97干免费看| 思思热免费视频观看| 香蕉一区二区三区在线视频| 国产精品无码av| 色爱亚洲| 欧美+日产+中文| 日本有码久久| 天天天天天天天天天天干美女| 久啪视频| 欧美另类自拍| 五月婷婷激情网| 美国黄片aaa| 9久久久久| 色踪合AV| 精品国产99| 高清在线偷拍自拍视频| 欧美强奸乱| 久久久久国色αv免费观看| 青青操在线视频| 欧洲亚洲国产综合在线| 蜜臀99久久精品| 2010男人的天堂| 日本亚洲vr欧美不卡高清专区| 另类图片欧美激情综合| 中文字幕熟女人妻丝袜丝| 野狼激情网| 日韩黄色一区二区三区| 加勒比av官网在线| 国产超碰人人爽人人做| 好色综合| 中文字幕第7页| 96久久久精品| 磁力99AV| 久久国产视频专区一二三| 久久草在线综合视频| 黄色片一区二区三区四区五区| 国产精品一区二区三区免费视频| 欧美色图小说综合| 狠操91,com| 欧美伦乱爱| 蜜臀精品1区2区| 亚洲一区二区麻豆影院| 亚洲精品成人| 亚洲色综合| 天天做日日爱夜夜爽| 成人无码在线超碰网| 欧美精品三级黄片| 91香蕉国产尤物视频| 亚洲欧美97| 97超碰影音| 91亚.色| 国产精品久久久久999| av麻豆啪啪| 久久超碰大香蕉| 一区二区三区四区姦女| 日韩精品99久久久久久中文字幕 | 国产亚洲深夜激情| 18禁在线视频| 日韩三A大片在线观看| 三久久久四久久久久| 久久久久一本一区二区青青蜜月| 伊人aaa| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 热天堂一区二区| 欧美日韩超碰在线| 中文字幕少妇色| 亚洲综合影视| 日韩欧美资源| 99rre在线精品99re8| 美女黄页网站| 欧美性爱伊人| 99这里有精品视频| 嗯嗯啊啊操死我| 亚洲一二三精品久久网| 91在线免费观看处女| AV天堂国产| 亚洲av影院在线观看| 激情在线青青操| 国产精品点击进入在线影院高清 | 九九九九AV| 日韩国产中文字幕| 欲色影视综合吧| 怡红院成人av| 天堂亚洲精品| 青青操网| 国产AV毛片| 激情五月婷婷综合| 中文字幕人妻色偷偷久久皮 | 天天干一区二区| 日韩性爱啪啪视频| 色噜噜人妻av中文字幕| 日日躁狠狠躁天天躁精品| 一本色道综合久久欧美日韩精品| 日本人妻丰满熟妇久久久久久| 日韩激情毛片一级久久久| 91天堂色男人的天堂| 日韩久久三区| 啊啊啊啊啊好舒服视频| 综合久久9| 二男一女成人A片| 婷婷99狠狠| 欧洲乱码视频| 大茄子熟女AV导航| 91在线视频观看国产| 再深点灬舒服灬太大了好硬好爽| 欧美 青青草| 精品久久大胆人体| 99热这里只有精品9| 日本三级久| 婷婷影院入口| 射欧美综合| 91欧美色| 亚州AV无码国产精品| 九九玖玖精品| 欧美96在线|欧| 九九综合久久中文字幕| 亚洲不卡不卡中文字幕不卡 | 五月天亚洲色图| 精品国产久热在线观看| 男人把坤坤插入女人的下体| 亚洲婷婷丁香在线| 久久婷五月| 91美女视频电影| 亚洲?V无码专区在线电影| 美女黄色一级A视频| 夜夜嗨老熟女AV一区二区三区| 老熟女搡BBBB搡BBBB视频| 色噜噜人妻av 中文字幕| 在线视频资源| 婷婷色在线| 91老妇女| 熟女突然公开看18禁影片| 熟妇高潮精品一区二区三区下载| 久久精品国产精品一区| 国产天天骚| 国产一国产一级毛片古装| 欧美中字二区| 日韩高清黄片| 亚洲天天影视综合网| 亚洲日韩人妻中文字幕一区| 亚洲精品蜜桃久久久一区二区三区| 欧美熟妇精品黑人巨大91| 欧美黄色大香蕉一区二区| 亚洲污污网站| 国产a级精品| 神马九九九| 丝袜美腿制服人妻二区中文字幕| 不卡视频一区蜜桃视频 | 强奸乱伦AV网站| 老熟女区| 人妻81p| 亚州高清色综合| 国产不卡免费在线视频| 欧美成人贴图| 欧美精品四区| 老司机午夜精品视频| 一二三啪啪专区| 欧美偷拍区| 91色堂| 不卡免费av在线播放| 夜夜夜爽www精品视频| 女优免费一区二区永久| 免费岛国一级片| 精品国产72| 上海一级黄片| 日本在线伊人啪啪| 加勒比综合九九99视频在线播放| 色婷视频| 日本1区2区不卡视频| 欧美大片天天看| 免费一级毛片在线视频观看| 蜜臀久久99精品久久久| 欧美91网站| 五月婷色| 中国一级操逼视频| 色综合天天爱去电影网| 97精品视频免费| 亚洲欧美日韩综合在线尤物| 2017av无码免费无线播| 国产不卡的视频| 青青国产精品在线| 亚洲一卡2卡3卡4卡乱码网站 | 中文字幕99999| 色超碰综合| 25国产精品免费观看| 老熟女乱伦一区| 黑人精品欧美一区二区蜜桃| 亚洲天堂第一页| 久久五月婷| 国产一级特黄大片处女| 中文字幕在线免费观看 | 一区,二区,三区网站| 一级久久性爱视频| 日韩免费簧片| 欧洲精品二区| 96精品一区| 特级大荫道BBwBBwBBW| 俺去俺来也在线www| 日韩无码成人电影| 伊人一区二区在线播放| 91网站18| 超碰人妻97| 超碰 国产熟女精品一区| 色综合加勒比四四季| 免费精品99| 欧美特大黄一级片片免费| 九九九精品成人免费视频小说| 午夜操操操| 嗯嗯啊好大| 人人澡人人爽人人精品| 大奶啊啊好爽 | 亚洲精品国产精品乱码不99| 大香网站| 国产熟女完整版中字| 午夜男女爽爽爽影院视频| 99re28在线观看| 茄子社区国产精品| 日韩大香蕉精品在线视频| 日韩三级在线观看mp4| 99re9在线| 91色情黑丝搞鸡在线观看一区二区三区三州| 欧美aaaaaaa| 国产成人无码啪| 国产精品一区二区校花| 人人潮人人摸| 亚洲啪啪视频一区二区| 国产精品69人妻无码久久久| 色嗨嗨在线| 欧美性巨大╳╳╳╳╳高跟鞋| 亚洲第一免费视频| 噜噜噜在线视频| 精品成人亚洲午夜电影| 十八禁的黄污污免费网站| www.久久制服糖| 人人操人人干网页| 乱伦AVxx| 在线日韩视频| 国产一区二区三区中文字幕| 国产馆极品诱惑| 男人的天堂在线2| 超碰在线人妻不卡| 欧美97视频| 欧美黑人91| 中文字幕一区二区三区人妻不卡| 欧美精品庄| 国产乱伦视频污| 欧美五十路熟| 日韩乱伦视频| 欧美亚洲综合色| 亚洲男人的天堂V| 日日夜夜噜| 色香综合天天影视综合| 偷拍盗拍亚洲色图图片| 欧美亚洲国产91在线| 福利操逼| 日日干夜夜干| 久久天天躁日日躁狠狠躁| 91丨精品丨国产丨丝袜| 97伊人| 国产午夜精品理论片一二三区区| 尤物黄色在线观看网站| 国产67194| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 五月丁香六月综合缴清无码 | 国产一区二区啪啪视频| 亚殴在线| 久久久久人| 天天综合亚洲综合| 性欧美体内射精| 亚洲Av噜噜一区二区三区妖精| 亚洲在线观看| 欧美gv在线观看| 久久精品色欧美aⅴ一区二区| 嗯嗯啊啊视频在线看| 美女裸体麻豆天美蜜桃91| 日韩青久久| 99亚洲国产精品色一区二区三区| 亚洲AV无码国产精品久久久久| 国产人妻精品久久久一区二区三区| 人妻无码久久一区二区三区免费| 97欧美日韩综合| 狠狠操夜夜| 天天看少妇| 国产丁香精品露脸视频| 影音先锋新男人| 亚洲中文字幕噜噜噜久久久| 亚洲综合色在线| 尹人免费观看视频在线| 狠狠操夜夜操蜜桃视频三区| 久久久一区二区| 免费网站观看www在线观| 嗯嗯啊啊操死我| 99久久亚洲精品无码毛片潘甜甜| 大香蕉在线视频重口味毛片在线| 天天躁日日躁AAA片李宗瑞| 美女诱惑1区2区| 亚洲另类色综合网站| 少妇无码av专区线| 5252色欧美在线| 色鬼在线综合| 美女天天干| 国产最火爆久久国产网站网站| 亚洲影院成人| 在线观看国产黄色| 国产精品3| 亚洲欧美清纯| 东北女人的毛片| 乱欲视频| 国产精品一区二区三区免费视频| 久久无码成人| 玖玖无码超碰| 成片免费观看视频大全| 91精品微拍福利| 成熟熟女国产精品一区二区| 操狠狠| 国产精品国产精品国产| 欧美在线l亚洲| 无码高清国产AV| 巨爆乳一区二区爆乳区| 午夜啪啪片| 久久国产逼| 99热色这里只有精品| 超碰美国| 91九久| 99人妻| 欧美性后入| 国产极品粉嫩馒头一线天av| 人人摸人人干| 日韩中文字幕精品一区在线| 98精品国产乱码久久久久久| 国产白嫩漂亮KTV在线| 97超碰超欧美。| 亚洲nv男人的天堂网| 免费视频一二三区| 一区二区三区网站日日骚| 国产资源中文字幕在线| 色999偷自拍拍| 久久91精品国产9丨久久分亭| 香蕉av一区二区三区| 日本一级性爱| 91老熟妇| 久久久专区| 熟女被操视频网址| 9Ⅰ老熟女| 大香蕉欧美日韩| 黄网色一区二区三区四区精品| 99热在线只有精品| 97免费在线视频在线观看| 自拍偷拍国产欧美日韩韩| 97精品久久久久中文字幕| 免费一级毛片在线视频观看| 东京热双插| 亚洲综合小视频小说在线观看 | 国产1727欧美| 欧洲色| 被窝影院午夜看片无码| 热热热热日日漂亮永久永久国产日| 国产精品宅男免费| 中文字幕一区二区三区50路| 嗯嗯啊啊视频一区二区三区| 婷婷色五月激情| 高清无码久操视频| 热G综合热G中文| 少妇毛片久久| 国产一区二区啪啪视频| 日韩成人性日韩成人性爱视频在线免费观看 | 欧美大香蕉久| 极品出轨视频网站| 亚洲男人的天堂AV| 婷婷五月天成人| 草草影院日本第一页| 精品九区| 伊人久久亚洲色欲综合网站 | dy888午夜老子影视达达兔| 狠狠2050在线观看| 国产原创精品| 日本三级大片| 美国aaaaa一级黄片| 国产熟女无套内射| 天天综合麻豆视频| 欧美 亚洲 大香| 天堂精品在线| 91丨九色丨43老版熟女| 国产黄色视频久久| 精品视频一二三中文| 青青草一区二区三区四| 日韩图区| 超碰99热中文字幕| 懂色AV一区二区三区| 韩国三级理论在线| 404操逼福利视频| 亚洲精品国产日韩无码AV永久免| 国产9区| 97网色| 日本ZZ高免费A级视频| 天美传媒av一区二区| 日韩中文字幕av在线播放| 91女网站| 五月天春色激情网| 91蜜臀熟女| 操人妻少妇中文| 99re视频在线观看这里只有精品| 色情五月综合婷婷| 岛国精品视频在线观看| 天天爽人人综合免费7799| 国产精点久久久成人| 福利在线观看一区二区| 美国aaaaa一级黄片| 国产大学生口爆吞精合集| 欧 美 自 拍 偷 拍| 17c在线成人免费A片观看| 中文字幕一区二区三区字幕| 国产婷婷综合在线观看| 久久性爱视频免费看| 性综合网| 搡老熟女免费视频| 亚洲无码太久| 日韩一性一交一A片俄罗斯 | 久久久久96| 久久宗合97| 五月天婷婷社区| 久久国产精品m码| 97日韩| 无码一区二区精品视频久久久春药 | 性饥渴少妇av无码毛片| 婷婷色网| 亚洲天堂男人在线| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 国产强奸AV在线| 日逼逼免费看| www网站黄| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴| 夜夜爽33333| 欧美久久婷| 麻豆传媒一区二区在线观看| 5252色欧美在线男人的天堂| 久草加勒比一区在线| 八戒午夜福利理论片| 一区二区三区免费岛国片| 色色综合网站| 国产有码一区| 久久久久9999精品九九九| 精品人妻一区二区蜜桃视频| 91激情| 99精品视频在线观看免费| 色吧综合网| 青青久操| 97超级久久| 色欲Av人妻精品一区二| 欧美性爱视频免费一区一A| 国产少妇肉丝在线观看| aaa淫乱视频| 91无码人妻精品一区二区三区蜜桃| 日日爱99| 日本一本道A级黄色毛片试看60分钟| 婷婷在线视频| 日日噜噜夜夜久久亚洲一区二区 | 人人操人人色人人摸| 日韩性爱播放| 国产美女91视频| 日日躁天天躁狠狠躁| 超清福利精品视频在线| 99热啪啪| 亚欧美综合网。| 亚洲天堂欧美| 国产精选三级在线观看| 麻豆AV短剧| 超碰97男女| 黑人操一区二区| 久久9久9久99久9久9| 午夜九九| 国产探花精品在线| 日日夜夜骚| 欧美懂色综合网| 亚洲操人| 蜜臀无码一区二区| 国产精品久久妻无码网站| 久久婷婷五月天| 精品少妇一区二区三区| 国产女人与拘做受视频免费| 久久发布国产伦子伦精品| 91热| 日欧操屄视频| 锕锕好爽 死我在线观看| 欧洲亚洲国产综合在线| 久操99| 久久久久99999| 九九色婷婷| 人妻蜜桃臀| 美女黄频a美女大全免费皮| 极品久久久久久久久久久久久久| 91福利网在线观看| 91原创在线观看| 久久久久久久97| 69人妻精品一区二区绯色| 久久精品操| 探花激情视频| 妇女乱色二区| 丝袜熟女一区二区三区| 天天操美美| 亚洲国产欧美另类自拍| 人人搡人人肉久久精品| 国产精品露脸在线观看| 精品97精品97| 久久透逼视频| 秋霞午夜视频一区二区| 午夜.DJ高清在线观看免费7| 久久綜合很很很| 日韩欧美午夜一区二区| 99色婷婷中文字幕乱色| 无遮挡一级毛片视频免费的| 男人的天堂VA在线| 岛国视频一二三区| 欧美激情精品久久久| 一区三区啪啪| 精品在线78| 亚洲高潮少妇| 久久精品国产精品一区 | 欧美97爱| 男人天堂站| 亚洲国产精品9999在线观看| 日韩色女精品| 欧美性生活综合| 少妇熟女一区二区三区| 久久久久国产亚洲一区欧美色图日韩| 色吧 综合| 性色国产东北露脸精品视频| 最新三级网址| 欧美色图99| 亚洲情色电影网| 国产精品麻豆成人av| 性爱AV天堂| 国产成人精品亚洲日本| 亚洲丝袜综合| 另类av天堂| 视频分类 国内精品| 九九九九九九九九九国产精品| 麻豆蜜桃视频在线观看| 久久亚洲欧美中文字幕国语| 骚妻少妇精品性色无码四色A V| 婷婷亚洲色| 日韩AV无码网站| 精人妻无码一区二区三区伊人直播| 亚洲aV无码成人在线观看| 久艹日日日| 91天天爱| 欧美另类色图片| 精品国产91av一区二区三区| 欧亚 另类 久| 夜夜国产一区| 日韩人妻精品中文字幕| www激情| 中文字幕一区二区免费在线| 亚洲一区中文字幕| 日日黄色三级网站| 亚洲无码99| 人人 操人人 操人人| 97日亚洲欧美| 超碰免费欧美7| 国产11页| 国产成人自拍视频在线| 天天干天天舔| 日韩91网| 97国产伦理| 夜夜操老骚逼视频网站| 欧美日韩性爱精品| 一起草欧美| 四虎精品永久在线播放| 中日992视频| 久久这里| 人妻在线中出视频| 大香蕉久久| 欧美一区二区观看在线| 在线观看不卡一区二区三区| 97视频在线观看免费高清| 97超碰超欧美。| 久久久久久久久久久久黄色| 国产亚洲人妻综合日韩 久久| 久久毛卡| 2020中文在线一区二区三区| 国产成人亚洲精品无| 欧洲亚洲人妻无码高清久久三区四区| 精品人妻一区二区三区夜夜| 亚洲aw毛茸茸在线| 超碰三级秋霞| 小少妇| 久久五月天婷婷| 欧美日韩国内不卡| 顶级丝袜熟女一区二区三区| 51久久夜色精品国产麻豆| 欧美精品宗合| 97超碰欧美| 超碰九7免费| 色97干| 九九九精品美女| 国产精品久久久亚洲第一牛牛_在线观看 | 白丝1区2区3区| 麻豆人妻精品一区二区| 久久九九综合| 噜噜在线| 91一区二区| 蜜桃色色网站视频三区| 久久极品一区二区| 久久精精区一区二区一蜜桃一区二区| 久热伊人| 97精品国产97久久久久久| 夜夜嗨AV一区天天| 少妇 综合| 97国产超湿| 97青青操视频| 国产偷仑| 制服中出中文人人精品| 狠狠操狠狠燥| 玖玖资源视频一区二区三区| 丝袜美腿91| 91色亚洲| 欧美裸体美女日麻屄| 人妻9117c| 国产精品久久久久久久AV大片 | 性欧美精| 亚洲影视第一页| 天美麻豆一区二区三区| 97超碰超碰| 豆花视频操逼网址| 国产探花精品在线| 精品国产肉丝袜在线拍国语| 丁香五月天堂网| 嗯啊免费视频| 亚洲欧洲久久天堂| 人妻喷水| 中文字幕99999| 男女激烈网站最新| 大香蕉一线视频| 国产亚洲一黄| 久久亚洲熟妇在线视频| 久久人妻无码毛片A片麻豆| 欧美亚洲清纯| 伊人操| 国产操伦| 亚洲激情在线| 欧美三级免费伊人| wuyechaopeng| 丝袜亚洲综合| 高清无码 国产精品| 97福利视频| 亚洲精品天天影视综合网| 粉嫩久久久极品| 国产精品香蕉| 福利在线观看一区二区| 国产精品天美传媒| 久久视频,这里只有精品| 91亚洲人| 91操人| 国产久久久9999| 日韩欧美蜜桃精品久久中文字幕久久 | 欧综合网| 亚洲啪啪视频一区二区| 欧美成人9797| 久艹99| 岛国1区2区3区在线观看| 日韩在线观看中文字幕视频| 96爱综合| 美女啊啊啊啊啊| 国产福利小视频高清在线观看| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 日韩紧密久久| 淫纸中9区| 这里只有精品视频在线观看麻豆| 人妻丰满熟妇av无码区蜜桃| 色欧洲| av天堂手机版追回 | 乱伦a片视频| 欧美日韩情色一区二区| 亚洲不卡一| 无码国产Av| 蜜臀精品1区2区| 九九九九亚洲| 嫖老熟女A片一二三区| 天天舔九色婷婷| 免费操逼91| 国产少妇肉丝在线观看| 国产AV线| 99久久久久久久久| 中文字幕十五区| 老熟女乱伦片| 久久久艹艹艹| 91天堂网| 久久婷婷五月天| 男人天堂毛片| 嫖老熟女A片一二三区| 99精品高潮| 综合久久久久久久综合网| 久久九九一区二区三区成人| 九九九久久久| 五月丁香成人网| 少妇高潮一区二区三区在线| 国产强奸超碰AV| 亚洲drav色图| 婷婷激情五月天小说网| 超碰久久草| 国产精品视频麻豆入口| 欧美中文狠| 国产强奸乱伦xd| 欧美色图下一页| 亚洲图片婷婷五月天| 亚洲综合图色在线| 乱伦1色页| 国产精品一区二区后入| 熟女五十路一区二区三| 99蜜桃臀亚洲成人在线观看| 国产操伦| 欧美在线中M| 日韩欧美亚洲一区二区三区影院 | www.久久久久| 日韩一级二级三级| 青青草日本无码| 17c嫩草51久久91嫩草| 黄色小说亚洲| 91精品久久久久五月天精品| 精品网站99999| 久久亚洲AV无码专区国产精品 | 爱av免费| 啊啊啊啊好疼| 欧美精品另类人妖xxxx| 100啪啪视频大全| 久久国产精品熟女人妻| 欧美日韩精品一区二区三区高清| 精品二区三四区五电影 | 琪琪精品免费一区二区三区| 日韩精品国模| 99热这里只有精品9| 97色碰| 中文字幕-区二区三区四区视频中国| av网站在线观看了| 久久久九| 毛片视频白嫩| 国产91乱伦| 东京热av影院| 老熟女熟妇| 欧美成人黄网色网站| 97精品在线视频| 女生自91网站| 五月色网| 国产v片在线免费观看| 骚货 中文字幕 av| 日韩乱码Av| 无码日韩人妻av一| 好爽视频在线观看视频 | 亚洲欧美清纯| 五月天色电影| 人妻少妇av在线观看| 国产精品九九九| 久久伦理视频久久大香蕉视频| 亚洲av无码成人精品国产| 乱伦熟女论坛| 日韩干B| 色鬼在线综合| 99综合网| 亚州免费啪啪视频| 丰满少妇一区二区三区免费看| 中文字幕人妻色偷偷久久皮| www.激情| 日韩欧美国产一区二区三区四区| 欧美 亚洲精品首页| 久9久9精品| 日韩草久视频| 久久欧美性爱视频| 亚洲啪AⅤ永久无码| 天天久久| av日韩中文字幕| 99热免费精品| 91亚州日韩高清| 天天天天天干夜夜夜夜夜操| 亚洲欧洲无码bt精品合集| 久操免费观看| 中文字幕在线第二页| 少妇人妻精品| 欧美.亚洲.另类.丝袜.制服.诱惑| 成人美女av| 八戒无码国产午夜福利| 久久一区二区三区四区五区| 欧亚韩国999| 2017大香蕉国产精品久久| 天天色悠悠激情| 狠狠色婷婷7777久| 国语精品内射在线观看| 日本高清视频xxxx| 久久精品一区二区三区四区五区| 欧美小说区视频区| 亚洲日韩美女丝袜美腿人妻视频| 激情小说激情视频| 啊啊啊啊在线播放| 欧美国产有色电影| 秋霞男人网| 97视频在线免费看| 国产刺激视频| 99视频内射三四| 动漫爆乳3D奶水一区在线观看| www.伪伪| 免费观看国产小粉嫩喷水精品午| 午夜啪| 97超碰久久| 特色a在线上| 日韩小电影| 亚州男人天堂| 热热色91| 欧美91变态| 久久久久九九九| 超碰97网站| 97超碰色色| 91 欧美| 97色碰| 日韩成人私密一级精品av| 操b在线观看| 操逼视频国产无套| 日韩免费在线观看不卡| 国产强奸AV在线| 国产高清视频无码在线| 欧美十八禁视频| 7777奇米影视久久| 插穴性爱视频在线观看| 色官网色综合| 国产做?爰片久久毛片?片美国| 婷婷伊人网| 男人天堂久久精品| 色呦呦、国产精品|