日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

從零構(gòu)建LLM評估框架:實(shí)戰(zhàn)Harness實(shí)現(xiàn)與多模型對比測試

從零構(gòu)建LLM評估框架:實(shí)戰(zhàn)Harness實(shí)現(xiàn)與多模型對比測試 1. 項(xiàng)目緣起從“黑盒”到“白盒”的探索最近在折騰大模型應(yīng)用開發(fā)時(shí)我遇到了一個(gè)挺典型的問題手頭有好幾個(gè)不同的LLM大語言模型服務(wù)比如OpenAI的GPT、Claude還有幾個(gè)開源的模型。每次想測試一個(gè)新提示詞Prompt在不同模型上的效果或者對比不同模型對同一任務(wù)的響應(yīng)質(zhì)量都得手動一個(gè)個(gè)去調(diào)用API然后把返回結(jié)果復(fù)制粘貼到文檔里再人工去比對。這個(gè)過程不僅繁瑣低效而且很難做到標(biāo)準(zhǔn)化評估比如響應(yīng)時(shí)間、輸出格式一致性、成本消耗這些關(guān)鍵指標(biāo)全靠感覺。這讓我想起了軟件測試?yán)锏摹皽y試工具鏈”。我們不會手動去點(diǎn)每一個(gè)按鈕來測試功能而是會用像JUnit、Pytest這樣的框架來編寫自動化測試用例。那么對于LLM應(yīng)用是不是也應(yīng)該有這樣一個(gè)“測試框架”呢這就是我接觸到“Harness”概念的起點(diǎn)。在AI工程領(lǐng)域Harness這個(gè)詞常被用來指代一套用于評估、測試和管理AI模型特別是LLM的框架或工具集。它的核心目標(biāo)是把模型評估這個(gè)事從隨意、手工的狀態(tài)變成系統(tǒng)化、自動化、可重復(fù)的過程。網(wǎng)上確實(shí)有一些現(xiàn)成的工具比如著名的lm-evaluation-harness現(xiàn)在常被稱為EleutherAI LM Harness。它功能強(qiáng)大覆蓋了海量的評測任務(wù)。但我在實(shí)際想用的時(shí)候發(fā)現(xiàn)了一些痛點(diǎn)一是它通常更偏向于學(xué)術(shù)界的基準(zhǔn)測試對于我這種想快速驗(yàn)證業(yè)務(wù)場景提示詞效果的開發(fā)者來說有點(diǎn)“重”二是它的配置和擴(kuò)展對于不熟悉其代碼結(jié)構(gòu)的人來說學(xué)習(xí)成本不低三也是最重要的我想徹底搞明白這背后的機(jī)制而不是當(dāng)一個(gè)“調(diào)包俠”。知其然更要知其所以然自己動手實(shí)現(xiàn)一個(gè)輕量化的、貼合自身需求的Harness就成了一個(gè)很有吸引力的挑戰(zhàn)。所以這個(gè)項(xiàng)目的標(biāo)題“實(shí)戰(zhàn)復(fù)盤我是如何用代碼實(shí)現(xiàn) Harness 的”就是記錄我從零開始用Python設(shè)計(jì)和編碼構(gòu)建一個(gè)屬于我自己的、輕量級LLM評估工具鏈的全過程。它不追求大而全而是聚焦于解決我實(shí)際開發(fā)中的痛點(diǎn)自動化、標(biāo)準(zhǔn)化地對比不同LLM API對同一組提示詞的響應(yīng)。2. 核心設(shè)計(jì)思路一個(gè)輕量評估框架的藍(lán)圖在開始敲代碼之前我得先想清楚這個(gè)自研Harness到底要干什么以及怎么干。大方向是自動化評估但具體落到設(shè)計(jì)上需要拆解出幾個(gè)核心模塊。2.1 需求定義與架構(gòu)選型我的核心需求很明確多模型支持能夠方便地接入不同的LLM服務(wù)提供商如OpenAI、Anthropic、Google等以及本地模型。任務(wù)定義能夠以結(jié)構(gòu)化的方式定義一組“評測任務(wù)”每個(gè)任務(wù)包含輸入提示詞Prompt和預(yù)期的評估標(biāo)準(zhǔn)不一定是標(biāo)準(zhǔn)答案可能是評分規(guī)則。自動化執(zhí)行框架能自動遍歷所有任務(wù)調(diào)用配置的模型執(zhí)行推理并收集結(jié)果。結(jié)果收集與比對將不同模型對同一任務(wù)的結(jié)果并排收集方便人工或自動比對。需要記錄關(guān)鍵指標(biāo)如響應(yīng)內(nèi)容、耗時(shí)、Token使用量、成本如果API計(jì)費(fèi)等??蓴U(kuò)展性易于添加新的模型接口、新的評估指標(biāo)或新的任務(wù)類型?;谶@些需求一個(gè)典型的分層架構(gòu)浮現(xiàn)在腦海中任務(wù)層 (Task Layer)負(fù)責(zé)定義和管理具體的評測任務(wù)。一個(gè)任務(wù)就是一個(gè)(prompt, evaluation_criteria)對。執(zhí)行層 (Execution Layer)核心引擎。負(fù)責(zé)加載任務(wù)調(diào)用配置好的模型執(zhí)行推理并處理可能的錯(cuò)誤如網(wǎng)絡(luò)超時(shí)、API限流。模型適配層 (Model Adapter Layer)這是實(shí)現(xiàn)多模型支持的關(guān)鍵。為每個(gè)支持的LLM服務(wù)編寫一個(gè)統(tǒng)一的“適配器”Adapter將框架內(nèi)部的通用請求格式轉(zhuǎn)換為特定API所需的格式并解析其返回結(jié)果。結(jié)果層 (Result Layer)定義標(biāo)準(zhǔn)化的結(jié)果數(shù)據(jù)結(jié)構(gòu)并負(fù)責(zé)將不同模型對同一任務(wù)的結(jié)果聚合、持久化如保存為JSON或CSV文件并生成易于閱讀的報(bào)告如Markdown表格。為什么不直接用langchain這類框架langchain的核心是構(gòu)建復(fù)雜的工作流鏈Chain其LLM類雖然也統(tǒng)一了接口但它的設(shè)計(jì)重心在于鏈?zhǔn)秸{(diào)用和記憶等高級功能對于純粹的、批量的、帶對比的模型評測場景封裝得不夠直接。自己實(shí)現(xiàn)可以更聚焦控制每一個(gè)細(xì)節(jié)比如精確計(jì)時(shí)、自定義重試邏輯、更靈活的結(jié)果收集。2.2 關(guān)鍵技術(shù)點(diǎn)與工具選型編程語言毫無疑問是Python。它在AI和數(shù)據(jù)科學(xué)領(lǐng)域的生態(tài)是無與倫比的有豐富的HTTP客戶端、數(shù)據(jù)處理和序列化庫。異步 vs 同步考慮到可能會批量測試數(shù)十上百個(gè)提示詞使用異步IO可以大幅提升效率尤其是在網(wǎng)絡(luò)請求成為瓶頸時(shí)。Python的asyncio庫和aiohttp是首選。配置管理模型的API Key、Base URL等敏感信息不能硬編碼。使用pydantic配合.env文件或config.yaml來管理配置既安全又靈活。數(shù)據(jù)序列化任務(wù)定義和結(jié)果存儲使用JSON格式因?yàn)樗强缯Z言、人類可讀的并且Python的json模塊支持得很好。對于最終報(bào)告可以結(jié)合pandas將結(jié)果轉(zhuǎn)為DataFrame再輸出為CSV或Markdown。錯(cuò)誤處理與重試網(wǎng)絡(luò)請求不穩(wěn)定API有速率限制。必須實(shí)現(xiàn)健壯的錯(cuò)誤處理和指數(shù)退避的重試機(jī)制。tenacity庫是一個(gè)很好的選擇。這個(gè)設(shè)計(jì)藍(lán)圖看起來清晰了接下來就是把這些模塊用代碼搭建起來。3. 分步實(shí)現(xiàn)從零搭建代碼Harness我將按照自底向上的順序先實(shí)現(xiàn)最基礎(chǔ)的模型適配器再構(gòu)建執(zhí)行引擎最后定義任務(wù)和結(jié)果處理。3.1 第一步構(gòu)建統(tǒng)一的模型適配器接口適配器的目標(biāo)是對外提供統(tǒng)一的generate(prompt: str) - str方法對內(nèi)處理各自API的差異。首先定義一個(gè)抽象基類規(guī)定所有適配器必須實(shí)現(xiàn)的方法。# model_adapters/base.py import abc from typing import Optional, Dict, Any from pydantic import BaseModel class ModelResponse(BaseModel): 標(biāo)準(zhǔn)化的模型響應(yīng)結(jié)構(gòu) content: str # 模型返回的文本內(nèi)容 model_name: str # 模型標(biāo)識如 gpt-4 prompt_tokens: Optional[int] None completion_tokens: Optional[int] None total_tokens: Optional[int] None latency: Optional[float] None # 請求耗時(shí)單位秒 cost: Optional[float] None # 估算成本單位美元或其他貨幣 class BaseModelAdapter(abc.ABC): 模型適配器抽象基類 def __init__(self, model_name: str, **kwargs): self.model_name model_name # 可以在這里初始化客戶端如OpenAI客戶端 self.client self._initialize_client(**kwargs) abc.abstractmethod def _initialize_client(self, **kwargs): 初始化特定模型的客戶端 pass abc.abstractmethod async def generate_async(self, prompt: str, **generation_params) - ModelResponse: 異步生成文本的核心方法。 :param prompt: 輸入的提示詞 :param generation_params: 模型特定的生成參數(shù)溫度、top_p等 :return: 標(biāo)準(zhǔn)化的ModelResponse對象 pass # 也可以提供一個(gè)同步版本作為備選 def generate_sync(self, prompt: str, **kwargs) - ModelResponse: import asyncio return asyncio.run(self.generate_async(prompt, **kwargs))接下來實(shí)現(xiàn)一個(gè)具體的適配器比如OpenAI的。# model_adapters/openai_adapter.py import time from typing import Optional import openai from .base import BaseModelAdapter, ModelResponse class OpenAIModelAdapter(BaseModelAdapter): def _initialize_client(self, api_key: str, base_url: Optional[str] None, **kwargs): # 使用OpenAI官方庫或直接HTTP請求 client openai.AsyncOpenAI(api_keyapi_key, base_urlbase_url) return client async def generate_async(self, prompt: str, **generation_params) - ModelResponse: start_time time.time() try: # 設(shè)置默認(rèn)參數(shù)并允許通過kwargs覆蓋 params { model: self.model_name, messages: [{role: user, content: prompt}], temperature: 0.7, max_tokens: 1024, **generation_params # 用戶自定義參數(shù)優(yōu)先級最高 } response await self.client.chat.completions.create(**params) end_time time.time() latency end_time - start_time # 提取響應(yīng)內(nèi)容 content response.choices[0].message.content # 提取Usage信息 usage response.usage prompt_tokens usage.prompt_tokens if usage else None completion_tokens usage.completion_tokens if usage else None total_tokens usage.total_tokens if usage else None # 簡單成本估算示例實(shí)際需根據(jù)官方定價(jià)計(jì)算 cost None if total_tokens: # 這里需要根據(jù)具體模型定價(jià)設(shè)置例如 gpt-4o 的輸入輸出價(jià)格 # 僅為示例非真實(shí)計(jì)算 cost total_tokens * 0.00001 return ModelResponse( contentcontent, model_nameself.model_name, prompt_tokensprompt_tokens, completion_tokenscompletion_tokens, total_tokenstotal_tokens, latencylatency, costcost ) except Exception as e: end_time time.time() # 返回一個(gè)包含錯(cuò)誤信息的響應(yīng)而不是直接拋出異常便于框架統(tǒng)一處理 return ModelResponse( contentf[ERROR] {str(e)}, model_nameself.model_name, latencyend_time - start_time )注意成本估算是非常粗略的實(shí)際應(yīng)用中需要根據(jù)每個(gè)模型的官方定價(jià)表如每1000個(gè)輸入/輸出Token的價(jià)格來實(shí)現(xiàn)精確計(jì)算邏輯并考慮是否區(qū)分輸入和輸出Token。這里僅作演示。同理可以創(chuàng)建AnthropicModelAdapter、GoogleGeminiAdapter等。對于通過ollama運(yùn)行的本地模型可以創(chuàng)建一個(gè)OllamaModelAdapter其_initialize_client可能只是一個(gè)配置了基礎(chǔ)URL的httpx.AsyncClient而generate_async方法則向http://localhost:11434/api/generate發(fā)送特定的POST請求。3.2 第二步定義任務(wù)與構(gòu)建執(zhí)行引擎任務(wù)定義很簡單就是一個(gè)包含提示詞和元數(shù)據(jù)的對象。# tasks/task.py from pydantic import BaseModel from typing import Optional, Dict, Any class EvaluationTask(BaseModel): id: str # 任務(wù)唯一標(biāo)識 prompt: str # 提示詞 metadata: Optional[Dict[str, Any]] None # 可附加額外信息如類別、預(yù)期答案片段等執(zhí)行引擎HarnessRunner是大腦。它負(fù)責(zé)加載所有任務(wù)初始化所有配置的模型適配器然后并發(fā)地執(zhí)行每個(gè)任務(wù)在所有模型上的推理。# harness/runner.py import asyncio from typing import List, Dict from tasks.task import EvaluationTask from model_adapters.base import BaseModelAdapter from result_collector import ResultCollector # 稍后實(shí)現(xiàn) class HarnessRunner: def __init__(self, model_adapters: Dict[str, BaseModelAdapter]): :param model_adapters: 字典key為模型顯示名value為初始化好的適配器實(shí)例 self.model_adapters model_adapters self.collector ResultCollector() async def run_task(self, task: EvaluationTask, model_name: str, adapter: BaseModelAdapter): 單個(gè)任務(wù)在單個(gè)模型上執(zhí)行 print(fRunning task {task.id} on model {model_name}...) response await adapter.generate_async(task.prompt) # 將結(jié)果存入收集器 self.collector.add_result(task_idtask.id, model_namemodel_name, responseresponse, task_metadatatask.metadata) async def run_all_tasks(self, tasks: List[EvaluationTask]): 并發(fā)執(zhí)行所有任務(wù)在所有模型上 semaphore asyncio.Semaphore(10) # 控制最大并發(fā)數(shù)避免被API限流 async def run_with_semaphore(task, model_name, adapter): async with semaphore: await self.run_task(task, model_name, adapter) # 創(chuàng)建所有協(xié)程任務(wù) coroutines [] for task in tasks: for model_name, adapter in self.model_adapters.items(): coroutines.append(run_with_semaphore(task, model_name, adapter)) # 并發(fā)執(zhí)行 await asyncio.gather(*coroutines, return_exceptionsTrue) # return_exceptions防止單個(gè)失敗導(dǎo)致整體崩潰 print(All tasks completed.) return self.collector這里的關(guān)鍵是使用了asyncio.Semaphore來控制最大并發(fā)量。無節(jié)制地并發(fā)調(diào)用API很容易觸發(fā)速率限制Rate Limit導(dǎo)致大量請求失敗。設(shè)置一個(gè)合理的信號量值比如5或10是保證穩(wěn)定運(yùn)行的重要技巧。3.3 第三步實(shí)現(xiàn)結(jié)果收集與報(bào)告生成結(jié)果收集器需要結(jié)構(gòu)化地存儲數(shù)據(jù)并支持導(dǎo)出。# result_collector.py from typing import List, Dict, Any from model_adapters.base import ModelResponse import pandas as pd import json class ResultCollector: def __init__(self): self.results: List[Dict[str, Any]] [] # 存儲所有結(jié)果的列表 def add_result(self, task_id: str, model_name: str, response: ModelResponse, task_metadata: Dict None): record { task_id: task_id, model: model_name, prompt: task_metadata.get(prompt_snippet, ) if task_metadata else , # 可存提示詞片段 response: response.content, latency: response.latency, total_tokens: response.total_tokens, cost: response.cost, error: [ERROR] in response.content # 簡單錯(cuò)誤標(biāo)識 } self.results.append(record) def to_dataframe(self) - pd.DataFrame: 將結(jié)果轉(zhuǎn)換為Pandas DataFrame便于分析 return pd.DataFrame(self.results) def save_to_json(self, filepath: str): with open(filepath, w, encodingutf-8) as f: json.dump(self.results, f, ensure_asciiFalse, indent2) def generate_report(self, output_path: str report.md): 生成一個(gè)簡單的Markdown格式報(bào)告 df self.to_dataframe() if df.empty: report # Evaluation Report\n\nNo results collected. else: # 按任務(wù)ID分組橫向?qū)Ρ炔煌P偷捻憫?yīng) report_lines [# LLM Evaluation Harness Report\n] for task_id in df[task_id].unique(): report_lines.append(f\n## Task: {task_id}\n) task_df df[df[task_id] task_id] # 選擇需要展示的列 display_df task_df[[model, response, latency, total_tokens, cost]] report_lines.append(display_df.to_markdown(indexFalse)) report_lines.append(\n---) report \n.join(report_lines) with open(output_path, w, encodingutf-8) as f: f.write(report) print(fReport generated: {output_path})3.4 第四步組裝與運(yùn)行——一個(gè)完整的示例現(xiàn)在我們把所有部分組裝起來寫一個(gè)主程序。# main.py import asyncio import yaml from tasks.task import EvaluationTask from model_adapters.openai_adapter import OpenAIModelAdapter from model_adapters.anthropic_adapter import AnthropicModelAdapter # 假設(shè)已實(shí)現(xiàn) from harness.runner import HarnessRunner def load_config(config_path: str): with open(config_path, r) as f: return yaml.safe_load(f) def create_tasks(): 創(chuàng)建評測任務(wù)列表 tasks [ EvaluationTask( idtask_1_summarize, prompt請用一句話總結(jié)《三體》的核心矛盾。, metadata{category: summarization, language: zh} ), EvaluationTask( idtask_2_code, prompt用Python寫一個(gè)函數(shù)判斷一個(gè)字符串是否是回文。, metadata{category: code_generation} ), EvaluationTask( idtask_3_reasoning, prompt如果所有貓都怕水而我的寵物Socks是一只貓那么Socks怕水嗎請一步步推理。, metadata{category: logical_reasoning} ), ] return tasks async def main(): # 1. 加載配置API Keys等應(yīng)從環(huán)境變量或安全配置讀取 config load_config(config.yaml) # 2. 初始化模型適配器 model_adapters {} openai_config config[models][openai] model_adapters[gpt-4o] OpenAIModelAdapter( model_namegpt-4o, api_keyopenai_config[api_key] # base_url... 可配置 ) # 同理初始化Claude # model_adapters[claude-3-sonnet] AnthropicModelAdapter(...) # 3. 創(chuàng)建執(zhí)行器 runner HarnessRunner(model_adapters) # 4. 加載任務(wù) tasks create_tasks() # 5. 運(yùn)行所有任務(wù) collector await runner.run_all_tasks(tasks) # 6. 保存結(jié)果和生成報(bào)告 collector.save_to_json(results.json) collector.generate_report(evaluation_report.md) # 7. 快速查看統(tǒng)計(jì)信息 df collector.to_dataframe() print(\n 性能摘要 ) summary df.groupby(model).agg({ latency: mean, total_tokens: mean, cost: sum, error: sum }).round(3) print(summary) if __name__ __main__: asyncio.run(main())對應(yīng)的config.yaml文件示例# config.yaml models: openai: api_key: ${OPENAI_API_KEY} # 建議通過環(huán)境變量注入 # base_url: https://api.openai.com/v1 # 默認(rèn) anthropic: api_key: ${ANTHROPIC_API_KEY}運(yùn)行這個(gè)主程序你會得到一份詳細(xì)的Markdown報(bào)告里面并排列出了GPT-4和Claude如果配置了對三個(gè)不同任務(wù)的回答、耗時(shí)和Token消耗以及一個(gè)匯總的性能統(tǒng)計(jì)表。4. 進(jìn)階優(yōu)化與功能擴(kuò)展基礎(chǔ)框架跑通后就可以根據(jù)實(shí)際需求添加更多實(shí)用功能了。4.1 實(shí)現(xiàn)復(fù)雜的評估邏輯之前的評估主要靠人眼看報(bào)告。我們可以引入自動評估。例如對于代碼生成任務(wù)可以寫一個(gè)函數(shù)來運(yùn)行生成的代碼并檢查其正確性。# evaluators/code_evaluator.py import subprocess import tempfile import os def evaluate_python_code(code_snippet: str, test_input: str, expected_output: str) - Dict[str, Any]: 評估Python代碼片段。 :param code_snippet: 模型生成的代碼字符串 :param test_input: 測試輸入以字符串形式在代碼中可能需要被讀取 :param expected_output: 期望輸出 :return: 包含通過與否、實(shí)際輸出、錯(cuò)誤信息的字典 result {passed: False, actual_output: None, error: None} # 將代碼片段包裝在一個(gè)可執(zhí)行的腳本中 full_code f import sys {code_snippet} # 假設(shè)生成的函數(shù)叫 is_palindrome if __name__ __main__: # 這里可以設(shè)計(jì)更復(fù)雜的測試 test_str \{test_input}\ output is_palindrome(test_str) print(str(output).lower()) # 統(tǒng)一輸出為小寫字符串便于比較 with tempfile.NamedTemporaryFile(modew, suffix.py, deleteFalse) as f: f.write(full_code) temp_file_path f.name try: # 執(zhí)行代碼 process subprocess.run( [sys.executable, temp_file_path], capture_outputTrue, textTrue, timeout5 # 設(shè)置超時(shí)防止死循環(huán) ) actual_output process.stdout.strip() result[actual_output] actual_output if process.returncode 0: # 簡單比較輸出 result[passed] (actual_output expected_output.lower()) else: result[error] process.stderr except subprocess.TimeoutExpired: result[error] Execution timeout except Exception as e: result[error] str(e) finally: os.unlink(temp_file_path) # 清理臨時(shí)文件 return result然后可以在ResultCollector.add_result方法中根據(jù)任務(wù)元數(shù)據(jù)調(diào)用對應(yīng)的評估器并將評估結(jié)果如eval_passed: True也存入記錄中。4.2 集成更強(qiáng)大的結(jié)果分析與可視化pandas和matplotlib/seaborn是絕配。我們可以輕松地?cái)U(kuò)展報(bào)告生成功能。# result_collector.py (補(bǔ)充) import matplotlib.pyplot as plt import seaborn as sns class ResultCollector: # ... 之前的代碼 ... def generate_visual_report(self, output_dir: str ./reports): 生成可視化圖表 df self.to_dataframe() if df.empty: return os.makedirs(output_dir, exist_okTrue) # 1. 模型平均延遲對比柱狀圖 plt.figure(figsize(10, 6)) latency_df df.groupby(model)[latency].mean().sort_values() sns.barplot(xlatency_df.index, ylatency_df.values) plt.title(Average Latency per Model) plt.ylabel(Latency (seconds)) plt.xticks(rotation45) plt.tight_layout() plt.savefig(os.path.join(output_dir, avg_latency.png)) plt.close() # 2. 每個(gè)任務(wù)各模型的響應(yīng)對比分組柱狀圖例如對比Token消耗 # ... 更多圖表生成代碼 ...4.3 設(shè)計(jì)任務(wù)模板與批量導(dǎo)入手動在代碼里寫EvaluationTask列表很麻煩??梢栽O(shè)計(jì)一個(gè)YAML或JSON格式的任務(wù)模板文件。# tasks.yaml tasks: - id: summarize_article_1 prompt: | 請總結(jié)以下文章的主要內(nèi)容 《文章內(nèi)容...》 category: summarization evaluation: type: contains_keywords keywords: [量子計(jì)算, 優(yōu)勢, 挑戰(zhàn)] - id: translate_sentence_1 prompt: | 將以下英文句子翻譯成中文 The rapid advancement of artificial intelligence presents both unprecedented opportunities and significant ethical challenges. category: translation然后寫一個(gè)TaskLoader來讀取這個(gè)文件批量創(chuàng)建EvaluationTask對象。這樣非開發(fā)人員比如產(chǎn)品經(jīng)理也能通過編輯YAML文件來設(shè)計(jì)評測集。5. 避坑指南與實(shí)戰(zhàn)心得在開發(fā)和使用的過程中我踩過不少坑也積累了一些經(jīng)驗(yàn)。5.1 網(wǎng)絡(luò)與API穩(wěn)定性處理指數(shù)退避重試網(wǎng)絡(luò)抖動和API臨時(shí)過載很常見。一定要為重試邏輯設(shè)置隨機(jī)延遲Jitter和最大重試次數(shù)。tenacity庫讓這一切變得簡單。from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type import openai retry( stopstop_after_attempt(3), waitwait_exponential(multiplier1, min4, max10), retryretry_if_exception_type((openai.APITimeoutError, openai.APIError)) ) async def robust_api_call(adapter, prompt): return await adapter.generate_async(prompt)設(shè)置合理的超時(shí)為每個(gè)API請求設(shè)置單獨(dú)的超時(shí)如30秒防止某個(gè)慢請求阻塞整個(gè)流程。asyncio.wait_for可以配合使用。監(jiān)控與熔斷如果某個(gè)模型API持續(xù)失敗可以考慮實(shí)現(xiàn)一個(gè)簡單的熔斷器Circuit Breaker暫時(shí)跳過該模型避免浪費(fèi)時(shí)間和配額。5.2 成本控制與用量監(jiān)控精細(xì)化成本計(jì)算前面提到的成本估算是雛形。生產(chǎn)環(huán)境需要根據(jù)每個(gè)模型的官方定價(jià)精確計(jì)算輸入、輸出Token的費(fèi)用。最好將這部分邏輯抽象成一個(gè)CostCalculator類。設(shè)置預(yù)算上限在運(yùn)行大規(guī)模評測前根據(jù)任務(wù)數(shù)量和平均Token消耗預(yù)估總成本??梢栽贖arnessRunner中增加一個(gè)預(yù)算計(jì)數(shù)器當(dāng)消耗接近閾值時(shí)發(fā)出警告或停止執(zhí)行。使用日志記錄詳細(xì)記錄每個(gè)請求的Token使用情況和估算成本方便后續(xù)對賬和分析。5.3 結(jié)果評估的客觀性挑戰(zhàn)避免主觀偏見人工對比結(jié)果時(shí)很容易對某個(gè)模型有先入為主的偏好。嘗試設(shè)計(jì)更客觀的評估指標(biāo)代碼執(zhí)行像上面那樣自動運(yùn)行檢查。文本相似度對于翻譯、摘要任務(wù)使用ROUGE、BLEU或BERTScore等指標(biāo)與參考答案對比。規(guī)則檢查對于要求特定格式如JSON、XML的輸出用解析器檢查其合法性。設(shè)計(jì)多樣化的測試集測試用例要覆蓋不同難度、不同領(lǐng)域、不同指令類型創(chuàng)意寫作、邏輯推理、信息提取等避免評估結(jié)果片面。記錄“軟指標(biāo)”除了正確性在報(bào)告中也可以加入人工標(biāo)注的“流暢度”、“創(chuàng)造性”、“遵循指令程度”等評分但這些需要多人標(biāo)注來減少偏差。5.4 性能優(yōu)化技巧異步并發(fā)控制Semaphore的值不是越大越好。需要根據(jù)API的速率限制如RPM, TPM來調(diào)整??梢韵仍O(shè)置一個(gè)保守值如5觀察請求成功率后再調(diào)整。連接池復(fù)用使用aiohttp.ClientSession或httpx.AsyncClient時(shí)確保在整個(gè)應(yīng)用生命周期內(nèi)復(fù)用同一個(gè)會話session以利用HTTP持久連接減少TCP握手開銷。緩存機(jī)制對于確定性的提示詞不包含隨機(jī)數(shù)或動態(tài)時(shí)間可以考慮將模型的響應(yīng)緩存起來例如使用diskcache或redis。這樣在多次運(yùn)行或調(diào)試時(shí)可以避免重復(fù)調(diào)用API節(jié)省成本和時(shí)間。自己動手實(shí)現(xiàn)一個(gè)Harness的過程遠(yuǎn)比單純調(diào)用一個(gè)現(xiàn)成工具收獲大。它不僅讓你對LLM API的細(xì)節(jié)有了更深的掌控更重要的是它迫使你系統(tǒng)化地思考如何評估一個(gè)AI模型的好壞。這套框架現(xiàn)在已經(jīng)成為我日常工作流的一部分每當(dāng)有新的提示詞策略或需要選型新模型時(shí)跑一遍Harness讓數(shù)據(jù)說話決策就變得清晰多了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
东京热,男人的天堂| 精品熟女呻吟久久91| 日本影视久久免费| 五十路熟女工口 | 婷婷久草| 99re99| 天天爽天天操| 日本亚洲熟女视频| 久久大黄片| 99re99视频在线免费观看| 91社区拍啪人妻| 亚洲素人综合| 麻豆精品久久久久久久| 国产情侣自拍在线播放| 国产9区| 夫妻四区五区六区| 久久五月视频| 一级免费啪啪片| 蜜臀久久99精品久久久久久-DVD原版全| 一区,二区,三区网站| 嗯啊抽插大香蕉网页| 高潮9999外国| 人人噜夜夜操| 亚洲天堂另类美腿| 婷婷五月成人| 色综合av男人天堂| www.久久制服糖| 午夜福利合集| 色妇91| 久久香蕉网| 26uuu性| 久热网| 旡码电影特区| 久操不卡视频| 曰韩成人免费视频| 丁香六月激情| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 人妻第一页| 天天操女人| 不卡免费av在线播放| 女人精品内射国产99| 丝袜av一区二区三区| 色穴精品| 天天天天操| 亚洲欧美日韩精品久久久一区二区 | 久久久久久国产成人| 综合亚州欧美| 亚洲欧美天| 亚欧美综合网。| 欧美精品丝袜久久久中文字幕| 欧美刺激色黄片免费看| 99久久精品国产高潮| 国产中文大片资源中文字幕 | 少妇激情AV| 麻豆性爱视频在线播放| 中文字幕在线观看网页| 欧美日韩国产男人| 色香欲天天天天综合色| 十八禁电影伊人网| 日本高清一本二本免费不卡| www色色色com| 五月婷婷综合网| 噜噜吧,噜噜色,噜噜| 国产女人成人精品视频| 九九av| 国产高潮AA片免费看| 亚洲导航深夜福利| 亚洲天堂热| 国产亚洲99久久精品| 亚洲图片欧美在线视频| 人妻天堂综合网| 色九九综合| 亚洲日韩一区电影| 色婷婷在线视频精品导航| 熟女中出视频| 中文字幕久久亚州无码| 亚洲天天自拍| 91搡老女人老妇女老熟女歌词翻译| 最新一二三区视频| 水野优香在线观看| www老逼91| av麻豆啪啪| 91欧美性| 91欧洲入口| 亚洲久9| 国产一区二区在线看| 蜜臀网 一区| 久久久久97| 欧美一区二区一级岛国大片| 婷婷丁香在线| 中文字幕精品乱码| 九九九不卡| 大香蕉一级黄色片久久| 综合五月婷婷亚洲一区| 婷婷五月天av| 在线中文字幕| 热久久无毒不卡| nuu12国产麻豆精品| 青娱乐久久艹| 亚洲丝袜天堂| 精品乱码在线观看| 秋霞一集毛片观看| 国产91美女高潮| 九九久久久久久爱| 东京热大香焦| 国产人妻天天干精品| 欧美亚洲玖玖玖| 欧美91在线+|+欧美| 台湾佬大香蕉| 成人免费福利网站国产| 亚洲天天精品| 男女激烈网站最新| 天天操夜夜操| 免费看国产大AB| 日韩国产精品人妻无码久久久| 手机在线A片| 美女啊啊啊啊pc| 玖玖爱伊人玖玖爱| 国产传媒午夜理伦精品| 久久久久密臀一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 欧美日韩在线小说 | 肥臀熟女福利视频一区二区| 日本布卡一区二三区| 精品日韩人妻视频| 欧美极品女人的天堂| 国产精品高朝久久久久久久| 精品国产丝袜一区二区三区乱码| 国产精品久久9| 青青草依人大香蕉| 亚州AV无码国产精品| 一区二区三区黄色片a| 亚洲 自拍偷拍 欧美| 99精品在线| 亚洲日韩狠狠撸视频| 亚洲?V无码专区在线电影| 狠狠干狠狠干| 欧美少妇高潮| 久久99热这里只频精品6学生| 欧美日韩国产人人| 操逼日批| 人妻无码久久一区二区三区免费| 1000部熟女视频在线观看| 水澄无码AV| 亚洲高清色综合| 在线观看综合精品亚洲| 久草毛片| 高跟丝袜AV专区国产| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久香蕉国产线看观看猫咪av| 看黑丝美女操逼青青网站| 丰满人妻一区二区三区蜜桃视频| 婷婷久草一区二区三区| 男人的午夜天堂| ′ !γ}丶。。久久精品欧美一区二区三区| 日韩91网| 亚洲五区熟女| 乱伦图av| 青青草无码视频| 亚洲第一精品在线视频| 伊人嫩草| 亚洲高清无码AAA久久久精品| 超碰偷拍| 五月婷婷激情网| 日本 情色 1区| 精品人妻伦一二三区久久| 亚洲精品黄码久久久久| 在线啊啊啊啊| 老司机天天操| 九七超碰人人乐| 欧美日综合| 在线观看中文字幕| 久久精品天美| 99久久网站| 欧美色青| 夜草欧美| 8050午夜少妇无码| 熟女这里只有精品6| 五月天婷婷久久| 26uuu性物| 射丝袜大香蕉| 蜜伊人色综合97| 小日子操bb在线看| 9久9久9久9久视频网站| 国产夫妻一区二区| 深夜激情无码| www.91理论| 超碰97 线线 在现| 999熟女精品| 天天干天天拍| 亚洲综合在线91| 韩国黄色片精品久久久| 三级日韩一区二区三区| 亚洲一区二区中文字幕| 青春草A| 青青伊人这里只有精品| 国产老太乱伦一区| 91色欧美| 情色av电影| 色色色色电影网| 国产成人超碰在线| 天堂亚洲精品| 人妻超碰青青草98| 少妇第一页| 中文字幕精品丝袜| 99热亚洲| 美國A片| 久久久夜夜夜| 免费操逼91| 啊啊啊啊啊舒服| 亚洲一区二区三区麻豆传媒| 大鸡吧尹人在线| 超碰99热| 男男H黄动漫啪啪无遮挡网站| 欧美色图91| 花野真衣| 丰满的三级少妇欧美久久久| 日本五十路熟女一区二区| 偷拍精品一区二区三区| 超碰97护士| 久久成人东京热人妻| 精品一区二区三区四区外站| 亚洲 se图 欧美电影| 少妇超碰在线| 夜夜爽爽爽| 日本高清久久| 性爱动态120秒| 性爱精品一区| 在线v中文字幕一区二区三区| 亚洲系列第一页| 一级性爱啪啪视频| 约操熟妇| 亚洲天堂人妻熟妇视频| 日韩亚洲精品一区二区| 狼狼色丁香久久婷婷综合五月| 操逼无码操逼| 国产高清吃奶免费视频网站| 老熟女乱伦片| 成人性爱全视频观看| 国产午夜激片Av毛片不卡| 性在久久久久久| 天堂а√在线最新版在线| 黑人精品XXX一区一二区| 日韩av免费一级电影| 四虎国产精品永久入口| 国产一区二区三区久久久精品| 国产成人99久久亚洲综合| 国产精品久久久久久亚洲色欲| 亚洲男人电影天堂| 日韩丰满熟妇| 国产久久一区二区午夜| 东京热不卡视频| 久久精品视频一区三区小泽玛利亚| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 乱伦图一区| 国产精品一级片在线看| 欧美国产日韩高清在线| 一本一道人妻久久一区二区三区| 污污污8888| 久久久91福利姬| 亚洲久草AV色图| 91综合网在线| 亚洲人妻中文高清| 99精品在线观看| 日本精品人妻少妇一区二区| 嗯嗯啊啊的视频| 欧洲视频在线| 日韩精品1区2区中文字幕| 欧美性生活综合| 一区二区三区 丝袜 高跟 美腿| 天天综合香 ld视频| 毛片麻豆91糖心精品毛情片| 91亚洲网站| 国产黄色小视频网站| 国产亚洲色婷婷久久99精品91葵花宝典 | 超碰在线人人射| 先锋色眉乱伦资源| 伊人久久88国产女| 伦理日韩国产久久| 91人妻最真实刺激绿帽| 婷婷成人五月天| 天天享受天天看| 免费男人的天堂| 欧美性性性| a片亚洲一本通视频| 老女人91| 国产午夜精品一区二区三区牛牛| 美国日韩黄片| 精品一区二区三区蜜桃臀赵总 | 婷婷15月天青娱乐| 97天天综合| 国产精品自拍欧美在线| 久久av色| 东京热av影院| 中国亚洲呦女专区| 亚洲熟妇综合久久久久久| 亚洲一区二区AV| 精品欧美А∨无码黑人大荫蒂| 五月丁香大香蕉| 大肉棒导航| 国产精品一区二区手机看片| 免费视频无码| 91成人精品| 久久精品国产亚洲AV无码做| 夜夜高潮夜夜爽高清视频一| 麻豆天美一区二区| 男人的天堂不卡一区二区| 午夜综合在线| 精品亚洲国产成人精品| 啊啊啊不要好爽日韩无码一区| 亚洲色图图片| 日韩AV一区二区三区四四| 偷拍99| 热久久国产| 麻豆亚洲Av成人无码一区精品| 超碰天天去日穴| 黄片免费久久久久久久| 少妇专区一二三四五| 自拍偷拍第26| 夜夜高潮夜夜爽| 欧美亚洲激情| 十八岁啪啪视频免费看| 蜜臀99久| 97久久综合网| 国产蜜臀在线| 国产一区在线播放| 久久国产三区| 精品人妻一二三| 亚洲日韩一区电影| 日韩免费中文字幕视频| 人妻 欧美 中文| 人人干黄色| 内射中出日韩在线观看视频| 国产又猛又粗又爽又黄| 男男H黄动漫啪啪无遮挡网站| 一道本久久棕合爱| 五月天婷婷在线看| 91老熟女老女人国产老太| 欧美黄色大片在线观看| 大香蕉2017| 中文字幕在线观看丝袜| 欧美一级A一级a爱片久久| 九九久久久九九| 日韩欧美aⅴ综合网站发布| 欧美人妻中出| 亚洲欧洲另类| 亚洲精品尤物yw在线影院| 天美传媒av一区二区| 丁香五月激情综合国产| 粉嫩AV一区二区夜夜| 国产怡红院| 九九热久久99精品re| 亚洲电影91| 日韩性爱电影一区| 少妇人妻精品| 激情一区二区三区在线观看| 免费视频一二三区| 97色诱| 欧美成熟性爱精品| 91久热| 色五月网址| 欧美18老人禁| 搡老熟女国产1000部| 国产精品色| 永久免费av无码网站国产app| 亚洲色图 图片| 午夜免费视频1000| 欧美成人黄网色网站| 欧美亚洲高清| 97综合久第一页| 国产性感骚丝袜在线| 留下AⅤ黄色片| 欧美超碰人妻97| 婷婷五月成人| 天天综合网日韩7799| 97综合激情| 亚洲老司机123专区| 在线只有精品| 蜜乳性色无码专日粉嫩骚逼AV| 伊人网高清| 蜜臀av中文字幕| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 91人妻素女| 日韩欧美福利视频看看| 91bbbbbb| 97超色| 好淫网一二三视区| 激情五月天网| 日本护士高潮| 亚洲最新a在线观看| 超碰97人妻免费在线| 天天色综合影视网| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 影音资源男人日韩| 18禁免费视频| 超碰色美女| 亚洲天堂日本| 欧美偷| 人妻熟女一区二区三区在线| 亚洲丝袜天堂| 欧美天天综| 久久这里都是精品| 爱射综合| 天天插天天插| 亚洲国产精品久久久久久久久久| 亚洲AV成人在线| 国产女生在线| 三级三久久线久久99久目本WW| 国产AV无码AV| 秋霞一级视频在线观看免费| 97最新在线播放视频| 无码聚合| 无码高清专| 婷婷中文网| 国产一区在线免费播放| 干婷婷综合网| 五月丁香狠狠爱| 依人大香蕉| 98一区二区精品| 蜜臀久久99精品久久久久久久久| 欧美午夜精品久久久久久超碰| 东京热亚洲一区二区| 成人 日韩欧美一区| www.色五月| 色婷五月天| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 欧美性天天| 国产伦乱91| 欧美熟妇操操视频| 精品一久久久| 九一国产精品| 超碰导航97| 欧美草草高清日韩视频| 96久久科窝| 精品国产乱码久久久久久影片| 日韩欧美视频青青| 熟女一区二区三区| 夜夜嗨老熟女AV一区二区三区| 狠狠干2020| 九久9精品| 91丨国产丨白浆秘 洗澡动漫| 最新av中文字幕高清| 91社区拍啪人妻| 久久精品美女一区| 91在线免费观看处女| 国产乱人妻精品入口| 亚洲九九视频| AV天堂国产| 国产精品无码av| 九九热精品在线| 美女的肌被草喷水视频| 一本大道久| 色欲久久久久综合网| 激情接吻视频久久久久久| 好吊妞转入那个网| 91国产在线精品| 色综合一区二区三区| 美国aaaaa一级黄片| 97资源制服丝袜| 国产第11页| 激情综合网亚洲| 26uuu国产免费观看| 91女人的网站| 国产999精品久久久| 中国国产精品一区视频| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 女人的天堂大香蕉网| 欧美色图欧美| 日韩人成网站在线播放| 东京热精品97综合网| 男人天堂资源| 久色网| 国产视频一区二区三区久久亚洲天堂| 中文区中文字幕免费看| 熟女色综合久久| 午夜精品久久久99| 日韩强奸av| 水野优香在线观看| 欧洲亚洲人妻无码高清久久三区四区| 综合免费无码中文| 久草男人天堂| 8x福利精品第一福利视频导航| 国模一区二区三区| 另类欧美综合| 超碰碰碰碰| 九九九九热只有精品| av午夜影院在线播放| 欧美视频第二页| 大学生美女口爆| 婷婷久久综合| 欧亚日韩中文在线| 欧苏综合色综合| 大逼色网站| 欧美一级黄片免费播放| 亚洲图片 欧美电影| 无码日韩网站| 亚洲色图日韩丝袜制服一区二区五月在线| 国产精品午夜高潮呻吟久久av| 天天天操天天天爱| 蜜桃av综合网发布| 日韩无码人妻中字久久三区四区| 日本熟女中文| 五月情色天| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 桃色六月天| 在线αⅴ| 强上我不卡卡| 国产成人精品必看| 尤物视频偷拍免费| 99操逼| 99久久免费看精品国产一区| 五月丁香综合激情| 日本一区二区中文字幕久久| 任我爽视频在线观看| 思思热在线视频免费| 麻豆福利视频导航| 国产麻豆福利av在线播放| 久久久久久久9最新免费视频观看| 亚洲精品啪视频| 久久精品导航| 淫色网综合| 国产福利在线视频网站| 日韩干B| 一区二区三区机械有限公司| 久久婷婷电影网| 97色色国产视频| 肉嘟嘟www视频在线观看高清| 欧美午夜熟妇黑人精品91| 青青草九九九九九| 国产中文精品一区二区在线观看| 婷婷人妻激情| 5252色欧美在线| 乱伦日本色图AⅤ| 麻豆91熟妇人妻中文字幕茄子| 精品久久久久黄少妇| 一区二区三区黄片免费观看| 97久久超碰日韩精品| 国产一区二区三区中文字幕| 亚洲天堂一区二区久久| 撸无码不卡免费视频| 欧美中文字幕一区| 麻豆这里只有精品| 天天爽夜夜爽夜夜爽精| 国产丁香精品露脸视频| 99re8免费高清在线| 秋霞曰韩R级| 精品国产一区探花在线观看| 久9综合在线| 女人一区| 日本色婷婷| 粉嫩粉嫩一区性色AV片| 蜜乳成人AV| 精品一级| 久久久久久久久久久久欧美日| 欧美黄页在线| 超碰免费人人| 牛牛aV| 亚洲国产综合视频| 三级色影综合网| 亚洲文学偷乱拍啪啪啪啪| 国产天天骚| AAA久久| 天天日天天搞天天干| 2019天天干| 青青草依人大香蕉| 久操频道免费在线呗看| 免费99精品国产自在在线| 吉田爱美AV在线| 精品超碰中文在线| 欧日韩不卡视.频| 日本福利二区视频| 免费中文在线| 国产精品制服丝袜清纯唯美| 欧美日日操| 欧美黄色片在线播放| 亚洲国产精品无码AV久久久| 国产精品电影大全| 五月天亚洲色图| 色欲久久99国产精品久久久久久| AV色女综合| 久九九九九九九九热| 91热色| 爱妻综合网| 国产精品久久久久久夜夜夜夜| 美女诱惑在线一区| 曰韩少妇无码| 97情超碰色| 国产亚热在线久久| 91综合天天| 国产成人五月天丁香花| 欧美+日产+中文| AV中亚| 搡老女人老91二区| 翔田千里AV无码秘 三区| 欧美一区二区三区不卡高清视频| 日韩一级性爱无码| 日韩无码a片| 亚洲色图欧美视频| www.婷婷| 野狼激情网| 日韩欧美成人大香蕉| 日本一片一区| 色777999综合| 91爱啪| 91肉丝| 精品性爱| 激情五月天插| 亚洲一区日韩| 91黑丝少妇| 日本999精品| 亚洲加勒比色图| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 色情综合网| 老女人爆菊| 欧美 牲| 91碰碰| 成人区人妻精品一| 12一15性XXXX粉嫩国产| 国产亚洲精品av一区| 日本午夜久久电影| 欧美男女午夜啪啪| 大逼色网站| 人人 操人人 操人人| 欧美日韩另类在线| 精品国产人成在线| 超碰av在线| 欧美综合加勒比在线| 婷婷九月国产| 在线日韩精品一区二区三区| 少妇3P性爱自拍| 色婷婷丁香五月| 9精品在线| 这里都是精品| 做爱A级亚欧| 久久精品欧美一区蜜桃| 我爱搞逼综合网| 国产精品福利视频| 国产精品久久久三级无码| 中文字幕一区二区三区蜜臀| 91狠狠狠| 豆花视频操逼网址| 伊人影院中文字幕| 欧美淫乱视频| 再深点灬舒服灬太大了添视频| 婷婷五月天AV| 超碰伊人在线| 精品久久久久久无码| 五月天激情网图片| 亚洲国产精品久久久久婷婷老年| 久久精品国产亚洲5555| 啊啊啊啊嗯嗯嗯用力好爽| 国产精品在线一区二区| 人人操 欧美| 亚洲美乱| 九九九九精品在线| 五月天婷精品激情| 久久精品国产久精国产| 国产精品一区二区亚洲人成毛片| 丰满欧美少妇| 91丝袜美女视频| av在线资源| 香蕉大久久久| 91快色色色色色| 60秒免费小视频| 国产成人超碰在线| 秋霞男人网| 国产老太乱伦一区| 99热99re超碰精品| 精品人妻免费观看| 东北黄色电影| 免费AV中文网在线观看| 96久久科窝| 91骚熟女| 九九这里只有精品| 91天天综合日韩欧美| 欧美色五月| 伊人91| 色色婷婷丁香| 97天天| 中文字幕 码 自拍 视频 区| 日本二三四区| 亚洲 图片 综合91| 天天射夜夜操| 天天干天天日天天射黄色片| 欧美午夜视频免费观看| 日韩欧美资源| 日韩少妇一区二区三区| 亚洲色天堂九9| 性爱视频久久| 欧美性爱一区二区| 欧美午夜色妇色鬼| 日韩Va亚洲va欧美Ⅴa久久| 偷拍片久久| 成人在线日韩| 一二三区操逼国产91| 久久只有精品一区二区三区| 操迟操逼在巾线Fre看| 伦理日韩国产久久| 婷婷五月色| 日韩AV电影网站| 超碰色老头| 91丝袜美女| 强奸乱伦av电影| 久久后入制服| 伊人亚洲国产一成人久久精品,久久| 日韩大香蕉| a人欧美综合天堂麻豆| 亚洲欧美日韩精品久| 久久久啊啊啊| 亚洲综合有玛| 欧美 亚洲 偷拍自拍| 人人操人人肉久久精品| 欧美老妇女内射网址| 精品亚洲国产成人av网站| 精品一区二区三区蜜桃| 最新精品久久蜜桃 | AV一起草在线| 东北操逼| 99色色网| 91看黄片| 91熟女视频网| 欧美老妇综合网| 综合一区中亚洲国产成人综合精品| 国产日本一区二区三区蜜臀在线观看| 日韩中文字幕2020| 日韩欧美视频青青| 亚洲黄色网址视频| 日本一级特级毛片视频| 亚洲se电影| 亚洲人在线| 九热视频| 人妻一二三区| 国产97在线视频| 国产91丝袜在线播放蜜月| 婷婷伊人一区| 激情五月综合网| 韩国午夜理伦三级好看| 久久精品国产Aⅴ| 亚洲 欧美 日本 国内 首页| A啊啊在线观看| 国产又粗又又黄又猛| 老司机深夜影院18未满| 国产精品福利资源在线尤物| 欧美亚洲特P| 日韩中文9| 亚洲欧美综合色| 久操综合在线| 亚洲日韩精品在线播放| 欧美强奸乱| 色欲三区| 97超碰色色| julia国产在线 | 男人的天堂视频精品乱在线| av 模特一区了| 亚洲青色欧美| 中文字日本乱码| 久久国产99精品72福利| 久操九九九九| 欧美成人9797| 日韩美脚一区二区网站| 成人贴图日韩欧美| 久久熟女人| 91天天日| 25国产精品免费观看| 丁香六月婷| 亚洲宅男天堂| 人人喜人人妻| 蜜臀AV一区二区三区激情综合| 亚洲欧洲小说图片视频| 91丝袜美女| 91偷拍欧美亚洲| 欧美久久婷婷| 亚精品无码毛片一区二区三区| 蜜屁Av| 色色综合97| 91女优在线观看 | KK色在线影院| 麻豆一区二区三区在线看| 欧美色图另类图片| 97在线观| 亚洲天天更新| 国产精品不卡一区二区三区av | 国产99 中文字幕日韩小视频| 超碰久热| 丁香六月婷婷久久综合| 无码一区二区三区四区五区六区七区八区九区十区视频 | 91精品久久久久| 人妻久久一区二区三区| 无码久久国产| 操逼逼中文字幕| 91精品久久综合熟女| 看日韩美女二区三区免费操逼视频| 亚洲精品久| 人人妻人人色| 五月天人妻综合| 福利视频网站| 男人天堂黄片| 97碰在线视频| 精品美女在线视频| 神马九九九| 777超碰| 18禁在线视频| 中文字幕性感少妇av| 中文字暮97| 欧美天堂亚洲电影院一区在线播放| 亚洲校园激情| 国产精品不卡av免费在线观看| 操逼天美3区| 久/久精品99看9| 久久久性爱视频| 丝袜加勒比| 色哟哟AⅤ| 天天插天天操| 欧美大香蕉97| 欧美激情内射| 日本成人电影资源网| a久久| 中文字幕天天天天天| 国产绿奴视频在线观看| 女人爽到高潮潮喷18禁网站| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美性爱1080p| 日韩精品一二三四| 超碰98综合网| 国产白丝精品在线观看| 欧美丰满少妇xx高潮| 九九无码| 色婷婷蜜臀av| 亚洲精品97久久| 久久精品日韩| 亚洲免费精品一区| 99日视频在线免费| 精品人妻中文字幕4399| 麻豆天美国美国产| 久久久久深夜无码| αⅴ天堂| 99色在线| 久久99精品九九久久久婷婷| 91黄站| 精品亚洲国产成人av网站| 亚洲综合网电影91| 日日干夜夜欢| 美日韩男女操屄视频| 人妻干天天| 色综合尤物| 91在线视频免费中出| 亚洲宗合网| www.久久制服糖| 精品国产一区二区三区香蕉欧美| 性爱av网站| 亚洲美女色图| 久96热在线观看视频| 精品成人av一区二区三区在线| 蜜桃久久久久久久久久久久| 久久久久9999| 玖玖97综合 | 国产福利影视| 亚洲熟妇综合久久久久久| 少妇特黄一区二区三区| 国产性爱在线视频一区二区| 超碰99热中文字幕| 蜜臀99久久精品久久久懂爱| 超碰人人乐97| 久久久日本电影| 无码又爽又硬又激情免费视频 | 欧美色视| 中文字幕一区日韩精| 久久99精品国产| 日韩无码三级影院| 1区2区3区中文字幕日韩| 秋霞操逼片| 高清不卡国产| 自拍内地三级在线观看| 91国产大片| 亚洲本色精品一区二区久久| 欧美三级一级| 天天插网| 另类图片五月| 亚洲资源站| 91n美女视频| 天天92av| 黄色AV影视| 新亚洲无码| 天天摸夜夜摸| 大学生口爆吞精| 久久骚少妇| 国产亚洲精品美女久久久m| 精吧天堂| 韩国黄片aaaa| 91综合天天| 91美女丝袜诱惑视频| 欧美一级在线观看成人| 国产九九久久久精品| 久久免费99精品久久久久久| 亚洲精品不卡一二三区| 肉嘟嘟www视频在线观看高清| av2014 日韩在线中文字幕| 欧美亚洲中文字幕| 91九九| www.色五月| 黄色操人| 操少妞在线视频| 人妻精品视频一区二区| 亚洲1区2区三区高清中文字幕| 91大神精品长腿在线观看网站| 精品久久在线区一区| 久久久久亚洲av综合波多野制衣| 久久久久密臀一区二区| 桃花色涩综合影院| 亚洲成a人v欧美综合天堂下载| 91色五月俺来也| aaaa黄片| 超碰97久| 超碰性爱97| 2019天天干天天操| 91视频综合| 国产风韵犹存熟妇三区| 亚洲男人天堂Av| 上海一级黄片| 日韩精品一区二区人人人| 国产60区。| 色五月婷婷网| 在线观看无码三级少妇| 青青草好吊色| 国产地址二三| 久久久久久久久久久久久9999| 亚洲av综合色区无码一| 嗯嗯啊啊啊好爽| 亚洲日韩东京热一区| 床上啊啊啊一区二区三区| 欧美精品xxxwww| 综合伊人网12色| 久久久久久九九九九九九| 日韩天堂av电影在线观看| 欧美日韩性爱操大逼| 91人精品妻入口| 国产97视频| 2019午夜福利视频| 亚洲中文字幕日产无码久久| 涩涩五月天| 曰韩成人免费视频| 黄色一区二区秘书性感| 78久久| 亚洲亚洲亚洲天堂天堂| 精品无码一区二区| 98色网| 人人操人人狠狠操| 18禁美女裸体无遮挡啪啪| 香蕉国产精品麻豆亚洲欧美日韩| 欧美在线亚洲| 国产日韩中文字幕欧美| 91无码人妻| 熟妇人妻一区二区| 中文字幕三四区| 亚洲图片欧美偷拍| 精品国产自在在线99| 色综合久久久久| 人人干人人搞人人摸| 黑人精品一区二区在线播放| 综合97| 91少妇通奸网站| 男人精品天堂一区| 中亚黄色三级大片| 夜夜福利| 国产熟女一区二区丰满| 蜜乳AV一区二区三区四| 人人人人插| 亚洲日韩美国人妻| 强奸乱伦AV网站| 一区二区三区黄片免费观看| 人妻中文字幕精品无码| 尹人免费观看视频在线| 亚洲熟女乱色一区二区三区| 婷婷爽人人婷婷爽视频| 蜜臀99久久精品久久久久| 四方色播| 亚洲伊人青青草| 91超碰丝袜制服| 天天在线91| 深夜激情| 免费男人的天堂| 久久大香蕉97| 亚洲 欧美 另类 日韩 人妻一区 | 免费视频97| 久久国产精品m码| 日夜精品| 久久久久亚洲| 亚洲精品乱码线路中文字幕| 国产精品视频自拍在线| 亚洲高清无码在线桃色| 色五月激情综合网| 五月激情天| 亚洲人在线| m欧洲一级午老| 97欧美色| 伦理第一页| 在线日韩精品一区二区三区| 欧美日韩黄片精品在线 | 99热超碰| 天天综合91在线| 国产精品天美传媒| 亚州色图欧美| 怡春院久久| 亚洲九九九九| 东京热男人的天堂精品| 99在线免费视频| 男人干美女| 一区二区三区四区五区久久久久久| 精品人妻一二三四区视频| 粉嫩av一区二区三区天美传媒 | 精产国品一区二三产品| 日韩综合97P| 久久精品视| 亚洲se91| 超清福利精品视频在线| 午夜福利精品| 激情综合97| 任我爽在线视频免费观看| 色与欲影视天天看综合网| 精品久久无码午夜福利| 在线国产探花| 久久久久9久久久久| 粉嫩久久久极品| 国产乱子伦一区二区三区在线观看| 一区二区三区视频国产免费| av天天在线观看| 久久久久久波多野吉衣高潮| 啊啊啊啊啊啊在线| 亚洲AV无码黄色强奸| 91色艳| 视频在线中文字幕| 色欲久久久久综合网| 精品国产精品一区二区| www.婷婷五月天| 亚洲免费97免费| 色姑娘综合网| 六月婷婷色综合| 五月天综合网| 91天天看| 亚洲制服欧美另类内射| 台湾佬中文娱乐自偷自拍| 操熟女91| 五月天丁香婷婷综合网站| 91偷拍欧美亚洲| 女性91网站| 亚洲综合另类| 男人天堂免费| 国产精品无码av嫩草| 日少妇亚洲版| 日韩熟女精一区二区三区不卡| 国产亚州精品美女久久久免费| 天天干天天日天天射黄色片| 狼人狠干| 91精品国产高清久久久久久,亚洲成人 | 99热综合| 中文字幕一品色图| 无码聚合| 青青草五月天| 成 人片 黄色大片| 色九九九九| 国产91福利小视频在线观看 | 久久一本大香蕉| 亚洲成人在线高清| 欧美 日韩 国产传媒| 中文字幕在线免费观看2| 中文字幕五区| 欧美AB在线| 99热97| 亚洲女人91| 青青国产精品在线| 国产在线综合网| 天天欧美色| 精品久久久av无码免费| 亚洲图片欧美制度| 97在线免费视频观看| 久久久久久久一级黄色打同平台| 91色拍| 免费啪啪一级视频| 影音资源男人日韩| 色播五月丁香| 丁香色狠狠色综合久久小说| 超碰97起碰| 97精品一区二区视频| 久久国产精品,久久国产| www熟女乱伦com| 熟女AV一区| 久操不卡视频| 99999久久精| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 欧洲精品网| 少妇一区二区三区高速| 97超碰人操| 国产亚洲综合欧美一区| 久久久无码精品人妻二区 | 欧美天天影院| www激情| 久久有码视频| www鬼畜国产男人的天堂| 国产亚洲精品久久久久小| 最新av在线| av资源在线观看少妇| 伊人操| 淫色网综合| 在线人人人人人人精品超| 嗯嗯嗯啊啊啊操的我好爽| 夜夜操美女| 国产精品乱码久久久久久久久久久久| 青青青国产手线观看视频2| 国产偷人妻精品一区二区在线| 成人 日本A片无码8888| 快灬快灬 一下爽蜜桃在线观看| AV天天综合| 一区二区三区亚洲| 日天天九九天堂666| 日韩精品高清资源在线| 人人 操人人 操人人| 婷婷人妻激情| 亚欧中文字幕在线视频| 男人高清无码一区二区| 91爱网| 97色视频在线| 啪啪视频亚洲第一| 色臀AV| 在线观看A啊啊啊| 99性爱| 家庭乱伦国产精品| 日本 情色 1区| 欧美大战久久久伊人| 亚洲激情综合| 国产精品女久久久久av爽| 亚洲天堂久久久久久粉红视频| 老熟女区| 秋霞视频一区二区 | 综合天天网| 97电影院超碰| 乱伦熟女区| 免费国产电影一区二区| 操久久久久| 性九九九九九九| 色婷婷影院| 成人av影院在线观看| 91美女在线观看| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 亚洲四虎熟女精品| 亚洲?V高清一区二区三区尤物| 国产夫妻一区二区| aaaa少妇高潮大片| 精品人妻1区| 日本一级特级毛片视频| 死我十八禁| 91色色综合| 热久久九九热| 人妻天天夜夜爽一区二区| 在线不卡视频| 日韩黄色成人性爱| 夜夜影视四色| 激情小说日韩无码| 久久婷婷电影网| 超碰91在线| 国产精品乱码久久久久久久久|