精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

亚洲另类欧美日韩| 日本中文字幕亚洲| 日韩一级片中文字幕| 国产福利资源一区| 亚洲国产综合91精品麻豆| 97超级在线观看免费高清完整版电视剧| 国产suv精品一区二区68| 色999久久久精品人人澡69| 中文字幕视频一区| 不卡视频一区| 色一情一乱一伦| 成人羞羞网站入口免费| 欧美一级欧美三级| 青青草国产免费| 久蕉在线视频| 国产在线一区二区| 午夜精品久久久久久99热| 黄色在线观看av| 天堂综合在线播放| 亚洲制服丝袜在线| 国产一区免费观看| 国产免费av一区| 精品少妇av| 日韩一区二区免费高清| 日韩久久一级片| 蜜桃av在线免费观看| 丁香婷婷综合激情五月色| 欧美在线一区二区三区四| 内射毛片内射国产夫妻| 精品一区二区三区中文字幕在线 | 国产成人黄色av| www色aa色aawww| 欧美电影免费网站| 欧美精品自拍偷拍动漫精品| 欧美 日韩 亚洲 一区| 91激情在线| 成人动漫av在线| 国产美女搞久久| 国产网址在线观看| 日韩在线观看一区| 亚洲精品一区二区三区不| 亚洲精品成人在线播放| 亚洲欧洲美洲av| 樱花草国产18久久久久| 亚洲一区二区在线看| 香蕉人妻av久久久久天天| 国产在线看一区| 国产97在线播放| 中日韩精品视频在线观看| 亚洲成人精选| 中文字幕少妇一区二区三区| 亚洲精品乱码久久久久久久| 国产精品亚洲综合在线观看 | 国产成人av自拍| 国产欧美一区二区三区四区| 久久精品偷拍视频| 性感少妇一区| 97在线精品视频| 国产精品美女毛片真酒店| 日本在线电影一区二区三区| 日韩久久免费视频| 这里只有精品在线观看视频| 玖玖精品一区| 欧美一区二区成人6969| av污在线观看| 91伊人久久| 欧美三级日韩三级| 在线观看av网页| av成人在线观看| 欧美伊人久久久久久午夜久久久久| 欧美爱爱视频免费看| 国产va在线视频| 婷婷丁香久久五月婷婷| 91视频 -- 69xx| 伊人网在线播放| 精品成人在线视频| 欧美黄色免费影院| 依依综合在线| 在线观看日韩高清av| 一区二区在线播放视频| 成人黄色在线| 欧美美女bb生活片| 欧美午夜精品理论片| 婷婷激情成人| 日韩免费视频线观看| 日本一区二区免费视频| av一级亚洲| 日韩成人在线观看| 国产精品扒开腿做爽爽| av一区二区高清| 国产一区二区日韩| 久久精品三级视频| 欧美激情欧美| 久精品免费视频| 日韩无码精品一区二区三区| 欧美专区18| 国产精选久久久久久| 国产视频在线免费观看| 东方aⅴ免费观看久久av| 久久精品国产一区二区三区日韩| 免费在线看v| 国产精品婷婷午夜在线观看| 久久久久久久久影视| а√天堂中文资源在线bt| 亚洲一区成人在线| 欧美日韩福利在线| 97成人资源| 欧美日韩成人在线| 在线精品视频播放| 色欧美自拍视频| 久久久爽爽爽美女图片| 中文字幕手机在线视频| 国内精品视频一区二区三区八戒| 国产精品污www一区二区三区| 青青草超碰在线| 1000精品久久久久久久久| 黄色一级在线视频| 91丨精品丨国产| 日韩成人在线视频网站| 国产一区二区三区视频播放| 国产精品草草| 国产精国产精品| 懂色av成人一区二区三区| 国产欧美一区二区精品性色 | 狠狠干综合网| 国产精品视频免费在线| 日批免费在线观看| 亚洲欧美另类久久久精品| wwwxxx黄色片| 操欧美女人视频| 久久久www成人免费精品| 欧美日韩精品区| 日本不卡高清视频| 91香蕉视频在线下载| 国产美女视频一区二区三区| 亚洲午夜精品在线| 奇米视频888| 综合国产视频| 午夜精品一区二区三区在线视| 中文字幕资源网| 久久亚洲精精品中文字幕早川悠里| 水蜜桃在线免费观看| 亚洲www免费| 欧美一区二区视频网站| 色欲AV无码精品一区二区久久| 悠悠资源网久久精品| 92看片淫黄大片欧美看国产片| 免费国产在线观看| 欧美日韩一区二区精品| 在线成人激情视频| 99热这里只有精品在线播放| 中文字幕一区二区三区中文字幕| 一本大道亚洲视频| 在线观看中文字幕视频| 丁香啪啪综合成人亚洲小说 | 国产麻豆精品在线| 日本三级中国三级99人妇网站| av中文字幕在线看| 欧美成人精品1314www| 中文字幕资源站| 首页综合国产亚洲丝袜| 久久精品国产一区二区三区不卡| 超碰在线97国产| 欧美xxxx老人做受| 久久久久久久久久网站| 久久精品国产精品青草| 日韩三级在线播放| 日日av拍夜夜添久久免费| 亚洲男女自偷自拍图片另类| 中日韩黄色大片| 国产宾馆实践打屁股91| av日韩在线看| 香港久久久电影| 欧美国产精品人人做人人爱| 午夜精品在线播放| 亚洲最大色网站| 亚洲视频 中文字幕| 在线成人h网| 国产伦理久久久| 精精国产xxx在线视频app| 亚洲成人性视频| 免费在线观看黄网站| 成人精品视频网站| 9久久9毛片又大又硬又粗| 99热这里只有精品首页| 91国产精品91| 欧美xxx.com| 欧美性三三影院| 天堂av免费在线| 国产精品一区二区x88av| 国产一区 在线播放| 激情亚洲另类图片区小说区| 欧美在线国产精品| 国产三级视频在线播放线观看| 91官网在线观看| 自拍偷拍第9页| 丁香啪啪综合成人亚洲小说 | 久久综合九色| 亚洲mv在线看| 亚洲成人高清| 精品国产一区二区在线| 亚洲男人第一天堂| 欧美性猛交xxxx偷拍洗澡 | 国产婷婷精品av在线| 亚洲福利精品视频| 五月婷婷六月综合| 好吊色欧美一区二区三区视频| 黑人巨大亚洲一区二区久 | 尤物网在线观看| 精品国产伦理网| 天天天天天天天干| 一区二区三区日韩精品| 中文字幕国产专区| 国产原创一区二区三区| 337p粉嫩大胆噜噜噜鲁| 日韩美女一区二区三区在线观看| 成人乱色短篇合集| 咪咪网在线视频| 久久av.com| 精品999视频| 欧美一级淫片007| 亚洲GV成人无码久久精品| 亚洲私人影院在线观看| 毛茸茸多毛bbb毛多视频| 久久成人免费网| 每日在线更新av| 欧美久久九九| 亚洲国产精品综合| 丁香五月缴情综合网| 亚州精品天堂中文字幕| а√天堂官网中文在线| 亚洲天堂精品在线| 欧美熟妇另类久久久久久不卡| 在线观看91精品国产入口| 国产在线观看免费av| 亚洲欧洲日韩综合一区二区| 素人fc2av清纯18岁| 国产成人精品三级麻豆| 在线观看亚洲色图| 亚洲自拍另类| 日韩精品一区二区免费| 97在线精品| 视频在线一区二区三区| 中文字幕av一区二区三区人| 国内精品**久久毛片app| 外国成人毛片| 热久久这里只有精品| 中国av在线播放| 按摩亚洲人久久| 国产youjizz在线| 亚洲欧美成人网| 欧美在线 | 亚洲| 日韩精品一区二区三区在线 | 成人ww免费完整版在线观看| 在线观看中文字幕亚洲| 美国一级片在线免费观看视频| 精品国产乱码久久久久久蜜臀| 国产黄色大片网站| 欧美日韩国产片| 亚洲 欧美 中文字幕| 黑人极品videos精品欧美裸| 国产在线拍揄自揄拍无码视频| 亚洲综合免费观看高清完整版在线 | 97在线观看免费视频| 成人av在线播放网站| 黑人性生活视频| 国产黄色精品视频| 欧美一级大片免费看| 国产一区二区精品久久| 在线观看中文av| 国产成人在线网站| 黄色在线免费播放| 99麻豆久久久国产精品免费 | 中文文字幕一区二区三三| 在线视频一区二区三区| 成人黄色片在线观看| 欧美日韩国产一区二区三区地区| 怡红院成永久免费人全部视频| 欧美日韩免费高清一区色橹橹 | 久久人妻少妇嫩草av蜜桃| 国产精品18久久久久| 91成人在线观看喷潮蘑菇| 成人国产精品免费观看| 久久人人爽人人爽人人片| 国产日韩精品一区二区三区| 免费黄在线观看| 中文字幕在线不卡视频| 日本a级片视频| 午夜精品一区在线观看| 三级视频在线观看| 欧美日韩国产区一| 亚洲av无码国产精品永久一区| 亚洲精品成人久久| 国产精品四虎| 欧美成人一区二区三区电影| 中文字幕有码在线观看| 91精品国产高清自在线看超| 性欧美1819sex性高清| 成人免费观看网址| 成人免费直播在线| 日本一区二区三区在线视频 | 国产91视觉| 精品少妇av| 高清无码视频直接看| 雨宫琴音一区二区在线| 手机看片福利日韩| 国产精品18久久久久久久网站| 无码人妻精品一区二区三应用大全| 中文字幕第一区二区| 国产亚洲欧美精品久久久www| 91福利国产成人精品照片| 国产精品久久久久久久免费| 亚洲激情在线视频| 日韩毛片久久久| 9.1国产丝袜在线观看 | 欧美亚洲不卡| 日本三区在线观看| 国产成人8x视频一区二区| 男人操女人动态图| 亚洲一二三专区| 一区二区三区播放| 亚洲精品影视在线观看| 污污片在线免费视频| 国产激情视频一区| 国产亚洲成av人片在线观黄桃| 亚洲精品国产系列| 国产精品入口66mio| 日本人dh亚洲人ⅹxx| 中文字幕av一区二区三区免费看| 国产无遮挡aaa片爽爽| 欧美日韩精品一区二区三区 | 国产色播av在线| 成人写真福利网| 精品国产一区二区三区噜噜噜| 91九色在线观看视频| www.日韩在线| 日本高清www免费视频| 精品国产乱码久久久久久免费| 免费在线看电影| 99三级在线| 亚洲综合激情在线| 国产在线观看中文字幕| 亚洲欧洲日本在线| 999免费视频| 久久777国产线看观看精品| 国产一区二区三区国产精品| 影音先锋男人的网站| 国产综合成人久久大片91| 国产精品白丝喷水在线观看| 欧美高清视频www夜色资源网| 免费a在线看| 欧美深性狂猛ⅹxxx深喉| 大尺度一区二区| 日韩欧美中文字幕视频| 日韩亚洲欧美成人一区| 直接在线观看的三级网址| 99国产在线视频| 91久久中文| 国产美女喷水视频| 91久久免费观看| 午夜老司机在线观看| 91午夜理伦私人影院| 欧美jizzhd精品欧美巨大免费| 真实乱偷全部视频| 亚洲成人在线观看视频| 五月天福利视频| 日韩美女福利视频| 成人av资源电影网站| 尤蜜粉嫩av国产一区二区三区| 国产精品第四页| 亚洲第一第二区| 97成人超碰免| 日韩欧美精品| 色姑娘综合天天| 天天色图综合网| 成人欧美亚洲| 91在线在线观看| 久久精品男女| 手机在线免费看毛片| 亚洲国产精品成人va在线观看| 姬川优奈av一区二区在线电影| av动漫免费观看| 97久久久精品综合88久久| 日批视频免费观看| 欧美大片免费观看| 夜色77av精品影院| 婷婷中文字幕在线观看| 精品久久久久久久中文字幕| 免费高清完整在线观看| 久久99精品久久久久久久久久| 日本不卡视频在线观看| 国产亚洲精品女人久久久久久| 亚洲性生活视频| 中文字幕区一区二区三| 国产成人综合一区| 一区二区三区国产豹纹内裤在线 | 欧洲亚洲精品久久久久| 青草视频在线观看视频| 亚洲国产精品黑人久久久 | 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 |