成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

給你數據和算力,你也成不了 OpenAI

發布于 2024-10-25 13:24
瀏覽
0收藏

最近在研究大模型訓練和微調相關的內容,聽領導說的最多的一句話“那不是有數據有算力就能搞定的嗎”,于是調研了下 qwen 系列的訓練細節。

再整理過程中,再次感慨,怪不得有了數據和算力,也不是每家公司都是 OpenAI。

Qwen2.5-Math

QWEN2.5-MATH TECHNICAL REPORT: TOWARD MATHEMATICAL EXPERT MODEL VIA SELF- IMPROVEMENT

1. 預訓練階段

Qwen2.5-Math 的預訓練階段是在 Qwen2-Math 的基礎上進行改進的。這個階段的主要目標是構建一個高質量、數學內容豐富的預訓練數據集。

數據處理

  1. 數據召回:
  • 使用 FastText 分類器從網絡源(如 Common Crawl)中召回數學相關數據。
  • 采用迭代訓練策略,每個 epoch 使用更多數學數據來不斷提升分類器性能。
  • 利用已召回數據的元信息(如 URL)擴展數據池,以識別遺漏的數學相關數據。
  1. 數據去重:
  • 使用 MinHash 等技術對相似的數學文檔進行過濾。
  1. 數據質量過濾:
  • 使用 Qwen2-0.5B-Instruct 模型評估潛在數據條目的質量。
  • 根據語言模型給出的評分,優先選擇高質量數據納入最終數據集。
  1. 合成數據生成:
  • 使用 Qwen2-72B-Instruct 模型生成大量數學預訓練語料。
  • 利用已收集的高質量數學數據作為參考材料。
  • 從參考中提取和精煉現有的數學問答數據。
  • 直接生成新的數學問答對。

訓練設置

  • 數據集:Qwen Math Corpus v2,包含超過 1 萬億個 token。
  • 初始化:從 Qwen2.5 系列基礎模型初始化參數。
  • 上下文長度:4K tokens。
  • 模型規模:提供 1.5B、7B 和 72B 三種規模的模型。

2. 監督微調階段 (Supervised Fine-tuning, SFT)

SFT 階段主要針對鏈式思維 (Chain-of-Thought, CoT) 和工具集成推理 (Tool-Integrated Reasoning, TIR) 兩種能力進行訓練。

CoT 數據處理

  1. 數據集構建:

580K 英文和 500K 中文數學問題。

  • 來源包括 GSM8K、MATH、NuminaMath 等標注數據集和 K-12 數學問題集。
  1. 數據合成:
  • 使用 MuggleMath 方法從標注數據演化生成新問題。
  • 使用難度評分模型對問題集進行分類,以保持不同難度水平的平衡分布。
  1. 回答生成:
  • 采用迭代方法,利用拒絕采樣、獎勵建模和標注答案指導。
  • 對于有標注答案的問題,從候選池中選擇 top-k 正確答案的推理路徑。
  • 對于合成問題,使用加權多數投票機制推斷最可能正確的推理路徑。

TIR 數據處理

  1. 數據集構建:
  • 190K 標注問題和 205K 合成問題。
  • 來源包括 GSM8K、MATH、CollegeMath、NuminaMath 等數據集。
  1. 數據合成:
  • 使用 MuggleMath 和 DotaMath 技術在 GSM8K 和 MATH 訓練集上進行查詢演化。
  1. 回答生成:
  • 對于標注問題,使用在線拒絕微調 (RFT) 迭代生成工具集成推理路徑。
  • 在每次 RFT 迭代中,對當前最佳模型進行多次核采樣,增加困難問題的樣本大小。
  • 對于合成問題,使用從在線 RFT 過程中得到的最優模型生成推理樣本。

訓練設置

  • 訓練周期:3 個 epoch
  • 序列長度:4,096 tokens
  • 批量大小:

72B 模型:256

1.5B 和 7B 模型:128

  • 學習率:
  • 72B 模型:5 × 10^-6
  • 1.5B 和 7B 模型:2 × 10^-5
  • 學習率調度:逐漸衰減到 7 × 10^-7

3. 獎勵模型訓練階段 (Reward Model, RM)

數據處理

  • 數據集:361K 英文和 257K 中文數學問題,每個問題配對 6 個來自 Qwen2.5-Math 的樣本回答。
  • 標注策略:

根據回答的最終答案正確性確定正負樣本。

正確答案標記為正樣本,錯誤答案標記為負樣本。

過濾掉所有回答全對或全錯的情況。

通過使用不同規模和版本的模型生成回答,確保數據集難度分布均衡和正負樣本比例平衡。

訓練策略

  • 初始化:從監督微調模型初始化。
  • 模型架構調整:

將語言建模頭替換為標量值頭(兩個線性層)。

  • 損失函數:獎勵模型使用列表式排序損失:

給你數據和算力,你也成不了 OpenAI -AI.x社區

其中, 表示獎勵模型的輸出, 是問題, 是對應的回答。

4. 強化學習階段 (Reinforcement Learning, RL)

訓練策略

采用群組相對策略優化 (Group Relative Policy Optimization, GRPO)

目標函數

群組相對策略優化 (Group Relative Policy Optimization, GRPO) 的目標函數:

給你數據和算力,你也成不了 OpenAI -AI.x社區

獎勵塑型

結合規則驗證器和獎勵模型的獎勵:

其中, 是獎勵模型的輸出, 是規則驗證器的稀疏獎勵, 設置為 0.5。

這樣的格式化使公式更加清晰,并且符合 LaTeX 語法,可以在支持 LaTeX 渲染的 Markdown 環境中正確顯示。

實現細節

  • 基于開源 RLHF 框架 ChatLearn
  • 查詢選擇:從獎勵模型的訓練集中選擇,保留 2 到 5 個正確回答的查詢
  • 采樣策略:每個查詢采樣 32 個回應
  • 訓練設置:
  • 7B 模型:每個 episode 4,096 個樣本,學習率 1 × 10^-5
  • 72B 模型:每個 episode 2,048 個樣本,學習率 5 × 10^-6
  • 全局 batch size:512
  • KL 系數:1 × 10^-3

Qwen2.5-Coder

Technical Report Qwen2.5-Coder Technical Report

1. 預訓練階段

Qwen2.5-Coder的預訓練分為兩個主要階段:文件級預訓練和倉庫級預訓練。

1.1 數據處理

1.1.1 數據來源
  • 源代碼數據:來自GitHub的92種編程語言的公共倉庫,包括Pull Requests、Commits、Jupyter Notebooks和Kaggle數據集。
  • 文本-代碼對應數據:從Common Crawl中提取,包括代碼相關的文檔、教程、博客等。
  • 合成數據:使用CodeQwen1.5生成的大規模合成數據集。
  • 數學數據:來自Qwen2.5-Math的預訓練語料庫。
  • 文本數據:來自Qwen2.5模型的高質量通用自然語言數據。
1.1.2 數據清洗
  • 對GitHub數據應用了一系列基于規則的過濾方法。
  • 對文本-代碼混合數據集采用了粗到細的層級過濾方法,使用較小的模型(如fastText)構建清洗管道。
  • 對合成數據引入執行器進行驗證,確保只保留可執行的代碼。
1.1.3 數據混合比例

經過實驗,最終選擇了70%代碼、20%文本和10%數學的數據混合比例。最終的預訓練數據集包含5.2萬億個token。

1.2 文件級預訓練

1.2.1 訓練目標
  • 下一個token預測
  • 填空任務(Fill-in-the-Middle, FIM)
1.2.2 FIM格式

<|fim_prefix|>{code_pre}<|fim_suffix|>{code_suf}<|fim_middle|>{code_mid}<|endoftext|>
1.2.3 訓練參數
  • 最大訓練序列長度:8,192 tokens
  • 位置編碼:RoPE (Rotary Position Embedding)

1.3 倉庫級預訓練

1.3.1 目的

增強模型的長文本理解能力。

1.3.2 訓練參數
  • 訓練序列長度:從8,192 tokens擴展到32,768 tokens
  • RoPE基頻:從10,000調整為1,000,000
  • 使用YARN機制,使模型能夠處理長達131,072 (132K) tokens的序列
1.3.3 數據

使用了約300B的高質量長代碼數據。

1.3.4 FIM格式

<|repo_name|>{repo_name}
<|file_sep|>{file_path1}
{file_content1}
<|file_sep|>{file_path2}
{file_content2}
<|file_sep|>{file_path3}
<|fim_prefix|>{code_pre}<|fim_suffix|>{code_suf}<|fim_middle|>{code_fim}<|endoftext|>

2. 指令微調階段

2.1 數據準備

2.1.1 多語言編程代碼識別
  • 微調CodeBERT模型以識別近100種編程語言。
  • 保留主流編程語言的指令數據,隨機丟棄長尾語言的部分指令數據。
  • 移除大部分不包含代碼片段的樣本。
2.1.2 GitHub指令合成
  • 使用LLM從代碼片段生成指令。
  • 使用代碼LLM生成響應。
  • 使用LLM評分器過濾低質量樣本。
2.1.3 多語言代碼指令數據

實施了一個多語言多代理協作框架:

  • 創建特定語言的智能代理。
  • 實施協作討論協議。
  • 使用自適應內存系統。
  • 進行跨語言討論。
  • 開發協同評估指標。
  • 實施自適應指令生成。
2.1.4 基于清單的指令數據評分

評估以下方面:

  1. 問題與答案的一致性
  2. 問題與答案的相關性
  3. 問題與答案的難度
  4. 代碼是否存在
  5. 代碼正確性
  6. 代碼清晰度
  7. 代碼注釋
  8. 易學性

最終得分計算:

其中是一系列預定義的權重。

2.1.5 多語言沙箱進行代碼驗證

包括以下模塊:

  1. 語言支持模塊
  2. 樣本代碼庫
  3. 單元測試生成器
  4. 代碼執行引擎
  5. 結果分析器

2.2 訓練策略

2.2.1 粗到細微調
  • 首先使用數千萬低質量但多樣化的指令樣本進行微調。
  • 然后使用數百萬高質量指令樣本進行監督微調。
  • 對于同一查詢,使用LLM生成多個候選答案,然后用LLM評分選擇最佳答案進行監督微調。
2.2.2 混合調優
  • 構造帶有FIM格式的指令對,以保持模型的長文本理解能力。
  • 使用tree-sitter-languages解析代碼片段,提取基本邏輯塊作為中間代碼進行填充。
  • 優化指令模型時,主要使用標準SFT數據,輔以少量FIM指令樣本。

3. 數據去污染

  • 使用10-gram重疊方法進行數據去污染。
  • 移除了關鍵數據集,如HumanEval、MBPP、GSM8K和MATH。
  • 移除了與測試數據有10-gram字符串級別重疊的任何訓練數據。

4. 模型架構

Qwen2.5-Coder有兩種規模的模型:1.5B和7B參數。它們的主要特征如下:

配置

Qwen2.5-Coder 1.5B

Qwen2.5-Coder 7B

隱藏層大小

1,536

3,584

層數

28

28

查詢頭數

12

28

鍵值頭數

2

4

頭大小

128

128

中間層大小

8,960

18,944

詞嵌入綁定

True

False

詞匯表大小

151,646

151,646

訓練token數

5.5T

5.5T

4.1 特殊token

模型引入了幾個特殊token來更好地理解代碼:

給你數據和算力,你也成不了 OpenAI -AI.x社區


1. 預訓練階段

1.1 數據處理

Qwen2 使用了一個新的大規模、高質量的多語言數據集進行預訓練,相比 Qwen 和 Qwen1.5,主要改進包括:

  1. 質量提升:

使用更復雜的啟發式和基于模型的方法進行過濾

利用 Qwen 模型篩選低質量數據和合成高質量預訓練數據

  1. 數據擴展:
  • 收集了更大量的高質量代碼、數學和多語言數據
  • 支持約 30 種語言
  1. 分布優化:
  • 對縮小版模型進行實驗,優化不同來源和領域數據的混合比例

最終的預訓練數據集從 Qwen1.5 的 3 萬億 tokens 擴展到了 7 萬億 tokens。

1.2 模型架構

Qwen2 采用基于 Transformer 的架構,主要特點包括:

  1. 使用 Grouped Query Attention (GQA)
  2. 實現 Dual Chunk Attention (DCA)
  3. 采用 YARN 機制
  4. 使用 SwiGLU 作為激活函數
  5. 采用 Rotary Positional Embeddings (RoPE)
  6. 使用 QKV bias
  7. 采用 RMSNorm 和 pre-normalization

1.3 訓練細節

報告中對預訓練階段的具體超參數配置沒有詳細說明。但提到了以下細節:

  • 序列長度:在預訓練的最后階段,將上下文長度從 4,096 tokens 擴展到 32,768 tokens
  • RoPE 基頻:從 10,000 修改為 1,000,000
  • 采用 YARN 機制和 Dual Chunk Attention 機制,使模型能夠處理長達 131,072 tokens 的序列

2. 后訓練階段

2.1 數據處理

后訓練數據包括兩部分:

  1. 示范數據
  2. 偏好數據

數據構建過程包括協作數據標注和自動數據合成。

2.2 監督微調 (SFT)

  • 數據集:超過 500,000 個示例
  • 訓練輪數:2 epochs
  • 序列長度:32,768 tokens
  • 學習率:從 逐漸降低到
  • 權重衰減:0.1
  • 梯度裁剪:最大值為 1.0

2.3 基于人類反饋的強化學習 (RLHF)

RLHF 訓練包括離線訓練和在線訓練兩個階段:

  1. 離線訓練:
  • 使用預編譯的偏好數據集 P
  • 采用 Direct Preference Optimization (DPO)
  1. 在線訓練:
  • 使用獎勵模型進行實時反饋
  • 每個 episode 中,從當前策略模型采樣多個回復
  • 使用 DPO 進行優化

采用 Online Merging Optimizer 來緩解對齊稅。

3. 模型配置

以 Qwen2-72B 為例的主要配置:

  • Hidden Size: 8,192
  • 層數: 80
  • Query Heads: 64
  • KV Heads: 8
  • Head Size: 128
  • Intermediate Size: 29,568
  • 詞匯表大小: 151,646
  • 預訓練 tokens: 7T

4. 長上下文處理

為增強長上下文能力,Qwen2 采取了以下策略:

  1. 在預訓練最后階段將上下文長度從 4,096 tokens 擴展到 32,768 tokens
  2. 引入大量高質量的長文本數據
  3. 將 RoPE 的基頻從 10,000 修改為 1,000,000
  4. 采用 YARN 機制和 Dual Chunk Attention 機制

這些策略使模型能夠處理長達 131,072 tokens 的序列,同時保持高性能。

5. 詞匯表和分詞器

Qwen2 使用與 Qwen 相同的基于字節級字節對編碼的分詞器:

  • 詞匯表大小:151,643 個常規 token 和 3 個控制 token
  • 有效嵌入大小略大于詞匯表大小(出于分布式訓練考慮)

技術報告提供了 Qwen2 模型訓練的整體框架和一些關鍵細節,但對于預訓練階段的具體超參數配置并沒有詳細說明。報告更多地關注了模型的架構創新、數據處理策略、以及后訓練階段的具體實施細節。

Qwen

1. 預訓練階段

1.1 數據處理

  • Qwen 使用了多樣化的數據集,包括公開網頁文檔、百科全書、書籍、代碼等
  • 數據集是多語言的,主要包含英語和中文
  • 對公開網頁數據進行了以下處理:

從 HTML 中提取文本

使用語言識別工具確定語言

進行精確匹配和模糊匹配的去重

使用規則和機器學習方法過濾低質量數據

使用多個模型對內容進行評分,包括語言模型、文本質量評分模型和不當內容識別模型

人工抽樣審核確保質量

有選擇地上采樣某些來源的數據

  • 納入了高質量的指令數據以提高零樣本和少樣本性能
  • 移除了與測試集有 13-gram 重疊的指令樣本
  • 最終構建了一個包含多達 3 萬億 tokens 的數據集

1.2 分詞

  • 使用字節對編碼(BPE)作為分詞方法
  • 基于開源的 fast BPE tokenizer tiktoken,選擇 cl100k_base 詞表作為起點
  • 增加了常用中文字符和詞,以及其他語言的詞匯
  • 將數字分割成單個數字
  • 最終詞表大小約為 152K

1.3 模型架構

Qwen 采用修改版的 Transformer 架構:

  • 嵌入層和輸出投影層:權重不共享
  • 位置編碼:使用 RoPE(Rotary Positional Embedding)
  • 偏置:在大多數層移除偏置,但在注意力的 QKV 層添加偏置以增強外推能力
  • 歸一化:使用 pre-norm 和 RMSNorm 代替傳統的 layer normalization
  • 激活函數:使用 SwiGLU,將前饋網絡的維度從 4 倍隱藏層大小減少到 8/3 倍

1.4 訓練細節

  • 使用自回歸語言建模作為訓練目標
  • 訓練上下文長度為 2048
  • 使用 Flash Attention 以提高計算效率和減少內存使用
  • 優化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 學習率:使用余弦衰減調度,衰減到峰值學習率的 10%
  • 使用 BFloat16 混合精度訓練以保證訓練穩定性

不同規模模型的具體參數如下:

參數數量

隱藏層大小

注意力頭數

層數

學習率

批次大小

訓練 tokens

1.8B

2048

16

24

3.0e-4

4M

2.2T

7B

4096

32

32

3.0e-4

4M

2.4T

14B

5120

40

40

3.0e-4

4M

3.0T

1.5 上下文長度擴展

為了在推理時擴展模型的上下文長度,Qwen 采用了以下技術:

  • NTK-aware interpolation:通過調整 RoPE 的基礎來防止高頻信息丟失
  • Dynamic NTK-aware interpolation:動態地按塊改變尺度,避免性能嚴重下降
  • LogN-Scaling:根據上下文長度與訓練長度的比例重新縮放查詢和鍵的點積
  • Window attention:限制注意力范圍,防止模型關注過遠的 tokens

2. 監督微調(SFT)階段

2.1 數據處理

  • 注釋了多種風格的對話數據
  • 關注自然語言生成以提高模型的有用性
  • 避免使用可能限制模型能力的提示模板
  • 注釋了與安全相關的數據,如暴力、偏見和色情等
  • 使用 ChatML 格式描述元數據(如角色)和內容

2.2 訓練細節

  • 訓練目標:下一個 token 預測
  • 對系統和用戶輸入應用損失掩碼
  • 優化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 序列長度:2048
  • 批次大小:128
  • 總訓練步數:4000
  • 學習率:
  • 在前 1430 步逐漸增加
  • 峰值為 2e-6
  • 權重衰減:0.1
  • Dropout:0.1
  • 梯度裁剪:1.0

3. 強化學習(RLHF)階段

3.1 偏好模型預訓練(PMP)

  • 構建了包含約 6600 個詳細標簽的分類系統
  • 實現了考慮多樣性和復雜性的平衡采樣算法
  • 使用不同大小的 Qwen 模型和不同的采樣策略生成多樣化的響應
  • 根據標注指南評估響應,并根據分數形成比較對

3.2 獎勵模型訓練

  • 使用相同大小的預訓練語言模型 Qwen 初始化
  • 在原始 Qwen 模型基礎上添加了一個池化層,用于基于特定結束 token 提取句子獎勵
  • 學習率:固定為 3e-6
  • 批次大小:64
  • 序列長度:2048
  • 訓練輪數:1 輪

3.3 PPO 訓練

  • 使用四個模型:策略模型、價值模型、參考模型和獎勵模型
  • 在開始 PPO 之前,先更新價值模型 50 步
  • 對每個查詢同時采樣兩個響應
  • KL 散度系數:0.04
  • 基于運行平均值歸一化獎勵
  • 策略模型學習率:1e-6
  • 價值模型學習率:5e-6
  • 價值損失裁剪:0.15
  • 推理時策略 top-p:0.9
  • 使用預訓練梯度緩解對齊稅

4. 代碼專用模型訓練(CODE-QWEN)

4.1 代碼預訓練

  • 基于 QWEN 基礎模型繼續預訓練
  • 在約 900 億 tokens 的代碼數據上訓練
  • 上下文長度擴展到 8192
  • 優化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 學習率:
  • CODE-QWEN-14B: 6.0e-5
  • CODE-QWEN-7B: 3.0e-5
  • 3% 預熱迭代,無學習率衰減

4.2 代碼監督微調

  • 采用多階段 SFT 策略
  • 優化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 學習率:
  • 14B 模型: 2.0e-6
  • 7B 模型: 1.0e-5
  • 使用余弦學習率調度(3% 預熱步數),然后保持恒定

5. 數學專用模型訓練(MATH-QWEN-CHAT)

  • 在增強的數學指令數據集上進行數學 SFT
  • 序列長度:1024
  • 掩蔽系統和用戶輸入以加速收斂
  • 優化器:AdamW

與 SFT 相同的超參數

  • 峰值學習率:2e-5
  • 訓練步數:50,000

Baichuan2

1. 預訓練階段

1.1 數據處理

  • 數據來源:網頁、書籍、研究論文、代碼庫等多樣化來源
  • 數據量:總計2.6萬億tokens
  • 數據處理:

使用大規模去重和聚類系統,支持LSH和密集嵌入特征

對文檔、段落和句子進行去重和評分

評分用于預訓練中的數據采樣

1.2 模型架構

  • 基于Transformer架構,但做了一些修改:

7B模型使用RoPE位置編碼,13B模型使用ALiBi位置編碼

使用SwiGLU激活函數

使用xFormers實現的內存高效注意力機制

輸入前使用Layer Normalization

使用RMSNorm實現

1.3 訓練超參數

  • 優化器:AdamW

β1 = 0.9, β2 = 0.95

權重衰減:0.1

梯度裁剪:0.5

  • 學習率:
  • 7B模型:2e-4
  • 13B模型:1.5e-4
  • 2000步線性預熱,然后余弦衰減
  • 批量大小:未明確說明
  • 訓練步數:未明確說明,但提到訓練了2.6萬億tokens

1.4 其他訓練細節

  • 使用BFloat16混合精度訓練
  • 使用NormHead穩定訓練:歸一化輸出嵌入
  • 使用max-z loss限制logits大小:

L_max-z = 2e-4 * z^2

其中z是最大logit值

2. 對齊階段

2.1 監督微調(SFT)

  • 數據:超過10萬個人類標注的提示樣本
  • 標注原則:類似Claude的有幫助性和無害性原則
  • 質量控制:使用交叉驗證

2.2 強化學習(RLHF)

2.2.1 獎勵模型訓練
  • 數據:按6個主類別、30個次級類別和200多個三級類別對提示進行分類
  • 損失函數:與InstructGPT相同
  • 評估:不同響應分數差異越大,獎勵模型區分準確率越高
2.2.2 PPO訓練
  • 使用4個模型:
  • Actor模型:生成響應
  • Reference模型:計算KL懲罰(參數固定)
  • Reward模型:提供整體獎勵(參數固定)
  • Critic模型:學習每個token的價值
  • 訓練細節:
  • Critic模型預熱20步
  • 梯度裁剪:0.5
  • 學習率:5e-6(恒定)
  • PPO clip閾值ε = 0.1
  • KL懲罰系數β = 0.2,衰減到0.005
  • 訓練350輪迭代

3. 安全性增強

  • 預訓練階段:

數據過濾去除有害內容

增加正面價值領域數據的采樣概率

  • 對齊階段:
  • 構建紅隊測試程序
  • 使用多值監督采樣方法生成不同安全級別的響應
  • 使用DPO方法高效利用有限標注數據
  • 使用整合Helpful和Harmless目標的Reward Model進行PPO訓練

Baichuan 2模型的訓練過程涵蓋了預訓練、監督微調和強化學習等多個階段,每個階段都有其特定的數據處理、模型架構和訓練策略。論文還特別強調了在整個訓練過程中對模型安全性的關注和改進。

 

本文轉載自 ??芝士AI吃魚??,作者: 芝士AI吃魚

已于2024-10-25 13:26:03修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 欧美性区 | 综合二区 | 少妇一级淫片免费播放 | 国产精品99久久久久久宅男 | 欧美精品一区二区三区四区 在线 | 91久久精品一区二区二区 | 欧美片网站免费 | 国产激情视频网 | 黄色国产 | 国产精品久久久久久久久免费高清 | 日韩一区欧美一区 | 黄篇网址| 久久精品国产亚洲a | 免费视频久久久久 | 欧美成人精品一区二区三区 | 手机在线观看 | 日韩一区二区在线视频 | 日本精品久久久久久久 | 国产一区二区三区色淫影院 | www.一区二区 | 黄a在线观看 | 亚洲色图婷婷 | 欧美日韩免费视频 | 欧美日韩精品一区二区天天拍 | 欧美成人一区二区 | 国产高清视频在线观看播放 | 精品1区| 国产欧美日韩综合精品一区二区 | 久久久久久久久99 | 久久欧美高清二区三区 | 免费一区二区三区 | 国产伦精品一区二区三区高清 | 四虎海外 | 亚洲综合一区二区三区 | 91精品福利 | 国产色播av在线 | 亚洲一区视频在线 | 97人人爱 | 国产高潮av | 日本视频免费观看 | 亚洲美女视频 |