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

使用 OpenLLM 構建和部署大模型應用

人工智能
OpenLLM 是一個開源的大語言模型(LLM)開發框架。它支持多種開源的 LLM 模型,并且具有內建的兩個關鍵的 LLM 優化,能夠優化內存使用。此外,它與 LangChain 和 BentoML 都有很好的集成。

本次分享主題為:使用 OpenLLM 快速構建和部署大語言模型的應用。OpenLLM 是一個開源的大語言模型(LLM)開發框架。它支持多種開源的 LLM 模型,并且具有內建的兩個關鍵的 LLM 優化,能夠優化內存使用。此外,它與 LangChain 和 BentoML 都有很好的集成,可以快速地構建和部署大語言模型的應用。

一、BentoML 公司簡介

圖片

BentoML專注于提供機器學習基礎設施。核心產品是與公司同名的開源框架BentoML。公司總部位于舊金山灣區,在國內也有眾多遠程工作的同事。通過不斷努力,公司獲得了眾多客戶的認可。

二、OpenLLM 產品背景

首先來分享一下我們開發 OpenLLM 的背景。

1、LLM 爆發

圖片

相信即將過去的 2023 年對大家來說都是非常奇妙的一年。2022 年 11 月的時候 ChatGPT 剛剛發布,過了一年到現在,我們已經見證了各種各樣的大語言模型橫空出世:有商用的大語言模型,比如 Claude 和 GPT;也有很多開源的小模型,其參數量可能從幾個 B 到幾百個 B 不等。可以說這是一個大語言模型繁榮發展的時代,新型語言模型的層出不窮。

BentoML 在與一些客戶互動時發現,他們在開發過程中可能會利用 OpenAI 的能力進行開發,將數據輸入到 prompt 中,然后測試推理結果。在將模型部署到生產環境上線時,他們希望在自己的服務器或云服務器上進行部署。

2、屬于自己的 LLM

圖片

大部分客戶有以下訴求:

  • 高可控性/靈活性:如果將所有數據作為一個 prompt 輸入到 OpenAI 的模型中進行推理,這種方法可能并不太切實際。最終,他們期望能夠通過自行訓練或微調,利用多年來積累的用戶數據得到一個屬于自己的模型,實現更加靈活的推理需求。
  • 數據安全性:如果將自己的數據用于模型推理,就需要關注數據安全性的問題。因為如果使用的是公共網絡上的模型,就不可避免地需要將自己的私有數據輸入到這個公共網絡的模型中。這可能導致數據泄露的問題,在一些注重數據安全性的企業中,這是無法接受的。
  • 成本效益:正如之前提到的,如果使用通用模型并采用經過優化的 prompt,可能需要一個龐大的 prompt。舉例來說,如果要進行文檔的推理,可能需要將整個文檔或一本書輸入到 prompt 中。目前大多數商業模型是按 Token 計費的,如果提示非常龐大,成本就會相應增加。然而,如果你能夠擁有自己的大模型應用,那么成本可能只涉及硬件費用。并且,其精確度可能更高,這意味著你可能只需使用更小的模型就能達到相同的推理準確度,從而進一步降低成本。

3、生產環境中部署 LLMs 的挑戰

圖片

如果我們自己去部署大語言模型,可能會遇到以下挑戰:

  • 可操作性:主要涉及到硬件成本,即一個大型模型是否能夠有效地部署在特定硬件上。我們都知道,一些優秀的顯卡可能不太容易獲取。舉例來說,一個擁有 13B 參數的模型,其參數總量可能需要 26GB,這就使得單卡 A10G 顯卡難以應對。因此,可能需要考慮使用多卡或多機部署來解決硬件上的限制。
  • 可擴展性:包含硬件可擴展性和軟件可擴展性兩個方面。首先是硬件的可擴展性,指的是在請求量和并發數較低時,可以只需一顆顯卡或一臺機器來滿足需求,而在用戶量增大時,希望系統能夠自動啟用多顆顯卡或多臺機器進行并發推理。第二方面是軟件的可擴展性。考慮到現在有許多大型語言模型,你可能在開發或測試階段希望方便地在不同模型之間切換,以觀察它們的效果并進行比較。這就需要軟件方面的可擴展性。
  • 吞吐量:大型語言模型的應用與傳統的機器學習應用有一些區別。傳統的機器學習應用,比如圖像分類任務,通常可以進行批處理,即一次性處理多個輸入,同時返回結果。但是大型語言模型在推理時,其輸入不是同時到達,輸出也不是同時產生,這給吞吐量帶來了更大的挑戰。
  • 延遲:我們自然希望延遲越低越好,但在機器學習應用中,延遲有時與吞吐量是一對相互制衡的指標。換句話說,如果要達到較大的吞吐量,可能需要在一定程度上犧牲延遲。

三、OpenLLM 介紹、應用舉例與使用優勢

1、OpenLLM 介紹

圖片

下面介紹我們的開源產品 OpenLLM 是如何解決上述問題的。

OpenLLM 于 2023 年 6 月開源,是一個用于部署大語言模型的框架。目前,該項目在 GitHub 上已經獲得了 6800 多個星標。其最初的口號是通過一行代碼或相對輕松地在不同的大語言模型之間切換,為個人用戶提供方便。無論是想要嘗試不同模型的個人用戶,還是想要部署自己的 AI 應用的用戶,OpenLLM 都可以提供便捷的解決方案。

圖片

OpenLLM 目前支持幾乎所有常用的開源大語言模型。對于每個模型,框架都提供了多個不同的參數量和不同部署模型 ID 可供選擇。目前包括 ChatGLM、百川、Dolly-V2 等模型。

2、OpenLLM 應用舉例

圖片

接下來通過演示來介紹 OpenLLM 是如何加速大語言模型應用的開發和部署的。

首先,啟動一個 LLM 服務。

圖片

啟動 LLM 服務非常簡單,只需在安裝 LLM 工具后運行以下命令:"start dolly-v2" 即可啟動應用。如果你的計算機上之前未下載過該模型,它將自動幫你下載。這可能需要一些時間,應用啟動后,可以通過命令行直接與該服務交互,提出一個問題,比如"地球的重量是多少"。我們使用的是 Dolly-V2 模型,它給出了一個回答。由于這個模型相對較弱,因此回答可能不太準確。

圖片

我們嘗試使用另一個模型,LlaMA,來看看是否可以提升準確度。在這里,我們選擇使用 LlaMA2 模型,但由于 LlaMA2 不是 LlaMA 的默認模型,我們需要指定一下模型 ID。和之前一樣,使用方法完全相同,只是切換了模型。

因此,使用我們的框架,用戶可以輕松在不同的模型之間切換。盡管使用方法一樣,但不同模型的回答可能會有所不同。這次使用 LlaMA2 模型,可以看到給出的答案相對更準確。

圖片

我們使用命令行與服務進行交互,這在測試階段非常方便和實用。然而,在實際部署應用時,我們可能希望應用提供一個 HTTP 或 gRPC 接口,以便前端或外部系統能夠調用。

OpenLLM 框架支持內置的開箱即用的 HTTP API。在服務的首頁,顯示一個 Swagger 頁面,列出了所有服務支持的 HTTP 端點。你甚至可以在這里直接與服務進行交互和測試,輸入提示并獲取 JSON 格式的響應體,就像我們之前在命令行中演示的一樣。

由于我們暴露了 HTTP 接口,因此無論使用 Python、Node 還是 Curl 等任何能夠訪問 HTTP 的客戶端,都可以調用這個接口。這為應用的靈活性和可訪問性提供了更多的選擇。

圖片

我們還提供了一個 Python SDK,使用戶能夠在 Python 代碼中直接與服務進行交互。只需導入 Client,指定服務的地址,就可以直接向服務提出問題,它將正確地給出答案。這樣就可以在 Python 環境中更加便捷地集成和使用 OpenLLM 的服務。

3、OpenLLM 使用優勢

圖片

使用 OpenLLM 有以下優勢:

  • 模型切換。用戶能夠方便地在不同的模型之間進行切換。
  • 內置多種優化技術。首先是量化,通過減少參數精度來降低整體內存使用,特別適用于大型語言模型。OpenLLM 支持幾乎所有模型的量化。其次是 Token Streaming 技術,在典型的聊天機器人場景中表現出色,允許邊產生邊接收答案,詞匯逐個生成。還有 continuous batching(持續批跑)和 paged attention 等重要優化。
  • 多卡支持。用戶可以指定多個 GPU,并根據需要選擇運行方式,甚至可以指定特定的GPU。
  • 模型表現監測。基于公司產品 BentoML,支持 Metrics 測量和性能指標監控。
  • 支持模型微調推理。OpenLLM 支持 Fine-tune,同時也支持與 LoRA Layer 進行合作的推理。
  • 與其他 AI 工具如 BentoML、LangChain 和 Hugging Face 集成良好,提供了更全面的功能和應用場景。

圖片

下面重點討論一下 Continuous Batching(持續批跑),因為我們使用了 VLM 的后端,它為我們帶來了很好的優化。

在大型語言模型的推理中,輸入的強度并不相同,有些輸入可能更快產生結果,而有些可能需要更長時間。如果不進行優化,當其中一個輸入(比如 S2)先完成推理時,整個過程就會等待其他輸入完成才能進入下一輪。這會導致 GPU 時間的浪費,因為有一段時間沒有推理任務在進行。

Continuous Batching 的優化可以在一個推理結束時立即引入下一個推理任務。以一個例子來說明,假設 S3 先完成了推理,那么 S5 就會立即加入,接著 S1 完成了推理,S6 就會立即加入。這樣可以確保在每個時間片上都有一個模型推理任務在運行,從而最大程度地利用 GPU 資源。這是一個有效的優化策略,減少了空閑時間,提高了整體推理效率。

圖片

介紹了時間優化之后,再來看一下空間優化,尤其是關于 KVcache 的優化。首先簡要介紹一下大語言模型的工作原理。它基于 Transformer 框架,模型通過一系列輸入的 token,返回下一個 token 的最大概率。然而,由于輸入可能存在重復計算,例如在輸入"我是一只"后,模型返回"我是一只貓",在輸入"我是一只貓"時,又返回"我是一只貓,",這導致了 Transformer 框架中有許多重復的計算。為了解決這個問題,我們使用 KVcache 緩存計算結果。

KVcache 帶來了一個新問題,就是在計算機內存分配時,無法準確知道需要分配多少內存。我們只能先估算一個大致的范圍。通過圖表演示可以看到,當一個任務完成后,本來可以釋放的內存卻可能由于下一個任務的加入而無法充分利用。這樣就會產生很多內存碎片,影響內存的使用效率。

為了優化這個問題,引入了 Paged Attention。Paged Attention 的優化思想是將所有內存拆分成一個個 block,然后在內存分配時按 block 分配。如果一個任務完成后,發現內存不夠,需要再增加時,框架會在另一個地方(可能不是連續的地方)分配另一個 block。任務完成后,這個 block 可能會被釋放,供下一個任務使用。通過這種方式,可以有效減少內存碎片。需要注意的是,內存不是連續的,因此需要一個 block table 來存儲內存的物理位置和實際序號的映射關系,使得在大模型中看起來是獲得了一個邏輯上連續的內存。

四、BentoML 介紹與應用舉例

1、BentoML 介紹

圖片

完成了以上優化后,開始部署大語言模型。然而,大多數 AI 應用不僅僅是將一個模型部署上去,否則沒有哪個公司能夠與 OpenAI 競爭。因此,除了模型推理之外,我們的 AI 應用還可能包含許多其他方面的工作。例如,需要考慮如何收集數據、驗證數據、配置部署指標以及如何進行模型推理,包括服務指標的觀測。這些問題在研究階段,可能不需要考慮,但在部署和工程化之后,必須考慮這些雜項問題。

圖片

BentoML 與 OpenLLM 集成帶來了許多優勢。BentoML 是一個專注于解決部署后事項的開源 AI 部署框架,具體如下:

  • 開源 AI 部署框架:BentoML 提供了一整套的開發、部署和打包解決方案。
  • 模型與代碼的版本控制:BentoML 引入了模型和版本的控制概念,使得模型可以像 GitHub 的提交一樣進行版本控制。由此可以輕松追蹤和回退之前的指定版本,特別是在模型出錯時非常有用。
  • 通過 Metrics、Traces 和 Logs 提供開箱即用的可觀察性:BentoML 內置了開箱即用的可觀測性功能,包括測量指標、追蹤和日志功能,幫助用戶更好地監測和理解模型的性能。
  • 容器化為標準的 OCI 鏡像:BentoML 支持將整個機器學習應用打包為標準的容器鏡像。
  • 多種部署目標:可以將應用輕松部署在各種云服務器上,例如 AWS。
  • 分布式部署與擴容:BentoML 支持分布式的部署與擴容,為處理高負載提供了便利。
  • Serverless BentoCloud:這是 BentoML 最新支持的功能之一,允許以 Serverless 方式的部署。這意味著應用在沒有任何請求時不占用任何資源,只有在第一個請求到達時才進行冷啟動。

圖片

BentoML 模型是對機器學習模型的一種抽象。在機器學習領域,有許多不同的框架,每個框架都有自己的模型概念。BentoML 允許將這些不同框架的模型導入為 BentoML 模型。這種抽象化的設計有幾個優點:

  • 版本管理:BentoML 模型具有版本管理功能,這意味著可以輕松地追蹤、管理和回滾模型的不同版本。這對于模型的迭代和更新非常有用。
  • 團隊協作:在開發 AI 應用時,通常會有研究團隊負責訓練模型。一旦模型被訓練并保存為 BentoML 模型,就可以被推送到遠程平臺,供工程團隊下載和使用。這種分工和協作的方式使得團隊可以更加高效地合作,研究和工程團隊可以專注于各自的任務。通過這種方式,團隊成員不需要擔心模型的具體來源,只需通過 BentoML 平臺下載并使用相應的模型。這種團隊協作的概念有助于提高整個開發過程的效率和協同工作的流暢性。

圖片

BentoML 的 Runner 具有以下特點:

  • Remote Worker:Runner 將模型封裝成一個遠程對象,使其可以對外提供服務。這種分離的設計允許模型獨立于應用部署,提高了系統的模塊化性和可維護性。
  • 獨立擴容:由于 AI 應用的模型部分通常需要大量 GPU 資源,而其他任務如 API 接口、數據預處理和 IO 操作等則可能只需要 CPU。通過獨立部署,它們可以相互獨立地擴容。CPU 資源相對便宜,可以自由擴展,而 GPU 資源可能有限,例如只有 2 到 3 個。這種方式可以確保將 GPU 資源專注于模型推理,而將 CPU 資源用于其他任務,提高了整體的資源利用率。
  • 支持主流 ML 框架直接轉化為 Runner:BentoML 支持幾乎所有主流的機器學習框架,包括 PyTorch 和 TensorFlow。模型可以直接轉換為 Remote Runner,并在獨立的進程中進行部署。

圖片

上圖中展示了 BentoML API Server 的工作流程:應用從外部接收 HTTP 請求,可能是通過 POST 方法發送的 JSON 數據。接收到的 HTTP 請求數據可能需要進行預處理,以便轉換為模型能夠接受的格式。這個步驟通常涉及數據格式轉換、驗證等操作,確保輸入數據符合模型的要求。IO Descriptors 定義了輸入和輸出數據的結構和類型,起到了數據格式轉換橋梁的作用。經過 IO Descriptors 的轉換后,數據被傳遞給模型進行推理。模型利用輸入數據生成相應的預測或輸出。模型的輸出可能需要進行一些后置處理,以便將其轉換為 HTTP 響應的格式。這個步驟包括將 Tensor 或 Numpy 數組轉換為 JSON 格式等。處理完后的數據以 HTTP 響應的形式返回給請求方,完成了整個推理過程。這是應用與外部系統通信的出口。

圖片

BentoML 的請求處理流程經過了負載均衡層、API 服務器和 Runner 的多個層次:

  • 負載均衡層:負載均衡層接收到所有的請求,并負責將它們分發給 API 服務器。這一層可以進行請求的智能分發,確保每個 API 服務器負載均衡。
  • API 服務器:API 服務器是 BentoML 應用的入口,負責接收來自負載均衡層的請求。API 服務器可能會橫向擴展,即創建多個實例以處理大量的并發請求。一旦 API 服務器接收到請求,它會進行一些預處理,然后將請求轉發給 Runner。
  • Runner:Runner 是對模型的封裝,負責實際的模型推理。在這一層,模型推理支持批處理功能。當 Runner 接收到一個請求時,它會等待一段時間,看是否有其他請求到達。只有當等待時間達到最大值或者達到了規定的批處理容量時,Runner 才會一次性提交這批請求給模型進行推理。這個過程對用戶是無感知的,而且可以提高推理的效率。

圖片

這里介紹一下 BentoML 中 Bento 的概念,Bento 是打包好的最小的部署的單元,包括機器學習的依賴、環境的 Dockerfile、源代碼、需要的模型等各種部署的配置。

2、BentoML 應用舉例

圖片

接下來通過一個實例來演示如何使用 BentoML 開發和部署 AI 應用。我們將創建一個應用,利用 LangChain 和 OpenLLM 實現廣告詞的生成功能,并展示 LangChain 和 OpenLLM 的集成。然后,我們將使用 BentoML 啟動一個 HTTP 服務,通過一行代碼切換 LLM 模型,并最終生成一個 Bento 包,以演示如何使用 BentoML 進行后續部署。

圖片

在前面的代碼中,我們導入了一些 LangChain 的模塊。如果你對 LangChain 比較熟悉的話,應該對這些模塊有所了解,這里不做詳細講解。接下來是 BentoML 的部分。BentoML 主要導入了一些 IO Descriptor,這些描述符用于說明輸入輸出的類型。在這里,我們導入了兩個類型,一個是 JSON,另一個是 Text。現在我們將利用這些導入的模塊和描述符,因為我們的輸入應該是 JSON 格式,而輸出則是一段文字。

圖片

接下來,我們將使用 pydantic 的 Model 定義一個結構體,該結構體用于驗證輸入的有效性。這個 Query 對象包含以下幾個參數:industry 表示所在行業,productName 表示產品名稱,keywords 表示需要的關鍵詞。這些參數是生成廣告詞所需的輸入。

圖片

第二部分是一個 helper 函數,用于快速切換模型 ID。該函數返回一個 LangChain 對象。因此,我們首先使用 opt 模型,如果注釋掉上面的一行并使用下面一行,就可以直接切換到使用百川模型。

圖片

這是 Prompt 的生成部分,利用 LangChain 的功能,指定一個 Prompt 的模板,然后將剛才輸入的參數填充到這個模板中,生成一個完整的 Prompt。

圖片

接下來的步驟是定義要公開的接口。通過指定輸入和輸出的類型,將這個函數作為服務的一個接口。在第 48 行,將 LLM 的 Runner 傳遞給了這個服務,因為在啟動服務時,需要知道有哪些 Runner 需要在分布式環境中遠程啟動。因此,這里的啟動會生成兩個獨立的服務:一個是 API 接口層(`Service`),另一個是 LLM Runner。它們是相互獨立的。

圖片

啟動之后,可以看到與之前相似的 Swagger 頁面,我們可以直接在上面進行測試。在這里,我們將行業設為"SAAS",產品名稱設為"BentoML",執行后,它可以為我們生成一段廣告詞。這個廣告詞符合我們的需求,看起來像一條推文或者微信的內容。如果我們想生成一個房地產行業的廣告,只需切換行業為"房地產",就可以得到一條看起來更符合房地產行業的廣告,其中還包含一個房子的表情圖標。

圖片

開發以及本地的測試完成后,將整個代碼和模型打包成一個 Bento。通過使用 BentoML 的 Build 命令,可以輕松制作一個 Bento 包。制作完成后,還有兩個后續的可選步驟。

圖片

第一個是將其容器化 containerize,打包成一個鏡像,為后續的部署使用。

圖片

第二種選擇是可以直接把這個 Bento push 到我們的 Cloud 平臺上,Cloud 平臺會自動幫你執行后續的部署操作。

圖片

Cloud 平臺是一個能夠部署你的 Bento 的平臺。它會將 Bento 自動轉化為一個運行在 Kubernetes 上的容器,并在其上運行。這里的例子包括一個 API 服務器以及多個不同的 runner,包括 LLM 的 runner 和 Text2Image 的 runner 等。此外,在 BentoCloud 上,可以指定擴容的方式,可以分別為 API 指定需要擴容的節點數,或者為每個 runner 指定需要的 GPU 數量或實例數。

五、OpenLLM 總結

圖片

OpenLLM 是一個開源的大語言模型(LLM)開發框架。它支持多種開源的 LLM 模型,并且具有內建的兩個關鍵的 LLM 優化,能夠優化內存使用。此外,它與 LangChain 和 BentoML 都有很好的集成。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2019-01-23 11:12:42

機器學習機器模型預測工資

2014-06-26 14:08:28

Azure云服務

2010-03-29 13:35:39

ibmdwRIA

2024-07-31 08:14:17

2021-04-20 12:53:34

Polkadot部署合約

2024-07-31 08:00:00

2022-07-07 14:23:06

人工智能機器學習大數據

2024-01-10 09:00:00

OpenAILocalGPT開源大模型

2025-04-02 08:40:00

人工智能大模型AI

2025-03-24 10:55:18

2024-06-18 08:21:31

2023-09-25 10:19:01

模型App開源

2025-03-06 07:28:31

DeepSeek大模型人工智能

2025-08-04 02:45:00

2021-02-03 15:10:38

GoKubernetesLinux

2024-08-12 15:55:51

2011-03-14 13:07:18

QMLQt

2025-10-30 01:25:00

SpringDockerfileDocker
點贊
收藏

51CTO技術棧公眾號

久久99久久98精品免观看软件| 老熟妇仑乱视频一区二区| 国产成人a人亚洲精品无码| 欧美视频福利| 亚洲欧美日韩网| 国产精品自在自线| 91在线三级| 国产免费观看久久| 97人人模人人爽人人喊38tv| 中文字幕一区在线播放| 国产精品99一区二区三| 亚洲国产精品久久久久秋霞蜜臀| 精品99在线视频| 精品国产99久久久久久| 99久久精品国产导航| 国产精品自产拍在线观看中文| 黄色一级视频免费| 自拍偷拍欧美一区| 欧美一级在线免费| 国产性生交xxxxx免费| 亚洲综合影视| 中文字幕精品一区二区三区精品| 国产精品v欧美精品v日韩精品| 亚洲 小说区 图片区| 亚洲私拍自拍| 日韩性生活视频| 免费毛片视频网站| 亚洲**毛片| 亚洲成av在线| 久久蜜桃一区二区| www.久久久| 一级片免费网站| 美女尤物久久精品| 国内精品久久久久久影视8| 日本 欧美 国产| 精品欧美激情在线观看| 日韩av一区在线观看| 4438x全国最大成人| 国产精品原创视频| 91福利国产成人精品照片| 亚洲色成人www永久在线观看| 黄色av电影在线播放| 欧美激情中文字幕一区二区| 久久综合九色99| 日本高清视频在线| 国产成人日日夜夜| 91中文精品字幕在线视频| 天堂网一区二区| 欧美专区18| 欧洲美女7788成人免费视频| 国产情侣在线视频| 日韩一级不卡| 久久久久久国产三级电影| 免费网站观看www在线观| 久久久久久久久99精品大| 日韩一区av在线| 成人无码av片在线观看| 亚洲人成精品久久久| 亚洲码在线观看| 黄瓜视频污在线观看| 伊人精品一区| 尤物99国产成人精品视频| 丰满少妇高潮一区二区| 国产欧美一区| 中文字幕日韩精品在线| 亚洲aaa视频| 911精品美国片911久久久| 美日韩丰满少妇在线观看| 成人观看免费视频| 亚洲高清不卡| 国产不卡精品视男人的天堂| 制服丝袜在线一区| 韩国三级在线一区| 91在线在线观看| 日本免费一区视频| 久久综合久久综合亚洲| 日韩福利一区二区三区| 日本www在线观看视频| 亚洲日本在线天堂| 日本中文字幕在线视频观看| 无遮挡爽大片在线观看视频| 色菇凉天天综合网| 老司机午夜性大片| 国产精品视屏| 一区二区三区回区在观看免费视频| 国产精品综合激情| 国产一区激情| 国产成一区二区| 国产日韩欧美视频在线观看| 成人福利视频网站| 色视频一区二区三区| 国产在线观看a视频| 亚洲成在线观看| 99视频在线视频| 网站一区二区| 国产一区二区三区在线播放免费观看| 黑人操日本美女| 日韩天堂av| 91人成网站www| 亚洲欧洲视频在线观看| 一区二区中文字幕在线| 日本一道本久久| 久久免费影院| 亚洲精品成人久久| 99久久久免费精品| 亚洲免费网站| 7777精品久久久大香线蕉小说| 日韩亚洲视频在线观看| 亚洲色图欧美在线| 99久久激情视频| 盗摄牛牛av影视一区二区| 中文字幕亚洲字幕| 国产午夜福利片| 久久国产精品无码网站| 久久久福利视频| 免费污视频在线观看| 欧美亚洲国产bt| 亚洲激情 欧美| 欧美精品成人| 国产美女主播一区| 可以在线观看的av网站| 亚洲国产va精品久久久不卡综合| 中文字幕66页| 欧美美乳视频| 国产91ⅴ在线精品免费观看| 精品国产亚洲AV| 中文字幕一区二区三区四区不卡 | 亚洲国产一区二区三区在线播放| 欧美亚洲国产日本| 免费观看黄色av| 亚洲精品福利视频网站| 天堂网在线免费观看| 蜜桃一区二区三区| 91超碰中文字幕久久精品| 999免费视频| 亚洲欧洲精品一区二区精品久久久| 国产成人a亚洲精v品无码| 国产女人18毛片水真多18精品| 久久久999精品视频| 中文字幕一区二区三区人妻四季| 久久久久久久久久久久久女国产乱 | 韩国三级丰满少妇高潮| 久久要要av| 国产精品亚洲аv天堂网| porn亚洲| 欧美三区在线观看| 91社区视频在线观看| 美女视频免费一区| 亚洲成人a**址| 激情欧美一区二区三区黑长吊| 亚洲人成网在线播放| 嫩草影院一区二区三区| 欧美激情综合五月色丁香 | 久久天天久久| 日韩视频中文字幕| 国产特级黄色片| 一区二区三区中文字幕精品精品| 黄色片子免费看| 国产一区二区三区四区三区四| 国产精品区免费视频| 日本大片在线播放| 亚洲国产成人精品久久| 国产成人在线免费视频| 久久伊人蜜桃av一区二区| 成人一级片网站| 精品一区不卡| 91沈先生作品| 欧美xxxx性xxxxx高清| 亚洲国产精品电影在线观看| 国产又黄又粗又爽| 欧美国产一区在线| 男人午夜视频在线观看| 欧美日韩国内| 久久精品中文字幕一区二区三区 | 日韩一区精品| 美女福利精品视频| 天堂国产一区二区三区| 91黄色免费网站| 中文字幕资源站| av亚洲精华国产精华| 青青在线视频免费| 国产精品不卡| 国产亚洲二区| 精品美女一区| 久久久久久久国产精品| 激情综合闲人网| 91麻豆精品国产91久久久久久| 久久久久成人精品无码| 久久这里只有精品视频网| 日韩av在线中文| 亚洲人成高清| 亚洲综合av一区| 亚洲综合色婷婷在线观看| 日本精品va在线观看| 日本精品在线| 日韩精品日韩在线观看| 国产毛片毛片毛片毛片毛片| 午夜精品免费在线观看| 成年人网站在线观看视频| 91在线小视频| 亚洲综合20p| 久久国产成人| 免费的一级黄色片| 残酷重口调教一区二区| 国产91社区| 日韩毛片免费看| 日本久久久久久| 2018av在线| 久久综合免费视频| av在线播放免费| 亚洲精品福利免费在线观看| 国产乱子伦精品无码码专区| 色94色欧美sute亚洲线路一久 | 成年人在线观看| 欧美mv和日韩mv国产网站| 最新黄色网址在线观看| 丰满岳妇乱一区二区三区| 杨钰莹一级淫片aaaaaa播放| 久久精品男人天堂av| 亚洲少妇中文字幕| 麻豆国产欧美一区二区三区| 日韩欧美精品在线观看视频| 欧美三区不卡| 亚洲自拍偷拍一区二区三区| 欧美日韩精品一区二区视频| 麻豆视频成人| 大桥未久女教师av一区二区| 亚洲一区二区中文| 亚州精品国产| 国产精品入口免费视| 欧美黑人一区| 欧美亚洲第一区| 超碰在线99| 国内免费久久久久久久久久久| caopon在线免费视频| 日韩最新在线视频| 五月婷婷在线视频| 最近中文字幕mv在线一区二区三区四区| 经典三级在线| 亚洲热线99精品视频| 天堂а√在线8种子蜜桃视频| 亚洲精品一区二区三区在线观看| 精品久久久久中文慕人妻| 欧美一级黄色大片| 国内老熟妇对白hdxxxx| 日韩欧美在线123| 精品人妻无码一区二区| 日韩一区二区三区电影| 亚洲国产综合网| 精品免费99久久| 天天干,夜夜操| 亚洲男人的天堂网站| 国产系列在线观看| 国产亚洲精品高潮| 在线观看的av| 久久成年人视频| 国产网红女主播精品视频| 欧美精品久久久久久久久| a国产在线视频| 欧美在线激情网| 岛国一区二区| 亚洲aa中文字幕| 综合中文字幕| 欧美成熟毛茸茸复古| 精品久久网站| 亚洲美女自拍偷拍| 国模吧视频一区| av免费观看网| 日本免费新一区视频| 久久久九九九热| 粉嫩aⅴ一区二区三区四区| 三级男人添奶爽爽爽视频| 国产日韩欧美一区二区三区综合| 久久av红桃一区二区禁漫| 亚洲激情自拍视频| 在线看成人av| 91福利资源站| av免费在线观看不卡| 亚洲福利视频专区| av在线第一页| 色综合导航网站| 欧美亚洲韩国| 亚洲综合视频1区| 亚洲成a人片77777在线播放| 一区二区三区四区五区视频| 欧美日韩天堂| 国产精品69页| 国产成人午夜高潮毛片| 在线免费看黄视频| 亚洲精品乱码久久久久久黑人| 91浏览器在线观看| 欧美午夜精品久久久久久超碰| www.久久精品.com| 国产一区二区三区精品久久久 | 日韩免费在线看| 久久久久久久久成人| 欧美亚洲精品日韩| 欧美二区视频| 热久久精品国产| 成人美女在线视频| 国产黄色片在线| 天天影视色香欲综合网老头| 亚洲一区二区三区高清视频| 日韩国产欧美精品一区二区三区| 黄色在线免费看| 国产成人精品网站| 高清精品视频| 玖玖精品在线视频| 青青草97国产精品免费观看| 日b视频在线观看| 亚洲婷婷综合久久一本伊一区| 国产成人精品网| 日韩天堂在线观看| 欧美一区二区三区| 日本国产一区二区三区| 国产色噜噜噜91在线精品| 亚洲第一精品区| 日韩vs国产vs欧美| av无码一区二区三区| 亚洲精品乱码久久久久久黑人| 亚洲系列在线观看| 亚洲免费视频网站| 美女高潮在线观看| 成人精品水蜜桃| 欧美影视一区| 天堂av.com| 亚洲欧洲av另类| 一本久道久久综合无码中文| 亚洲图片制服诱惑| 女厕盗摄一区二区三区| av激情久久| 国模一区二区三区| 中文字幕乱妇无码av在线| 亚洲欧洲日产国码二区| 一区二区视频播放| 伊人久久久久久久久久久久久 | 亚洲激情不卡| 白嫩情侣偷拍呻吟刺激| 一区二区免费视频| www.黄色片| 欧美日韩成人精品| 日韩一区二区三区精品| 国产精品无码免费专区午夜| 韩国av一区二区三区在线观看| 911国产在线| 欧美情侣在线播放| 麻豆电影在线播放| 91亚洲va在线va天堂va国| 亚洲乱码电影| 美女流白浆视频| 婷婷久久综合九色国产成人| 欧美一级淫片aaaaaa| 97欧美精品一区二区三区| 久久99偷拍| av网址在线观看免费| 国产婷婷色一区二区三区在线| 波多野结衣电车痴汉| 在线视频中文亚洲| 久久不卡日韩美女| 日本黄xxxxxxxxx100| 豆国产96在线|亚洲| 天天做天天爱夜夜爽| 亚洲深夜福利在线| 欧美亚洲福利| www.69av| 91在线国产观看| 精品一区二三区| 久久久av网站| 国语一区二区三区| 丁香啪啪综合成人亚洲| 中文字幕不卡一区| 国产999久久久| 91av视频导航| 第九色区aⅴ天堂久久香| 亚洲图片 自拍偷拍| 亚洲线精品一区二区三区八戒| 亚洲三区在线观看无套内射| 国产精品嫩草视频| 欧美成人一品| 中文字幕av网址| 欧美精品自拍偷拍动漫精品| 久久av色综合| 天堂av一区二区| 国产激情一区二区三区桃花岛亚洲 | 久久精品国产亚洲夜色av网站| 国产一级片中文字幕| 欧美日韩国产中字| 欧美成人精品一区二区男人看| 国产精品成人一区二区三区| 日韩一区欧美二区| 免费在线观看黄视频| 亚洲欧美日韩图片| 亚洲码欧美码一区二区三区| 999香蕉视频| 一区二区三区免费| av中文字幕在线| 国语精品中文字幕| 国内成+人亚洲+欧美+综合在线| 国产精品suv一区二区三区| 中文字幕精品网|