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

機器學習 | 從0開發大模型之注意力機制

開發 前端
在卷積,全連接等神經網絡中,都只考慮不隨意的線索,只關注重要的特征信息。

無論是在機器學習,深度學習還是人工智能中,我們都在尋找一種模擬人腦的機制,注意力機制源于人腦,比如當我們欣賞一本書的時候,當我們對某個知識點感興趣的時候,會映像深刻,可能會反復讀某一段文字,但是對于其他不敢興趣的內容會忽略,說明人腦在處理信號的時候是一定會劃權重,而注意力機制正是模仿大腦這種核心的功能。

1、什么是注意力機制

在卷積,全連接等神經網絡中,都只考慮不隨意的線索,只關注重要的特征信息。 注意力機制是考慮所有線索,并關注其中最重要的特征信息:

  • 隨意線索被稱為查詢(query)
  • 每個輸入都是一個值(value)和不隨意線索(key)
  • 通過注意力池化層偏向性選擇某些輸入

注意力機制注意力機制

(1)非參數注意力

非參數注意力機制是使用查詢和鍵值對來計算注意力權重,然后通過加權平均來獲得輸出,數學表達式:

其曲線如下:

預測曲線1

可以認為x=query,y=key=value,其中輸入任何一個x,輸出都是平均值,但是這個函數的設計不太合理,因此Nadarrya 和Watson 提出更好的想法,其公式如下:

通過核函數將x和xi的距離關系做映射,如果一個xi(key)越接近給定的查詢x,那么給yi(value)的權重就越大,反之越小,這樣就可以控制注意力的大小,其曲線如下:

預測曲線2

兩段驗證的代碼也給出來(參考《動手學深度學習》):

import torch
from torch import nn

n_train = 50  # 訓練樣本數
test_len = 10
x_train, _ = torch.sort(torch.rand(n_train) * test_len)   # 排序后的訓練樣本

def f(x):
    return 2 * torch.sin(x) + x**0.8

y_train = f(x_train) + torch.normal(0.0, 0.5, (n_train,))  # 訓練樣本的輸出
x_test = torch.arange(0, test_len, 0.1)  # 測試樣本
y_truth = f(x_test)  # 測試樣本的真實輸出
n_test = len(x_test)  # 測試樣本數
n_test

# 求平均值
y_hat = torch.repeat_interleave(y_train.mean(), n_test)
print(y_hat)

X_repeat = x_test.repeat_interleave(n_train).reshape((-1, n_train))
attention_weights = nn.functional.softmax(-(X_repeat - x_train)**2 / 2, dim=1)
y_hat = torch.matmul(attention_weights, y_train)

(2)參數注意力

非參數和參數的區別在于,參數注意力使用的是參數矩陣,而非參數注意力使用的是核函數,其公式如下:

參數矩陣需要學習一個w參數,通過w參數拿到最優的擬合曲線,最簡單的方法就是通過訓練,訓練代碼如下(參考《動手學深度學習》):

class NWKernelRegression(nn.Module):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.w = nn.Parameter(torch.rand((1,), requires_grad=True))

    def forward(self, queries, keys, values):
        # queries和attention_weights的形狀為(查詢個數,“鍵-值”對個數)
        queries = queries.repeat_interleave(keys.shape[1]).reshape((-1, keys.shape[1]))
        self.attention_weights = nn.functional.softmax(
            -((queries - keys) * self.w)**2 / 2, dim=1)
        # values的形狀為(查詢個數,“鍵-值”對個數)
        return torch.bmm(self.attention_weights.unsqueeze(1),
                         values.unsqueeze(-1)).reshape(-1)

X_tile = x_train.repeat((n_train, 1))
Y_tile = y_train.repeat((n_train, 1))
keys = X_tile[(1 - torch.eye(n_train)).type(torch.bool)].reshape((n_train, -1))
values = Y_tile[(1 - torch.eye(n_train)).type(torch.bool)].reshape((n_train, -1))

net = NWKernelRegression()
loss = nn.MSELoss(reduction='none')
trainer = torch.optim.SGD(net.parameters(), lr=0.5)

for epoch in range(100):
    trainer.zero_grad()
    l = loss(net(x_train, keys, values), y_train)
    l.sum().backward()
    trainer.step()
    print(f'epoch {epoch + 1}, loss {float(l.sum()):.6f}')

keys = x_train.repeat((n_test, 1))
values = y_train.repeat((n_test, 1))
y_hat = net(x_test, keys, values).unsqueeze(1).detach()

# 輸出:
epoch 1, loss 211.842209
epoch 2, loss 29.818174
epoch 3, loss 29.818165
epoch 4, loss 29.818157
epoch 5, loss 29.818144
...

其擬合曲線:

預測曲線3預測曲線3

2、多頭注意力

前面講了注意力的參數,目的是通過query結合key,value獲取對應的輸出,但是如果整個序列只是一個單獨的注意力池化,輸出的擬合可能不準確,因此加入多頭注意力,其公式如下:

其中每個w都是可以學習的參數,這樣可以組合多個(query,key,value)獲得輸出,最后將輸出做一層全連接層,得到最終的結果,設計如下:

多頭注意力多頭注意力

由于大模型的開發中會用到,所以這里給出代碼(參考《動手學深度學習》):

def transpose_qkv(X, num_heads):
    """為了多注意力頭的并行計算而變換形狀"""
    # 輸入X的形狀:(batch_size,查詢或者“鍵-值”對的個數,num_hiddens)
    # 輸出X的形狀:(batch_size,查詢或者“鍵-值”對的個數,num_heads,
    # num_hiddens/num_heads)
    X = X.reshape(X.shape[0], X.shape[1], num_heads, -1)
    # 輸出X的形狀:(batch_size,num_heads,查詢或者“鍵-值”對的個數,
    # num_hiddens/num_heads)
    X = X.permute(0, 2, 1, 3)
    # 最終輸出的形狀:(batch_size*num_heads,查詢或者“鍵-值”對的個數,
    # num_hiddens/num_heads)
    return X.reshape(-1, X.shape[2], X.shape[3])

def transpose_output(X, num_heads):
    """逆轉transpose_qkv函數的操作"""
    X = X.reshape(-1, num_heads, X.shape[1], X.shape[2])
    X = X.permute(0, 2, 1, 3)
    return X.reshape(X.shape[0], X.shape[1], -1)

class MultiHeadAttention(nn.Module):
    """多頭注意力"""
    def __init__(self, key_size, query_size, value_size, num_hiddens,
                 num_heads, dropout, bias=False, **kwargs):
        super(MultiHeadAttention, self).__init__(**kwargs)
        self.num_heads = num_heads
        self.attention = d2l.DotProductAttention(dropout) # 這里用到縮放點積注意力
        self.W_q = nn.Linear(query_size, num_hiddens, bias=bias)
        self.W_k = nn.Linear(key_size, num_hiddens, bias=bias)
        self.W_v = nn.Linear(value_size, num_hiddens, bias=bias)
        self.W_o = nn.Linear(num_hiddens, num_hiddens, bias=bias)

    def forward(self, queries, keys, values, valid_lens):
        # queries,keys,values的形狀:
        # (batch_size,查詢或者“鍵-值”對的個數,num_hiddens)
        # valid_lens 的形狀:
        # (batch_size,)或(batch_size,查詢的個數)
        # 經過變換后,輸出的queries,keys,values 的形狀:
        # (batch_size*num_heads,查詢或者“鍵-值”對的個數,
        # num_hiddens/num_heads)
        queries = transpose_qkv(self.W_q(queries), self.num_heads)
        keys = transpose_qkv(self.W_k(keys), self.num_heads)
        values = transpose_qkv(self.W_v(values), self.num_heads)

        if valid_lens is not None:
            # 在軸0,將第一項(標量或者矢量)復制num_heads次,
            # 然后如此復制第二項,然后諸如此類。
            valid_lens = torch.repeat_interleave(
                valid_lens, repeats=self.num_heads, dim=0)

        # output的形狀:(batch_size*num_heads,查詢的個數,
        # num_hiddens/num_heads)
        output = self.attention(queries, keys, values, valid_lens)

        # output_concat的形狀:(batch_size,查詢的個數,num_hiddens)
        output_concat = transpose_output(output, self.num_heads)
        return self.W_o(output_concat)

def attention_nhead():
    num_hiddens, num_heads = 100, 5
    attention = MultiHeadAttention(num_hiddens, num_hiddens, num_hiddens,
                                num_hiddens, num_heads, 0.5)
    attention.eval()
    batch_size, num_queries = 2, 4
    num_kvpairs, valid_lens =  6, torch.tensor([3, 2])
    X = torch.ones((batch_size, num_queries, num_hiddens))
    Y = torch.ones((batch_size, num_kvpairs, num_hiddens))
    output = attention(X, Y, Y, valid_lens)
    print(output)

attention_nhead()

# 輸出:
tensor([[[-3.6907e-01, -1.1405e-04,  3.2671e-01, -1.7356e-01, -8.1225e-01,
          -3.7096e-01,  2.7797e-01, -2.6977e-01, -2.5845e-01, -2.3081e-01,
           3.0618e-01,  2.7673e-01, -2.6381e-01, -8.4385e-02,  6.8697e-01,
          -3.0869e-01, -2.6311e-01,  3.3698e-01,  2.0350e-02, -1.1740e-01,
          -2.9579e-01, -2.3887e-01, -1.3595e-01,  1.6481e-01,  3.6974e-01,
          -1.2254e-01, -4.8702e-01, -3.3106e-01,  1.9889e-01,  4.6272e-04,
          -3.0664e-01,  1.0336e-01,  1.5175e-01,  5.1327e-02, -1.7456e-01,
           1.0848e-01, -2.1586e-01, -1.3530e-01,  1.4878e-01,  2.2182e-01,
          -1.8205e-01,  4.2394e-02, -1.2869e-01, -6.1095e-02,  1.1372e-01,
          -2.4854e-01,  9.8994e-02, -4.2462e-01, -1.9857e-02, -1.0072e-01,
           7.6214e-01,  1.4569e-01,  2.4027e-01, -1.4111e-01, -3.5483e-01,
           1.2154e-02, -4.0619e-01, -1.7395e-01,  1.2091e-02,  1.2583e-01,
           4.5608e-01, -2.2189e-01,  1.1187e-01, -2.2936e-01,  2.6352e-01,
          -2.1522e-02,  1.7198e-01,  2.4890e-01, -5.9914e-01, -3.3339e-01,
          -5.0526e-03,  2.5246e-01, -5.5496e-02,  8.2241e-02,  2.3885e-01,
          -6.4767e-02,  4.5753e-01,  1.4007e-01,  3.2348e-01, -2.9186e-01,
          -2.0273e-01,  7.9331e-01,  2.4528e-01, -2.3202e-01,  6.0938e-01,
          -3.4037e-01, -3.0914e-01,  2.0632e-01, -1.1952e-01, -1.4625e-01,
           5.5157e-01, -1.5517e-01,  5.0877e-01,  1.9026e-01, -3.7252e-02,
          -1.7278e-01, -2.9345e-01, -1.2168e-01,  1.7021e-01,  7.7886e-01],
...

不過光看代碼,其中每個輸入到輸出的數據變化,這里不太清晰,于是找資料從網上找到一張解釋的圖,因此借鑒過來:

圖片圖片

3、注意力計算加速庫:FlashAttention

我們分析一下以上注意力機制的計算復雜度:(1)輸入長度為n的序列,每個位置進行位置編碼有d維的向量,查詢矩陣Q的維度為Nxd,鍵矩陣K的維度為Nxd,值矩陣V的維度為Nxd;(2)線性變換:對輸入的序列進行變換得到Q、K、V,每個token的embedding維度為d,每個都需要計算,復雜度為O(n*k*3d);(3)注意力計算:為了獲取注意權重,需要對每個序列進行計算,復雜度為O(n^2*k*d);(4)最后進行加權求和,復雜度為O(n*k*d);總的時間復雜度為O(n^2*k*d),所以會根據輸入的大小成指數增長,為了計算加速,PyTorch2.0以上版本集成FlashAttention。

由于FlashAttention 加速原理比較復雜(基于GPU硬件對attention的優化技術),這里原理就不介紹了(后續整理資料再單獨介紹),只介紹如何使用:

import torch
from torch import nn
import torch.nn.functional as F

def attention_scaled_dot_product():
    device = "cuda" if torch.cuda.is_available() else "cpu"
    query, key, value = torch.randn(2, 3, 8, device=device), torch.randn(2, 3, 8, device=device), torch.randn(2, 3, 8, device=device)
    output = F.scaled_dot_product_attention(query, key, value)
    print(output)

attention_scaled_dot_product()

# 輸出如下:
tensor([[[-0.2161,  0.1339,  0.0048, -0.4695, -0.9136, -0.6143,  0.7153,
          -0.5775],
         [ 0.0440,  0.3198,  0.3169, -0.4145, -0.6033, -0.4155,  0.4611,
          -0.3980],
         [-0.0162,  0.3195,  0.3146, -0.4202, -0.6638, -0.4621,  0.6024,
          -0.4443]],

        [[ 0.6024, -0.3102, -0.2522, -1.0542,  0.6863,  0.5142,  1.6795,
           0.1051],
         [ 0.5328, -0.4506, -0.3581, -1.1292,  1.0069,  0.3114,  1.9865,
          -0.0842],
         [-1.1632, -1.6378,  0.7211,  1.0084,  0.0335,  1.1377,  1.3419,
          -1.2655]]])

參考

(1)阿里云的Notebook:https://tianchi.aliyun.com/lab/home?notebookLabId=793630&notebookId=872766

(2)《動手學深度學習》:https://zh.d2l.ai/chapter_attention-mechanisms/bahdanau-attention.html(3)https://www.cvmart.net/community/detail/8302

責任編輯:武曉燕 來源: 周末程序猿
相關推薦

2024-11-04 00:24:56

2025-04-03 15:40:41

機器學習大模型DeepSeek

2023-05-05 13:11:16

2024-06-28 08:04:43

語言模型應用

2024-11-26 09:33:44

2024-12-26 00:46:25

機器學習LoRA訓練

2025-07-16 10:15:51

2025-10-16 09:00:00

大模型

2024-12-17 14:39:16

2018-08-26 22:25:36

自注意力機制神經網絡算法

2024-04-03 14:31:08

大型語言模型PytorchGQA

2025-04-03 15:46:53

2025-01-10 08:38:10

2024-09-19 10:07:41

2025-08-04 09:31:49

2025-08-11 06:17:54

2024-04-17 12:55:05

谷歌模型注意力

2025-10-22 08:52:23

2020-04-29 14:15:10

AI 機器學習圖靈獎

2024-07-01 12:17:54

點贊
收藏

51CTO技術棧公眾號

久久精品久久久久久久| 星空大象在线观看免费播放| 日韩子在线观看| 国产一区二区影院| 久久免费在线观看| 艳妇乳肉豪妇荡乳xxx| 日韩精品专区| 亚洲欧美区自拍先锋| 国产青春久久久国产毛片| 日韩不卡在线播放| 亚洲一区二区| 亚洲人在线视频| 91丨porny丨九色| 成人做爰视频www网站小优视频| 中文字幕一区在线观看视频| 国产一区二区在线观看免费播放| 欧美一级黄视频| 韩国在线一区| 日韩在线中文视频| 国产一级二级在线观看| 91精品福利观看| 欧美性xxxxxx| 美女黄色免费看| 无遮挡动作视频在线观看免费入口| 成人精品国产一区二区4080| 国产日韩亚洲欧美| 91精品国产高清一区二区三密臀| 久久精品国内一区二区三区水蜜桃| 亚洲精品国偷自产在线99热| 中文字幕第10页| 国产精品.xx视频.xxtv| 欧美日韩免费一区| 人妻av无码专区| 高清全集视频免费在线| 国产性做久久久久久| 国产精品一区视频| 99久久夜色精品国产亚洲| 日本v片在线高清不卡在线观看| 欧美精品国产精品日韩精品| 黑人操日本美女| 俺要去色综合狠狠| 亚洲欧美一区二区三区久久| 在线xxxxx| 99这里只有精品视频| 欧美高清一级片在线| 无需播放器的av| 性欧美gay| 日韩欧美在线视频免费观看| 自拍日韩亚洲一区在线| 精精国产xxxx视频在线中文版 | 免费91在线观看| 久久不见久久见中文字幕免费 | 风间由美一区| 久久精品一二三| 欧美日韩国产精品一卡| 日韩欧美电影在线观看| 91蜜桃免费观看视频| 精品免费国产| 深夜福利在线视频| 91麻豆蜜桃一区二区三区| 精品一区久久久| 亚洲欧美日韩综合在线| 99精品黄色片免费大全| 美女被啪啪一区二区| 日本福利片在线| 久久亚洲精华国产精华液| 免费成人看片网址| 国产在线中文字幕| 国产精品入口麻豆九色| 一区二区视频在线播放| 成人免费看片| 性欧美疯狂xxxxbbbb| 欧美一级在线看| 日韩福利一区| 欧美裸体bbwbbwbbw| 五月天丁香花婷婷| 综合激情网...| 精品无码久久久久久国产| 久久只有这里有精品| 日韩精品dvd| 久久成人一区二区| 国产无码精品一区二区| 性高湖久久久久久久久| 国产精品男人爽免费视频1| 中国一级片黄色一级片黄| 激情深爱一区二区| 国产欧美综合精品一区二区| 国产永久免费高清在线观看| 亚洲六月丁香色婷婷综合久久| 免费人成在线观看视频播放| 午夜av不卡| 欧美精品一二三| 午夜不卡久久精品无码免费| 精品日产免费二区日产免费二区| 久久网福利资源网站| 日韩三级视频在线| 免费一级片91| 国产精品手机在线| 春暖花开成人亚洲区| 亚洲尤物视频在线| 国产三级三级三级看三级| 欧洲一区在线| 夜夜嗨av色一区二区不卡| 麻豆changesxxx国产| 久久亚洲风情| 国产成人免费电影| 在线播放麻豆| 午夜av电影一区| 色91精品久久久久久久久| 欧美日韩另类图片| 久久av中文字幕| 国产一级淫片a视频免费观看| 国产一区二区三区黄视频 | 91精品精品| 日本精品一区二区三区在线| 精品人妻aV中文字幕乱码色欲| 久久久久久久久一| 久久手机在线视频| 在线播放成人| 夜夜嗨av一区二区三区免费区| 日韩欧美国产亚洲| 国产91精品一区二区麻豆亚洲| 亚洲春色综合另类校园电影| 僵尸再翻生在线观看| 日韩一区二区免费电影| 五月天婷婷丁香网| 久久精品人人| 久久亚洲高清| av资源新版天堂在线| 欧美一区二区视频观看视频| 天天操天天干天天操天天干| 亚洲自拍另类| 久久青青草原一区二区| 久久www人成免费看片中文| 欧美日韩精品欧美日韩精品一| 国产又粗又猛又爽视频| 99riav国产精品| www.一区二区三区| 最新国产在线拍揄自揄视频| 欧美日本在线播放| 91导航在线观看| 麻豆精品久久精品色综合| 欧美久久综合性欧美| 天堂av中文在线观看| 欧美精品一区二区三区久久久| 青青操国产视频| 国产精一品亚洲二区在线视频| 久久久国产精华液999999| 成人在线观看免费播放| 一本一本久久a久久精品综合小说| 免费观看一区二区三区毛片| caoporn国产精品| 日本a在线免费观看| 六月丁香久久丫| 午夜精品久久久久久久白皮肤| 懂色av一区二区三区四区| 亚洲国产人成综合网站| 国产成人av无码精品| 亚洲一区二区三区免费在线观看| 久久精品人人做人人爽电影| 蜜桃麻豆影像在线观看| 亚洲免费精彩视频| 成人黄色片在线观看| 国产精品午夜免费| 91视频福利网| 一区在线免费| 蜜桃日韩视频| 欧美激情福利| 久久国产精品亚洲| 色丁香婷婷综合久久| 色欧美片视频在线观看| 男女男精品视频网站| 国产精品中文字幕欧美| 成人在线国产视频| 奇米狠狠一区二区三区| 国产精品永久在线| 91网址在线观看| 日韩精品欧美国产精品忘忧草| 国内自拍视频在线播放| 国产精品毛片久久久久久| 国产成人精品综合久久久久99 | 久久人人爽人人爽人人片av高清| 四虎精品在线| 91精品久久久久久久99蜜桃| 国产精品2020| 国产农村妇女毛片精品久久麻豆| 永久免费的av网站| 樱桃成人精品视频在线播放| 欧美日韩在线精品| 亚洲tv在线| 69av在线视频| 免费在线看a| 精品视频在线观看日韩| 国产欧美日韩成人| 欧美午夜女人视频在线| 欧美肥妇bbwbbw| 26uuu色噜噜精品一区二区| 五月天激情播播| 一本色道久久综合亚洲精品不卡| 天堂av一区二区| 精品欧美午夜寂寞影院| 国产美女高潮久久白浆| 黑人玩欧美人三根一起进| 一区二区av在线| 人人妻人人澡人人爽精品日本| 在线观看一区不卡| 国产污视频在线观看| 自拍偷自拍亚洲精品播放| free性中国hd国语露脸| 国产一区二区三区免费观看 | 久久97超碰国产精品超碰| 鲁一鲁一鲁一鲁一澡| 最新国产精品| 亚洲高清精品中出| 婷婷综合福利| 国产精品香蕉视屏| 国产午夜亚洲精品一级在线| 青青久久av北条麻妃黑人| 免费毛片在线看片免费丝瓜视频| 色哟哟网站入口亚洲精品| 青青草在线视频免费观看| 亚洲第一中文字幕| 精品人妻伦一二三区久久| 欧美精选在线播放| 日本熟妇一区二区三区| 精品二区三区线观看| 欧美黑人一级片| 亚洲欧美日韩小说| 国产精品久久国产精麻豆96堂| 91免费视频观看| 91精品人妻一区二区| 99久久精品免费看国产免费软件| 樱花草www在线| 精品一区二区三区免费毛片爱| 爱情岛论坛成人| 日韩在线播放一区二区| 欧美日韩亚洲一| 99国内精品| a在线视频观看| 亚洲区一区二| 国产h视频在线播放| 亚洲免费成人| 欧美 日韩 国产在线观看| 99精品99| 国产美女无遮挡网站| 国产一区二区你懂的| 成人av一级片| 久久一区中文字幕| 91视频免费版污| 日本欧美在线观看| av在线网址导航| 极品少妇一区二区| 亚洲天堂网站在线| 国产一区二区三区视频在线播放| 日本亚洲一区二区三区| 国产东北露脸精品视频| 极品白嫩的小少妇| 成人毛片在线观看| 亚洲国产精品自拍视频| 26uuu久久天堂性欧美| av女人的天堂| 国产精品视频看| 黄色a级片在线观看| 亚洲精品国产无天堂网2021| 精品少妇一二三区| 精品久久久久久久大神国产| youjizz在线视频| 欧美少妇xxx| a毛片在线免费观看| 精品国产免费人成在线观看| 亚洲三区在线播放| 国产一区二区三区三区在线观看 | 欧美激情区在线播放| aaa在线播放视频| 国产成人精品免费久久久久| 国产美女久久| 古典武侠综合av第一页| 天堂99x99es久久精品免费| 午夜精品一区二区在线观看的| 久久国产综合| 免费在线黄网站| 日日夜夜免费精品| 亚洲第一成肉网| 91在线播放网址| 99热6这里只有精品| 亚洲成国产人片在线观看| 波多野结衣大片| 欧美一区2区视频在线观看| 天天av天天翘| 日韩在线视频免费观看| 国产高清在线a视频大全| 国产精品成人一区二区| 久久久久亚洲精品中文字幕| 精品一区久久久久久| 国产精品久久久久蜜臀| 日韩国产欧美亚洲| 黄一区二区三区| 四虎影成人精品a片| 亚洲欧美韩国综合色| 黄色片网站在线免费观看| 91精品国产全国免费观看| 天堂在线中文字幕| 久久99久国产精品黄毛片入口| 成人看片在线观看| 懂色中文一区二区三区在线视频| 精品高清在线| 一区二区传媒有限公司| 国产一区啦啦啦在线观看| 亚洲区自拍偷拍| 亚洲国产精品久久人人爱| 夜夜躁很很躁日日躁麻豆| 亚洲精品自在久久| gogo高清在线播放免费| 成人国产精品免费视频| 国产精品一区二区av日韩在线 | 18video性欧美19sex高清| 国产精品一二三视频| 欧美一性一交| 精品一区二区三区无码视频| 精品在线观看免费| 色一情一交一乱一区二区三区| 午夜久久久久久久久| www三级免费| 精品国产一区二区三区久久| 欧美亚洲大片| 欧美激情视频一区二区三区| 精品999成人| 日本人dh亚洲人ⅹxx| 亚洲日本va在线观看| 在线视频播放大全| 一区二区欧美久久| 婷婷激情一区| 麻豆av一区二区三区| 久久都是精品| 免费的av网站| 精品国产乱码久久久久酒店 | 国产精品国产三级在线观看| 新呦u视频一区二区| 日韩电影一二三区| 中文字幕免费在线看线人动作大片| 欧美日韩国产精品| 天堂av在线免费| 97在线观看视频| 日本在线中文字幕一区| 日日碰狠狠添天天爽超碰97| jlzzjlzz国产精品久久| 亚洲男人第一av| 亚洲黄色在线看| 亚洲一区资源| 欧美13一14另类| 秋霞国产午夜精品免费视频 | 亚洲国产精品久久久久秋霞影院| 精品国精品国产自在久不卡| 欧美精品生活片| 88久久精品| 午夜精品久久久久久久无码| 久久综合国产精品| 中文精品久久久久人妻不卡| 一区二区三区亚洲| 成人国产网站| 日韩video| 成人免费毛片片v| 国产精品va无码一区二区三区| 国产午夜精品理论片a级探花| 久久久人成影片一区二区三区在哪下载 | 中文在线免费观看| 久久精品亚洲热| 超碰97久久| 91精品91久久久中77777老牛| 久久老女人爱爱| 一级日韩一级欧美| 欧美激情亚洲自拍| 亚洲国产精品嫩草影院久久av| 亚洲成人福利在线观看| 亚洲女同一区二区| 亚洲aⅴ在线观看| 国产精品露脸自拍| 欧美精品91| 全黄一级裸体片| 91精品国产综合久久久蜜臀粉嫩 | 精人妻一区二区三区| 福利一区视频在线观看| 日本在线天堂| 国产日韩欧美亚洲一区| 男女男精品视频网| 精品无码免费视频| 一区二区三区四区视频| 天堂久久av| www.xxx亚洲| 亚洲一区二区四区蜜桃| 国产片在线观看| 成人资源av| 免费人成在线不卡| 日本在线视频中文字幕| 色久欧美在线视频观看| 老牛影视av一区二区在线观看| 午夜免费福利在线| 五月婷婷激情综合| 黄色动漫在线| 色噜噜色狠狠狠狠狠综合色一|