久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

從零搭建AI工程:環(huán)境、數(shù)據(jù)、訓(xùn)練與部署的全流程實(shí)戰(zhàn)指南

從零搭建AI工程:環(huán)境、數(shù)據(jù)、訓(xùn)練與部署的全流程實(shí)戰(zhàn)指南 1. 先搞明白AI工程和“調(diào)模型”到底差在哪1.1 什么是真正的 ai-engineering而不是跑通一個(gè) demo先說個(gè)我自己的經(jīng)歷。前兩年我第一次接觸一個(gè)所謂的“AI項(xiàng)目”實(shí)際上就是拿到一個(gè)公開的模型權(quán)重寫了個(gè)30行的Python腳本調(diào)用了一下輸出了幾個(gè)結(jié)果。那叫“用AI”不叫“AI工程”。真正讓我意識到兩者差距的是后來接了一個(gè)內(nèi)部需求公司想讓員工在一個(gè)集中式入口里用自然語言提問然后系統(tǒng)從幾十萬份技術(shù)文檔里找到答案還要帶著來源引用返回。一開始我覺得這有什么難的——模型加載起來做個(gè)embedding接個(gè)向量庫完事了。結(jié)果真正做下去才發(fā)現(xiàn)模型加載跑通只是這個(gè)項(xiàng)目里最不起眼的5%。剩下95%的時(shí)間都在處理數(shù)據(jù)質(zhì)量、環(huán)境一致性、訓(xùn)練穩(wěn)定性、線上延遲、評測標(biāo)準(zhǔn)、回歸回歸回歸——這才是ai-engineering from scratch的核心。所以這篇文章想分享的不是某一個(gè)模型的調(diào)用代碼而是當(dāng)你決定“從零開始把一條AI產(chǎn)品線真正落地”時(shí)你需要面對的那些繞不開的問題以及我踩過之后留下的方案。適合剛?cè)腴T的算法工程師、想把模型產(chǎn)品化的后端開發(fā)以及正在復(fù)現(xiàn)論文或開源項(xiàng)目、卻被環(huán)境、數(shù)據(jù)、部署折磨到懷疑人生的學(xué)生。標(biāo)題里的“from scratch”有兩層含義技術(shù)棧上的從零不是用別人封裝好的Paas平臺拖幾個(gè)組件而是自己掌握鏈路里的每一個(gè)關(guān)鍵環(huán)節(jié)。認(rèn)知上的從零打破“模型就是一切”的幻覺建立工程化思維。1.2 為什么選擇自建而不是直接套現(xiàn)成平臺做AI工程第一件事通常是選型用現(xiàn)成的大模型API還是自己微調(diào)部署用托管的向量數(shù)據(jù)庫還是自己起一個(gè)這里沒有標(biāo)準(zhǔn)答案但有決策框架。我當(dāng)時(shí)的判斷標(biāo)準(zhǔn)是四看看數(shù)據(jù)敏感性企業(yè)內(nèi)部文檔涉及業(yè)務(wù)細(xì)節(jié)不能隨便出網(wǎng)。看定制深度問答效果依賴對私有術(shù)語的理解通用模型明顯不夠。看長期成本調(diào)用量上來之后按token付費(fèi)的費(fèi)用遠(yuǎn)高于自建推理。看團(tuán)隊(duì)成長希望團(tuán)隊(duì)借這個(gè)項(xiàng)目真正建立AI工程能力而不是變成一個(gè)API轉(zhuǎn)發(fā)器。四條下來“自建 開源模型微調(diào) 私有部署”是唯一合理的路徑。但自建有一個(gè)被嚴(yán)重低估的代價(jià)鏈路變長了。以前用一個(gè)API只需要關(guān)注輸入輸出自建之后你要關(guān)注數(shù)據(jù)管道、GPU資源、訓(xùn)練穩(wěn)定性、推理吞吐、監(jiān)控告警。每多一個(gè)環(huán)節(jié)就多了一批潛在的故障點(diǎn)。這是所有從零開始的人要先做好的心理建設(shè)。1.3 一個(gè)貫穿全文的實(shí)例內(nèi)部文檔問答機(jī)器人為了讓下面的內(nèi)容不至于飄在理論上我以“企業(yè)內(nèi)部文檔問答機(jī)器人”作為貫穿案例。項(xiàng)目目標(biāo)很明確用戶輸入一個(gè)問題系統(tǒng)返回一段答案并附帶來源文檔和頁碼。業(yè)務(wù)上要求準(zhǔn)確率不低于85%首字節(jié)延遲低于2秒支持30個(gè)并發(fā)。訓(xùn)練數(shù)據(jù)來自公司內(nèi)部的技術(shù)文檔、產(chǎn)品手冊、歷史工單大約50萬條。這個(gè)例子覆蓋了AI工程的主要模塊數(shù)據(jù)管道、模型微調(diào)、推理部署、評測反饋。后面每個(gè)章節(jié)都會用它來說明“為什么這么做”“參數(shù)怎么定”“踩了什么坑”。2. 環(huán)境與基礎(chǔ)設(shè)施搭地基的姿勢決定上層建筑的穩(wěn)定程度2.1 GPU選型與驅(qū)動別一上來就被顯存卡死做AI工程第一道坎通常是硬件環(huán)境。我當(dāng)時(shí)拿到的是一臺雙卡機(jī)器配置是2塊24G顯存的GPU。很多人會問“顯存選多大”其實(shí)這個(gè)問題不應(yīng)該脫離模型規(guī)模去談。如果目標(biāo)是微調(diào)一個(gè)7B參數(shù)量的模型采用LoRA方式24G顯存跑fp16是夠的如果要全參數(shù)微調(diào)24G會很吃力。訓(xùn)練和推理的顯存需求差異也很大推理階段可以用量化大幅壓縮。選型的時(shí)候我列過一個(gè)粗略的評估表模型規(guī)模推理最低顯存FP16微調(diào)推薦顯存LoRA全參微調(diào)推薦顯存1B以下4G8G16G7B16G24G80G13B32G48G160G注意這只是經(jīng)驗(yàn)值實(shí)際要看序列長度和batch size。序列越長、batch越大顯存需求越高。驅(qū)動和CUDA版本這塊我吃過一次虧機(jī)器上預(yù)裝了CUDA 11.8但PyTorch版本要求CUDA 12.1結(jié)果程序沒有報(bào)CUDA錯(cuò)誤而是直接報(bào)“illegal memory access”排查了一天最后才發(fā)現(xiàn)是版本不匹配。現(xiàn)在我的原則是先查PyTorch官方對應(yīng)的CUDA版本再回過頭配置驅(qū)動。跑一個(gè)簡單的驗(yàn)證命令確認(rèn)環(huán)境正常python -c import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))如果輸出顯示的GPU名稱正確CUDA可用再開始裝模型能省掉一大半玄學(xué)問題。2.2 用Docker把環(huán)境固化下來不要相信“在我電腦上是好的”AI工程的復(fù)現(xiàn)性有一個(gè)大敵環(huán)境漂移?!霸谖译娔X上跑得好好的”這句話在AI項(xiàng)目里出現(xiàn)的頻率遠(yuǎn)超其他軟件項(xiàng)目。原因很簡單訓(xùn)練腳本依賴的Python包有幾百個(gè)每個(gè)包又有不同版本某次升級一個(gè)小版本可能就帶來數(shù)值變化。為了把環(huán)境固化我強(qiáng)烈建議從第一步就引入Docker。我用的基礎(chǔ)鏡像形如FROM pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime RUN apt-get update apt-get install -y git curl RUN pip install --no-cache-dir transformers datasets accelerate peft trl COPY ./requirements.txt /app/ RUN pip install --no-cache-dir -r /app/requirements.txt這樣做的好處有三個(gè)環(huán)境與宿主隔離不會再因?yàn)橄到y(tǒng)Python升級導(dǎo)致依賴崩掉。訓(xùn)練、推理、測試用同一個(gè)鏡像結(jié)果可以對比。部署的時(shí)候直接把鏡像推到內(nèi)部倉庫生產(chǎn)機(jī)和開發(fā)機(jī)環(huán)境完全一致。我用的是conda還是Docker答案是都要。conda負(fù)責(zé)創(chuàng)建Python虛擬環(huán)境Docker負(fù)責(zé)把整個(gè)系統(tǒng)層傳下去。在Docker里面再用conda管理Python環(huán)境可以兼顧靈活與可復(fù)現(xiàn)。2.3 實(shí)驗(yàn)跟蹤沒有記錄的訓(xùn)練都是白訓(xùn)從零開始做AI工程最容易忽略的一個(gè)環(huán)節(jié)是實(shí)驗(yàn)記錄。我早期就是這樣改個(gè)參數(shù)跑一晚上第二天醒來發(fā)現(xiàn)效果好了但忘了昨天改了什么。那種“明明前一天還在變好現(xiàn)在怎么退步了”的困惑基本都源于沒有做好跟蹤。后來我引入了MLflow配合一套簡單的命名規(guī)范。每個(gè)實(shí)驗(yàn)記錄三樣?xùn)|西超參數(shù)學(xué)習(xí)率、batch size、epoch數(shù)、LoRA rank指標(biāo)訓(xùn)練loss、驗(yàn)證loss、準(zhǔn)確率、F1產(chǎn)物模型檢查點(diǎn)路徑、評測報(bào)告、日志文件命名規(guī)范是“日期-模型-版本-說明”比如“20240601-bert-base-zh-v01-lr2e5”。不要小看命名一個(gè)清晰的名字能讓你三個(gè)月后翻記錄時(shí)省下大量時(shí)間。如果你不想引入額外的服務(wù)也可以用最簡單的CSV記錄表。核心不是工具而是“每次改動都有跡可循”這個(gè)習(xí)慣。2.4 項(xiàng)目目錄結(jié)構(gòu)讓數(shù)據(jù)、代碼、模型、實(shí)驗(yàn)各歸其位從零搭建AI工程第一個(gè)該建立的不是模型而是目錄結(jié)構(gòu)。混亂的目錄是后期維護(hù)的地獄。我最后固定的結(jié)構(gòu)是這樣的ai-engineering/ ├── configs/ # 所有訓(xùn)練、推理、評測的配置 ├── data/ # 數(shù)據(jù)原始、清洗后、切分后 ├── src/ # 代碼 │ ├── data/ # 數(shù)據(jù)處理邏輯 │ ├── models/ # 模型定義 │ ├── train/ # 訓(xùn)練腳本 │ ├── infer/ # 推理邏輯 │ └── eval/ # 評測邏輯 ├── experiments/ # 實(shí)驗(yàn)記錄與產(chǎn)物 ├── models/ # 最終模型權(quán)重 └── scripts/ # 運(yùn)行入口腳本這個(gè)結(jié)構(gòu)的原則是數(shù)據(jù)和模型不跟代碼混在一起配置和實(shí)驗(yàn)結(jié)果又跟代碼分開。實(shí)際用下來的好處是很多時(shí)候只需要拷貝某個(gè)子目錄就能完成交接不用把“那一堆亂七八糟的文件”一起拷走。3. 數(shù)據(jù)是真正的上線難點(diǎn)清洗、版本化、切分3.1 從原始文檔到訓(xùn)練數(shù)據(jù)清洗規(guī)則怎么定很多從零開始做AI工程的人會低估數(shù)據(jù)處理的比重。真實(shí)情況是一個(gè)生產(chǎn)中可用的模型其數(shù)據(jù)工程耗時(shí)往往占總工時(shí)的60%以上。尤其像文檔問答這種場景原始數(shù)據(jù)是PDF、Word、HTML混在一起排版各異直接拿去訓(xùn)練根本不可能。我的清洗分四步走第一步做格式轉(zhuǎn)換。PDF用解析工具抽出文本W(wǎng)ord轉(zhuǎn)成純文本HTML剝掉標(biāo)簽。這里要注意PDF雙欄排版很容易抽取錯(cuò)亂需要按欄切分再拼接。第二步做段落切分。按標(biāo)題層級和段落邊界把文檔切成“語塊”而不是簡單按字符數(shù)硬切。我當(dāng)時(shí)用了一套基于標(biāo)題編號的規(guī)則同時(shí)保留每塊的來源元數(shù)據(jù)文檔名、章節(jié)路徑、頁碼。第三步做規(guī)則過濾。批量去掉頁眉頁腳、導(dǎo)航重復(fù)段落、空行、亂碼字符。規(guī)則要寫成腳本反復(fù)迭代不要手動刪。第四步做人工抽檢。每清洗完一批數(shù)據(jù)隨機(jī)抽100條檢查質(zhì)量。如果錯(cuò)誤率超過2%說明清洗規(guī)則還需要補(bǔ)。一點(diǎn)心得清洗規(guī)則寧多勿少因?yàn)榕K數(shù)據(jù)給模型帶來的傷害是隱性的——它不會報(bào)錯(cuò)只會讓效果差一點(diǎn)、再差一點(diǎn)最終你根本不知道是模型的問題還是數(shù)據(jù)的問題。3.2 數(shù)據(jù)版本管理改過什么永遠(yuǎn)要能查談到數(shù)據(jù)AI工程師圈子里流傳著一句話“模型是數(shù)據(jù)的影子?!蹦愀牧艘话鏀?shù)據(jù)模型效果完全不同。這時(shí)如果你沒記錄數(shù)據(jù)版本那么復(fù)現(xiàn)就是一個(gè)笑話。我做數(shù)據(jù)版本管理的辦法不復(fù)雜用類似DVC的方式但核心是把兩樣?xùn)|西固定下來——數(shù)據(jù)文件的哈希值和一份數(shù)據(jù)清單。每當(dāng)數(shù)據(jù)變更我會生成一個(gè)新的數(shù)據(jù)版本號格式是“v日期-序號”并記錄原始數(shù)據(jù)來源清洗腳本版本清洗參數(shù)清洗后樣本數(shù)量人工抽檢結(jié)果這份記錄放在數(shù)據(jù)目錄的“CHANGELOG.md”里。為什么這么在意因?yàn)楫?dāng)我發(fā)現(xiàn)模型效果下降時(shí)第一件事就是檢查數(shù)據(jù)版本是否被動過。有一次團(tuán)隊(duì)同事順手“優(yōu)化”了清洗腳本去掉了一個(gè)去重步驟結(jié)果數(shù)據(jù)量從50萬變成55萬模型準(zhǔn)確率掉了3個(gè)點(diǎn)。查了兩天最后定位到就是數(shù)據(jù)版本變了。如果一開始就查CHANGELOG十分鐘就能解決。3.3 切分與分布檢查訓(xùn)練集驗(yàn)證集的劃分要防止“作弊”數(shù)據(jù)切分看起來是個(gè)簡單問題——隨機(jī)分一下就行其實(shí)不是。文檔問答場景有一個(gè)典型風(fēng)險(xiǎn)同一份文檔的不同段落可能既出現(xiàn)在訓(xùn)練集又出現(xiàn)在驗(yàn)證集。模型見過相關(guān)內(nèi)容驗(yàn)證集分?jǐn)?shù)虛高上線后面對新文檔效果驟降。這就是數(shù)據(jù)泄露。我的切分原則是按文檔級別切分而不是按段落切分。同一篇文檔的段落放進(jìn)同一個(gè)集合。驗(yàn)證集和測試集不使用同一批文檔。切分之后人工檢查類別分布。比如工單類的數(shù)據(jù)占了60%驗(yàn)證集也要保持類似的占比否則指標(biāo)會有偏。切分完一定要跑一個(gè)簡單的分布檢查腳本輸出訓(xùn)練/驗(yàn)證/測試三個(gè)集合的樣本量、來源分布、平均長度??吹饺M數(shù)字大致匹配再進(jìn)入訓(xùn)練環(huán)節(jié)。這里特別提醒一點(diǎn)不要反復(fù)在測試集上調(diào)參。測試集的唯一使命是最終評估一次。想調(diào)參用驗(yàn)證集。這個(gè)原則違反了你的指標(biāo)就只是“對測試集的記憶”不是真實(shí)能力。4. 模型訓(xùn)練與微調(diào)的實(shí)操從加載到收斂4.1 訓(xùn)練循環(huán)骨架每一行都有存在的理由從零開始寫訓(xùn)練循環(huán)不是把模型的forward和backward拼在一起就完事。一個(gè)生產(chǎn)可用的訓(xùn)練腳本要考慮的東西比教科書示例多得多梯度累積、混合精度、梯度裁剪、checkpoint保存、日志頻率。我用的訓(xùn)練循環(huán)骨架大致長這樣for epoch in range(num_epochs): model.train() for step, batch in enumerate(train_loader): batch {k: v.to(device) for k, v in batch.items()} outputs model(**batch) loss outputs.loss / grad_accum_steps loss.backward() if (step 1) % grad_accum_steps 0: torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm1.0) optimizer.step() scheduler.step() optimizer.zero_grad() if step % log_steps 0: logger.info(fepoch {epoch}, step {step}, loss {loss.item():.4f}) # 每N步做一次驗(yàn)證 evaluate(model, val_loader)看起來平平無奇但有幾個(gè)點(diǎn)值得展開。梯度累積是為了在單卡顯存受限時(shí)用多個(gè)小batch模擬大batch的效果。grad_accum_steps 理想batch size / 實(shí)際batch size。比如理想batch是32顯存只放得下8那accum_steps就是4?;旌暇華MP可以讓訓(xùn)練加速且省顯存。PyTorch里用torch.cuda.amp即可一般不改業(yè)務(wù)代碼。但要注意部分模型在FP16下數(shù)值不穩(wěn)定loss會突變成nan。如果你遇到這種問題可以退回FP32或者用BF16在許多新卡上更穩(wěn)。4.2 超參數(shù)的起點(diǎn)以及調(diào)參的順序邏輯超參數(shù)是玄學(xué)嗎某種意義上是的但調(diào)參順序是有邏輯的。我的經(jīng)驗(yàn)是從學(xué)習(xí)率開始調(diào)。找一個(gè)大致的范圍比如1e-5到5e-5先用小數(shù)據(jù)集快速跑幾個(gè)epoch觀察loss走勢。loss不降說明學(xué)習(xí)率太小或者模型結(jié)構(gòu)有問題loss震蕩說明學(xué)習(xí)率太大。選定學(xué)習(xí)率之后再調(diào)batch size。batch size主要影響訓(xùn)練穩(wěn)定性和收斂速度太大會顯存爆炸太小會導(dǎo)致梯度噪聲大、收斂慢。再然后是epoch數(shù)。epoch數(shù)其實(shí)不是一個(gè)需要“調(diào)”的參數(shù)而是和早停early stopping配合的概念。我一般設(shè)置一個(gè)上限比如10個(gè)epoch如果驗(yàn)證指標(biāo)連續(xù)3個(gè)epoch沒有提升就提前結(jié)束訓(xùn)練并保存驗(yàn)證集上表現(xiàn)最好的那個(gè)檢查點(diǎn)。warmup比例也值得一說。很多模型微調(diào)時(shí)會設(shè)置一段“預(yù)熱期”學(xué)習(xí)率從零線性上升到目標(biāo)值再按余弦曲線下降。warmup的比例我習(xí)慣設(shè)為總步數(shù)的3%到5%。它的作用是防止訓(xùn)練初期由于學(xué)習(xí)率過大導(dǎo)致模型參數(shù)劇烈震蕩。4.3 什么時(shí)候上分布式單卡能解決的事別浪費(fèi)時(shí)間在多卡上很多從零開始的人有個(gè)誤區(qū)一上來就研究分布式訓(xùn)練框架。其實(shí)大多數(shù)項(xiàng)目單卡就能搞定。我的判斷標(biāo)準(zhǔn)是如果單卡訓(xùn)練一輪的時(shí)間在可接受范圍內(nèi)比如一個(gè)晚上能跑完就絕對不要上分布式。分布式訓(xùn)練帶來的增益不是沒有但它同時(shí)引入通信開銷、調(diào)試難度和版本兼容問題。性價(jià)比極低。只有當(dāng)訓(xùn)練時(shí)間超過資源容忍度比如單卡要跑一周以上才是考慮DDPDistributedDataParallel的時(shí)機(jī)。如果可以優(yōu)先用LoRA這種參數(shù)高效微調(diào)技術(shù)而不是全參微調(diào)。它在保持效果接近的情況下顯存占用和訓(xùn)練時(shí)間都能大幅降低。微調(diào)一個(gè)7B模型的LoRA24G單卡完全夠用。這個(gè)決策讓我的團(tuán)隊(duì)省下了一整臺A100預(yù)算。4.4 模型產(chǎn)物管理檢查點(diǎn)怎么存選哪個(gè)版本上線一個(gè)訓(xùn)練任務(wù)跑完會留下很多檢查點(diǎn)每個(gè)epoch保存一次加上早停保存的最佳檢查點(diǎn)以及最后一輪檢查點(diǎn)。不可能全部上線需要一套選擇邏輯。我現(xiàn)在的規(guī)則是候選檢查點(diǎn)都跑一遍評測集記錄核心指標(biāo)準(zhǔn)確率、F1、延遲。上線選擇不只看單一指標(biāo)。比如準(zhǔn)確率最高的檢查點(diǎn)可能在某類問題上的穩(wěn)定性很差我會看分項(xiàng)指標(biāo)再決定。所有檢查點(diǎn)統(tǒng)一命名格式模型名-訓(xùn)練數(shù)據(jù)版本-epoch號-指標(biāo)值。這個(gè)格式保證三個(gè)月后還能定位到“為什么選它”。保存檢查點(diǎn)的時(shí)候不只是存權(quán)重還要把訓(xùn)練配置和tokenizer一起打包。有過一次教訓(xùn)三個(gè)月后想恢復(fù)一個(gè)模型繼續(xù)訓(xùn)練結(jié)果只找到權(quán)重文件tokenizer配置丟了那個(gè)模型直接報(bào)廢。權(quán)重可以不要tokenizer和config一定要留在模型目錄里。5. 推理部署與性能調(diào)優(yōu)模型跑起來只是開始5.1 在線服務(wù)還是離線批量先想清楚業(yè)務(wù)形態(tài)部署的第一步不是寫API而是判斷業(yè)務(wù)到底需要什么形態(tài)。文檔問答這個(gè)場景用戶需要實(shí)時(shí)交互所以必須是在線服務(wù)接口響應(yīng)要快。而像“每周自動給全量工單打標(biāo)簽”這種就不需要API跑一個(gè)批量腳本就行。在線服務(wù)又分同步和異步。同步返回適合單次問答場景簡單直接。異步適合處理慢操作比如生成很長的答案先返回任務(wù)ID用戶再通過輪詢拿結(jié)果。我當(dāng)時(shí)的業(yè)務(wù)首字節(jié)延遲要求是2秒同步就夠用沒有引入額外的消息隊(duì)列。這里提醒一點(diǎn)不要為了“看起來高級”而加消息隊(duì)列。每多一個(gè)組件就多一層運(yùn)維負(fù)擔(dān)。先把同步接口做好發(fā)現(xiàn)瓶頸再演進(jìn)。5.2 推理加速量化、批處理、緩存三板斧模型部署之后第一件事就是壓測。我的經(jīng)驗(yàn)是不要憑感覺判斷性能直接用壓測工具跑指標(biāo)。壓測看三個(gè)數(shù)字QPS每秒能處理多少請求、P99延遲最慢的1%請求耗時(shí)、顯存占用。我的壓測結(jié)果是單卡初始QPS只有5P99延遲4秒遠(yuǎn)遠(yuǎn)不夠。之后我做了三板斧優(yōu)化第一板斧是量化。把模型從FP16量化到INT8或INT4顯存占用直接下降50%以上推理速度提升明顯。當(dāng)時(shí)用的是類似GPTQ的思路通過校準(zhǔn)集選擇量化參數(shù)。INT4的量化會讓效果略有下降但在這個(gè)業(yè)務(wù)場景下可接受。第二板斧是批處理。在線推理服務(wù)默認(rèn)是一個(gè)請求一個(gè)請求地過模型GPU利用率很低。改成動態(tài)批處理服務(wù)在極短的時(shí)間窗口比如50ms內(nèi)收集多個(gè)請求合并成一個(gè)batch同時(shí)推理。這個(gè)改動把GPU利用率從20%拉到80%以上QPS直接翻了幾倍。第三板斧是結(jié)果緩存。高頻問題往往占線上請求的大頭。對完全相同或高度相似的query直接用Redis緩存之前的結(jié)果。這個(gè)改動把30%的請求變成“零推理”效果立竿見影。優(yōu)化后我的最終指標(biāo)是QPS 25P99延遲1.2秒滿足業(yè)務(wù)需求。別小看這些優(yōu)化它們是“從能跑到能扛流量”的關(guān)鍵。5.3 API服務(wù)怎么做才像話模型推理服務(wù)本質(zhì)上是一個(gè)高并發(fā)的接口服務(wù)工程上不能裸奔。我用FastAPI搭的服務(wù)骨架大概長這樣from fastapi import FastAPI, HTTPException from pydantic import BaseModel app FastAPI() class Query(BaseModel): question: str top_k: int 3 app.post(/v1/qa) async def qa(query: Query): try: result pipeline.run(query.question, top_kquery.top_k) return {answer: result[answer], sources: result[sources]} except Exception: raise HTTPException(status_code500, detailinternal error)但光有這個(gè)還不行生產(chǎn)環(huán)境至少還要有超時(shí)控制每個(gè)推理請求設(shè)置超時(shí)上限比如5秒避免慢請求拖垮線程池。重試策略對偶發(fā)的GPU顯存不足、臨時(shí)CUDA錯(cuò)誤做有限重試。限流對用戶或客戶端IP做每分鐘請求數(shù)限制防止惡意調(diào)用。隊(duì)列上限當(dāng)并發(fā)過大時(shí)服務(wù)的策略是“快速失敗”還是“排隊(duì)等待”要提前定好。我當(dāng)時(shí)選的是快速失敗返回503讓調(diào)用方自己退避。5.4 上線后的監(jiān)控沒有監(jiān)控的服務(wù)是一顆定時(shí)炸彈服務(wù)上線后我開始搭建最基本的監(jiān)控指標(biāo)。不是要什么花哨的可觀測性平臺而是先把最關(guān)鍵的指標(biāo)看住。GPU監(jiān)控利用工具每10秒采集一次顯存使用率、GPU利用率和溫度寫入時(shí)序數(shù)據(jù)庫畫到面板上。顯存持續(xù)上漲是泄漏的典型信號基本可以斷定服務(wù)代碼或推理框架有內(nèi)存管理問題。請求監(jiān)控記錄QPS、P99/平均延遲、超時(shí)率和5xx錯(cuò)誤率。延遲突增和錯(cuò)誤率飆升是兩大核心告警。數(shù)據(jù)漂移監(jiān)控上線后的模型會面對未知的線上數(shù)據(jù)分布。我的做法是定期從線上日志里取最新的query樣本和訓(xùn)練時(shí)的query做embedding距離分布對比。如果分布偏移過大就需要考慮重新訓(xùn)練。這個(gè)問題在文檔問答場景很常見——業(yè)務(wù)人員提問習(xí)慣會隨時(shí)間變化。不做監(jiān)控模型就像蒙著眼開車。你永遠(yuǎn)不知道它在生產(chǎn)環(huán)境里已經(jīng)被用戶的真實(shí)請求折磨成什么樣了。6. 評測體系與回歸測試不評測等于白做6.1 評測集是AI工程的“法律文件”模型好用不好用不是訓(xùn)練指標(biāo)說了算而是評測集說了算。很多人只盯著訓(xùn)練集上的loss降沒降這是最大的誤區(qū)。Loss降了可能是過擬合可能是數(shù)據(jù)泄漏可能只是“背題”。真正衡量模型能力的是一份和訓(xùn)練集完全獨(dú)立、由人工標(biāo)注、覆蓋真實(shí)業(yè)務(wù)場景的評測集。我當(dāng)時(shí)花了兩周時(shí)間做評測集。從50萬條數(shù)據(jù)里挑出2000條作為評測樣本覆蓋幾十種問題類型每條由三個(gè)人獨(dú)立標(biāo)注取多數(shù)作為最終答案。同時(shí)保證評測集里的文檔不會出現(xiàn)在訓(xùn)練集里。評測集要包含兩類樣本常規(guī)樣本絕大多數(shù)線上請求長什么樣評測集就長什么樣。邊界樣本故意放一些模糊問題、帶錯(cuò)別字的query、語義相近但答案不同的陷阱題。沒有邊界樣本你的評測分?jǐn)?shù)會很漂亮但上線后被真實(shí)用戶一問就原形畢露。6.2 自動化回歸測試改一個(gè)參數(shù)不要把全線上搞掛有了評測集下一步是把評測自動化。我設(shè)計(jì)了一套回歸測試流程每次模型更新或者數(shù)據(jù)更新都會跑一遍。流程分三段第一段是冒煙測試。用10條左右的高置信度樣本驗(yàn)證模型能不能正常加載、推理會不會報(bào)錯(cuò)。耗時(shí)兩分鐘作用是把明顯的代碼問題擋在門口。第二段是核心評測。用完整的2000條評測集跑一遍生成詳細(xì)報(bào)告。包括總體準(zhǔn)確率、分類型準(zhǔn)確率、和上一版模型的對比。如果新版模型總體指標(biāo)下降超過1%除非有明確理由否則默認(rèn)不通過。第三段是錯(cuò)誤case留檔。每次評測失敗的樣本自動記錄下來標(biāo)記“待人工分析”。這些case是數(shù)據(jù)迭代最寶貴的來源。我從這個(gè)流程里吃到最大的甜頭是再也不用擔(dān)心團(tuán)隊(duì)里任何人“偷偷把參數(shù)改了”之后影響線上效果看不到——自動化測試會用指標(biāo)說話。6.3 基于bad case的迭代閉環(huán)AI工程的“永動機(jī)”效果提升不是靠突然的靈感而是靠對bad case的持續(xù)分析。我的操作流程是收集錯(cuò)誤樣本從評測失敗和線上日志里匯總bad case。聚類分析把bad case歸類。比如“模型分不清‘退款’和‘退貨’的區(qū)別”“模型對縮寫理解錯(cuò)誤”“檢索結(jié)果缺失導(dǎo)致生成失敗”。每類給一個(gè)標(biāo)簽。定位根因有些bad case是數(shù)據(jù)問題有些是檢索問題有些是模型能力邊界。根因不同解決方案完全不同。數(shù)據(jù)補(bǔ)強(qiáng)針對根因補(bǔ)充對應(yīng)的訓(xùn)練數(shù)據(jù)或調(diào)整清洗規(guī)則。重新訓(xùn)練和評測回到訓(xùn)練階段跑完自動化測試看是否解決。這個(gè)循環(huán)跑上個(gè)10輪模型效果就會逐步逼近業(yè)務(wù)預(yù)期。數(shù)據(jù)版本管理、實(shí)驗(yàn)記錄、自動化評測的意義在這個(gè)閉環(huán)里全部體現(xiàn)出來。7. 常見問題與排查技巧實(shí)錄7.1 環(huán)境與訓(xùn)練階段的高頻問題現(xiàn)象常見原因排查思路啟動就報(bào)“illegal memory access”CUDA版本與PyTorch不匹配先核對PyTorch官方要求的CUDA版本再檢查驅(qū)動與CUDA訓(xùn)練中途顯存OOMbatch size過大或顯存碎片化先減小batch size或開啟梯度累積再檢查是否有變量未釋放loss是NaN學(xué)習(xí)率過大、FP16數(shù)值不穩(wěn)定、數(shù)據(jù)里有臟標(biāo)簽降低學(xué)習(xí)率可嘗試BF16檢查數(shù)據(jù)清洗loss一直不降學(xué)習(xí)率太小或訓(xùn)練數(shù)據(jù)分布混亂快速跑5個(gè)epoch看loss斜率排除數(shù)據(jù)標(biāo)簽大量錯(cuò)誤訓(xùn)練完指標(biāo)高線上效果差數(shù)據(jù)泄漏或評測集覆蓋不足檢查切分是否按文檔級別補(bǔ)充邊界樣本OOM是我遇到最多的。一開始我以為是GPU顯存不夠排查老半天發(fā)現(xiàn)是某個(gè)代碼片段把中間結(jié)果列表全部積在內(nèi)存里batch的loss都正常但內(nèi)存先爆了。用free -g看一眼系統(tǒng)內(nèi)存能快速區(qū)分是顯存還是內(nèi)存問題。7.2 部署與服務(wù)階段的高頻問題現(xiàn)象常見原因排查思路P99延遲持續(xù)走高并發(fā)排隊(duì)過多或批處理窗口設(shè)置不合理看隊(duì)列長度調(diào)整動態(tài)批處理最大等待時(shí)間GPU顯存使用率只增不減推理框架或服務(wù)代碼內(nèi)存泄漏用監(jiān)控工具觀察顯存曲線最小化復(fù)現(xiàn)定位是框架還是業(yè)務(wù)代碼請求大量返回503隊(duì)列上限觸發(fā)快速失敗放寬隊(duì)列上限或增加實(shí)例檢查限流配置是否誤傷正常用戶修改代碼后推理結(jié)果變了未固定隨機(jī)種子或模型未加載同一檢查點(diǎn)固定PYTHONHASHSEED和隨機(jī)種子核對模型路徑與config服務(wù)重啟后首次請求特別慢模型冷加載上線時(shí)寫預(yù)熱腳本啟動后發(fā)送幾條請求讓模型預(yù)熱再對外服務(wù)部署階段有個(gè)細(xì)節(jié)容易被忽視模型文件的加載路徑。我犯過一次錯(cuò)部署時(shí)從網(wǎng)盤下載模型下載完成度沒有校驗(yàn)結(jié)果服務(wù)用的是一半的權(quán)重文件準(zhǔn)確率低到不可思議還沒有報(bào)錯(cuò)。后來我在所有模型加載環(huán)節(jié)都加了一步校驗(yàn)加載后跑一遍冒煙測試檢查輸出是否符合預(yù)期。這個(gè)習(xí)慣救了我好幾次。7.3 數(shù)據(jù)層面的問題排查數(shù)據(jù)的問題最隱蔽因?yàn)椴粓?bào)錯(cuò)。我發(fā)現(xiàn)過一個(gè)現(xiàn)象模型對英文縮寫理解特別差一開始以為是模型能力問題后來分析是清洗腳本把所有句點(diǎn)都去掉了導(dǎo)致“U.S.A”這種詞被粘連成“USA”含義還算對但“app.v1.2.3”這種版本號被破壞訓(xùn)練樣本全亂了。這類問題只能靠“清洗后人工抽檢”和“數(shù)據(jù)分布統(tǒng)計(jì)”這類預(yù)防機(jī)制出了再查往往為時(shí)已晚。另一個(gè)高發(fā)問題是重復(fù)數(shù)據(jù)。很多文檔的內(nèi)容是重復(fù)粘貼的如果不做去重某些句子在訓(xùn)練集中出現(xiàn)幾十次模型就會嚴(yán)重偏向這些說法對其他同義表達(dá)不敏感。至少做一次MinHash或simhash去重比任何調(diào)參都管用。8. 最后分享兩個(gè)親測有效的習(xí)慣寫到最后說點(diǎn)不太能寫進(jìn)項(xiàng)目匯報(bào)里的體會。第一個(gè)習(xí)慣是把每一步的關(guān)鍵決策和踩坑記錄下來。不是寫API文檔那種而是記錄“為什么當(dāng)時(shí)那么選”“后來發(fā)現(xiàn)有什么問題”“下次怎么做更好”。這種草根筆記看著不起眼但在項(xiàng)目中期回頭查問題時(shí)它的價(jià)值超過任何一本教科書。第二個(gè)習(xí)慣是永遠(yuǎn)從最小閉環(huán)開始。不要一開始就規(guī)劃一個(gè)完美的大系統(tǒng)而是先做一個(gè)丑但通全鏈路的版本10條數(shù)據(jù)、1個(gè)模型、1個(gè)接口、10條評測樣本。跑通之后再一步步把工程化能力加進(jìn)去。所有大的AI工程問題都是在閉環(huán)里逐個(gè)暴露、逐個(gè)解決的。從零到一搭建AI工程確實(shí)不容易但這個(gè)過程建立的工程判斷力和排錯(cuò)能力才是真正的資產(chǎn)。項(xiàng)目會結(jié)束模型會迭代但這些能力會留在這個(gè)團(tuán)隊(duì)的血液里后面的路自然會越走越穩(wěn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色情五月婷婷| 成人开心网在线视频| 国产a片操逼| 一区二区不卡免费| 九九热男人天堂| 国产精品 久久久精品一牛| 国产AV天美| 女生自91网站| 亚洲欧洲综合成人av一区| 久久中文字幕女同性恋一区| 六月丁丁香| 色五月av| 国产高清MV操逼视频| 东京热熟女亚洲视频网站| 精品国产肉丝袜在线拍国语| 91深夜夜| 精品欧美老熟女一二区| 白嫩妹子国产骚| 亚洲丝袜色图| 精品久久視頻在线| 久久78| 丝袜色综合| 九九视品黄色| 久久99黄色卞西瓜| 久久久影院| 熟女六十路| 18禁美女裸体无遮挡啪啪| 青青草好吊色| 中文字幕一区二区三区四五区| 大香蕉在线视频重口味毛片在线| 精品久久視頻在线| 日韩97超碰中文字幕| 日本一级性爱| 日韩激情中文字幕有码| 亚洲熟女性高潮久久久| 国产成年女人免费视频播放a| 熟妇人妻一二三区免费| 欧美亚洲激情一二三| 91亚洲综合在线| 欧美 日韩 另类 亚洲| 青青欧美在线| 国产精品亚洲四五区在线观看| 爽爽淫人网| 欧美一级做a爰片免费视频| 囯戸精品高潮呻吟旡码| 欧美极品性爱天天射| 草草影院最新网址| 亚洲 日本 国产 综合| 偷拍三区| 亚洲精品乱码久久久久久蜜桃麻豆 | 夜草欧美| 97国产天堂岛| 青青草视频久久久久| 综合av社区| 91碰碰碰| 成人午夜小视频手机在线看| 少妇啪啪自拍| 国产精品成人无码a v毛片| 国产精品直播在线观看直播| 国产成人在线观看网址| 免费久久一级毛片大黄| 日韩亚洲精品一区二区| 老司机射| 熟女突然公开看18禁影片| 秋霞Av理论一级在线| 久久性爱精品一区| 免费看黄片现成| 久久成年片色大黄全免费网站| 久久久久夜夜夜夜| 一区二区三区黄片免费观看| 影音先锋国产精品| 91色综合激情| 啊啊啊啊在线观看网址| 天操天操夜操夜月操月年年操操| 中文字幕片| 不卡九肏| 天天影视之亚洲综合网| 大香交| 国产97综合| 蘋果手機免費看成人Av| 快播久久人人aV| 欧美性暴力猛交| 美女啊啊啊啊啊| 中文字幕一区二区三区四区在线视频| 国产 日韩 欧美高清| 天天久久| 婷婷五月天激情网| 射 色综合| 亚洲宗合电影| 久操不卡视频| 97色在线观看| 97se亚洲| 操迟操逼在巾线Fre看| 久热婷婷| 伊人网在线视频| 午夜经典| 日本午夜福利影院| 欧美色道啊| 91福利网在线观看| JULIA一区二区三区在线播放| 黄页大片在线观看| 亚洲情欲| 男人天堂2019亚洲| 男女香蕉一区二区| 国产精品久久久无码aV去| 操逼日韩无码 | 欧美在线天堂| 午夜国产成人福利视频| 91男人天堂网| 欧美 日韩 亚洲 春色| 国产激情在线| 91国内外在线| 无码日韩网站| 又黄又硬又粗又长国产视频| 综合久久中文字幕综合日韩精品| 美国三级日本三级久久99| 午夜超爽| 五月天婷婷久久| 天堂日本亚洲欧美| 97干97色| 99性爱| 后入式在线免费观看60秒| 久九色| 熟妇高潮精品一区二区三区下载| 久久久内射良家| 亚洲av噜噜噜噜噜噜| 国产操偷| 亚洲欧美啪啪| 国产成人综合在线播放| 色综合超碰超| 性开放中文AV高清无码免费看| 亚91亚洲网| 91综合在线| 自拍偷拍 日韩无码| 大香蕉天天看妹子| 国产肏逼网站| 人妻丝袜肏逼| 加勒比久久综合网高清| 夜夜夜夜久久久久| 理论久久婷婷网 8| 日本媚薬中文字幕在线| 精品人妻1区| 99re免费视频精品全部| 亚洲精品久久久久久久久豆丁网| 日韩中文字幕二区| 精产品久久| 亚洲1区| 在线电影亚洲色图| 日韩不卡a级视频专区| 久久久久久久六六| 久久草大香蕉| 日韩欧美亚洲自拍偷拍| 精品人妻一区二区乱码一区二区| 逼逼逼逼操操操操操操操操操午夜剧场 | 99999亚洲| 99久久精品无码一区二区毛片免费 | sss视频华人在线| 一二三四视频中文字幕在线看| 青青草玖玖爱| 亚 欧 美 综合| 国产精品久久久无码aV去| 亚洲欧洲无码97久久精品| 日韩欧美午夜视频在线| 欧洲精品二区| 日韩精品操少妇| 色久桃花影院在线观看| 综合情欲网| 啪啪视频亚洲第一| 久久99干一本高清| 四虎AV无码| 午夜福利免费福利视频| 国产自偷| 射丝袜大香蕉| 久久色人体 | se吧提供91精品国产91久久久久久 | 日韩日本欧美在线观看| 天天日熟妇| 好吊色在线观看| 美女视频尤物网在线看| 成人性交午夜免费片| 久久久久国产亚洲一区欧美色图日韩| 久久riav中文精品| 日日操免费视频| 啊啊在线| 伊人久久亚洲中文字幕不卡| 伊人网av| 91人人臊| 亚洲国产亚洲天堂| 日本新免费二区三区| 在线看免费无码AV天堂的| 中国人高清www色视频免费| 天天天乱色综合全| 色女99一级片在线观看| 国产999精品久久久久久| 啪啪AV导航| 久久久999| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场| 精品国产污一区二区三区| wwwcaobibi| 欧美日韩大香蕉| 日日夜夜骑| 精品999999| 日韩一区二区熟女| 人妻久久久| αⅴ天堂| 影音先锋少妇| 欧美亚洲小说| 大香蕉中文在线| 91处女在线视频| 91国产美女丝袜足交精品视频| 强奸少妇AV导航网| 久久色一区二区| 91成人在线| 天天弄欧美| 超碰亚洲97| www久久久| 男人的天堂不卡一区二区| 国产日韩在线播放av| 啊啊啊啊免费视频| 超碰97首页| 999 久久久| 久久久久久91香蕉国产| 人妻精品一区二区全免费| 久久久久久久久久久久久9999| 一区二区三区精品视频| 国产超碰| 久久九九99| 国产精品嫩草久久久久| 可以在线观看的黄色网址| 欧美呦呦性爱| 尤物黄色在线观看网站| 乱伦av国产| 国产精品久久久久亚洲av| 国产午夜福利专区综合| 黄色AAAAA欧美| 91精品成人www| 99久久久99久久91熟女| 91丝袜激情在线| 大干人妻| 一级性爱网| 无遮挡一级毛片视频免费的| 欧美特大黄一级片片免费| 开心五月激情网| 67194无码不卡| 嫩草 我啊~嗯~在线| 超碰97日韩| 亚洲国产成人精品999| 三级特黄60分钟播放| 岛国精品视频在线观看| 影音综合网| 亚州欧美综合| 国产精品分类在线观看| 日本一级黄色电影| 妇人噜噜| 久久永久无码人妻视频| 国产精品视频一区二区三区八戒| 日韩啪啪啪啪啪| 欧美 牲| 久久机热| 无码一区免费在线不卡| 婷婷五月天成人| 韩国女主播青草在线| 欧美啪啪啪91| 久久肏大逼| 中文字幕在在线观看网站| 免费超碰97久久| 超碰97人妻在线| 怡红院亚洲怡春院av| 欧综合网| 自拍偷拍2025在线观看| 丝袜无码a片| 福利视频网站| 日本久久精品| 国产美女高潮视频| 国产中文字幕曰本毛片| 精国久久一区二区三区98| 天天干人人乐| 天天欧美色| 岛国精品视频在线观看| 久9久9精品| 少妇一区二区三区| 日本99热| 91操熟女视频| 牛牛aV| 欧美熟女激情| 精品91| 99热这里| 欧美日韩另类激情图片| 久久久久婷婷| 欧美97av| 欧美九9 9 9| 精品二区久久| 国产精品秘 福利姬在线观看| 国产成人主播| 国产av波波国产精品| 欧美熟妇操操视频| 欧亚乱色熟女一区二区| 另类专区加勒比| 久久成人国产| 91女优在线观看| 久久久精品无码亚免费| 果冻传媒一区二区三区| 爱做久久久久久| 国产精品夜夜夜| 在线观看av区| 精品午夜福利| 嗯……啊…嗯嗯…啊…好舒服| 精品国产Av无码久久久伦古装| 一区二区激情国产熟女| 私人尤物在线精品不卡| 啊啊啊啊啊好大好舒服想要| 日韩av色图综合| 日本孕妇一区二区视频操逼免费看 | 91色久| 亚洲色图欧美色图在线播放| 吻戏激情性巴克| 精品久久久av无码免费| 亚洲黄a三级三级三级看三级| 浪人综合网| 韩日精品四区| 2020中文在线一区二区三区| chaopen97久久| 操美女高潮抽搐白浆| 国产在线激情| 蜜桃久久久久久久| 国产亚洲精品美女久久久久久2021| 欧美激情欧美精品| 九月丁香综合网| 99re久久| 亚洲天堂人人妻| 2020中文在线一区二区三区| 欧美专区17页| 99青草| 岛国视频一二三区| 97精品视频免费| 精品一区二区成人| 麻豆人妻精品一区二区| 四虎精品永久在线播放| 99精品丰满人妻| 天天爽人人综合免费7799| 99久久99九九99九九九| 99热导航| 久久婷婷五月天| jizz啪啪| 久久这里只精品| 国产亚卅97| 欧美一级做a爰片免费视频| 一级乱伦网站| 亚洲素人综合| 亚州熟妇精品| 蜜桃视频一区二区三区在线观看| 色色婷婷五月天| 欧美中文字幕日韩在线| 99久热精品99re6热| 日韩av一级黄片| 亚洲熟伦熟妇AV无码春色| 小骚逼被操的爽不爽| 日韩一区二区精品视频| 免费看日产一区二区三区| 日韩簧片免费看| 另类欧美色| 91麻豆天美国产欧美高潮| 日本啊啊啊啊啊视频| 91大胆欧美| 六十路日本| 欧美操逼熟女| 偷拍五区| 国语精品内射在线观看| 男人女人18禁片免费看网站| 男人天堂毛片| 精品欧美不卡在线播放| 久久熟女久| 欧美综合第一| 天天日日夜夜| 五月丁香色综合| 婷婷精品视频| 91干熟女| 日本污ww视频网站| 久久这里是精品| 亚洲天堂久久久久久粉红视频| 巨乳特殊服务按摩| 亚洲天在线| 欧美成人贴图| 男人综合网| 天天欲望网| 91精品丝袜久久久久久| 亚洲熟女av中文字幕| 97中文综合| 日韩内| 99re视频在线播放青草| 999精品女人| 日本色日夜干| 超碰97人人cao| 亚欧毛片基地国产毛片基地| 久久久久久亚洲中文| 夜夜高潮夜夜爽高清视频一| 色妺妺在线视频| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产不良强奸视频免费看| 欧美激情激情xxxx欧美专区| 狠狠婷婷亚洲中文综合久久| 国产一区免费午夜视频| 色牛牛AV| 久久久久久午夜男人的天堂| 亚洲97P| www.AV有限公司一区| 91超碰碰在线| 97在线/亚洲| 超碰在线人人射| 天天懆天天日| 欧美日韩操逼嗦吊| 亚洲美乱| 秋霞福利网| 中文子幕一二三| 亚洲性高潮| 啪啪综合网| 国产欧美成人第一页在线观看| 国产小黄片在线免费观看 | 国产AV天美传媒一区二区三区 | 欧美色图97| 青青草公开在线免费不卡视频| 超碰97亚洲| 亚洲天堂中文字| 日韩成人大片在线观看| 亚洲 se图 欧美电影| 超碰午夜| 日婷婷| 激情综合网五月婷婷五月天| 九九热精品免费视频| 九九九九九九九九九五码| 91天堂丝袜美腿| 香蕉国产精品麻豆亚洲欧美日韩| 成年女人18级毛片毛片免费观看| AV一二区| 亚洲无码一区成人免费午夜| 岛国福利在线精品播放| www.婷婷五月天| 男女激情中文字幕| 亚洲不卡三级手机播放| JULIA一区二区三区在线播放| 800zy一区二区| 亚洲在线观看| 久久成人国产| 超碰99热中文字幕| 91美女视频在线观看| 精品v日韩欧美国产| 爱爱动态120秒| 曰本道人妻久久久在线不卡色视频 | 欧美亚洲另类在线蜜桃| 久久精品视频28| 久久东京热久久| 日韩乱中文| 国产AV人人 夜夜人人澡| 亚洲久久久| 色婷婷五月综合| 日日干夜夜欢| 亚洲综合另类小说色区亚洲成av人片在www | www.成人无码| 特级毛片特黄久久免费看| 中文字幕视频一区视频二区| 亚洲中文字幕熟女少妇一区二区| 国产1769在线| 天天操天天7| 无码精品久久久天天影视| 欧美日本久久精品一区 | 日本午夜福利影院| 亚洲激情欧美色图| 成人国产精品三级A片| 中文字幕乱偷人妻久久艾草网| 国产精品一区二区久久精品| 亚洲最大的黄色电影网站。| A级片日韩欧美国产欧美视频精选观看| 亚洲激情综合| 大香蕉中文在线| 天天爱天天韩国日本牛牛牛牛 | 婷婷丁香五月综合| 人妻天堂网| 色婷婷狠狠| 超碰97亚洲| 宅男91视频在线播放| 亚洲日韩国产精品| 欧美色图私拍91| 国产一区二区免费福利片| yazhousetuoumei| 国产隔壁老王影院在线| 色香欲天天天天综合色| 爱我干综合| 91精片| 天天综合欧美综合| 国产精品无码久久久久2028| 99999这里都精品| 久久露脸国产老熟女| 91亚洲人| 超碰综合色| 美女操逼福利视频| 精品一区二区三区18| 色爽爽文学| 日韩亚洲中文有码视频| 欧美色图校园春色| 手机不卡视频不卡在线一二三区| 亚洲va有码在线天堂| 天天夜夜rb| 久久111| 欧美性爱另类综合| 91精片| 97在线观看免费视频l| 无码国产精品久久久久| 亚洲国产综合图区中文字幕 | 久操网址| 国产深夜福利| 亚洲熟女偷拍在线观看| 67914亚洲精品| 波多野结衣一级视频| 玖玖爱视频网站| 2019天天操天天爽天天拍| 国产日韩欧美三级片| 98人妻精品一区二区色欲 | 天天日天天爽| 51一区二区三区| 天美传媒精品一区二区| 欧美日韩中国x| 伊人色综合超碰| 色婷婷亚洲婷婷| 亚洲av综合色| 蜜乳成人AV| 欧美日韩亚洲少妇寂寞影院正在播放| JIZZJIZZ亚洲女人被躁| 午夜激情床戏激情| 亚洲免费在线探花| 欧美色性情| 五月开心久久AV官网| 美日韩成人| 近亲乱伦一区二区| 超碰97久久国| 欧美精品1区2区3区| av午夜玫瑰| 亚洲91在线播放影院| 欧美精品偷拍| AV和黑人在线播放| 一级免费精品| 神马久久69| 亚洲av成人精品一区| 99热这里只有精品9| 综合亚洲欧美| av一区二区三区四区五区久草臀| 国产一级αv免费看片| 亚洲欧美黄| 在线黄色污污网站| 久久久国产成人一区二区三区在线| 青青草综合在线| 精品网站99999| 免费成人在线熟妇网| 无码少妇精品一区二区60岁老人| 日韩免费三级黄片电影| 欧美色97| 尹人免费观看视频在线| 白丝1区2区3区| 精品一区二区人妖| av在线一区二区三区| 国产精品久久久无码aV去| 亚洲少妇自拍中文字幕懂色| 福利风月五月天影院| 夜夜影视四色| 新久久AV| 欧美亚洲AN| 日韩97超碰中文字幕| 18禁免费视频| 黄片视频观看| 久这精品中文在线观看视频| 91亚洲情色| 亚洲高清欧美总合| 日曰骚久久精品| 任我爽在线视频免费观看| 色鬼在线综合| 中国熟女91| 丝袜高跟澳门91视频| 亚洲影视第一页| 蜜臀99久久精品| 伊人性在线视频| 欧美欧美少妇| 日本1区2区不卡视频| 欧美性爱第一区| 激情抓乳插进去啪啪啪日韩| 精品人妻av在线播放| 涩爱AV在线| 日韩色女精品| 黄色工厂这里只有精品| 91美女片在线| 91在线免费精品视频| 日韩亚洲中文字幕在线| 激情专区综合| 手机在线播放国产福利| 91殴美| 蜜臀久久99精品久久久久久| 青青草这里只有精品| 国产女人视频三四五区| 日韩综合无码色欲vv| 东北老熟女| 伊人性在线视频| .精品人妻一区二区三| 日本三级中国三级99人妇网站| 久久av网| 蜜臀久久99精品久久久久久无删减| 久久亚州精品成人Av无| 精品超碰中文在线| 国产精品网址| 九九色婷婷| av线电影| 爱av免费| 大香蕉综合网| 久久这里只精品99re66图| 超碰人妻中文在线| 久久亚州精品成人Av无| 国产女上位好爽在线| 亚洲三级。日韩三级| 欧亚在线视频| 我要色综合网站| 欧美人妻一区| 日韩精品操少妇| 国产精品99精品视频网站| 色盈盈影院| 在线播放成人高清免费视频 | 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 黄片www.| 999九九九九国产动| 国产成人自拍视频视频| 亚洲熟久久| 精品久久99| 人人做,人人操,人人摸| 操逼999| 破苞ⅩXXX性无码动漫无码| 四虎影视永久在线观看精品免费网站| 少妇xx精品| 日韩有码专区| 久久久久久亚洲精品中文字幕人妻| 国产精品视屏| 成人久久久精品| 首页亚洲国产高跟丝袜诱惑视频 | 翔田千里爆乳巨臀无码| 亚洲情色一区二区三区| 长长久久免费视频| 日本视频一区二区三区| 亲子敌伦对白在线播放| 天天操天天看| 亚洲黑丝在线| 久热久| 最新中文字幕在线亚洲| 日本成人在线不卡一区二区三区| 久干网| 动漫片子网站3黄| 欧美五十路熟| 4虎在线观看| 2020中文字幕在线| 久久综合女优| 久草资源欧美在线视频| 97久久精品亚洲| 熟女字幕| 男男H黄动漫啪啪无遮挡网站| 亚洲综合欧美| 亚洲图片欧美| 东京热男人的天堂| 亚洲亚洲亚洲天堂天堂| 久久超碰亚洲人| 天天综合91在线| 久久久艹艹艹| 成年女人一区| 女人的久久久| 天天综合在线4| 亚洲国产第一页综合视频| 亚洲综合一区二区| 午夜丁香| 伊人青青一区成人视频在线观看区| 91干熟女| 激情久久久| 黄片在线免费在线观看| 最新日韩黄片| 人妻AV 中文字幕的| 日本三级黄页| 欧美在线视频播放| 亚洲中文电影| 伊人嫩草| 国产精品精品系列在线观看| 免费A片三p视频| 91在线免费精品视频| 大香蕉免费3| av一区二区三区四区五区久草臀| 日日干日日操五月天伦理视频| 欧美中字不卡| 99久久亚洲精品无码毛片潘甜甜| 久久国产乱子伦精品免费女人| 强奸乱伦中文字幕AV| 亚州一区二区成人片免费| 亚洲中文字幕网| 色九九九综合| 精品人妻免费观看| 五月丁香啪啪网| 西西美女视频网| 搡老女人老91二区| 精品国产一级久久| 国产成自自拍在线观看| 精品少妇高潮久久| 天天操天天干一区二区| 97玖玖超碰| 日产精品久久久一区二区| 被男人添B超爽视频| 蜜臀国产AV中文字幕| 成人一级二级| 欧美激情视频在线一区| 色综合天天| 久久精品操| 色五月综合网| 欧美91变态| 殴美,日韩国产伦精品| 麻豆精品.欧美精品.日韩精品.| 看黄片视频免费| 人妻免费观看| 日本一本道A级黄色毛片试看60分钟| 强歼乱伦资源网| 婷婷色婷婷| 欧美同性恋 的搜索结果 - 91n| 久热影视| 欧美色一二三| 强奸乱伦大香蕉| 学生妹天天看| 操碰91| 伊人影院日本| 大香蕉免| 亚洲自拍天堂| 中文字幕一区二区三区蜜臀| 97久久超碰国产精品| 婷婷久热| 欧美成人A√在线一区二区| 欧美性爱一区| 色色五月婷婷| 久久黄色性爱视频| 日本精品加勒比海一区| 亚洲aw毛茸茸在线| 人人摸人人叼| 试看60秒 爽| 国产成人天堂| www色色com| 日韩日本欧美在线观看| 亚洲欧美校园| 绑缚麻绳人妻寝取完整版| 三级片网站在线播放| 欧美探花网| 精品免费囯产一区二区三区| 日韩欧美被操黄免费观看| 再深点灬舒服灬太大了好硬好爽| 香蕉视频精品亚洲一区二区三区在线播| 色爽爽文学| 免费簧片在线观看| 一区二区三区免费视频入口| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 男女啊啊啊啊啊| 草b在线| 成人无遮挡毛片免费看| 我爱操| 久久大精品乱码视频人妻熟女| 五月天婷婷色| 日本一级一级一级一级| a v网站在线播放| 熟女乱伦A| 全免费a敌肛交毛片免费| 韩国一级AAA| 再深点灬舒服灬太大了添视频| 亚洲天堂五月天国产| 国产97在线 | 亚洲| 黑白配性爱AV成| 亚洲色情在线影视| 色九九综合AV| 中日韩久久久免费看| 中文字幕精品亚洲熟女| 青青草五月份天| 欧美人妻一区| 天天欧美色| 嗯嗯,啊啊,国产精品| 久久人人爽爽爽人久久久| 人人摸人人干| 蜜桃天美传媒AV一区二区三区| 欧美色另类| 激情小说图片亚洲首页| 日韩亚洲精品一区二区| 99热欧美| 久久色人体| 熟女在线视频| 久久免费精品96| 青青五月天| 亚洲 欧美 精品专区 极品| 蜜臀AV秘一区翔田千里| 乱伦3P视频| 在线啊啊啊啊| 人人搡人人肉久久精品| 殴美色网| 东京热男人的天堂精品| 男人的天堂亚洲| 青青草啪啪网| 夜夜爽夜夜爽| 成人丁香五月| 热久久无毒不卡| 九九视频黄色片| 韩国久久97| 国产精品69久久久久孕妇欧美| 日本成人免费一区二区三区| 亚洲高清在线| 五月天精品| 自拍偷拍 日韩无码| 蜜桃精久三区| 欧美精品另类人妖xxxx| 精品少妇一区二区| 国产欧美日韩精品中文| 夜夜嗷嗷一区二区| 国产又黄又爽| 精品久久99| A级在线视频| 色哟哟-国产专区| 一区二区三区美女超清| 日本九九久久99播| 麻豆三极片| 欧美爆操91| 91福利网在线观看| 金典av| 无色无码| 久久久久幕乱码| 丁香九月激情啪| 国产400孕妇孕交群| 开心五月婷婷激情| 久久专区| 中文字幕女同在线| 日本日逼视频网| 欧美综合第一页| 蜜桃在线观看一区二区三区 | 精产品久久| 玖玖人人爱| 亚洲天堂一区二区久久| 91亚.色| 天天综合网~69| 黑人娇小av在线播放| 国产福利电影| 亚洲AV无码天美传媒一区| 97视频在线免费观看| 深喉吞精| henhen91| 超碰碰97| 色娱乐色呦呦夜夜夜夜av| 天堂69亚洲精品中文字| 久久这里精品国产99丫e6| aaa亚无码专区| 91n美女视频| 亲子敌伦对白在线播放| 亚洲一区二区三区麻豆传媒| 亚洲av综合伊人久久| 人妻日日夜夜精品| 日韩黄片影院| 日本熟妇精品九九| 秋霞一级视频在线观看免费| 国产午夜福利合集| 日韩三级一区| 自拍偷拍草一草| 午夜毛片高清免费不卡| 国产亚洲女v在线观看| 欧美性视频二区三区| 亚洲欧美经典一区二区| 久久动漫精品视频这里只有精品| 福利视频一区二区微拍| 亚洲男人天堂网站| 91在线限制级| 天天综合网91| 久久久久久久久久久999| 福利在线观看一区二区| 99999亚洲另类| 九色97| 人人做天天爱| 在线 欧美 亚洲| 亚洲丝袜色| V A在线| 久久久九精品| 视频二区美腿丝袜制服人妻欧美| 欧美91精品国产自产| 中文字幕视频2区| 丁香六月东京热| 91视频综合| AV色五月天| 五月天婷婷久久| 国产最新小视频在线播放下载| 久久一二三四五六七八九区| 台湾佬中文娱乐自偷自拍| 一本精品日本在线视频精品| 理论久久婷婷网8| 美女的肌被草喷水视频| 丁香六月综合激情| 操国产逼| 中国少妇啪啪视频| 久久久久久91香蕉国产| 精品国产肉丝袜在线拍国语| 2024黄色视频| aV中文麻| 欧美高潮| 亚洲激情 欧美色图| 日本日皮视频逼| 国产精品嫩草影院午夜两性| 好涩综合| 伊人网一本| 天天肏美女| 少妇滛荡视频| 国产精品欧美日韩久久| 黄片免费日韩| 一二三四区电影| 校园春色中文字幕AV| 欧美日韩淫加| 天天色悠悠激情| 综合欧美日韩在线观看| 国产对白刺激视频| 视频一区二区免费在线| 美女黄站| 精品美女人人干| 亚洲精品国产av天美传媒| 嗯嗯嗯啊啊啊在线免费观看| 婷婷九月色| 69一区二区三区| 黄色工厂这里只有精品| 老熟女天天操| 亚洲天堂少妇| 欧美综合网站999| 金典av| 久久这里| 在线亚洲精品久久久| 久草视频制服诱惑| 婷婷五月丁香五月| 色色国产| 亚洲午夜免费狠狠干| 777奇米影视777四色| 国产日韩欧美中文在线播放| 国产隔壁老王影院在线| 伊人黄色片| 久久黄色视频一区二区三区| 人人操人人摸人人骑| 夫妻天天操岛国视频| 亚洲国产97| 久久久999| 欧美色91| 亚洲精品 欧美97色色| 综合色久欲| 国产尤物在线三区| 欧色网址| 91久久婷婷| 91五十路| 国产成人亚洲精品无| 超碰色综合| 91 丝袜在线播放| 思思久热在线精品66| 乱抡国产91| 欧美性生活免费网| 人妻一区二区三区四区视频| 亚洲啪啪视频免费| 日韩精品国产一区二区| 日韩欧美一级特黄大片| 国产尹人在线视频免费| 国产 v乱码一区二| 红杏大香蕉| 96AV久久久| 97网址97| 天天综合欧美黑人| 97这里有精品| www.av家庭乱伦| 黄色片一区二区三区四区五区| 天天搞在线综合网| 亚洲精品一区二区三区在线播放| 久久ww| 九九久久一区二区三区| 欧亚日韩三区| 欧美日韩中国x| 人人操人人摸超碰| 日韩操逼性鲍| 爱射综合| 日han少妇无码| 夜夜 中文视频rt| 欧美色九九| 正在播放国产精品一区| 综合久久中文字幕综合日韩精品| 在线看免费无码AV天堂的| 97综合在线观看| AV色五月| 国产精品懂色tv影视免费观看| 亚洲国产av中文字幕久久| 人摸人人操人| 熟妇人妻一区二区三区| 天天日骚逼熟女| 性饥渴少妇av无码毛片| 久操com| 五月丁香综合网| baiduhicn.com。| 人人妻人人爽| 脫衣舞一区二区三区| 97操操| 欧美玖玖爱免费玖玖| 4虎在线观看| 国产亚洲女v在线观看| 人人妻人人操人人乐| 久久久国产精品亚洲精品| 91丨人妻丨国产丨丝袜| 天天色播亚洲综合网站| 97天天做| 超碰97久| 八人操人人摸人人看| 国产视频一区二区三区久久亚洲天堂| 九九人妻| 台湾成人无码AV| 99欧美| 久操视频在线| 嫩草美女久久| 亚洲老熟妇xxx| 亚洲色欧| 欧美精品99久久久**| 久久久久日本视| 日曰骚久久精品| 激情综合网五月婷婷五月天| 丝袜天堂| 1区2区3区视频| 日本午夜久久电影| 伊人色综合欧美| 免费一级黄色录像影片| 日欧操屄视频| 99久在线精品99re8| 淫荡熟女乱伦网| 久久久久78| 亚洲av国产av综合av卡| 亚洲男人bt天堂| 天堂男人网| 五月婷婷丁香六月| 欧洲亚洲人妻无码高清久久三区四区| 欧洲一级性爱视频在线观看| 欧美日韩人人精品| 午夜欧美精品久久久| 亚洲欧洲另类| 玖玖久久久| 天无日色综合| 日韩熟女精一区二区三区不卡| 在线观看国产黄色| 精品久久久久成人码免| 新版天堂中文资源8在线| 欧美日韩中国x| 中文字幕精品一区欧美| 一个人在线看的黄色电影网站| 国产亚洲色婷婷久久99精品91 - 百度 | 暴力av在线| 91 亚洲 欧美 日韩 国产 综合| 少妇内射视频| 91呆哥人妻| 97亚洲在线| 蜜桃视频精品一区二区| 久久久久国产精品久久久| 亚洲天堂性爱| 国产精品一区av在线| 蜜屁Av| 国产51色综合久久免费| 91天美传媒在线观看| 中文字幕乱在线伦视频中文字幕乱码在线| 91欧美性| 六十路日本| 久久中文字幕在线观看| 丁香六月婷| 欧亚无码视频| 一区二区三区色综合| 超碰成人国产| 91激情| 亚洲国产综合久久久性感熟妇| 成人免费毛片| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久久日韩毛| 欧美亚洲素人制服精品| 九九九九免费视频| 婷婷丁香五月综合| 99re在线| 亚洲老司机123专区| 日本亚洲熟女视频| 超碰免费人妻在线| 男人天堂综合| 欧美丰满熟妇XXXX性ppX人交| 97在线免费公开视频| www.四虎在线| 国产精品免费美女视频| 女优大全 - 91n| 樱花草社区www中国| 日韩免费在线观看不卡| 嗯嗯嗯啊啊啊干死我吧| 欧美操逼一二三区| 久久久久免费看少妇A片特黄| 日韩青久久| 四季AV综合网址| av资源在线观看少妇| 性爱视频免费网址| 亚洲综合 欧美| 偷拍欧美激情| 97人人模人人爽人人| 一级片视频啪啪| 校园春色第一页| 小骚逼被操的爽不爽| 久久亚洲婷婷| 摸奶性爱视频网站在线免费播放| 啊啊啊啊啊啊啊在线| 国产亚洲一黄| 国产Aα| 天天欧美| 亚洲少妇色图自慰直播| 亚洲天堂热| 日本性爱网址| 亚洲无线码欧洲精品区别| 亚洲视频精选| 四季av一区二区凹凸精品小说| 婷婷亚洲综合| 在线岛| 亚洲中文字幕熟女| 日韩欧美麻豆| 久久婷婷欧美| 69人妻精品丰满熟女区| 国产精品无码av| 麻豆综合一区av| 亚洲 暴爽 AV人人爽日日碰| 亚洲激情深爱文学小说网站| 天天影视射综合网| 久久久不能久久久久| 亚卅熟女乱色| 一级啊性爱在线视频| 亚洲精品毛片在线观看| 精品免费视频国产一区| 好爽视频在线观看视频| 蜜臀久久99精品久久久久电影| 色九九九综合| 亚洲网自拍| 欧美熟女激情| 久久e6只有精品| 混色激情av| 九九热精品在线| 91狠狠综合久久久| 日本欧美国内在线| 国产成人久久久精品免费AV| 亚洲成人性爱在线观看| h无码动漫在线观看| 日本天天操| www.91人妻.com| 91精品微拍福利| 日韩无码视频黄色| 女人与公拘交酡2020视频| CCYY草草影院地址入口| 午夜国产综合视频在线观看| 不卡在线观看视频| 欧美色图91| 久久只有精品| 久久这里只精品免费福利| 免费av在线播放二区| 福利社区午夜一区二区| 国产午夜福利电影免费在线观看| 丁香九月婷婷| 我要去看2个日本美女.com曹逼| 日韩特级毛片免费观看全集| 1769国内精品视频| 精品少妇人妻av久久免费| 日本一级二级三级网站| 日美免费黄片|