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

盤點目前最常用的四種語言模型壓縮技術

人工智能 機器學習
模型壓縮是在不損害其有效性的情況下最小化機器學習模型大小的行為。由于大型神經網絡經常因為過度參數化而包含冗余的計算單元,這種方法對它們是有效的。

你能在不犧牲性能的情況下讓大型語言模型(LLM)變得更小?盡管人們總是對越來越大的語言模型感興趣,但MistralAI向我們展示了尺寸的重要性是相對的,而對邊緣計算日益增長的興趣促使我們用小型語言模型獲得不錯的結果。另一種方法是通過壓縮技術。在本文中,我將解釋這些技術,并提供一些簡單的代碼片段作為示例。

模型壓縮是在不損害其有效性的情況下最小化機器學習模型大小的行為。由于大型神經網絡經常因為過度參數化而包含冗余的計算單元,這種方法對它們是有效的。

壓縮意味著減少參數數量或整體內存占用,從而實現更小的模型大小(例如,從10GB減少到9GB)。這個過程有助于在存儲和推理速度方面提高模型的效率,使它們更容易部署在資源有限的環境中。常見的模型壓縮技術包括:

  • 量化:通過改變模型權重(例如,從32位浮點數到8位整數)的精度來減少內存占用。
  • 剪枝:移除不太重要的權重或神經元,減少參數數量。
  • 知識蒸餾:訓練一個更小的模型(學生模型)來模仿一個更大的模型(教師模型),將知識蒸餾成具有類似性能的壓縮版本。
  • 權重共享:在不同層之間使用共享權重來減少存儲需求,無論是通過設計還是在訓練后應用。

模型量化

模型量化通過改變權重或激活的精度表示(通常是32位或16位)來壓縮LLM,將其轉換為低精度表示(例如,8位、4位甚至二進制)。我們可以量化權重、激活函數或進行其他技巧:

  • 權重量化:神經網絡使用的權重通常存儲為32位或16位浮點數。量化將這些權重減少到更低的位寬,如8位整數(INT8)或4位整數(INT4)。這是通過將原始權重范圍映射到具有較少位的較小范圍來實現的,顯著減少了內存使用。
  • 激活量化:與權重類似,激活(推理期間層的輸出)可以被量化為更低的精度。通過用較少的位表示激活,減少了模型在推理期間的內存占用。
  • 量化感知訓練(QAT):在QAT中,模型在模擬量化的同時進行訓練,允許它適應更低的精度。這有助于保持準確性,因為模型學會了對量化效應更加健壯(參見Tailor等人在Arxiv上的研究)。
  • 訓練后量化(PTQ):這種方法涉及以全精度正常訓練模型,然后在此之后應用量化。雖然PTQ更簡單、更快,但與QAT相比,它可能導致準確性的更大下降(如Wang等人在NIPS2021上的研究)。

權重量化可以使用bitsandbytes輕松實現。安裝庫:

pip install torch transformers bitsandbytes

例如,對于GPT2運行以下代碼:

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Specify the model you want to use
model_name = "gpt2"  # You can replace this with any other LLM model
# Load the tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Load the model with 8-bit quantization using bitsandbytes
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    load_in_8bit=True,  # Enable 8-bit quantization
    device_map="auto"   # Automatically allocate to available device (CPU/GPU)
)
# Example text for inference
input_text = "Weight Quantization is an efficient technique for compressing language models."
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda")
# Generate text
with torch.no_grad():
    output_ids = model.generate(input_ids, max_length=50)
# Decode and print the generated text
output_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(output_text)

剪枝

剪枝移除不必要的或不太重要的權重、神經元或整個層,就像從樹上移除不必要的分支一樣。這減少了模型的大小,加快了推理速度,并降低了內存和計算需求,使其在盡可能保持原始性能的同時更加高效。

這比量化更直接,因為我們首先需要找到冗余的部分。例如,我們需要找到冗余的參數并在沒有它們的情況下微調模型。

最常見的是,我們移除權重、神經元或層,但對注意力頭剪枝(特定于基于Transformer的模型)作為一種結構化剪枝的興趣日益增長(參見Wang等人在Arxiv上的研究)。在這里,每個注意力層有多個頭。一些頭對模型性能的貢獻比其他頭更大,所以注意力頭剪枝移除了不太重要的頭。

剪枝的示例代碼可能如下,我們從GPT2模型中移除一定百分比的權重:


import torch
import torch.nn.utils.prune as prune
from transformers import AutoModelForCausalLM, AutoTokenizer

# Load the pretrained model and tokenizer
model_name = "gpt2"  # You can replace this with any other LLM model
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Define a pruning method (here we use L1 unstructured pruning)
def prune_model_layer(layer, amount=0.3):
    # Prune 30% of the weights with the lowest L1 norm in the linear layers
    for name, module in layer.named_modules():
        if isinstance(module, torch.nn.Linear):
            prune.l1_unstructured(module, name="weight", amount=amount)
            print(f"Pruned layer {name} with amount {amount}")
# Apply pruning to all transformer layers in the model
for layer in model.transformer.h:
    prune_model_layer(layer, amount=0.3)  # Prune 30% of the weights
# Check the sparsity of the model
total_params = 0
pruned_params = 0
for name, module in model.named_modules():
    if isinstance(module, torch.nn.Linear):
        total_params += module.weight.nelement()
        pruned_params += torch.sum(module.weight == 0).item()
print(f"Total parameters: {total_params}")
print(f"Pruned parameters: {pruned_params}")
print(f"Sparsity: {pruned_params / total_params:.2%}")
# Test the pruned model on a sample input
input_text = "Pruning is an effective way to compress language models."
input_ids = tokenizer(input_text, return_tensors="pt").input_ids
# Generate text using the pruned model
with torch.no_grad():
    output_ids = model.generate(input_ids, max_length=50)
# Decode and print the generated text
output_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(output_text)

模型蒸餾

模型蒸餾是一種將“知識”從大型、更復雜的模型(稱為教師模型)轉移到小型、更簡單的模型(稱為學生模型)的技術,后者的參數更少。這個過程使得學生模型在保持更小的尺寸或速度的同時,能夠達到接近教師模型的性能,正如我們在開始時承諾的。

這個過程從一個大型的、預訓練的LLM開始,作為教師模型,例如GPT2或LLama。這個模型通常非常準確,但需要大量的計算資源來進行推理。

一個更小、更高效的模型(“學生模型”)被訓練來模仿教師模型的行為,如miniGPT2或TinyLlama(盡管Tinyllama是以不同的方式構建的)。學生模型從原始訓練數據和教師模型生成的輸出(軟標簽)中學習。

以下是Python中教師-學生互動的示例,從教師GPT2開始:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from datasets import load_dataset
import torch.nn.functional as F

# Load the teacher (large) and student (smaller) models
teacher_model_name = "gpt2"  # You can replace this with any large LLM
student_model_name = "tiny-gpt2"  # A smaller variant to act as the student
# Load the teacher model and tokenizer
teacher_model = AutoModelForCausalLM.from_pretrained(teacher_model_name).to("cuda")
teacher_tokenizer = AutoTokenizer.from_pretrained(teacher_model_name)
# Load the student model and tokenizer
student_model = AutoModelForCausalLM.from_pretrained(student_model_name).to("cuda")
student_tokenizer = AutoTokenizer.from_pretrained(student_model_name)
# Load a dataset for training (e.g., Wikitext for language modeling)
dataset = load_dataset("wikitext", "wikitext-2-raw-v1", split="train")
# Set training parameters
learning_rate = 5e-5
epochs = 3
optimizer = torch.optim.AdamW(student_model.parameters(), lr=learning_rate)
# Set temperature for softening probabilities
temperature = 2.0
alpha = 0.5  # Weighting factor for combining loss functions
# Training loop for knowledge distillation
for epoch in range(epochs):
    for i, example in enumerate(dataset):
        # Get the input text
        input_text = example["text"]
        
        # Skip empty lines
        if not input_text.strip():
            continue
        
        # Tokenize the input text for the teacher and student models
        teacher_inputs = teacher_tokenizer(input_text, return_tensors="pt", truncation=True, padding="max_length", max_length=32).to("cuda")
        student_inputs = student_tokenizer(input_text, return_tensors="pt", truncation=True, padding="max_length", max_length=32).to("cuda")
        
        # Get teacher predictions (soft labels)
        with torch.no_grad():
            teacher_outputs = teacher_model(**teacher_inputs)
            teacher_logits = teacher_outputs.logits / temperature
            teacher_probs = F.softmax(teacher_logits, dim=-1)
        
        # Get student predictions
        student_outputs = student_model(**student_inputs)
        student_logits = student_outputs.logits
        
        # Calculate distillation loss (Kullback-Leibler divergence)
        distillation_loss = F.kl_div(
            input=F.log_softmax(student_logits / temperature, dim=-1),
            target=teacher_probs,
            reduction="batchmean",
            log_target=False
        ) * (temperature ** 2)
        
        # Calculate student task loss (Cross-Entropy with true labels)
        target_labels = student_inputs["input_ids"]
        task_loss = F.cross_entropy(student_logits.view(-1, student_logits.size(-1)), target_labels.view(-1), ignore_index=student_tokenizer.pad_token_id)
        
        # Combined loss
        loss = alpha * distillation_loss + (1 - alpha) * task_loss
        
        # Backpropagation and optimization
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        
        # Print training progress
        if i % 100 == 0:
            print(f"Epoch [{epoch + 1}/{epochs}], Step [{i}], Loss: {loss.item():.4f}")
print("Knowledge distillation completed!")

權重共享

通過在幾個模型組件之間共享參數,我們可以減少神經網絡的內存占用。當一些或所有層共享同一組權重而不是每層或組件都有獨特的權重時,模型必須保持的參數數量大大減少。人們可以預先定義模型的架構,使其具有共享權重,或者在訓練后將權重共享作為一種模型壓縮技術。例如,一種可能性是像下面的代碼一樣對權重進行聚類:


import torch
import numpy as np
from sklearn.cluster import KMeans

def apply_weight_sharing(model, num_clusters=16):
    # Iterate through each parameter in the model
    for name, param in model.named_parameters():
        if param.requires_grad:  # Only consider trainable parameters
            # Flatten the weights into a 1D array for clustering
            weights = param.data.cpu().numpy().flatten().reshape(-1, 1)
            # Apply k-means clustering
            kmeans = KMeans(n_clusters=num_clusters)
            kmeans.fit(weights)
            # Replace weights with their corresponding cluster centroids
            cluster_centroids = kmeans.cluster_centers_
            labels = kmeans.labels_
            # Map the original weights to their shared values
            shared_weights = np.array([cluster_centroids[label] for label in labels]).reshape(param.data.shape)
            # Update the model's parameters with the shared weights
            param.data = torch.tensor(shared_weights, dtype=param.data.dtype).to(param.device)
    return model
# Example usage with a pre-trained model
from transformers import GPT2LMHeadModel
model = GPT2LMHeadModel.from_pretrained("gpt2")
model = apply_weight_sharing(model, num_clusters=16)  # Apply weight sharing with 16 clusters
print("Weight sharing applied to the model!")

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2021-08-11 20:17:22

推薦算法系統

2022-07-04 12:07:57

智慧城市智能建筑物聯網

2017-09-21 13:04:35

數據挖掘分析分析方法數據分析師

2015-05-08 12:24:10

惡意軟件逃避技術

2025-03-27 02:44:00

2009-03-17 00:49:48

2025-01-21 00:00:00

權限模型RBAC

2010-03-24 19:09:43

Python語言

2025-02-18 16:27:01

2019-08-13 09:00:24

REST API身份認證密鑰

2022-01-05 08:30:31

BIONIO AIO

2021-06-17 14:46:50

框架jQuery開發

2010-11-04 09:31:21

DB2循環語句

2015-11-06 13:27:39

2015-07-23 14:50:28

大數據

2012-02-22 11:13:53

Java

2021-08-25 10:41:09

人工智能AI深度學習

2010-12-13 17:12:31

2011-09-21 17:56:07

2011-10-09 09:35:11

虛擬化hypervisor
點贊
收藏

51CTO技術棧公眾號

牛牛澡牛牛爽一区二区| www.4hu95.com四虎| 黄色的视频在线观看| 97久久超碰国产精品| 国产精品电影在线观看| 四虎精品免费视频| 五月综合久久| 欧美日韩国产精选| 无码中文字幕色专区| 天堂中文а√在线| 国产99精品视频| 国产精品高潮呻吟久久av无限| 男人的天堂久久久| 国产成人精品免费视| 欧美成人一级视频| 国产一伦一伦一伦| 中文字幕资源网在线观看免费| 综合久久久久久| 免费精品视频一区二区三区| 99在线观看免费| 三级精品在线观看| 欧美亚洲在线观看| 久久午夜无码鲁丝片| 成人亚洲一区| 亚洲深夜福利在线| 精品国产av色一区二区深夜久久| 99精品美女视频在线观看热舞| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | h色网站在线观看| 久久91成人| 日韩电视剧免费观看网站| 特种兵之深入敌后| 亚洲图片小说区| 欧美三级一区二区| 北条麻妃在线一区| 超级碰碰久久| 欧美日韩国产在线播放| 超碰成人免费在线| 麻豆av在线免费观看| 亚洲欧美日韩国产中文在线| 亚洲综合欧美日韩| aaa在线免费观看| 久久精品日产第一区二区三区高清版| 精品久久久久久一区| 亚洲第一页视频| 国产精品99精品久久免费| 国产精品精品一区二区三区午夜版| 国产精品视频免费播放| 99综合在线| 欧美在线亚洲一区| √资源天堂中文在线| 一区二区三区导航| 欧美一级大片在线观看| 亚洲欧美日韩激情| 日韩高清不卡一区| 国产精品久久久久久久久男| 在线观看亚洲黄色| 蜜臀久久99精品久久久久宅男| 国产精品国语对白| 中文字幕免费在线看| 日本免费新一区视频| 国产精品香蕉在线观看| 一道本在线视频| 国产麻豆精品95视频| 99久久免费国| 天堂国产一区二区三区| 91婷婷韩国欧美一区二区| 国语精品中文字幕| 九一国产在线| 国产精品成人网| 黄色一级大片免费| 欧美男人天堂| 欧美色精品在线视频| 手机免费看av网站| 超碰在线亚洲| 国产香蕉精品视频一区二区三区 | 亚洲桃色综合影院| 中文字幕日韩有码| 成年人av电影| 国产日韩欧美三区| 国产日韩欧美在线| 高清国产mv在线观看| 久久精品欧美一区二区三区麻豆 | 国产日韩欧美在线播放不卡| 国产精品你懂得| 99视频在线观看免费| 成人av电影在线| 午夜精品一区二区三区四区| 在线heyzo| 色老汉av一区二区三区| 超碰中文字幕在线观看| 婷婷亚洲精品| 久久久精品视频成人| 日本免费观看视| 精品一区二区三区免费视频| 精品国产乱码一区二区三区四区| 91福利在线视频| 午夜精品福利一区二区三区av| 牛夜精品久久久久久久| 操欧美女人视频| 日韩在线视频一区| 精品在线播放视频| 国产一区二区伦理片| 欧美精品在线一区| 国产精品—色呦呦| 欧美美女一区二区在线观看| 中文字幕人妻熟女在线| 日韩欧美字幕| 日本高清不卡的在线| 国产美女三级无套内谢| 久久久精品综合| 国产欧美日韩网站| 精品中文字幕一区二区三区| 国产亚洲综合久久| 日韩精品――中文字幕| 国产一区二区久久| 夜夜爽99久久国产综合精品女不卡| 国产伦理精品| 欧美xfplay| xxxx日本少妇| 精品一区二区三区日韩| 亚洲精品在线视频观看| 美女日韩欧美| 日韩av中文在线| 国产黄色片视频| 国产剧情av麻豆香蕉精品| 亚洲一区三区| 韩国精品主播一区二区在线观看 | 青春草免费在线视频| 欧美日韩成人在线一区| 丰满的亚洲女人毛茸茸| 天堂在线亚洲视频| 欧美日韩无遮挡| 亚洲风情在线资源| 精品国产成人系列| 久久精品国产亚洲av香蕉 | 全黄一级裸体片| 午夜亚洲性色视频| 久久久久久a亚洲欧洲aⅴ| zzzwww在线看片免费| 欧美精品一区二区三区蜜桃| 欧美成人手机视频| 成人一区二区三区中文字幕| 日本人妻伦在线中文字幕| 国产专区精品| 欧美成年人视频网站| 国产三级在线观看视频| 亚洲色图在线看| 91亚洲一区二区| 欧美午夜精品| 国产综合动作在线观看| 黄毛片在线观看| 亚洲精品在线看| 337p粉嫩色噜噜噜大肥臀| 国产三级精品视频| 日韩不卡一二三| 91久久久精品国产| 91免费看蜜桃| www.综合| 国产香蕉97碰碰久久人人| 一级黄色大片免费| 亚洲欧美成人一区二区三区| 亚洲成a人无码| 亚洲久久成人| 日本一区二区高清视频| 亚洲午夜剧场| 欧美国产高跟鞋裸体秀xxxhd| 老熟妇高潮一区二区高清视频| 午夜欧美大尺度福利影院在线看| 免费成人深夜夜行p站| 日本亚洲免费观看| 亚洲国产精品影视| 久久婷婷国产| 国产美女被下药99| 久久不射影院| 亚洲欧洲成视频免费观看| 一区二区三区黄色片| 亚洲欧美一区二区不卡| 97精品人妻一区二区三区蜜桃| 麻豆久久精品| 老司机午夜免费福利视频| 色狠狠久久av综合| 国产男女猛烈无遮挡91| 丁香花在线观看完整版电影| 国产亚洲欧洲黄色| 国产成人精品av在线观| 懂色av影视一区二区三区| 黄色片网站在线播放| 成人毛片老司机大片| 日本a√在线观看| 欧美人成在线| 五月天国产一区| 国产色噜噜噜91在线精品 | 亚洲天堂狠狠干| 亚洲超碰精品一区二区| 国产精品18在线| 91蜜桃免费观看视频| 国产男女无遮挡猛进猛出| 欧美在线综合| 老子影院午夜伦不卡大全| 欧美日韩国产高清电影| 国产91aaa| 色综合久久久| 热久久视久久精品18亚洲精品| a在线免费观看| 一区二区福利视频| 手机在线不卡av| 91精品国产乱码久久蜜臀| 无码人妻丰满熟妇奶水区码| 亚洲国产精品欧美一二99| 成人信息集中地| 久久精品亚洲精品国产欧美| 男人网站在线观看| 国产成人免费av在线| 日本 片 成人 在线| 欧美一级播放| 天天夜碰日日摸日日澡性色av| 亚洲国产精品成人| 亚洲自拍三区| 欧美综合另类| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | jizz中文字幕| 91免费视频网址| 欧美xxxxx少妇| 国产精品2024| 中文字幕精品一区二区三区在线| 久久久久国产精品一区三寸 | 青青草国产精品97视觉盛宴| avav在线看| 99国产精品久久久久久久 | 久久久一二三区| 亚洲乱码国产乱码精品精的特点| 91香蕉视频污在线观看| 国产精品网曝门| 免费黄在线观看| 国产精品欧美一级免费| 色综合99久久久无码国产精品| 久久天堂av综合合色蜜桃网 | 亚洲日本在线看| 国产一二三四区| 亚洲乱码一区二区三区在线观看| 日本一级特级毛片视频| 亚洲天堂av一区| 污污视频网站在线免费观看| 国产精品人妖ts系列视频| 中文字幕第二区| 国产精品卡一卡二卡三| 中文字幕在线观看二区| 中文字幕日本乱码精品影院| 天天鲁一鲁摸一摸爽一爽| 综合电影一区二区三区| 久久r这里只有精品| 亚洲综合精品自拍| www.99re7.com| 欧美日韩免费在线| 精品视频一二三区| 欧美日韩精品欧美日韩精品一| 亚洲综合视频在线播放| 日韩一区二区三区免费观看| www香蕉视频| 日韩电影网在线| 高清在线观看av| 久久久国产精品x99av| 日本一级理论片在线大全| 久久久久久久久久久免费精品 | 成人有码视频在线播放| 午夜日韩影院| 精品久久一区二区三区蜜桃| 国产成人3p视频免费观看| 在线一区亚洲| 亚洲国产一区二区三区a毛片| 国产超级av在线| 久久精品久久99精品久久| 韩国三级丰满少妇高潮| 99久久综合色| 美国精品一区二区| 亚洲国产精品一区二区www| 69视频免费看| 欧美成人高清电影在线| 免费a级毛片在线观看| 精品国产一区二区三区在线观看| 欧美理论片在线播放| 91av在线看| 91丨精品丨国产| 久久婷婷国产综合尤物精品| 久久国产综合| 好吊妞无缓冲视频观看| 老色鬼精品视频在线观看播放| 岛国av免费观看| 亚洲国产精品99久久久久久久久| 欧美精品99久久久| 在线亚洲一区观看| 亚洲av无码一区二区三区dv | 丝袜国产在线| 国产精品444| 都市激情久久| 亚洲一区二区三区涩| 亚洲少妇在线| 亚洲av无码久久精品色欲| 国产日韩欧美高清| 日韩福利片在线观看| 91麻豆精品久久久久蜜臀| 久久久久久久久亚洲精品| 九九久久国产精品| 国产原创一区| 欧美日韩精品免费观看视一区二区| 亚洲最大黄网| 三级a三级三级三级a十八发禁止| 不卡一区在线观看| 印度午夜性春猛xxx交| 欧洲日韩一区二区三区| 手机看片一区二区| 欧美高清videos高潮hd| 久久亚洲精品人成综合网| 麻豆91av| 亚洲深夜影院| 国产一级免费片| 一级女性全黄久久生活片免费| 中国黄色一级视频| 亚洲欧美日韩区| 九色porny自拍视频在线播放 | 欧美日韩精品在线一区| 国产在线播放观看| 成人免费av网站| 久久影院一区二区| 精品免费日韩av| 午夜av在线免费观看| 91久久久在线| 99久久九九| 中文字幕国产免费| 亚洲国产精品精华液2区45| 免费看污视频的网站| 亚洲色图狂野欧美| 成人影院入口| 欧美久久久久久| 欧美亚洲在线| 国产精品20p| 欧美在线观看你懂的| 国产大片在线免费观看| 国产精品人成电影在线观看| 精品理论电影| 欧美女同在线观看| 中文字幕一区二区三区精华液| 一级aaaa毛片| 久久久精品网站| 欧美精品三级在线| 欧美狂野激情性xxxx在线观| 国产91丝袜在线播放0| 国产又大又黑又粗免费视频| 亚洲福利在线看| 无遮挡爽大片在线观看视频| 欧美高清视频一区| 视频一区二区三区在线| 91动漫免费网站| 91精品国产综合久久香蕉的特点 | 视频在线不卡免费观看| 亚洲欧美日韩综合网| 亚洲人一二三区| 亚洲AV午夜精品| 97免费中文视频在线观看| 天堂网av成人| 8x8x最新地址| 亚洲欧美偷拍三级| 视频污在线观看| 国产精品爱啪在线线免费观看| 四季av在线一区二区三区| wwwxxxx在线观看| 欧美日韩激情网| 超碰免费97在线观看| 亚洲a一级视频| 在线日韩视频| 永久免费毛片在线观看| 欧美一区二区三区在线电影| 国产99在线| 日韩欧美精品一区二区| 国产一区二区三区免费看| 国产精品老女人| 中文字幕综合在线| 国产伦精品一区二区三区免费优势| 久久无码高潮喷水| 一区在线观看免费| 婷婷在线免费视频| 国产精品免费视频xxxx| 国产专区一区| 伊人影院综合网| 精品久久五月天| 国产黄色精品| 亚洲 欧美 日韩 国产综合 在线 | 午夜不卡一区| av之家在线观看| 亚洲人成精品久久久久| 久久视频www| 国产精品久久久久久免费观看 | 国产毛片久久久久久久| 日韩午夜在线观看视频| 色豆豆成人网| 国产真人做爰毛片视频直播 | 先锋影音男人资源| 久久蜜臀精品av| 亚洲精品一区二区三区不卡|