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

容器下在 Triton Server 中使用 TensorRT-LLM 進行推理

開發 前端
使用 TensorRT 時,通常需要將模型轉換為 ONNX 格式,再將 ONNX 轉換為 TensorRT 格式,然后在 TensorRT、Triton Server 中進行推理。

1. TensorRT-LLM 編譯模型

1.1 TensorRT-LLM 簡介

使用 TensorRT 時,通常需要將模型轉換為 ONNX 格式,再將 ONNX 轉換為 TensorRT 格式,然后在 TensorRT、Triton Server 中進行推理。

但這個轉換過程并不簡單,經常會遇到各種報錯,需要對模型結構、平臺算子有一定的掌握,具備轉換和調試能力。而 TensorRT-LLM 的目標就是降低這一過程的復雜度,讓大模型更容易跑在 TensorRT 引擎上。

需要注意的是,TensorRT 針對的是具體硬件,不同的 GPU 型號需要編譯不同的 TensorRT 格式模型。這與 ONNX 模型格式的通用性定位顯著不同。

同時,TensortRT-LLM 并不支持全部 GPU 型號,僅支持 H100、L40S、A100、A30、V100 等顯卡。

1.2 配置編譯環境

docker run --gpus device=0 -v $PWD:/app/tensorrt_llm/models -it --rm hubimage/nvidia-tensorrt-llm:v0.7.1 bash

--gpus device=0 表示使用編號為 0 的 GPU 卡,這里的 hubimage/nvidia-tensorrt-llm:v0.7.1 對應的就是 TensorRT-LLM v0.7.1 的 Release 版本。

由于自行打鏡像非常麻煩,這里提供幾個可選版本的鏡像:

  • hubimage/nvidia-tensorrt-llm:v0.7.1
  • hubimage/nvidia-tensorrt-llm:v0.7.0
  • hubimage/nvidia-tensorrt-llm:v0.6.1

1.3 編譯生成 TensorRT 格式模型

在上述容器環境下,執行命令:

python examples/baichuan/build.py --model_version v2_7b \
                --model_dir ./models/Baichuan2-7B-Chat \
                --dtype float16 \
                --parallel_build \
                --use_inflight_batching \
                --enable_context_fmha \
                --use_gemm_plugin float16 \
                --use_gpt_attention_plugin float16 \
                --output_dir ./models/Baichuan2-7B-trt-engines

生成的文件主要有三個:

  • baichuan_float16_tp1_rank0.engine,嵌入權重的模型計算圖文件
  • config.json,模型結構、精度、插件等詳細配置信息文件
  • model.cache,編譯緩存文件,可以加速后續編譯速度

1.4 推理測試

python examples/run.py --input_text "世界上第二高的山峰是哪座?" \
                 --max_output_len=200 \
                 --tokenizer_dir ./models/Baichuan2-7B-Chat \
                 --engine_dir=./models/Baichuan2-7B-trt-engines
[02/03/2024-10:02:58] [TRT-LLM] [W] Found pynvml==11.4.1. Please use pynvml>=11.5.0 to get accurate memory usage
Input [Text 0]: "世界上第二高的山峰是哪座?"
Output [Text 0 Beam 0]: "
珠穆朗瑪峰(Mount Everest)是地球上最高的山峰,海拔高度為8,848米(29,029英尺)。第二高的山峰是喀喇昆侖山脈的喬戈里峰(K2),海拔高度為8,611米(28,251英尺)。"

1.5 驗證是否嚴重退化

模型推理優化,可以替換算子、量化、裁剪反向傳播等手段,但有一個基本線一定要達到,那就是模型不能退化很多。

在精度損失可接受的范圍內,模型的推理優化才有意義。TensorRT-LLM 項目提供的 summarize.py 可以跑一些測試,給模型打分,rouge1、rouge2 和 rougeLsum 是用于評價文本生成質量的指標,可以用于評估模型推理質量。

  • 獲取原格式模型的 Rouge 指標
pip install datasets nltk rouge_score -i https://pypi.tuna.tsinghua.edu.cn/simple

由于目前 optimum 不支持 Baichuan 模型,因此,需要編輯 examples/summarize.py 注釋掉 model.to_bettertransformer(),這個問題在最新的 TensorRT-LLM 代碼中已經解決,我使用的是當前最新的 Release 版本 (v0.7.1)。

python examples/summarize.py --test_hf \
                    --hf_model_dir ./models/Baichuan2-7B-Chat \
                    --data_type fp16 \
                    --engine_dir ./models/Baichuan2-7B-trt-engines

輸出結果:

[02/03/2024-10:21:45] [TRT-LLM] [I] Hugging Face (total latency: 31.27020287513733 sec)
[02/03/2024-10:21:45] [TRT-LLM] [I] HF beam 0 result
[02/03/2024-10:21:45] [TRT-LLM] [I]   rouge1 : 28.847385241217726
[02/03/2024-10:21:45] [TRT-LLM] [I]   rouge2 : 9.519352831698162
[02/03/2024-10:21:45] [TRT-LLM] [I]   rougeL : 20.85486489462602
[02/03/2024-10:21:45] [TRT-LLM] [I]   rougeLsum : 24.090111126907733
  • 獲取 TensorRT 格式模型的 Rouge 指標
python examples/summarize.py --test_trt_llm \
                    --hf_model_dir ./models/Baichuan2-7B-Chat \
                    --data_type fp16 \
                    --engine_dir ./models/Baichuan2-7B-trt-engines

輸出結果:

[02/03/2024-10:23:16] [TRT-LLM] [I] TensorRT-LLM (total latency: 28.360705375671387 sec)
[02/03/2024-10:23:16] [TRT-LLM] [I] TensorRT-LLM beam 0 result
[02/03/2024-10:23:16] [TRT-LLM] [I]   rouge1 : 26.557043897453102
[02/03/2024-10:23:16] [TRT-LLM] [I]   rouge2 : 8.28672928021811
[02/03/2024-10:23:16] [TRT-LLM] [I]   rougeL : 19.13639628365737
[02/03/2024-10:23:16] [TRT-LLM] [I]   rougeLsum : 22.0436013250798

TensorRT-LLM 編譯之后的模型,rougeLsum 從 24 降到了 22,說明能力會有退化,但只要在可接受的范圍之內,還是可以使用的,因為推理速度會有較大的提升。

完成這步之后,就可以退出容器了,推理是在另外一個容器中進行。

2. Triton Server 配置說明

2.1 Triton Server 簡介

Triton Server 是一個推理框架,提供用戶規模化進行推理的能力。具體包括:

  • 支持多種后端,tensorrt、onnxruntime、pytorch、python、vllm、tensorrtllm 等,還可以自定義后端,只需要相應的 shared library 即可。
  • 對外提供 HTTP、GRPC 接口
  • batch 能力,支持批量進行推理,而開啟 Dynamic batching 之后,多個 batch 可以合并之后同時進行推理,實現更高吞吐量
  • pipeline 能力,一個 Triton Server 可以同時推理多個模型,并且模型之間可以進行編排,支持 Concurrent Model Execution 流水線并行推理
  • 觀測能力,提供有 Metrics 可以實時監控推理的各種指標

圖片圖片

上面是 Triton Server 的架構圖,簡單點說 Triton Server 是一個端(模型)到端(應用)的推理框架,提供了圍繞推理的生命周期過程管理,配置好模型之后,就能直接對應用層提供服務。

2.2 Triton Server 使用配置

在 Triton 社區的示例中,通常會有這樣四個目錄:

.
├── ensemble
│   ├── 1
│   └── config.pbtxt
├── postprocessing
│   ├── 1
│   │   └── model.py
│   └── config.pbtxt
├── preprocessing
│   ├── 1
│   │   └── model.py
│   └── config.pbtxt
└── tensorrt_llm
    ├── 1
    └── config.pbtxt

9 directories, 6 files

對于 Triton Server 來說,上面的目錄格式實際上是定義了四個模型,分別是 preprocessing、tensorrt_llm、postprocessing、ensemble,只不過 ensemble 是一個組合模型,定義多個模型來融合。

ensemble 存在的原因在于 tensorrt_llm 的推理并不是 text2text ,借助 Triton Server 的 Pipeline 能力,通過 preprocessing 對輸入進行 Tokenizing,postprocessing 對輸出進行 Detokenizing,就能夠實現端到端的推理能力。否則,在客戶端直接使用 TensorRT-LLM 時,還需要自行處理詞與索引的雙向映射。

這四個模型具體作用如下:

  • preprocessing, 用于輸入文本的預處理,包括分詞、詞向量化等,實現類似 text2vec 的預處理。
  • tensorrt_llm, 用于 TensorRT 格式模型的 vec2vec 的推理
  • postprocessing,用于輸出文本的后處理,包括生成文本的后處理,如對齊、截斷等,實現類似 vec2text 的后處理。
  • ensemble,將上面的是三個模型進行融合,提供 text2text 的推理

上面定義的模型都有一個 1 目錄表示版本 1 ,在版本目錄中放置模型文件,在模型目錄下放置 config.pbtxt 描述推理的參數 input、output、version 等。

2.3 模型加載的控制管理

Triton Server 通過參數 --model-control-mode 來控制模型加載的方式,目前有三種加載模式:

  • none,加載目錄下的全部模型
  • explicit,加載目錄下的指定模型,通過參數 --load-model 加載指定的模型
  • poll,定時輪詢加載目錄下的全部模型,通過參數 --repository-poll-secs 配置輪詢周期

2.4 模型版本的控制管理

Triton Server 在模型的配置文件 config.pbtxt 中提供有 Version Policy,每個模型可以有多個版本共存。默認使用版本號為 1 的模型,目前有三種版本策略:

  • 所有版本同時使用
version_policy: { all: {}}
  • 只使用最近 n 個版本
version_policy: { latest: { num_versions: 3}}
  • 只使用指定的版本
version_policy: { specific: { versions: [1, 3, 5]}}

3. Triton Server 中使用 TensorRT-LLM

3.1 克隆配置文件

本文示例相關的配置已經整理了一份到 GitHub 上,拷貝模型到指定的目之后,就可以直接進行推理了。

git clone https://github.com/shaowenchen/modelops

3.2 組織推理目錄

  • 拷貝 TensorRT 格式模型
cp Baichuan2-7B-trt-engines/* modelops/triton-tensorrtllm/Baichuan2-7B-Chat/tensorrt_llm/1/
  • 拷貝源模型
cp -r Baichuan2-7B-Chat modelops/triton-tensorrtllm/downloads

此時文件的目錄結構是:

tree modelops/triton-tensorrtllm

modelops/triton-tensorrtllm
├── Baichuan2-7B-Chat
│   ├── end_to_end_grpc_client.py
│   ├── ensemble
│   │   ├── 1
│   │   └── config.pbtxt
│   ├── postprocessing
│   │   ├── 1
│   │   │   ├── model.py
│   │   │   └── __pycache__
│   │   │       └── model.cpython-310.pyc
│   │   └── config.pbtxt
│   ├── preprocessing
│   │   ├── 1
│   │   │   ├── model.py
│   │   │   └── __pycache__
│   │   │       └── model.cpython-310.pyc
│   │   └── config.pbtxt
│   └── tensorrt_llm
│       ├── 1
│       │   ├── baichuan_float16_tp1_rank0.engine
│       │   ├── config.json
│       │   └── model.cache
│       └── config.pbtxt
└── downloads
    └── Baichuan2-7B-Chat
        ├── Baichuan2 模型社區許可協議.pdf
        ├── Community License for Baichuan2 Model.pdf
        ├── config.json
        ├── configuration_baichuan.py
        ├── generation_config.json
        ├── generation_utils.py
        ├── modeling_baichuan.py
        ├── pytorch_model.bin
        ├── quantizer.py
        ├── README.md
        ├── special_tokens_map.json
        ├── tokenization_baichuan.py
        ├── tokenizer_config.json
        └── tokenizer.model

13 directories, 26 files

3.3 啟動推理服務

docker run --gpus device=0 --rm -p 38000:8000 -p 38001:8001 -p 38002:8002 \
    -v $PWD/modelops/triton-tensorrtllm:/models \
    hubimage/nvidia-triton-trt-llm:v0.7.1 \
    tritonserver --model-repository=/models/Baichuan2-7B-Chat \
    --disable-auto-complete-config \
    --backend-cnotallow=python,shm-region-prefix-name=prefix0_:

如果一臺機器上運行了多個 triton server,那么需要用 shm-region-prefix-name=prefix0_ 區分一下共享內存的前綴,詳情可以參考 https://github.com/triton-inference-server/server/issues/4145 。

啟動日志:

I0129 10:27:31.658112 1 server.cc:619]
+-------------+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Backend     | Path                                                            | Config                                                                                                                                                                                              |
+-------------+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| python      | /opt/tritonserver/backends/python/libtriton_python.so           | {"cmdline":{"auto-complete-config":"false","backend-directory":"/opt/tritonserver/backends","min-compute-capability":"6.000000","shm-region-prefix-name":"prefix0_:","default-max-batch-size":"4"}} |
| tensorrtllm | /opt/tritonserver/backends/tensorrtllm/libtriton_tensorrtllm.so | {"cmdline":{"auto-complete-config":"false","backend-directory":"/opt/tritonserver/backends","min-compute-capability":"6.000000","default-max-batch-size":"4"}}                                      |
+-------------+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

I0129 10:27:31.658192 1 server.cc:662]
+----------------+---------+--------+
| Model          | Version | Status |
+----------------+---------+--------+
| ensemble       | 1       | READY  |
| postprocessing | 1       | READY  |
| preprocessing  | 1       | READY  |
| tensorrt_llm   | 1       | READY  |
+----------------+---------+--------+
...
I0129 10:27:31.745587 1 grpc_server.cc:2513] Started GRPCInferenceService at 0.0.0.0:8001
I0129 10:27:31.745810 1 http_server.cc:4497] Started HTTPService at 0.0.0.0:8000
I0129 10:27:31.787129 1 http_server.cc:270] Started Metrics Service at 0.0.0.0:8002

四個模型都處于 READY 狀態,就可以正常推理了。

  • 查看模型配置參數
curl localhost:38000/v2/models/ensemble/config

{"name":"ensemble","platform":"ensemble","backend":"","version_policy":{"latest":{"num_versions":1}},"max_batch_size":32,"input":[{"name":"text_input","data_type":"TYPE_STRING",...

可以查看模型的推理參數。如果使用的是 auto-complete-config,那么這個接口可以用于導出 Triton Server 自動生成的模型推理參數,用于修改和調試。

  • 查看 Triton 是否正常運行
curl -v localhost:38000/v2/health/ready

< HTTP/1.1 200 OK
< Content-Length: 0
< Content-Type: text/plain

3.4 客戶端調用

  • 安裝依賴
pip install tritonclient[grpc] -i https://pypi.tuna.tsinghua.edu.cn/simple

Triton GRPC 接口的性能顯著高于 HTTP 接口,同時在容器中,我也沒有找到 HTTP 接口的示例,這里就直接用 GRPC 了。

  • 推理測試
wget https://raw.githubusercontent.com/shaowenchen/modelops/master/triton-tensorrtllm/Baichuan2-7B-Chat/end_to_end_grpc_client.py
python3 ./end_to_end_grpc_client.py -u 127.0.0.1:38001 -p "世界上第三高的山峰是哪座?" -S -o 128


珠穆朗瑪峰(Mount Everest)是世界上最高的山峰,海拔高度為8,848米(29,029英尺)。在世界上,珠穆朗瑪峰之后,第二高的山峰是喀喇昆侖山脈的喬戈里峰(K2,又稱K2峰),海拔高度為8,611米(28,251英尺)。第三高的山峰是喜馬拉雅山脈的坎欽隆加峰(Kangchenjunga),海拔高度為8,586米(28,169英尺)。</s>

3.5 查看指標

Triton Server 已經提供了推理指標,監聽在 8002 端口。在本文的示例中,就是 38002 端口。

curl -v localhost:38002/metrics

nv_inference_request_success{model="ensemble",versinotallow="1"} 1
nv_inference_request_success{model="tensorrt_llm",versinotallow="1"} 1
nv_inference_request_success{model="preprocessing",versinotallow="1"} 1
nv_inference_request_success{model="postprocessing",versinotallow="1"} 128
# HELP nv_inference_request_failure Number of failed inference requests, all batch sizes
# TYPE nv_inference_request_failure counter
nv_inference_request_failure{model="ensemble",versinotallow="1"} 0
nv_inference_request_failure{model="tensorrt_llm",versinotallow="1"} 0
nv_inference_request_failure{model="preprocessing",versinotallow="1"} 0
nv_inference_request_failure{model="postprocessing",versinotallow="1"} 0

在 Grafana 中可以導入面板 https://grafana.com/grafana/dashboards/18737-triton-inference-server/ 查看指標,如下圖:

圖片圖片

4. 總結

本文主要是在學習使用 TensorRT 和 Triton Server 進行推理過程的記錄,主要內容如下:

  • TensorRT 是一種針對 Nvidia GPU 硬件更高效的模型推理引擎
  • TensorRT-LLM 能讓大模型更快使用上 TensorRT 引擎
  • Triton Server 是一個端到端的推理框架,支持大部分的模型框架,能幫助用戶快速實現規模化的推理服務
  • Triton Server 下使用 TensorRT-LLM 進行推理的示例

5. 參考

  • https://mmdeploy.readthedocs.io/zh-cn/latest/tutorial/03_pytorch2onnx.html
  • https://docs.nvidia.com/deeplearning/tensorrt/container-release-notes/running.html#running
  • https://github.com/NVIDIA/TensorRT-LLM
  • https://github.com/triton-inference-server/triton-tensorrtllm
  • https://zhuanlan.zhihu.com/p/663748373
責任編輯:武曉燕 來源: 陳少文
相關推薦

2024-02-01 08:34:30

大模型推理框架NVIDIA

2024-10-22 09:17:07

2023-09-10 12:37:38

模型英偉達

2024-07-29 08:19:00

服務引擎

2023-11-30 15:56:54

大型語言模型人工智能

2023-09-11 09:37:58

開源軟件套AI模型

2023-11-16 14:46:27

AIChat APIOpenAI

2021-01-05 08:39:51

容器前端流水線

2025-04-24 10:26:40

2023-09-01 15:22:49

人工智能數據

2024-07-26 08:59:33

2025-06-05 11:51:14

NVIDIAProRLLLM

2025-10-10 02:00:00

2024-02-04 16:40:11

LLM人工智能AI

2023-11-27 13:19:54

模型訓練

2024-09-09 08:31:15

2021-11-11 16:18:23

NVIDIA

2009-02-04 17:43:53

ibmdwSAML

2023-10-28 16:22:21

Go接口

2021-11-29 22:59:34

Go Dockertest集成
點贊
收藏

51CTO技術棧公眾號

日韩av电影免费观看| 亚洲高清在线观看| 中文字幕免费在线不卡| 一区二区日韩视频| 亚洲mv大片欧洲mv大片| 日韩免费高清av| 少妇人妻无码专区视频| 亚洲 欧美 激情 另类| 亚洲激情一区| 亚洲午夜未删减在线观看 | 三级在线免费看| 尤物网在线观看| 久久不射网站| 日韩中文字幕视频| 久草免费资源站| 欧美黑人巨大xxxxx| 中文字幕一区二区三区视频| 国产精品久久久一区二区三区| 精品无码m3u8在线观看| 国产永久精品大片wwwapp| 欧美日韩精品一区二区三区蜜桃| 国产尤物av一区二区三区| 欧美美女搞黄| 国产成人久久精品77777最新版本| 奇米四色中文综合久久| 免费三级在线观看| 亚洲国产国产| 在线观看日韩国产| 做爰高潮hd色即是空| 日本人妻丰满熟妇久久久久久| 日韩电影免费在线观看网站| 久久99国产精品自在自在app| 精品无码人妻一区| 国产成人tv| 91精品麻豆日日躁夜夜躁| 国产一二三四在线视频| 另类专区亚洲| 欧美日韩免费在线观看| www.好吊操| 婷婷av在线| 亚洲色图清纯唯美| 亚洲日本一区二区三区在线不卡| 麻豆影视在线| 久久精品人人爽人人爽| 鲁鲁视频www一区二区| 天堂av一区二区三区| 国产aⅴ精品一区二区三区色成熟| 91精品国产综合久久香蕉最新版 | 欧美老人xxxx18| 污视频免费在线观看网站| 日本欧美日韩| 色偷偷久久人人79超碰人人澡| 免费一级特黄毛片| av小说在线播放| 亚洲国产精品久久久久秋霞影院| 无码熟妇人妻av在线电影| 日本高清在线观看| 亚洲综合色在线| 91.com在线| 国产盗摄——sm在线视频| 亚洲国产一区二区在线播放| 国产一区二区四区| 国产极品在线观看| 欧美性高潮在线| 久久久久久久久久久久久国产精品| 蜜桃麻豆av在线| 一本大道av伊人久久综合| 人妻无码视频一区二区三区| 日韩毛片免费观看| 欧美性xxxxx极品少妇| 中文字幕第一页在线视频| 国产精品成人**免费视频| 日韩免费福利电影在线观看| 小毛片在线观看| 男男gay无套免费视频欧美| 亚洲欧美中文字幕| 天美传媒免费在线观看| 亚洲色图网站| 国产+人+亚洲| 无码人妻丰满熟妇区bbbbxxxx| 日韩不卡一区二区| 成人啪啪免费看| 人妻视频一区二区三区| 久久久精品tv| 国产精品视频一二三四区| 女人高潮被爽到呻吟在线观看| 91福利精品视频| 亚洲欧美日韩一二三区| 精品三级av| 在线国产精品播放| 久久久久久久9999| 性欧美xxxx大乳国产app| 国产美女被下药99| 亚洲产国偷v产偷v自拍涩爱| 久久亚洲免费视频| 桥本有菜av在线| 日韩精品极品| 91麻豆精品国产91久久久久久| 久久久久9999| 91精品综合久久久久久久久久久 | 成人毛片100部免费看| caoporn视频在线观看| 精品视频免费在线| 色综合久久五月| 亚洲综合五月| 国产精品久久久久久久一区探花| 午夜精品久久久久久久91蜜桃| 久久久久久久一区| 8x8ⅹ国产精品一区二区二区| 成人在线爆射| 国产视频久久久久久久| 国产女人被狂躁到高潮小说| 久久精品首页| 国内外成人免费视频| 久草资源在线| 欧洲av一区二区嗯嗯嗯啊| 高清中文字幕mv的电影| 日韩在线精品| 国产激情久久久| 午夜影院免费体验区| 亚洲色图.com| 亚洲视频一二三四| 不卡中文字幕| 日韩av电影在线免费播放| 国模人体一区二区| 亚洲欧美另类久久久精品| 婷婷激情四射五月天| 理论片一区二区在线| 欧美猛少妇色xxxxx| 亚洲一级黄色大片| 久久品道一品道久久精品| 黄色一级片在线看| 日韩一区二区三区精品| 久久九九国产精品怡红院 | 欧美日韩人妻精品一区二区三区| 男女男精品视频| 欧美一区亚洲二区| 不卡av影片| 日韩精品中文字幕有码专区| 国产亚洲精品女人久久久久久| 激情六月婷婷综合| 这里只有精品66| 四虎在线精品| 啊v视频在线一区二区三区| 国产精品国产精品国产| 日本一区二区视频在线| 久久久久国产一区| 日韩av专区| 成人久久一区二区| av片在线观看| 精品久久人人做人人爽| 精品无码人妻一区二区三| 成人高清免费观看| 欧美日本视频在线观看| 任你弄精品视频免费观看| 欧美尤物巨大精品爽| 欧美男男同志| 欧美日韩在线免费视频| 三级影片在线观看| 国产一区二区三区观看| 超碰10000| 久久人人爽人人爽人人片av不| 性色av香蕉一区二区| 日本中文字幕电影在线观看| 色婷婷精品大在线视频| 久久久久久久久福利| 久久91精品国产91久久小草| 先锋影音男人资源| 成人福利一区| 欧美综合第一页| avtt亚洲| 日韩免费福利电影在线观看| 日韩欧美中文字幕一区二区| 2021中文字幕一区亚洲| 国内自拍视频一区| 亚洲国产一成人久久精品| 高清视频一区二区三区| 欧美大胆成人| 麻豆国产精品va在线观看不卡| 成 人片 黄 色 大 片| 欧美日韩一区二区三区在线免费观看 | 一区二区在线观| 国产精品流白浆在线观看| 日本精品中文字幕| 免费看a在线观看| 精品国产一区二区三区久久影院 | 欧美一区二区三区电影在线观看| 国产91欧美| 欧美精品成人91久久久久久久| 理论在线观看| 精品国产1区2区3区| 中文字幕免费播放| 亚洲午夜久久久久久久久电影院 | 午夜视频在线观看国产| 免费的成人av| 国产精品333| 国产精品videosex性欧美| 精品久久久久久综合日本 | 日韩午夜电影av| 国产一区二区视频网站| 亚洲精品成人少妇| 国产精品久久久久无码av色戒| 狠狠v欧美v日韩v亚洲ⅴ| 日韩精品视频一区二区在线观看| 亚洲五月综合| 日韩亚洲一区在线播放| 福利欧美精品在线| 91精品中国老女人| 影视一区二区三区| 国a精品视频大全| av网站在线免费看推荐| 一区二区三区天堂av| 无码精品人妻一区二区三区影院| 欧美高清视频在线高清观看mv色露露十八 | 日韩精品免费一区二区三区| 精品亚洲第一| 99亚洲乱人伦aⅴ精品| 成人日韩av在线| 激情久久一区二区| 欧洲成人性视频| av免费不卡国产观看| 国产一区二区三区直播精品电影 | av观看免费在线| 欧美日韩三级| 日本一区二区三区四区五区六区| 欧美裸体在线版观看完整版| 鲁丝一区二区三区免费| 高清精品视频| 国产精品久久亚洲7777| 视频一区日韩| 亚洲影院在线看| 亚洲人成777| 成人黄色av播放免费| 国产精品66| 国产美女91呻吟求| 欧美黄色网络| 国产精品一区二区三区在线播放| 偷拍中文亚洲欧美动漫| 欧洲亚洲女同hd| 美女18一级毛片一品久道久久综合| 77777少妇光屁股久久一区| av中文资源在线资源免费观看| 欧美激情aaaa| 丝袜综合欧美| 久久久久久久一| 97人人爽人人澡人人精品| 久久免费视频网| 免费在线小视频| 清纯唯美日韩制服另类| 久久久人成影片一区二区三区在哪下载 | 清纯唯美一区二区三区| 神马影视一区二区| 少妇精品久久久久久久久久| 成人久久久久| 91免费网站视频| 一区二区日韩欧美| 韩国无码av片在线观看网站| 黄色成人av网站| 国产精品一区二区免费在线观看| 国产精品亚洲综合久久| 日韩欧美xxxx| 久久99精品久久久久久动态图| 男生操女生视频在线观看| 韩国欧美国产1区| 欧美激情 亚洲| 国产午夜精品久久久久久免费视| 日本黄区免费视频观看 | 800av免费在线观看| 日韩欧美中文在线| 中文字幕一区二区三区人妻四季| 欧美巨大另类极品videosbest| av中文字幕免费| 亚洲精品在线网站| 国产高清一级毛片在线不卡| 久久久国产视频91| 超级白嫩亚洲国产第一| 国产精品久久久久久网站| 经典三级久久| 蜜桃狠狠色伊人亚洲综合网站| 日韩欧美高清| 3d动漫一区二区三区| 蜜桃久久久久久| 国产污在线观看| 中文字幕人成乱码在线观看| 亚洲电影在线免费观看| www毛片com| 91精品国产综合久久蜜臀| 丰满岳乱妇国产精品一区| 亚洲区一区二区| 成人免费网站在线观看视频| 97碰碰碰免费色视频| 欧洲亚洲精品| 久久精品magnetxturnbtih| 999国产精品永久免费视频app| 免费国产黄色网址| 蜜臀久久99精品久久久久久9 | 在线视频亚洲欧美中文| 视频一区二区三区在线观看 | 国产精品成人免费在线| 日韩伦理在线视频| 欧美精品亚洲一区二区在线播放| 五月天婷婷在线播放| 久久精品国产清自在天天线 | 日本精品视频一区二区三区| 国产极品999| 亚洲免费视频网站| 欧美xxx黑人xxx水蜜桃| 成人免费淫片aa视频免费| 日韩欧美天堂| 日本免费a视频| 久久精品国内一区二区三区 | 亚洲欧洲成人自拍| 成人毛片在线播放| 精品国产成人系列| 麻豆视频在线观看免费| 国产精品成人播放| 日本成人7777| 青青草精品视频在线| 国产伦精品一区二区三区视频青涩| 欧美大波大乳巨大乳| 婷婷久久综合九色国产成人| 亚洲伦理在线观看| 久久中国妇女中文字幕| 国产精品久久久久久久久久齐齐| 快播亚洲色图| 国产欧美三级| 欧美性生交xxxxx| 一区二区三区四区不卡视频 | 日韩h在线观看| 国产桃色电影在线播放| 91视频在线免费观看| 中文字幕一区二区三区欧美日韩 | 日韩视频免费在线观看| 日日av拍夜夜添久久免费| 精品国产_亚洲人成在线| 亚洲先锋成人| 在线观看亚洲免费视频| 一区二区三区在线视频免费观看 | 777午夜精品电影免费看| 久久久久久久久久久久久久久久av| 91久久久久| 亚州av综合色区无码一区| 午夜国产精品一区| 午夜成人免费影院| 国产ts一区二区| 精品香蕉视频| 少妇一级淫免费播放| 国产精品久久精品日日| 国产又粗又猛又黄又爽无遮挡| 精品国产自在精品国产浪潮| 国产美女精品视频免费播放软件| 日本三级中文字幕在线观看| 国产激情视频一区二区三区欧美 | 国产精品久久7| 在线日韩视频| 日本一区二区三区网站| 色婷婷av一区二区| 91在线观看| 亚洲xxx大片| 亚洲香蕉网站| 在线免费观看成年人视频| 欧美这里有精品| 麻豆传媒在线完整视频| 99热最新在线| 免费亚洲一区| 纪美影视在线观看电视版使用方法| 欧美日韩中文字幕精品| caoporn97在线视频| 国产精品入口免费| 久久精品免费| 黑鬼狂亚洲人videos| 精品国产乱码久久久久久免费| 依依综合在线| 四虎永久免费网站| 成人激情免费网站| 精人妻无码一区二区三区| 久久久999国产| 日韩手机在线| av中文字幕网址| 欧美三级xxx| 麻豆系列在线观看| 久久久国产精品一区二区三区| 美女任你摸久久| 精品处破女学生| 中文字幕日韩视频| 精品三级av在线导航| 亚洲xxxx2d动漫1| 亚洲福利视频三区| www.亚洲免费| 国产精品国模大尺度私拍| 日本美女一区二区| 91麻豆免费视频网站| 亚洲色图综合久久| 综合中文字幕| 亚洲欧洲日本精品| 午夜一区二区三区视频| 毛片网站在线免费观看| 欧美乱偷一区二区三区在线| 国产自产视频一区二区三区| 亚洲欧美自拍视频|