精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

借助LLM實現模型選擇和試驗自動化 原創

發布于 2024-11-7 07:59
瀏覽
0收藏

?大語言模型(LLM)已成為一種工具,從回答問題到生成任務列表,它們在許多方面簡化了我們的工作。如今個人和企業已經使用LLM來幫助完成工作。

代碼生成和評估最近已經成為許多商業產品提供的重要功能,以幫助開發人員處理代碼。LLM還可以進一步用于處理數據科學工作,尤其是模型選擇和試驗。

本文將探討如何將自動化用于模型選擇和試驗。

借助LLM實現模型選擇和試驗自動化

我們將設置用于模型訓練的數據集和用于自動化的代碼。在這個例子中,我們將?使用來自Kaggle的??信用汽車欺詐數據集??。以下是我為預處理過程所做的準備。

import pandas as pd

df = pd.read_csv('fraud_data.csv')
df = df.drop(['trans_date_trans_time', 'merchant', 'dob', 'trans_num', 'merch_lat', 'merch_long'], axis =1)

df = df.dropna().reset_index(drop = True)
df.to_csv('fraud_data.csv', index = False)

?我們將只使用一些數據集,丟棄所有缺失的數據。這不是最優的過程,但我們關注的是模型選擇和試驗。

接下來,我們將為我們的項目準備一個文件夾,將所有相關文件放在那里。首先,我們將為環境創建requirements.txt文件。你可以用下面的軟件包來填充它們。?

openai
pandas
scikit-learn
pyyaml

接下來,我們將為所有相關的元數據使用YAML文件。這將包括OpenAI API密鑰、要測試的模型、評估度量指標和數據集的位置。

llm_api_key: "YOUR-OPENAI-API-KEY"
default_models:
  - LogisticRegression
  - DecisionTreeClassifier
  - RandomForestClassifier
metrics: ["accuracy", "precision", "recall", "f1_score"]
dataset_path: "fraud_data.csv"

然后,我們導入這個過程中使用的軟件包。我們將依靠Scikit-Learn用于建模過程,并使用OpenAI的GPT-4作為LLM。

import pandas as pd
import yaml
import ast
import re
import sklearn
from openai import OpenAI
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

此外,我們將設置輔助(helper)函數和信息來幫助該過程。從數據集加載到數據預處理,配置加載器在如下的函數中。

model_mapping = {
    "LogisticRegression": LogisticRegression,
    "DecisionTreeClassifier": DecisionTreeClassifier,
    "RandomForestClassifier": RandomForestClassifier
}

def load_config(config_path='config.yaml'):
    with open(config_path, 'r') as file:
        config = yaml.safe_load(file)
    return config

def load_data(dataset_path):
    return pd.read_csv(dataset_path)

def preprocess_data(df):
    label_encoders = {}
    for column in df.select_dtypes(include=['object']).columns:
        le = LabelEncoder()
        df[column] = le.fit_transform(df[column])
        label_encoders[column] = le
    return df, label_encoders

在同一個文件中,我們將LLM設置為扮演機器學習角色的專家。我們將使用下面的代碼來啟動它。

def call_llm(prompt, api_key):
    client = OpenAI(api_key=api_key)
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "You are an expert in machine learning and able to evaluate the model well."},
            {"role": "user", "content": prompt}
        ]
    )
    return response.choices[0].message.content.strip()

?你可以將LLM模型更改為所需的模型,比如來自Hugging Face的開源模型,但我們建議暫且堅持使用OpenAI。

我將在下面的代碼中準備一個函數來清理LLM結果。這確保了輸出可以用于模型選擇和試驗步驟的后續過程。?

def clean_hyperparameter_suggestion(suggestion):
    pattern = r'\{.*?\}'
    match = re.search(pattern, suggestion, re.DOTALL)
    if match:
        cleaned_suggestion = match.group(0)
        return cleaned_suggestion
    else:
        print("Could not find a dictionary in the hyperparameter suggestion.")
        return None

def extract_model_name(llm_response, available_models):
    for model in available_models:
        pattern = r'\b' + re.escape(model) + r'\b'
        if re.search(pattern, llm_response, re.IGNORECASE):
            return model
    return None

def validate_hyperparameters(model_class, hyperparameters):
    valid_params = model_class().get_params()
    invalid_params = []
    for param, value in hyperparameters.items():
        if param not in valid_params:
            invalid_params.append(param)
        else:
            if param == 'max_features' and value == 'auto':
                print(f"Invalid value for parameter '{param}': '{value}'")
                invalid_params.append(param)
    if invalid_params:
        print(f"Invalid hyperparameters for {model_class.__name__}: {invalid_params}")
        return False
    return True

def correct_hyperparameters(hyperparameters, model_name):
    corrected = False
    if model_name == "RandomForestClassifier":
        if 'max_features' in hyperparameters and hyperparameters['max_features'] == 'auto':
            print("Correcting 'max_features' from 'auto' to 'sqrt' for RandomForestClassifier.")
            hyperparameters['max_features'] = 'sqrt'
            corrected = True
    return hyperparameters, corrected

然后,我們將需要該函數來啟動模型和評估訓練過程。下面的代碼將用于通過接受分割器數據集、我們要映射的模型名稱以及超參數來訓練模型。結果將是度量指標和模型對象。

def train_and_evaluate(X_train, X_test, y_train, y_test, model_name, hyperparameters=None):
    if model_name not in model_mapping:
        print(f"Valid model names are: {list(model_mapping.keys())}")
        return None, None

    model_class = model_mapping.get(model_name)
    try:
        if hyperparameters:
            hyperparameters, corrected = correct_hyperparameters(hyperparameters, model_name)
            if not validate_hyperparameters(model_class, hyperparameters):
                return None, None
            model = model_class(**hyperparameters)
        else:
            model = model_class()
    except Exception as e:
        print(f"Error instantiating model with hyperparameters: {e}")
        return None, None
    try:
        model.fit(X_train, y_train)
    except Exception as e:
        print(f"Error during model fitting: {e}")
        return None, None


    y_pred = model.predict(X_test)
    metrics = {
        "accuracy": accuracy_score(y_test, y_pred),
        "precision": precision_score(y_test, y_pred, average='weighted', zero_division=0),
        "recall": recall_score(y_test, y_pred, average='weighted', zero_division=0),
        "f1_score": f1_score(y_test, y_pred, average='weighted', zero_division=0)
    }
    return metrics, model

?準備就緒后,我們就可以設置自動化過程了。有幾個步驟我們可以實現自動化,其中包括:

1.訓練和評估所有模型

2. LLM選擇最佳模型

3. 檢查最佳模型的超參數調優

4. 如果LLM建議,自動運行超參數調優?

def run_llm_based_model_selection_experiment(df, config):
    #Model Training
    X = df.drop("is_fraud", axis=1)
    y = df["is_fraud"]
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

    available_models = config['default_models']
    model_performance = {}

    for model_name in available_models:
        print(f"Training model: {model_name}")
        metrics, _ = train_and_evaluate(X_train, X_test, y_train, y_test, model_name)
        model_performance[model_name] = metrics
        print(f"Model: {model_name} | Metrics: {metrics}")

    #LLM selecting the best model
    sklearn_version = sklearn.__version__
    prompt = (
        f"I have trained the following models with these metrics: {model_performance}. "
        "Which model should I select based on the best performance?"
    )
    best_model_response = call_llm(prompt, config['llm_api_key'])
    print(f"LLM response for best model selection:\n{best_model_response}")

    best_model = extract_model_name(best_model_response, available_models)
    if not best_model:
        print("Error: Could not extract a valid model name from LLM response.")
        return
    print(f"LLM selected the best model: {best_model}")

    #Check for hyperparameter tuning
    prompt_tuning = (
        f"The selected model is {best_model}. Can you suggest hyperparameters for better performance? "
        "Please provide them in Python dictionary format, like {'max_depth': 5, 'min_samples_split': 4}. "
        f"Ensure that all suggested hyperparameters are valid for scikit-learn version {sklearn_version}, "
        "and avoid using deprecated or invalid values such as 'max_features': 'auto'. "
        "Don't provide any explanation or return in any other format."
    )
    tuning_suggestion = call_llm(prompt_tuning, config['llm_api_key'])
    print(f"Hyperparameter tuning suggestion received:\n{tuning_suggestion}")

    cleaned_suggestion = clean_hyperparameter_suggestion(tuning_suggestion)
    if cleaned_suggestion is None:
        suggested_params = None
    else:
        try:
            suggested_params = ast.literal_eval(cleaned_suggestion)
            if not isinstance(suggested_params, dict):
                print("Hyperparameter suggestion is not a valid dictionary.")
                suggested_params = None
        except (ValueError, SyntaxError) as e:
            print(f"Error parsing hyperparameter suggestion: {e}")
            suggested_params = None

    #Automatically run hyperparameter tuning if suggested
    if suggested_params:
        print(f"Running {best_model} with suggested hyperparameters: {suggested_params}")
        tuned_metrics, _ = train_and_evaluate(
            X_train, X_test, y_train, y_test, best_model, hyperparameters=suggested_params
        )
        print(f"Metrics after tuning: {tuned_metrics}")
    else:
        print("No valid hyperparameters were provided for tuning.")

在上面的代碼中,我指定了LLM如何根據試驗評估我們的每個模型。我們使用以下提示根據模型的性能來選擇要使用的模型。

prompt = (
        f"I have trained the following models with these metrics: {model_performance}. "
        "Which model should I select based on the best performance?")

?你始終可以更改提示,以實現模型選擇的不同規則。

一旦選擇了最佳模型,我將使用以下提示來建議應該使用哪些超參數用于后續過程。我還指定了Scikit-Learn版本,因為超參數因版本的不同而有變化。?

prompt_tuning = (
        f"The selected model is {best_model}. Can you suggest hyperparameters for better performance? "
        "Please provide them in Python dictionary format, like {'max_depth': 5, 'min_samples_split': 4}. "
        f"Ensure that all suggested hyperparameters are valid for scikit-learn version {sklearn_version}, "
        "and avoid using deprecated or invalid values such as 'max_features': 'auto'. "
        "Don't provide any explanation or return in any other format.")

?你可以以任何想要的方式更改提示,比如通過更大膽地嘗試調優超參數,或添加另一種技術。

我把上面的所有代碼放在一個名為automated_model_llm.py的文件中。最后,添加以下代碼以運行整個過程。?

def main():
    config = load_config()
    df = load_data(config['dataset_path'])
    df, _ = preprocess_data(df)
    run_llm_based_model_selection_experiment(df, config)


if __name__ == "__main__":
    main()

一旦一切準備就緒,你就可以運行以下代碼來執行代碼。

python automated_model_llm.py

輸出:

LLM selected the best model: RandomForestClassifier
Hyperparameter tuning suggestion received:
{
'n_estimators': 100,
'max_depth': None,
'min_samples_split': 2,
'min_samples_leaf': 1,
'max_features': 'sqrt',
'bootstrap': True
}
Running RandomForestClassifier with suggested hyperparameters: {'n_estimators': 100, 'max_depth': None, 'min_samples_split': 2, 'min_samples_leaf': 1, 'max_features': 'sqrt', 'bootstrap': True}
Metrics after tuning: {'accuracy': 0.9730041532071989, 'precision': 0.9722907483489197, 'recall': 0.9730041532071989, 'f1_score': 0.9724045530119824}

?這是我試驗得到的示例輸出。它可能和你的不一樣。你可以設置提示和生成參數,以獲得更加多變或嚴格的LLM輸出。然而,如果你正確構建了代碼的結構,可以將LLM運用于模型選擇和試驗自動化。

結論

LLM已經應用于許多使用場景,包括代碼生成。通過運用LLM(比如OpenAI GPT模型),我們就很容易委派LLM處理模型選擇和試驗這項任務,只要我們正確地構建輸出的結構。在本例中,我們使用樣本數據集對模型進行試驗,讓LLM選擇和試驗以改進模型。

原文標題:??Model Selection and Experimentation Automation with LLMs??作者:Cornellius Yudha Wijaya

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
国产电影一区二区| 成人在线观看黄色| 精品动漫3d一区二区三区免费| 精品精品欲导航| 98精品在线视频| 91精品国产自产| 特级毛片在线| 91麻豆高清视频| 成人免费黄色网| 日韩无码精品一区二区三区| 色男人天堂综合再现| 欧美午夜激情在线| 国产精品swag| 久久久久九九九九| 中文字幕一区二区人妻电影丶| 日韩电影免费观| 亚洲精品中文字幕乱码三区| 久久免费看av| 国产极品久久久| 国产亚洲一卡2卡3卡4卡新区| 欧美精品777| 亚洲精品无码久久久久久| 成人影院在线观看| 国产欧美日韩在线观看| 国产三级精品在线不卡| 国产又粗又大又爽| 日日夜夜免费精品视频| 97色在线观看| 久热精品在线观看| 亚洲综合小说| 538在线一区二区精品国产| 国产av人人夜夜澡人人爽麻豆 | 亚洲第一级黄色片| 在线视频观看一区二区| 国精产品一区二区三区有限公司| 亚洲观看高清完整版在线观看| 亚洲午夜精品一区二区| 国产乱视频在线观看| www.av精品| 国产精品一区二区三区精品 | 国产一区激情在线| 国产精品美女久久久久久免费| 99久久精品免费视频| 国产精品115| 欧美一级高清片| 日本77777| 欧美一级网址| 精品视频资源站| 波多野结衣天堂| 日韩不卡免费高清视频| 色乱码一区二区三区88 | 国产在线精品免费av| 国产精品极品美女在线观看免费| 黄色一级片免费在线观看| 99人久久精品视频最新地址| 97精品免费视频| 久久亚洲天堂网| 久久99高清| 欧美精品视频www在线观看| 中文字幕第21页| 在线一区视频观看| 亚洲精选一二三| 青青视频免费在线观看| 尤物在线网址| 亚洲综合免费观看高清在线观看| 毛片av在线播放| 国精一区二区三区| 欧美日韩国产综合新一区 | 亚洲精品一区二区网址| 国产美女免费网站| 999国产精品永久免费视频app| 日韩视频欧美视频| 小泽玛利亚一区二区免费| 国产精品对白久久久久粗| 亚洲成人亚洲激情| 欧美一区二区三区成人精品| 成人午夜av| 久久精品小视频| 精品处破女学生| 国产欧美精品久久| 欧美成人免费全部| 国产对白videos麻豆高潮| 婷婷综合激情| 欧美黑人巨大精品一区二区| 男女视频免费看| 日韩av不卡在线观看| 91在线色戒在线| 午夜视频福利在线| 中文字幕 久热精品 视频在线| 亚洲国产精品影视| 多野结衣av一区| 在线免费观看一区| 在线观看视频你懂得| 青青伊人久久| 亚洲成av人片在线观看香蕉| 亚洲区免费视频| 中文无码久久精品| 欧洲中文字幕国产精品| 国产成人久久精品77777综合| 成人18视频在线播放| 日韩欧美一区二区三区四区 | 一区二区三区日韩欧美| 一本一生久久a久久精品综合蜜| 国产成人无吗| 色悠悠久久综合| 5月婷婷6月丁香| 日韩一级特黄| 日韩国产在线播放| 中文字幕影音先锋| 麻豆视频一区二区| 久久久久久久有限公司| 超碰在线免费公开| 欧美色视频在线| 国产白嫩美女无套久久| 影视亚洲一区二区三区| 日韩av电影中文字幕| 亚洲av无码国产精品永久一区| 国产欧美一区在线| 欧美一区二区三区爽大粗免费| 亚洲精品一区av| 一二美女精品欧洲| 欧美亚洲精品天堂| 国产suv精品一区二区三区| 3d动漫啪啪精品一区二区免费 | 囯产精品一品二区三区| 一色屋精品亚洲香蕉网站| 欧美少妇性生活视频| 久草精品视频| 久久久久久久国产精品视频| 91tv国产成人福利| 欧美高清在线精品一区| 污污视频网站免费观看| 秋霞在线一区| 992tv在线成人免费观看| 99久久精品无免国产免费| 国产精品美女一区二区| 久草在在线视频| 最新亚洲精品| 国产91精品久久久久久久| 日本精品999| 一区二区三区资源| 亚欧美一区二区三区| 小处雏高清一区二区三区| 国产欧美日韩丝袜精品一区| 自拍视频在线免费观看| 亚洲色图在线视频| 亚洲欧美在线精品| 欧美第一精品| 国产日产亚洲精品| 精品欧美色视频网站在线观看| 欧美日韩一区二区三区四区五区 | 熟妇人妻av无码一区二区三区| 亚洲伊人色欲综合网| 极品白嫩少妇无套内谢| 韩日精品在线| 久久久久久九九九九| 天堂中文最新版在线中文| 欧美日高清视频| 亚洲啪av永久无码精品放毛片 | 青青草成人影院| 国产欧美一区二区三区视频| 国产黄色在线观看| 欧美一级日韩不卡播放免费| 国产麻豆a毛片| 国精产品一区一区三区mba视频| 国产在线精品一区二区三区| 国内激情视频在线观看| 亚洲天堂av在线播放| 九九热这里有精品视频| 国产成人精品午夜视频免费| 免费特级黄色片| 台湾亚洲精品一区二区tv| 国产极品jizzhd欧美| 日本综合在线| 日韩精品一区二| 中文字幕资源站| 国产精品一区二区久久精品爱涩| 欧美一区二区三区在线免费观看| 久久久成人av毛片免费观看| 久久久国产精品一区| 欧性猛交ⅹxxx乱大交| 日本韩国一区二区三区| 国精产品一区一区二区三区mba| 国产v日产∨综合v精品视频| 黑森林福利视频导航| 91精品啪在线观看国产18| 激情五月综合色婷婷一区二区| 四虎4545www精品视频| 超在线视频97| 色资源在线观看| 欧美一区二区精品久久911| 欧美不卡视频在线观看| 国产精品久久久久婷婷二区次| 国产一级二级av| 日韩精品1区2区3区| 狠狠噜天天噜日日噜| 天海翼亚洲一区二区三区| 成人亚洲激情网| 一区二区精品伦理...| 久热精品视频在线| 你懂的视频在线| 欧美mv和日韩mv国产网站| 国产情侣呻吟对白高潮| 亚洲午夜精品网| 国产视频精品免费| 久久人人爽人人爽| 伊人精品视频在线观看| 日韩中文字幕区一区有砖一区| 福利视频免费在线观看| 91精品国产91久久久久久密臀| 蜜桃视频成人| 免费萌白酱国产一区二区三区| 国产欧美一区二区白浆黑人| 88xx成人永久免费观看| 97免费在线视频| 99在线视频观看| zzijzzij亚洲日本成熟少妇| 成人在线观看一区| 亚洲人成欧美中文字幕| 天天av天天翘| 精品电影一区二区| www.激情五月.com| 777久久久精品| 国产精品无码粉嫩小泬| 日韩欧美中文在线| 国产精品suv一区二区三区| 亚洲高清中文字幕| 国产一级片免费| 一区二区三区在线免费观看| 国产精品国产三级国产传播| 欧美极品另类videosde| 国产传媒国产传媒| 久久久久久久网| 超碰在线97免费| 久久三级视频| 三级4级全黄60分钟| 亚洲自啪免费| 黄色免费视频大全| 亚洲经典在线看| 日韩国产一级片| 一区二区视频欧美| 久久这里只有精品8| 伊人春色之综合网| 狼狼综合久久久久综合网| 精品视频自拍| 精品免费一区二区三区蜜桃| 欧美一级色片| 欧美成人第一区| 国产一区二区三区四区| 日韩在线第一区| 日韩影院二区| 国产手机视频在线观看| 亚洲丁香日韩| 日本一区二区不卡高清更新| 国内精品久久久久久久久电影网| 日本一区高清不卡| 婷婷精品进入| 日韩国产成人无码av毛片| 99精品国产福利在线观看免费| 久久久999视频| 日本va欧美va精品| 91插插插影院| 成人免费观看av| 波多野结衣 在线| 国产精品久久福利| 久草免费新视频| 欧美日韩国产激情| 波多野结衣一区二区三区四区| 欧美日韩精品一区二区三区蜜桃 | 永久免费网站视频在线观看| 亚洲调教视频在线观看| 日韩人妻精品无码一区二区三区| 日韩和欧美的一区| 手机在线免费毛片| 91女厕偷拍女厕偷拍高清| 欧洲性xxxx| 亚洲一级二级在线| 欧美三级网站在线观看| 欧美一区二区三区不卡| 亚洲av成人精品毛片| 丝袜美腿亚洲一区二区| 欧美videossex另类| 国产成人综合av| 亚洲日本va中文字幕| 茄子视频成人在线观看 | 国产精品乱码久久久久久| 免费无码毛片一区二区app| 日韩欧美视频一区二区三区| 91国产免费视频| 日韩成人黄色av| 免费a级毛片在线播放| 96精品视频在线| 自拍偷拍亚洲| 免费精品视频一区二区三区| 91成人观看| 久久精品网站视频| 成人sese在线| 成人精品一二三区| 精品日本高清在线播放| 国产精品乱码久久久| 国产丝袜精品视频| 亚洲wwwww| 国产欧美精品一区二区三区-老狼| 色戒汤唯在线| 亚洲精品免费av| 精品大片一区二区| 国产一区二区视频播放| 激情图区综合网| 欧美18—19性高清hd4k| 午夜在线电影亚洲一区| 国产女人18毛片18精品| 国产亚洲日本欧美韩国| 草碰在线视频| 91精品国产色综合久久不卡98| 国产一区二区三区免费在线| 日本在线高清视频一区| 一区二区三区四区五区在线| 精品人妻一区二区乱码| 国产精品久久久久久久久果冻传媒 | 精品人妻一区二区三区含羞草| 在线看日韩av| 2022成人影院| 麻豆av一区二区三区| 午夜视频精品| 亚洲国产综合av| 亚洲欧美激情一区二区| 91精品国自产| 色系列之999| 国产69精品久久久久按摩| 日本免费高清一区| 久久久青草婷婷精品综合日韩| jlzzjizz在线播放观看| 偷拍亚洲欧洲综合| 三级网站在线看| 午夜精品一区二区三区视频免费看 | 日本色综合中文字幕| 无码一区二区三区在线| 日韩欧美亚洲国产一区| 久草视频视频在线播放| 国产国语videosex另类| 日本黄色精品| 久久久久久久久久久久久久久国产| 国产精品久久久久影院亚瑟| 亚洲无码精品国产| 欧美本精品男人aⅴ天堂| www国产在线观看| 亚洲精品日韩av| 欧美久久综合| 美女伦理水蜜桃4| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美激情在线一区| 黑人精品一区二区三区| 欧美高清在线播放| 超碰成人免费| 日韩 欧美 视频| 99精品国产91久久久久久| 日本少妇一级片| 亚洲精品国产无天堂网2021| 国产麻豆精品一区| 久久999免费视频| 亚洲精品v亚洲精品v日韩精品| 国产精品久久国产| 99麻豆久久久国产精品免费优播| 国产午夜精品无码| 亚洲视频axxx| 日本免费成人| 国产精品视频网站在线观看| 99天天综合性| 亚洲成人av网址| 久久精品五月婷婷| 日韩三级久久| 欧美日本视频在线观看| 91美女片黄在线| 最近中文字幕免费观看| 久久躁狠狠躁夜夜爽| 国产厕拍一区| 黄网页在线观看| 性金发美女69hd大尺寸| 在线亚洲a色| xxww在线观看| 精油按摩中文字幕久久| 国产精品久久久久久久精| 亚洲国产毛片完整版| 性欧美18一19sex性欧美| 在线精品日韩| 成人午夜av影视| 91黑人精品一区二区三区| 久久久精品在线观看| 青青视频一区二区| 久久这里只精品| 亚洲一区二区三区四区的| 久久精品色图| 97久久夜色精品国产九色| 亚洲自拍另类| 北条麻妃在线观看视频| 亚洲精品久久久久中文字幕二区 | 婷婷丁香久久五月婷婷| 爱久久·www| 久久久久一区二区| 国产激情一区二区三区|