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

Lora微調(diào)實操演示(下):五次訓(xùn)練詳解(免費GPU)

人工智能
Lora 微調(diào)的環(huán)境配置、任務(wù)設(shè)計、基準(zhǔn)測試、五次迭代訓(xùn)練以及微調(diào)后的對比測試效果。

五月底寫過一篇 Lora 微調(diào)的概念鋪墊文章,這篇來結(jié)合阿里云的一個開源項目和免費試用 GPU 來做個完整的訓(xùn)練過程演示。

Lora微調(diào)實操教程(上):人話版概念詳解(附案例)

注:本篇演示的腳本部分在參考 aliyun_acp_learning 開源項目基礎(chǔ)上有部分刪減和調(diào)整。后文相關(guān)配置和訓(xùn)練過程中的實際耗時也會進行標(biāo)注說明。https://github.com/AlibabaCloudDocs/aliyun_acp_learning.git

這篇試圖說清楚:

Lora 微調(diào)的環(huán)境配置、任務(wù)設(shè)計、基準(zhǔn)測試、五次迭代訓(xùn)練以及微調(diào)后的對比測試效果。

以下,enjoy:

1、環(huán)境配置

雖然是 Lora 微調(diào)但對硬件性能要求也并不低,如果各位本地沒有 GPU 環(huán)境或者顯存不到 30GB,可以先按照下述步驟去蹭下阿里云的 DSW(交互式建模平臺)3 個月250計算時的 A10 GPU 免費試用。

https://billing-cost.console.aliyun.com/home/myfreetier

資源規(guī)格選擇免費試用頁簽中的ecs.gn7i-c8g1.2xlarge(該規(guī)格有一個 A10 GPU,顯存 30GB),鏡像選擇 modelscope:1.21.0-pytorch2.4.0-gpu-py310-cu124-ubuntu22.04(需要將“鏡像配置”->”芯片類型“切換為 GPU)

# 需要安裝以下依賴
%pip install accelerate==1.0.1 rouge-score==0.1.2 nltk==3.9.1 ms-swift[llm]==2.4.2.post2 evalscope==0.5.5rc1

注:實際安裝依賴花了 48 分鐘

2、明確訓(xùn)練狀態(tài)

老規(guī)矩,正式開始介紹前,明確一些重要概念。最基礎(chǔ)的損失函數(shù)、神經(jīng)網(wǎng)絡(luò)和各個超參數(shù)的概念本篇不再做贅述,不熟悉的盆友記得先去翻下上一篇。這部分明確下后續(xù)的訓(xùn)練和測試內(nèi)容。

模型訓(xùn)練和人的學(xué)習(xí)考試過程非常像,前后需要經(jīng)過三套題目的考驗,來確定模型訓(xùn)練所處于的狀態(tài):

2.1訓(xùn)練集

課程練習(xí)冊,帶詳細答案解析,模型會反復(fù)練習(xí),并基于損失函數(shù)產(chǎn)生訓(xùn)練損失。訓(xùn)練損失越小,說明模型在你給定的練習(xí)冊上表現(xiàn)更好。

訓(xùn)練損失不變,甚至變大說明訓(xùn)練失敗。可以理解為模型在訓(xùn)練集(練習(xí)冊)上沒有學(xué)習(xí)到知識,說明模型的學(xué)習(xí)方法有問題。

2.2驗證集

模擬考試題,模型每學(xué)習(xí)一段時間,就會測試一次,并基于損失函數(shù)產(chǎn)生驗證損失。驗證損失就是用于評估模型訓(xùn)練的效果。驗證損失越小,說明模型在模擬考試中表現(xiàn)越好。

訓(xùn)練損失和驗證損失都在下降說明模型欠擬合。可以想象成模型在訓(xùn)練集(練習(xí)冊)上的學(xué)習(xí)有進步,驗證集(模擬考試)的表現(xiàn)也變好了,但還有更多的進步空間。這時候應(yīng)該讓模型繼續(xù)學(xué)習(xí)。

2.3測試集

相當(dāng)于考試真題,模型在測試集上的準(zhǔn)確率用于評估最終的模型表現(xiàn)。訓(xùn)練損失下降但驗證損失上升說明模型過擬合。

可以理解為模型只是背下了訓(xùn)練集(練習(xí)冊),在模型考試中遇到了沒背過的題反而做不來了。這種場景需要通過一些方法去抑制模型的背題傾向,比如再給它 20 本練習(xí)冊,讓它記不住所有的題,而是逼它去學(xué)習(xí)題目里面的規(guī)律。

3、模型下載與基準(zhǔn)測試

本篇微調(diào)的基座模型選擇的是小參數(shù)的開源qwen2.5-1.5b-instruct,首先下載模型并把它加載到內(nèi)存中。

3.1模型下載(42 分鐘)

# 下載模型參數(shù)到 ./model 目錄下
!mkdir ./model 
!modelscope download --model qwen/Qwen2.5-1.5B-Instruct --local_dir './model'


from swift.llm import (
    get_model_tokenizer, get_template, ModelType,
    get_default_template_type
)
import torch


#你可以根據(jù)你的需要修改query(模型輸入)


# 獲得模型信息
model_type = ModelType.qwen2_5_1_5b_instruct
template_type = get_default_template_type(model_type)
# 設(shè)置模型本地位置
model_id_or_path = "./model"
# 初始化模型和輸入輸出格式化模板
kwargs = {}
model, tokenizer = get_model_tokenizer(model_type, torch.float32, model_id_or_path=model_id_or_path, model_kwargs={'device_map': 'cpu'}, **kwargs)
model.generation_config.max_new_tokens = 128
template = get_template(template_type, tokenizer, default_system='')
print("模型初始化完成")

3.2基準(zhǔn)模型測試(2 分鐘)

在開始模型微調(diào)前,先來看看基準(zhǔn)模型在測試集上的表現(xiàn)如何。

import json
from IPython.display import Markdown


sum, score = 0, 0
for line in open("./resources/2_7/test.jsonl"):
    # 讀取測試集中的問題
    math_question = json.loads(line)
    query = math_question["messages"][1]["content"]
    # 使用基準(zhǔn)模型推理
    response, _ = inference(model, template, query)
    # 獲取正確答案
    ans = math_question["messages"][2]["content"]
    pos = ans.find("ans")
    end_pos = ans[pos:].find('}}')
    ans = ans[pos - 2: end_pos + pos + 2]
    # 整理輸出
    print(("========================================================================================"))
    print(query.split("#數(shù)學(xué)題#\n")[1])
    print("問題答案是:" + ans)
    print("-----------模型回答----------------")
    display(Latex(response))
    print("-----------回答結(jié)束----------------")
    # 計算模型得分
    if ans in response or ans[6:-2] in response:
        score += 1
        print("模型回答正確")
    else: print("模型回答錯誤")
    sum += 1
# 總結(jié)
display(Markdown("模型在考試中得分:**" + str(int(100*score/sum)) + "** 分"))

一共有十個測試問題,這里截取其中一個問答進行展示:

{"messages": [{"role": "system", "content": ""}, {"role": "user", "content": "#輸出#\n輸出要符合經(jīng)過推理后將最終答案放在 {{ans:xxx}} 內(nèi)。\n#數(shù)學(xué)題#\n雞、鴨只數(shù)的比是5:3,雞有25只,鴨有多少只."}, {"role": "assistant", "content": "雞和鴨的比例為5:3,即雞的數(shù)量為5份,鴨為3份。已知雞有25只,對應(yīng)5份,每份數(shù)量為 $25 \\div 5 = 5$ 只。因此,鴨的數(shù)量為 $3 \\times 5 = 15$ 只。\n\n驗證:設(shè)鴨的數(shù)量為$x$,根據(jù)比例 $\\frac{25}{x} = \\frac{5}{3}$,交叉相乘得 $5x = 75$,解得 $x = 15$,與份數(shù)法一致。\n\n{{ans:15}}"}]}
========================================================================================
雞、鴨只數(shù)的比是5:3,雞有25只,鴨有多少只.
問題答案是:{{ans:15}}
-----------模型回答----------------
設(shè)雞和鴨的數(shù)量分別為  ??
  和  ??
 。根據(jù)題目信息,我們可以得到以下比例關(guān)系:
????=53


已知雞的數(shù)量  ??=25
 。 代入上述比例關(guān)系求解鴨的數(shù)量  ??
 :
25??=53


通過交叉相乘來解這個方程:
25×3=5×??


75=5??


\[ y = \frac{7
-----------回答結(jié)束----------------
模型回答錯誤

最終qwen2.5-1.5b-instruct模型在考試中得了60 分。

4、五次微調(diào)過程

這里使用 ms-swift(Modelscope Scalable lightWeight Infrastructure for Fine-Tuning)框架,它是阿里魔搭社區(qū)專門為模型訓(xùn)練開發(fā)的開源框架,在每次計算驗證損失的時候,框架會自動保存當(dāng)前訓(xùn)練階段的模型參數(shù),并在訓(xùn)練結(jié)束時自動保存訓(xùn)練過程中驗證損失最小的參數(shù)。

在接下來的多次實驗中,將重點調(diào)整學(xué)習(xí)率、LoRA 的秩、數(shù)據(jù)集學(xué)習(xí)次數(shù)三個參數(shù),并替換數(shù)據(jù)集,展示如何進行 LoRA 微調(diào),其它的參數(shù)的調(diào)整是為了方便實驗效果呈現(xiàn),如增加批大小從而縮短訓(xùn)練時間,可以不用過多關(guān)注。

4.1第一次實驗(26 秒)

                參數(shù)

              參數(shù)值

學(xué)習(xí)率

0.1

LoRA 的秩

4

數(shù)據(jù)集學(xué)習(xí)次數(shù)

1

數(shù)據(jù)集位置

數(shù)據(jù)集位置: 當(dāng)前目錄/resources/2_4/train_100.jsonl

可以調(diào)整所有的參數(shù)自由嘗試,但根據(jù)展示效果和顯存限制,有這些限制

batch_size <= 16 (顯存限制) 
max_length <= 512 (每條訓(xùn)練數(shù)據(jù)的最大長度,顯存限制) 
lora_rank <= 64 (LoRA 的秩,顯存限制)
eval_step <= 20 (方便展示)

注:ms-swift 框架的微調(diào)模塊默認(rèn)使用 LoRA 微調(diào)所以實驗中不需要顯式地聲明微調(diào)方法。同時框架會在訓(xùn)練過程中智能地減少實際學(xué)習(xí)率,保證模型不會總是跳過最優(yōu)解。

%env CUDA_VISIBLE_DEVICES=0
%env LOG_LEVEL=INFO
!swift sft \
--learning_rate '0.1' \
--lora_rank 4 \
--num_train_epochs 1 \
--dataset './resources/2_7/train_100.jsonl' \
--batch_size '8' \
--max_length 512 \
--eval_step 1 \
--model_type 'qwen2_5-1_5b-instruct' \
--model_id_or_path './model'

觀察指標(biāo)

訓(xùn)練損失增大、驗證損失增大

訓(xùn)練狀態(tài)

訓(xùn)練失敗

原因分析

很有可能是學(xué)習(xí)率過高,導(dǎo)致模型參數(shù)在最優(yōu)解附近反復(fù)橫跳,無法找到最優(yōu)解,訓(xùn)練失敗。

調(diào)整邏輯


大幅降低學(xué)習(xí)率至 0.00005,讓模型以更小步幅“謹(jǐn)慎學(xué)習(xí)”。

4.2第二次實驗(22 秒)

參數(shù)

舊參數(shù)值

新參數(shù)值

學(xué)習(xí)率 (learning_rate)

0.1

0.00005

%env CUDA_VISIBLE_DEVICES=0
%env LOG_LEVEL=INFO
!swift sft \
--learning_rate '0.00005' \
--lora_rank 4 \
--num_train_epochs 1 \
--dataset './resources/2_7/train_100.jsonl' \
--batch_size '8' \
--max_length 512 \
--eval_step 1 \
--model_type 'qwen2_5-1_5b-instruct' \
--model_id_or_path './model'

察指標(biāo)

訓(xùn)練損失減小、驗證損失也減小

訓(xùn)練狀態(tài)

欠擬合

原因分析

欠擬合是在訓(xùn)練中非常常見的現(xiàn)象。 說明在參數(shù)不變的情況下,只需要讓模型再多訓(xùn)練,就可以訓(xùn)練成功了。 當(dāng)然也可以修改參數(shù)來加速訓(xùn)練過程

調(diào)整邏輯


1. 讓模型多訓(xùn)練:數(shù)據(jù)集學(xué)習(xí)次數(shù)epoch增加至 50。
2. 將batch_size調(diào)整到最大值 16,加速模型訓(xùn)練。

4.3第三次實驗(7 分鐘)

參數(shù)

舊參數(shù)值

新參數(shù)值

數(shù)據(jù)集學(xué)習(xí)次數(shù) 

1

50

batch_size

8

16

eval_step

1

20

觀察指

訓(xùn)練損失減小、驗證損失先減小后增大

訓(xùn)練狀態(tài):

過擬合

原因分析

過擬合也是在訓(xùn)練中非常常見的現(xiàn)象。 說明模型在“背題”,沒有學(xué)習(xí)數(shù)據(jù)集中的知識。 我們可以通過降低數(shù)據(jù)集學(xué)習(xí)次數(shù) (epoch) 、增大數(shù)據(jù)量來讓模型“記不住題”。

調(diào)整邏輯


1. 數(shù)據(jù)集學(xué)習(xí)次數(shù) (epoch) 降低至 5。
2. 將由 DeepSeek-R1 生成的題解數(shù)量擴充至 1000 條。 數(shù)據(jù)集位置: 當(dāng)前目錄/resources/2_4/train_1k.jsonl
3. 數(shù)據(jù)量增加后,根據(jù)之前的學(xué)習(xí)將 LoRA 的秩提升至 16

一般來說,微調(diào)至少需要1000+條優(yōu)質(zhì)的訓(xùn)練集數(shù)據(jù)。低于此數(shù)量級時,模型多學(xué)幾遍就開始“背題”而非學(xué)習(xí)數(shù)據(jù)中的知識。

4.4第四次實驗(5 分鐘)

數(shù)

參數(shù)值

新參數(shù)值

更換數(shù)據(jù)集

100 條數(shù)據(jù)

1000+ 條數(shù)據(jù)

數(shù)據(jù)集學(xué)習(xí)次數(shù) 

50

3

LoRA 的秩

4

8


%env CUDA_VISIBLE_DEVICES=0
%env LOG_LEVEL=INFO
!swift sft \
--learning_rate '0.00005' \
--lora_rank 8 \
--num_train_epochs 3 \
--dataset './resources/2_7/train_1k.jsonl' \
--batch_size '16' \
--max_length 512 \
--eval_step 20 \
--model_type 'qwen2_5-1_5b-instruct' \
--model_id_or_path './model'

觀察指標(biāo)

訓(xùn)練損失減小、驗證損失也減小

訓(xùn)練狀態(tài)

欠擬合

原因分析

訓(xùn)練快成功了

調(diào)整邏輯


讓模型多訓(xùn)練:數(shù)據(jù)集學(xué)習(xí)次數(shù)增加至 15。

4.5第五次實驗(23 分鐘)

參數(shù)

舊參數(shù)值

新參數(shù)值

數(shù)據(jù)集學(xué)習(xí)次數(shù) 

3

15


%env CUDA_VISIBLE_DEVICES=0
%env LOG_LEVEL=INFO
!swift sft \
--learning_rate '0.00005' \
--lora_rank 8 \
--num_train_epochs 15 \
--dataset './resources/2_7/train_1k.jsonl' \
--batch_size '16' \
--max_length 512 \
--eval_step 20 \
--model_type 'qwen2_5-1_5b-instruct' \
--model_id_or_path './model'

觀察指標(biāo)(訓(xùn)練損失、驗證損失)

訓(xùn)練損失基本不減小、驗證損失也基本不減小甚至還略微升高

訓(xùn)練狀態(tài):

訓(xùn)練成功

5、微調(diào)后測試

微調(diào)后一般會保存兩個 checkpoint 文件,分別是 best_model_checkpoint(在驗證集表現(xiàn)最佳的模型參數(shù))與 last_model_checkpoint(微調(diào)任務(wù)完成時的模型參數(shù))。這里選取 best_model_checkpoint 地址替換下面代碼中的 ckpt_dir,就能調(diào)用微調(diào)后的模型。

先加載模型到內(nèi)存中:

from swift.tuners import Swift


# 請在運行前修改ckpt_dir到正確的位置
ckpt_dir = 'output/qwen2_5-1_5b-instruct/qwen2_5-1_5b-instruct/v4-20250710-200534/checkpoint-1065'
# 加載模型
ft_model = Swift.from_pretrained(model, ckpt_dir, inference_mode=True)

來看看微調(diào)后的模型在考試中的表現(xiàn):

import json
from IPython.display import Markdown


sum, score = 0, 0.0
for line in open("./resources/2_7/test.jsonl"):
    # 讀取測試集中的問題
    math_question = json.loads(line)
    query = math_question["messages"][1]["content"]
    # 使用微調(diào)成功的模型推理
    response, _ = inference(ft_model, template, query)
    # 獲取正確答案
    ans = math_question["messages"][2]["content"]
    pos = ans.find("ans")
    end_pos = ans[pos:].find('}}')
    ans = ans[pos - 2: end_pos + pos + 2]
    # 整理輸出
    print(("========================================================================================"))
    print(query.split("#數(shù)學(xué)題#\n")[1])
    print("問題答案是:" + ans)
    print("-----------模型回答----------------")
    display(Latex(response))
    print("-----------回答結(jié)束----------------")
    # 計算模型得分
    if ans in response:
        score += 1
        print("模型回答正確")
    elif ans[6 : -2] in response:
        score += 0.5
        print("模型回答正確但輸出格式錯誤")
    else: print("模型回答錯誤")
    sum += 1
# 總結(jié)
display(Markdown("微調(diào)后的模型在考試中得分:**" + str(int(100*score/sum)) + "** 分"))

6、寫在最后

這篇只是個過程演示,在實際生產(chǎn)中,是否微調(diào)需綜合考慮算力成本、數(shù)據(jù)規(guī)模和數(shù)據(jù)質(zhì)量等因素。一般經(jīng)驗是,能靠提示詞工程、RAG 、工作流編排能解決的先做工程優(yōu)化為好。

最后留個彩蛋:一道多選題。(答案公眾號聊天頁面發(fā)送“微調(diào)”兩個字看正確答案和解釋)

你正在使用 Swift 微調(diào)一個 Qwen 模型,發(fā)現(xiàn)模型在驗證集上的 loss 出現(xiàn)了明顯的上升趨勢,以下哪些操作可以幫助你緩解或解決這個問題?
A. 增大 --learning_rate
B. 減小 --learning_rate
C. 增大 --num_train_epochs
D. 減小 --num_train_epochs
責(zé)任編輯:龐桂玉 來源: 韋東東
相關(guān)推薦

2025-07-11 10:31:11

2010-05-26 14:24:24

MySQL數(shù)據(jù)庫

2010-05-17 09:12:00

MySQL5.1免安裝

2010-05-28 13:21:48

MySQL數(shù)據(jù)庫

2024-06-06 08:25:30

2010-06-04 18:53:11

MySQL免安裝版

2025-05-06 10:05:23

2022-08-24 15:08:19

模型數(shù)據(jù)技術(shù)

2023-06-09 08:00:00

QLoRa語言模型微調(diào)

2024-10-08 15:00:00

2023-07-18 13:58:09

模型原理

2025-06-12 09:48:27

2024-11-11 13:33:28

2024-03-25 14:22:07

大型語言模型GaLore

2025-04-30 09:19:32

2024-11-11 14:40:00

AI語言模型

2017-07-14 15:41:24

AI人工智能思必馳

2023-08-21 10:20:03

開源模型

2025-02-13 09:45:31

2013-05-23 09:49:28

虛擬化桌面虛擬化
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲天堂福利av| 美女100%无挡| 久久久久亚洲av无码专区 | 国产午夜精品视频| 动漫美女被爆操久久久| 久久五月天婷婷| 日韩欧美在线一区二区| 中国一级片在线观看| 欧美少妇网站| 国产一区二区精品久久| 国产一区二区三区丝袜| 手机精品视频在线| jizz视频在线观看| 亚洲不卡在线| 亚洲人成网站精品片在线观看| 麻豆视频一区| 91亚洲国产成人精品一区二区三| www.日韩系列| 好男人www社区| 亚洲 小说区 图片区 都市| 国产精品草草| 日韩一级高清毛片| 天堂av在线中文| 国产尤物视频在线观看| 日本一二区不卡| 在线观看一区日韩| 亚洲.欧美.日本.国产综合在线| 国产无码精品在线观看| 国产成人澳门| 亚洲超碰精品一区二区| 91九色在线观看| 我家有个日本女人| 99精品在线免费观看| 亚洲同性同志一二三专区| 久久99精品久久久久久水蜜桃| 久久久精品免费看| 亚洲动漫在线观看| 91福利国产成人精品照片| 欧美成人一区二区在线| 国产高清不卡视频| 99久久久久国产精品| 欧美一区二区视频在线观看2020 | 国产精品特级毛片一区二区三区| 99久久.com| 亚洲图片欧美日产| 日韩av一二区| 四虎影视4hu4虎成人| 国产精品三级电影| 99在线影院| 国产精品视频久久久久久久| 欧美人成在线| 亚洲精品日韩久久久| 美女网站色免费| 91高清在线观看视频| 成人福利电影精品一区二区在线观看| 欧美一级在线亚洲天堂| 91社区视频在线观看| 国产精品一区二区精品视频观看| 亚洲午夜国产一区99re久久| 久久久久久九九| 亚洲欧美日本在线观看| 99在线热播精品免费| 26uuu另类亚洲欧美日本老年| 久久久久久天堂| 国产精品地址| 高清在线视频日韩欧美| 三区四区在线观看| 成人短片线上看| 精品国产一二三| 人人干人人视频| 国产一区二区主播在线| 欧美日韩精品欧美日韩精品一综合| 成人国产在线看| 国产区视频在线播放| 高清av一区二区| 国产精品久久久久久久美男 | 日韩在线一区二区三区四区| 美女精品在线| 色综合视频网站| 人妻视频一区二区| silk一区二区三区精品视频| 欧美无人高清视频在线观看| 女人被男人躁得好爽免费视频 | 一区二区三区天堂av| 天天干天天色天天干| 美女的胸无遮挡在线观看| 婷婷国产在线综合| 成人免费看片视频在线观看| 国产69精品久久app免费版| 国产午夜亚洲精品不卡| 国产在线一区二区三区欧美| 国产一区二区在线视频聊天| 国产乱一区二区| 国产成人高潮免费观看精品| 久久高清免费视频| 91精品亚洲| 最近2019免费中文字幕视频三| 少妇光屁股影院| 日韩精品免费一区二区三区竹菊| 欧美刺激脚交jootjob| 天堂在线中文在线| 91福利精品在线观看| 色综合咪咪久久| 精品国产一二三四区| 2018av在线| 亚洲国产日日夜夜| 精品国产一区二区三区无码| 亚洲wwwww| 亚洲美女免费视频| 51xx午夜影福利| 小早川怜子影音先锋在线观看| 精品久久久久久久久久ntr影视| 另类小说色综合| 97久久精品| 中文字幕一区二区精品| 亚洲天堂精品一区| 欧美日韩国产综合一区二区| 国产欧美va欧美va香蕉在线| 潮喷失禁大喷水aⅴ无码| 亚洲欧美日韩高清在线| 中文字幕久久久av一区| 久久久久久久9999| 免费日本视频一区| 欧洲黄色一区| 中文字幕在线观看一区| 日韩欧美亚洲区| 1区2区在线观看| 91国偷自产一区二区使用方法| 中文字幕第六页| 亚洲成a人片在线www| 激情视频网站在线观看| 亚洲精品孕妇| 欧美激情视频网站| 中文精品久久久久人妻不卡| 奇米精品一区二区三区在线观看一| 国产福利精品av综合导导航| 成人9ⅰ免费影视网站| 欧美成人一二三区| 久久www成人_看片免费不卡| 亚洲一区二区中文字幕| 国产成人一级片| 久久精品成人| 91久久精品一区二区别| 久久久老熟女一区二区三区91| 99只有精品| 日韩av在线影院| 精品无码国产污污污免费网站| 色88久久久久高潮综合影院| 欧亚精品在线观看| 亚洲一级av毛片| 国产凹凸在线观看一区二区| 只有这里有精品| 日韩欧国产精品一区综合无码| 欧美一二三区在线观看| 永久免费看片直接| 日韩视频不卡| 国产精品爽黄69| avtt亚洲| 午夜精品爽啪视频| 久久久久久久穴| 黄色欧美成人| 国产尤物99| 精品人人视频| 宅男噜噜噜66一区二区66| 超碰caoprom| 色777狠狠狠综合伊人| 国产成人精品av在线| 久草在线网址| 亚洲一二三四在线观看| 乳色吐息在线观看| 欧美国产91| 欧美一级大片视频| 免费观看成年在线视频网站| 一区二区在线观看免费视频播放| 精品一卡二卡三卡| 久久天堂久久| 尤物yw午夜国产精品视频明星| 日韩免费av网站| 懂色av一区二区夜夜嗨| 久久99精品久久久久久久久久| 日韩欧美精品一区二区三区| 亚洲香蕉在线观看| 国产精品一区二区av白丝下载| 亚洲视频一区二区免费在线观看| 黑人无套内谢中国美女| 99在线观看免费视频精品观看| 欧美日韩成人一区二区三区| 日韩精品分区| 亚洲精品久久久久中文字幕二区| 国产大片免费看| 麻豆国产精品777777在线| 欧美精品欧美精品系列c| 91超碰碰碰碰久久久久久综合| 欧美成人精品在线观看| 中文字幕欧美色图| 久久久久久久久久久久久夜| 成人黄色av片| 超碰地址久久| 国产成人综合精品在线| 26uuu亚洲电影在线观看| 日韩av在线免费看| 国产又粗又猛又爽| 亚洲成人动漫一区| 波多野结衣家庭教师在线观看| 国产一区不卡视频| 北条麻妃在线一区| 亚洲动漫在线观看| 成人日韩在线电影| 色多多视频在线观看| 91黄视频在线| 久艹视频在线观看| 成人午夜伦理影院| 男操女免费网站| 亚洲三级观看| 国产一级黄色录像片| 国产精品欧美三级在线观看| 国产成人精品久久久| 中文在线手机av| 在线免费观看羞羞视频一区二区| 懂色av蜜臀av粉嫩av分享吧| 亚洲第一在线综合网站| 黑人と日本人の交わりビデオ| 99视频在线精品| 日本网站在线看| 久久福利毛片| 色欲色香天天天综合网www| 美女av一区| 亚洲最大的成人网| 国产精品亚洲成在人线| www.日韩免费| 最新国产在线观看| 亚洲情综合五月天| 一级片免费观看视频| 色综合中文字幕| 日本少妇在线观看| 一区二区三区免费网站| bl动漫在线观看| 国产精品一区在线观看你懂的| 成人亚洲精品777777大片| 性感少妇一区| 一区二区三区观看| caoporn成人| 亚洲一区二区三区四区视频| www.一区| 国产精品亚洲欧美导航| 电影在线观看一区二区| 国产精品高潮在线| av在线播放观看| 亚洲精品国产电影| 成人久久久精品国产乱码一区二区 | 99中文字幕| 亚洲网一区二区三区| 51久久精品夜色国产麻豆| 国产精品vvv| 97在线日本国产| 欧美videos极品另类| 精品奇米国产一区二区三区| 中文字幕免费观看| 欧美午夜影院在线视频| 人人澡人人澡人人看| 中文字幕一区二区三区色视频| 日本美女xxx| 国产精品久久久久久久久免费桃花| 你懂得视频在线观看| 亚洲欧美在线另类| 粉嫩av懂色av蜜臀av分享| 麻豆精品国产传媒mv男同| 伊人影院综合在线| 在线亚洲观看| 中文字幕乱码人妻综合二区三区| 久久久久久黄| 日韩一区二区三区久久| 国产白丝网站精品污在线入口| 一级黄色片毛片| 久久精品欧美一区二区三区麻豆| 午夜激情福利电影| 99久久99久久精品免费看蜜桃| mm131国产精品| 国产美女在线精品| 理论片大全免费理伦片| 久久久久久久久久久电影| 国产精品18在线| 一区二区三区在线播| 亚洲 欧美 日韩 综合| 欧美性大战久久久| www.97av.com| 欧美精品一二三区| 日韩精品在线一区二区三区| 天天色图综合网| 伊人久久久久久久久久久久 | 亚洲97在线观看| 福利视频亚洲| 99视频在线播放| 精品久久久久久久| 国产精品一区二区不卡视频| av在线国产精品| 国产一区二区在线观看免费播放| 国产一区二区欧美| 色婷婷777777仙踪林| 中文在线不卡| 午夜精品久久久久久久无码| 免费高清在线一区| 国产麻豆剧传媒精品国产av| 亚洲国产精品黑人久久久| 国产精品免费无码| 亚洲综合色区另类av| 真实新婚偷拍xxxxx| 精品久久久久久最新网址| av福利在线播放| 2018国产精品视频| 亚洲欧洲日本韩国| 亚洲自拍偷拍视频| 大片网站久久| 欧美乱大交xxxxx潮喷l头像| 精品一区二区三区免费毛片爱| 爱爱爱爱免费视频| 久久久久久97三级| 亚洲欧美在线视频免费| 精品久久久久久亚洲国产300| 瑟瑟视频在线免费观看| 亚洲国产另类 国产精品国产免费| 亚洲精品传媒| 国产精品999999| 天天躁日日躁成人字幕aⅴ| 九九热只有这里有精品| 国产美女精品人人做人人爽| 精品无码在线观看| 欧美性xxxx| 亚洲区小说区图片区| 欧美高清电影在线看| 精品国产伦一区二区三区观看说明 | 国产精品久久久久久在线| 亚洲精品一区av在线播放| www.九色在线| 国产伦精品一区二区三区四区视频 | 欧美精品卡一卡二| 国产精品99久久久久久宅男| 亚洲欧美日韩网站| 国产精品久久久久天堂| 亚洲无码精品一区二区三区| 亚洲精品在线看| 亚洲v.com| 久久久久高清| 免费在线亚洲欧美| 毛片网站免费观看| 欧美性猛交xxxx偷拍洗澡| 亚洲欧美自偷自拍| 热久久99这里有精品| 九一成人免费视频| 中文字幕制服丝袜在线| 伊人精品在线| 日日噜噜噜噜久久久精品毛片| 国产精品18久久久久久vr| a一级免费视频| 91精品欧美福利在线观看| 日本三级在线播放完整版| 91视频九色网站| 亚洲丝袜美腿一区| 久久精品国产精品亚洲色婷婷| 久久99国产精品麻豆| 顶臀精品视频www| 日韩欧美国产不卡| www.综合网.com| 国产欧美精品xxxx另类| 香蕉av一区二区| 制服丝袜av在线| 欧美日韩免费在线观看| 国产精品无码AV| 久久6免费高清热精品| 97欧美成人| 亚洲免费av网| 高清久久久久久| 天码人妻一区二区三区在线看| 亚洲香蕉成视频在线观看| 中文字幕综合| 国产中文字幕二区| 亚洲国产激情av| 精品人妻伦一二三区久久| 国产69精品久久久| 精品久久国产| 韩国三级在线播放| 狠狠躁夜夜躁人人爽超碰91| 最新国产在线观看| 国产精品入口免费| 久久最新视频| 黄色正能量网站| 欧美日韩三级视频| 日韩av官网| 色噜噜狠狠一区二区三区| 国产成人免费视频一区| 国产午夜麻豆影院在线观看| 久久精品成人一区二区三区| 国产综合色在线观看| 亚洲区成人777777精品| 91视频精品在这里| av中文字幕免费在线观看| 热久久视久久精品18亚洲精品| 91不卡在线观看| 精品人妻少妇嫩草av无码| 欧美一区在线视频|