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

OpenAI回歸開源:gpt-oss-120b和gpt-oss-20b完整指南

譯文 精選
人工智能
在本文指南中,我們將介紹如何獲取gpt-oss-120b和gpt-oss-20b服務,以及在何種場景下使用哪個模型。

譯者 | 陳峻

審校 | 重樓

文將向你介紹OpenAI新發布的兩個開源模型--gpt-oss-120b和gpt-oss-20b,它們的特點,以及在何種場景下該使用哪個模型。

近期,OpenAI發布了兩個開源的大語言模型(LLM--gpt-oss-120bgpt-oss-20b。它們是自GPT-2以來,由OpenAI第一個公開許可的LLM。其旨在創建最好、最先進的、供推理和工具使用的模型。通過開源gpt-ossOpenAI允許人們在Apache 2.0的范圍內,自由地使用和適配。當然,這兩種模式也考慮了專業個性化,以及定制到本地和上下文任務的民主化方法。

在本文指南中,我們將介紹如何獲取gpt-oss-120bgpt-oss-20b服務,以及在何種場景下使用哪個模型。

gpt-oss的特別之處

OpenAI本次新開源的模型是自GPT-2以來最強大的公共模型。其先進之處主要體現在:

  • 開放的Apache 2.0許可證gpt-oss的各種模型不但完全開源,并且是根據Apache 2.0許可證提供授權的。這意味著,它們沒有任何copyleft限制,開發人員可以將其用于研究或商業產品,且無需許可費或源代碼義務。
  • 可配置的推理水平gpt-oss獨特的功能在于用戶可以輕松地將模型的推理能力配置為:低、中或高。這是速度與“思考”深度的權衡。使用“淺推理”和“深度推理”分別會讓模型在回答之前進行少量與深度的“思考”。
  • 全思考鏈(Chain-of-Thought)訪問:與許多封閉模型不同,gpt-oss展示了其內部推理。它有一個默認的分析輸出,即推理步驟通道,以指向最終答案通道。用戶和開發人員可以檢查或過濾輸出部分,以調試或信任模型的推理。
  • 原生代理功能gpt-oss模型建立在代理工作流之上。它們是為遵循指令而構建的,而且在“思考”中使用了工具的原生支持。

模型概述和架構

這兩個gpt-oss模型都基于Transformer網絡,采用了專家混合(Mixture-of-ExpertsMoE)設計。在MoE中,只有完整參數(即“專家”)的子集才對于每個輸入的token有效,從而減少了計算。我們來看一組數字:

  • gpt-oss-120b的總參數量為1170億個(36層)。它使用了128個專家子網絡,每個token都有4個活躍的專家,也就是說每個token能生成51億個活躍參數。
  • gpt-oss-20b的總參數量為210億個(24層),它有32個專家(4個活躍),每個token產生約36億個活躍參數。同時,該架構還包括了一些高級功能,例如:所有注意力層(attention layer)都使用旋轉位置嵌入(Rotary Positional EmbeddingsRoPE)來處理過長的上下文(最多128,000token),以便注意力本身在全局滑動窗口和128 token的滑動窗口之間交替進行。該設計類似于GPT-3
    此外,這些模型使用了大小為8的分組多查詢注意力,以節省內存,同時也保持了快速推理能力。由于其激活函數是SwiGLU,因此所有專家權重都被量化為4位的MXFP4格式,以允許大型模型適配80GB GPU,讓小型模型適配16GB,而不會造成重大的準確性損失。
    下表總結了其核心規格參數:

模型

總參數

活躍參數/token

專家(總計/活躍)

上下文

gpt-oss-120b

36

117B

5.1B

128 / 4

128K

gpt-oss-20b

24

21B

36B

32/4

128K

技術規格和許可

  • 硬件要求gpt-oss-120b需要高端GPU(約80-100 GB VRAM),并在單個80 GB A100/H100GPU或多GPU的設置上運行。而gpt-oss-20b相對較輕,即使在筆記本電腦或蘋果Silicon上也能以約16 GB VRAM運行。同時,這兩種型號都支持128K token的上下文,非常適合冗長的文檔,以及密集型計算。
  • 量化和性能:這兩種型號都使用4位的MXFP4作為默認值,其有助于減少內存的使用,并加快推理速度。當然,如果沒有兼容的硬件,它們會回落到16位,并且需要約48 GB供給gpt-oss-20b。此外,使用FlashAttention等可選的高級內核,也可以進一步提高計算速度。
  • 許可證和使用:基于Apache 2.0發布,這兩種型號都可以被自由地使用、修改和分發,甚至用于商業用途,而無版權或代碼共享的要求,更無API費用或許可證限制。

技術規格

gpt-oss-120b

gpt-oss-20b

總參數

1170

210

每個token的活躍參數

51

36

架構

帶有128專家的MoE4個活躍/token

帶有32專家的MoE4個活躍/token

Transformer

36

24

上下文窗口

128,000token

128,000token

內存要求

80 GB(適合單個H100 GPU

16GB

安裝和設置過程

下面我們來看看如何上手使用gpt-oss

Hugging Face Transformers:請安裝其最新的庫,并直接加載模型。以下安裝命令是必要的先決條件:

pip install --upgrade accelerate transformers

以下代碼可從Hugging Face hub處下載所需的模型。

from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("openai/gpt-oss-20b")
model = AutoModelForCausalLM.from_pretrained(
 "openai/gpt-oss-20b", device_map="auto", torch_dtype="auto")

下載模型后,你可以使用以下方式進行測試:

messages = [
 {"role": "system", "content": "You are a helpful assistant."},
 {"role": "user", "content": "Explain why the sky is blue."}
]
inputs = tokenizer.apply_chat_template(
 messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0]))

此設置可從OpenAI指南中獲得,并在任何GPU上運行。為了在NVIDIA A100/H100卡上獲得最佳速度,請安裝triton內核,以使用MXFP4;否則該模型將會在內部使用16位。

vLLM:對于高吞吐量或多GPU服務,你可以使用vLLM庫。OpenAI2x H100s上可以實現,你可以使用以下命令安裝vLLM

pip install vllm

接著你可以通過以下命令啟動服務器:

vllm serve openai/gpt-oss-120b --tensor-parallel-size 2

或者在Python中,使用:

from vllm import LLM
llm = LLM("openai/gpt-oss-120b", tensor_parallel_size=2)
output = llm.generate("San Francisco is a")
print(output)

這其實是在Hopper GPU上使用優化的注意力內核。

OllamaMac/Windows上的本地)Ollama是本地聊天服務器的turnkey。安裝Ollama后,只需運行:

ollama pull gpt-oss:20b
ollama run gpt-oss:20b

這將下載(量化)模型并啟動用戶聊天界面。Ollama會默認自動應用“harmony”格式的聊天模板。你也可以通過API調用它。例如,使用PythonOpenAI SDK指向Ollama的終端:

from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
response = client.chat.completions.create(
 model="gpt-oss:20b",
 messages=[
 {"role": "system", "content": "You are a helpful assistant."},
 {"role": "user", "content": "Explain what MXFP4 quantization is."}
 ]
)
print(response.choices[0].message.content)

它會像官方API一樣,將提示詞發送給本地gpt-oss模型。

Llama.cppCPU/ARM:提供預構建的GGUF版本(例如,ggml-org/GPT-Oss-120b-GGUF on Hugging Face)。安裝llama.cpp后,你可以在本地構建服務模型:

# macOS:
brew install llama.cpp
# Start a local HTTP server for inference:
llama-server -hf ggml-org/gpt-oss-120b-GGUF -c 0 -fa --jinja --reasoning-format none

然后以相同的格式將聊天消息發送到http://localhost:8080。此選項允許在具有JITVulkan支持的CPUGPU-agnostic的環境中運行。

總體而言,gpt-oss模型可以與最常見的框架一起使用。上述方法(如:TransformersvLLMOllamallama.cpp)涵蓋了桌面和服務器設置。你也可以進行混合配置。例如,運行一個用于快速推理的設置(如:在GPU上的vLLM)和另一個用于設備測試的設置(如:Ollamallama.cpp)。

實際操作演示部分

任務 1:推理任務

提示詞:選擇與第三個術語相關的選項,就像第二個術語與第一個術語相關的方式一樣。

IVORY : ZWSPJ :: CREAM : ?

  1. NFDQB
  2. SNFDB
  3. DSFCN
  4. BQDZL
import os
os.environ['HF_TOKEN'] = 'HF_TOKEN'
from openai import OpenAI
client = OpenAI(
 base_url="https://router.huggingface.co/v1",
 api_key=os.environ["HF_TOKEN"],
)
completion = client.chat.completions.create(
 model="openai/GPT-Oss-20b", # openai/GPT-Oss-120b Change to use 120b model
 messages=[
 {
 "role": "user",
 "content": """Select the option that is related to the third term in the same way as the second term is related to the first term.
 IVORY : ZWSPJ :: CREAM : ?
A. NFDQB
B. SNFDB
C. DSFCN
D. BQDZL
"""
 }
 ],
)
# Check if there's content in the main content field
if completion.choices[0].message.content:
 print("Content:", completion.choices[0].message.content)
else:
 # If content is None, check reasoning_content
 print("Reasoning Content:", completion.choices[0].message.reasoning_content)
# For Markdown display in Jupyter
from IPython.display import display, Markdown
# Display the actual content that exists
content_to_display = (completion.choices[0].message.content or
 completion.choices[0].message.reasoning_content or
 "No content available")

gpt-oss-120b的響應為:

Content: **Answer: C. DSFCN**
1
Answer: C. DSFCN
display (Markdown (content_to_display))
gpt-oss-20b的回應為:
display (Markdown (content_to_display))
→ Letters of CREAM: C=3, R=18, E=5, A=1, M=13.
Option A: NFDQB: N=14, F=6, D=4, Q=17, B=2. Differences: +11, -12, -1, +16, -11? Let's compute: 3->14 diff +11.
18->6 diff -12 or +14 mod 26. 5->4 diff -1. 1->17 diff +16. 13->2 diff -11 or +15 mod 26.
Option B: SNFDB: S=19, N=14, F=6, D=4, B=2. Diffs: +16, -4, +1, +3, -11? Actually 1->? Wait 1 is A -> D=4 diff +3. 13->2 diff -11.
Option C: DSFCN: D=4, S=19, F=6, C=3, N=14. Diffs: +1, -4? 18->19 +1? Wait from R=18 to S=19 diff +1. 5->6 +1. 1->3 +2. 13->14 +1. So diff pattern from CREAM: +1, +1, +1, +2, +1? Hmm.
Option D: BQDZL: B=2, Q=17, D=4, Z=26, L=12. Diffs: -1? 3->2-1. 18->17 - 1. 5->4 -1. 1->26 -? 1->26 diff+25 or
1 but need wrap: 1 to 26 is -1 mod 26? Actually 26-1=25; but shift -1? 13->12 -1. So pattern differences:
1,-1,-1,-1,-1. That looks like constant shift -1. Wait check: A-> difference of -1? But from A to Z one position back yields Z. So -1 shift for each letter.
But CREAM to BQDZL: C(3)->B(2) diff -1; R(18)->Q(17) diff -1; E(5)->D(4) diff -1; A(1)->Z(26) diff -1; M(13)-
>L(12) diff -1. Yep exactly each letter minus 1 circularly. So mapping from IVORY to ZWSPJ: Let's check if shift is also -1 for all letters? IVORY: I(9)->Z(26) diff -? 9-1=8 which is H, not Z. So not -1. Let's try shift +? but maybe we mis-evaluated earlier differences incorrectly? Let's compute mapping of letters of IVORY to ZWSPJ if shift is +? compute 9 > 26: difference +17. 22 ->23: +1. 15 ->19: +4. 18->16: -2. 25->10: -15 or +11. So not constant.
But mapping for CREAM to BQDZL is constant -1. Could that be the same rule that applied to IVORY? Let's see if maybe we mis-check: maybe we should shift each letter of IVORY +? to get ZWSPJ. Check if shift is maybe +10?
9+10=19 -> S, not Z. Maybe shift is +? maybe it's variable: first letter shift by +17, second +1, etc. Might correspond to the positions of C and D? Maybe shift pattern equal to letters of "IRIS"? Hard.
But maybe we mis-evaluated mapping: Let's just brute force compute if there's any simple transformation for
IVORY to ZWSPJ that could also apply to CREAM making one of options. Because four options: NFDOB (option
A) etc. Maybe only one will match a pattern that also holds for IVORY->ZWSPJ.
Maybe we need to deduce mapping from the two words: find the key that transforms first to second. Could be a Caesar shift based on some rule like shift each letter by number of letters same as preceding letter's position difference? For example: I shift by something, produce Z. Let's see I->Z: difference 17. Maybe shift equals difference between l's position in alphabet and length of word? 9-5=4? Not 17. difference between number of letters before I? No.
Maybe mapping uses the second word's letters as "reference" like "Z" is the 26th letter which equals sum of I (9) +
V 22) + 0(15) + R18) + Y25) = 9+22+15+18+25=89; 89 mod 26 = 11? not 26.

比較分析

gpt-oss-120B正確地識別了類比中的相關模式,并通過深思熟慮的推理選擇了選項C。因為它有條不紊地解釋了單詞對之間的字符轉換,因此獲得了正確的映射。另一方面,gpt-oss-20B未能在此任務上產生任何結果,則可能是因為輸出token的限制,也就揭示了輸出長度的局限性,以及計算效率的低下。總體而言,gpt-oss-120B能夠更好地管理符號推理,具有更多的控制和準確性。可見,對于此類涉及到語言類比的推理任務而言,gpt-oss-120Bgpt-oss-20B更可靠。

任務2:代碼生成

提示詞:給定兩個大小分別為mn的排序數組nums1nums2,返回兩個排序數組的中位數。

C++中,總體運行時復雜度應該是Ologm+n))。

示例1

輸入:nums1 = [1,3]nums2 = [2]

輸出:2.00000

解釋:合并數組=[1,2,3],中位數為2

示例2

輸入:nums1 = [1,2]nums2 = [3,4]

輸出:2.50000

解釋:合并數組=[1,2,3,4],中位數為(2 + 3/2 = 2.5

約束:

nums1.length==m

nums2.length==n

0 <= m <= 1000

0 <= n <= 1000

1 <= m + n <= 2000

-106 <= nums1[i],nums2[i] <= 106

import os
from openai import OpenAI
client = OpenAI(
 base_url="https://router.huggingface.co/v1",
 api_key=os.environ["HF_TOKEN"],
)
completion = client.chat.completions.create(
 model="openai/GPT-Oss-120b", # openai/GPT-Oss-20b change to use 20b model
 messages=[
 {
 "role": "user",
 "content": """Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.
 The overall run time complexity should be O(log (m+n)) in C++.
 Example 1:
 Input: nums1 = [1,3], nums2 = [2]
 Output: 2.00000
 Explanation: merged array = [1,2,3] and median is 2.
 Example 2:
 Input: nums1 = [1,2], nums2 = [3,4]
 Output: 2.50000
 Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
 Constraints:
 nums1.length == m
 nums2.length == n
 0 <= m <= 1000
 0 <= n <= 1000
 1 <= m + n <= 2000
 -106 <= nums1[i], nums2[i] <= 106
"""
 }
 ],
)
# Check if there's content in the main content field
if completion.choices[0].message.content:
 print("Content:", completion.choices[0].message.content)
else:
 # If content is None, check reasoning_content
 print("Reasoning Content:", completion.choices[0].message.reasoning_content)
# For Markdown display in Jupyter
from IPython.display import display, Markdown
# Display the actual content that exists
content_to_display = (completion.choices[0].message.content or
 completion.choices[0].message.reasoning_content or
 "No content available")

gpt-oss-120b的響應為:

include <bits/stdc++.h>
using namespace std;
class Solution {
public:
 double findMedianSortedArrays(const vector<int>& nums1,
 const vector<int>& nums2) {
 // Let A be the shorter array.
 const vector<int>* A = &nums1;
 const vector<int>* B = &nums2;
 if (A->size() > B->size()) swap(A, B); // now |A| ≤ |B|
 int m = A->size();
 int n = B->size();
 int total = m + n;
 int half = (total + 1) / 2; // size of left part
 int low = 0, high = m; // we search over number of elements taken from A
 while (low <= high) {
 int i = (low + high) / 2; // elements from A on the left side
 int j = half - i; // must come from B
 // Edge handling: use infinities for out?of?range indices
 int a_left = (i == 0 ? INT_MIN : (*A)[i - 1]);
 int a_right = (i == m ? INT_MAX : (*A)[i]);
 int b_left = (j == 0 ? INT_MIN : (*B)[j - 1]);
 int b_right = (j == n ? INT_MAX : (*B)[j]);
 if (a_left > b_right) { // i too large
 high = i - 1;
 } else if (b_left > a_right) { // i too small
 low = i + 1;
 } else { // correct split
 int max_left = max(a_left, b_left);
 if (total % 2 == 1) // odd
 return static_cast<double>(max_left);
 int min_right = min(a_right, b_right);
 return (max_left + min_right) / 2.0;
 }
 }
 // The code never reaches here because the constraints guarantee at least one element.
 return 0.0;
 }
};
/* Example usage
int main() {
 Solution s;
 vector<int> a = {1, 3};
 vector<int> b = {2};
 cout << fixed << setprecision(5) << s.findMedianSortedArrays(a, b) << endl; // 2.00000
 a = {1,2};
 b = {3,4};
 cout << fixed << setprecision(5) << s.findMedianSortedArrays(a, b) << endl; // 2.50000
}

gpt-oss-20b的響應為:

# Reference Implementation (C++17)
include <bits/stdc++.h>
using namespace std;
class Solution {
public:
 double findMedianSortedArrays(vector<int>& nums1,
 vector<int>& nums2) {
 // Ensure nums1 is the shorter array
 if (nums1.size() > nums2.size())
 return findMedianSortedArrays(nums2, nums1);
 int m = nums1.size();
 int n = nums2.size();
 int low = 0, high = m;
 int halfLen = (m + n + 1) / 2; // size of left part
 while (low <= high) {
 int i = (low + high) / 2; // partition in nums1
 int j = halfLen - i; // partition in nums2
 // i too small - must move right
 if (i < m && nums2[j-1] > nums1[i])
 low = i + 1;
 // i too big - must move left
 else if (i > 0 && nums1[i-1] > nums2[j])
 high = i - 1;
 else {
 // correct partition found
 int maxLeft;
 if (i == 0)
 maxLeft = nums2[j-1];
 else if (j == 0)
 maxLeft = nums1[i-1];
 else
 maxLeft = max(nums1[i-1], nums2[j-1]);
 // odd total, median is maxLeft
 if ((m + n) % 2 == 1)
 return static_cast<double>(maxLeft);
 // even total, need minRight as well
 int minRight;
 if (i == m)
 minRight = nums2[j];
 else if (j == n)
 minRight = nums1[i];
 else
 minRight = min(nums1[i], nums2[j]);
 return (maxLeft + minRight) / 2.0;
 }
 }
 // Should never reach here for valid input
 return 0.0;
 }
};
/* Example usage:
int main() {
 Solution s;
 vector<int> a = {1, 3};
 vector<int> b = {2};
 cout << fixed << setprecision(5) << s.findMedianSortedArrays(a, b) << endl; // 2.00000
}

比較分析

gpt-oss-120B準確地完成了類比,選擇了選項C,并通過成功地識別字母替換模式,顯示了強有力的理由。該模型在處理字母振蕩的轉變和跟蹤事物之間的關系方面,顯示了良好的推理。與之對比,gpt-oss-20B甚至無法完成任務。該模型超過了輸出token的限制,沒有返回答案。這表明gpt-oss-20B在資源使用或處理提示方面效率低下。總體而言,gpt-oss-120B在結構推理任務中表現得更好,這使得它比gpt-oss-20B更擅長與符號類比相關的任務。

模型選擇指南

120B20B模型之間如何進行選擇,完全取決于項目需求或我們正在處理的任務。通常:

  • gpt-oss-120b:是一種大功率模型,可將其用于較為困難的推理任務、復雜的代碼生成、數學問題解決或特定領域的問答。它的性能接近OpenAIo4-mini模型。因此,它需要一個具有80GB以上 VRAM的大型GPU來運行,并且能在視分步推理至關重要的基準和長形式(long-form)任務中表現出色。
  • gpt-oss-20b:是一個針對效率優化的“苦干”模型。在許多基準測試中,它與OpenAIo3-mini的質量相匹配,但可以在單個16GB VRAM上運行。當你需要快速的設備響應助手、低延遲聊天機器人、或使用網絡搜索、及Python調用的工具時,請選擇20B。它非常適合概念驗證、移動/邊緣應用、或硬件受限的場景使用。在許多情況下,20B模型的回答已足夠好。例如,它在某項困難的數學競賽任務中的得分約為96%,幾乎與120B相當。

性能基準和比較

在標準化基準方面,OpenAI的各個gpt-oss可以共享結果。目前,120B模型正在不斷迭代。它在艱難的推理和知識任務上的得分已高于20B模型,雖然目前兩者仍各有千秋。

基準

gpt-oss-120b

gpt-oss-20b

開放AI o3

OpenAI o4-mini

MMLU

90.0

85.3

93.4

93.0

GPQA Diamond

80.1

71.5

83.3

81.4

Humanitys Last Exam

19.0

17.3

24.9

17.7

AIME 2024

96.6

96.0

95.2

98.7

AIME 2025

97.9

98.7

98.4

99.5

來源:ChatGPT

來源:ChatGPT

用例和應用

以下是gpt-oss的一些典型用例場景:

  • 內容生成和重寫:生成或重寫文章、故事或營銷文案。gpt-oss模型可以在寫作前描述他們的思維過程,并幫助作家和記者創建更好的內容。
  • 輔導和教育:可以演示描述概念的不同方式,一步一步地解決問題,并為教育應用或輔導工具和醫學提供反饋。
  • 代碼生成:可以很好地生成代碼、調試代碼或解釋代碼。gpt-oss模型也可以在內部運行工具,允許它們輔助開發任務或作為編碼助手提供幫助。
  • 研究協助:可以總結文檔,回答特定領域的問題,并分析數據。gpt-oss的模型也可以針對法律、醫學或科學等特定研究領域進行微調。
  • 自主代理:啟用并使用工具構建帶有自主代理的機器人。這些機器人可以瀏覽網頁、調用API或運行代碼。它們便捷地與代理框架集成,以構建更復雜的基于步驟的工作流。

小結

綜上所述,在OpenAI發布的兩個開源模型gpt-oss-120bgpt-oss-20b中,120B模型全面表現優秀,特別是在:生成更清晰的內容,解決更難的問題,編寫更好的代碼,并更快地適應研究和自主任務等方面。當然,其短板在于資源利用強度較高,給本地部署帶來了一定挑戰。

譯者介紹

陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。

原文標題:OpenAI Returns to Open Source: A Complete Guide to gpt-oss-120b and gpt-oss-20b,作者:Vipin Vashisth

責任編輯:姜華 來源: 51CTO內容精選
相關推薦

2025-08-13 07:25:57

語言模型LLM人工智能

2025-08-19 02:10:00

OpenAI模型參數

2025-08-07 14:05:40

OpenAI大模型開源

2025-08-19 08:40:00

AI技術模型

2025-08-08 04:11:00

GPT-OSS大模型算法

2025-08-06 07:42:26

2025-08-13 11:42:09

2025-08-18 09:15:00

2024-05-13 12:38:08

AI訓練

2025-08-07 09:05:45

2024-01-11 07:28:42

2025-08-06 14:09:40

模型OpenAIgpt-oss

2023-04-09 16:17:05

ChatGPT人工智能

2025-08-21 10:14:18

2024-05-08 13:41:31

OpenAIA/B測試

2024-01-05 13:13:40

2023-12-24 13:56:37

2023-12-11 19:16:25

2023-08-23 13:27:00

SQLCoder開源開發

2024-01-05 11:11:39

點贊
收藏

51CTO技術棧公眾號

国产aⅴ精品一区二区三区色成熟| 在线国产一区二区| 欧美体内she精视频| 精品日韩在线播放| 五月婷婷久久久| 麻豆一区二区在线| 久久免费视频网| 久久久久久国产免费a片| 高清一区二区三区av| 欧美日韩另类字幕中文| 伊人情人网综合| 熟妇人妻中文av无码| 久久精品国产在热久久| 久久免费视频在线观看| 亚洲a∨无码无在线观看| 一区视频网站| 欧美少妇xxx| 精品无码国产一区二区三区av| 精品成人一区二区三区免费视频| 国产在线一区观看| 国产成人+综合亚洲+天堂| 国产黄色片在线免费观看| 免费一区二区三区视频导航| 日韩一级大片在线观看| 国产精品久久久毛片| 97蜜桃久久| 成人在线视频中文字幕| 欧美一区二区三区成人片在线| 日本在线免费| 99久久精品免费观看| 一级在线免费视频| 日韩电影在线观看永久视频免费网站| 欧美一区2区三区4区公司二百| 中文字幕第99页| 亚洲一级网站| 丝袜美腿精品国产二区| 久久午夜夜伦鲁鲁片| 91精品在线免费视频| 欧美日韩免费观看中文| 伊人久久在线观看| 麻豆影视在线观看_| 久久久www成人免费无遮挡大片 | 日韩精品毛片| 久久婷婷色综合| 国产免费一区| 亚洲国产av一区二区| 激情都市一区二区| 国产精品色婷婷视频| 特级做a爱片免费69| 日韩视频久久| 97福利一区二区| 日韩高清免费av| 激情综合视频| 777午夜精品福利在线观看| 国产精品99精品无码视| 欧美精品二区| 欧美精品激情在线观看| 久热精品在线观看| 激情偷拍久久| 久久久亚洲成人| 麻豆成人在线视频| 欧美午夜a级限制福利片| 欧美高清不卡在线| 日韩三级视频在线| 亚洲永久字幕| 国产精品久久久久久久久久久久久久| 中文在线字幕av| 久久国内精品自在自线400部| 91精品国产综合久久久久久蜜臀 | 日本黄色激情视频| 婷婷精品进入| 欧美精品激情在线| 五月婷婷激情视频| 日本成人超碰在线观看| 国产一区二区在线免费| 性生交生活影碟片| 91天堂素人约啪| 青青草成人网| 黄色精品免费看| 亚洲va韩国va欧美va| 成年人免费在线播放| 久久91视频| 精品日韩一区二区三区免费视频| 欧美肉大捧一进一出免费视频| 思热99re视热频这里只精品| 国产一区二区三区在线| 欧美肥妇bbwbbw| 在线精品在线| 国产精品久久久999| 99国产在线播放| 99久久精品国产观看| 日韩资源av在线| 黄视频网站在线看| 福利一区视频在线观看| 中文字幕第88页| 激情av综合| 中文字幕日韩有码| 日韩精品视频播放| 久久成人av少妇免费| 国产高清自拍99| www在线免费观看| 亚洲动漫第一页| 久久这里只精品| 国产丝袜一区| www.亚洲人.com| 五月婷婷亚洲综合| 国产精品一区在线| 欧美一级日本a级v片| www久久日com| 欧美丝袜丝nylons| 国产偷人妻精品一区| 91精品一区国产高清在线gif| 77777亚洲午夜久久多人| 一级特黄色大片| 久久久久九九视频| 欧美又粗又长又爽做受| www.久久.com| 亚洲欧洲高清在线| 精品在线视频免费| 国产一区中文字幕| 日韩欧美视频第二区| 91探花在线观看| 日韩一区二区免费在线电影| 欧美熟妇激情一区二区三区| 亚洲精品资源| 国产精品国产精品| 18av在线视频| 欧美精品在线观看播放| 成人在线手机视频| 久久人人精品| 九九九热999| 多野结衣av一区| 精品蜜桃在线看| 久草视频手机在线观看| 国产一区二区0| 尤物一区二区三区| 国产精品伊人| 国产一区二区三区丝袜| 波多野结衣视频免费观看| 91色在线porny| 免费在线激情视频| 综合综合综合综合综合网| 欧美性在线观看| 日本亚洲一区| 精品日本美女福利在线观看| 国产一级免费片| 亚洲国产日韩欧美一区二区三区| 99国产盗摄| 欧美大片黄色| 亚洲精品国产免费| 波多野结衣国产| 91在线观看地址| 男女曰b免费视频| 国语产色综合| 国产精品人人做人人爽| 老司机福利在线视频| 欧美性猛片xxxx免费看久爱| 国产探花视频在线播放| 美女脱光内衣内裤视频久久影院| 三区精品视频观看| 97久久精品一区二区三区的观看方式 | 欧美一区二区影院| 国产最新视频在线| 欧美日韩高清在线| 欧美日韩精品一区二区三区视频播放| 国产麻豆日韩欧美久久| 国产精品久久久久9999爆乳| 精品综合久久88少妇激情| 啪一啪鲁一鲁2019在线视频| 理论视频在线| 欧美精品久久99久久在免费线 | 欧美三级xxx| 日本成人免费视频| 国产乱码一区二区三区| 男人天堂av片| 久久不见久久见免费视频7| 国产精品男女猛烈高潮激情| 国产区在线观看| 亚洲国产小视频在线观看| 国产污视频网站| 亚洲男帅同性gay1069| 亚洲男人在线天堂| 久久福利视频一区二区| 成人免费视频91| 成人av资源电影网站| 爱情岛论坛亚洲入口| 91精品论坛| 久久亚洲欧美日韩精品专区| 少妇一级淫片免费看| 欧美视频在线一区| 久久久久久久国产精品毛片| 国产亚洲自拍一区| 免费在线观看日韩av| 久久国产一二区| 波多野结衣 作品| 亚洲精品国产精品粉嫩| 91亚洲精品久久久| 日韩av大片站长工具| 欧美大尺度激情区在线播放| 韩国三级在线观看久| 日韩精品最新网址| 中文字幕一区二区在线视频| 亚洲综合一区二区三区| 一级黄色录像毛片| 成人免费视频网站在线观看| 欧美伦理片在线看| 亚洲理论在线| 亚洲在线色站| 欧美激情在线免费| 国产日韩一区二区三区| 疯狂欧洲av久久成人av电影| 国产成人一区二区三区小说| www.综合网.com| 久久久91精品国产| 啊v在线视频| 亚洲精品日韩欧美| 亚洲av无码一区二区三区性色| 欧美性大战久久久| 黄色片中文字幕| 午夜精彩视频在线观看不卡| 天天鲁一鲁摸一摸爽一爽| 国产欧美日本一区视频| 一本色道综合久久欧美日韩精品| 国产精品99久久久久久久女警| 日韩av片网站| 久久资源在线| 日韩少妇内射免费播放18禁裸乳| 欧美日韩在线大尺度| 国产成人免费高清视频| 日韩精品看片| 亚洲天堂电影网| 不卡在线一区| 亚洲精品无人区| 久久精品国产大片免费观看| 日韩av电影免费在线观看| 私拍精品福利视频在线一区| 国产精品三区在线| 成人资源在线播放| 国产精品乱子乱xxxx| 欧美影院视频| 999热视频| 一区二区三区视频免费视频观看网站| 91色琪琪电影亚洲精品久久| 久久精品超碰| 成人做爽爽免费视频| 亚洲伊人伊成久久人综合网| 成人免费网站在线| 国产一区二区三区国产精品| 成人久久久久久久| 久久久久亚洲精品中文字幕| 97av影视网在线观看| 日韩一二三区| 99在线视频免费观看| h视频久久久| 精品欧美日韩在线| 蜜桃一区二区三区| 日韩精品一区二区三区四区五区| 精品国产乱码久久久| 午夜一区二区三区| 日本一区二区免费高清| 最新不卡av| 伊人激情综合| 国产真实乱子伦| 男女男精品视频| 天堂网成人在线| 成人av在线影院| 国产色视频一区二区三区qq号| 国产午夜精品福利| 91香蕉视频在线播放| 亚洲尤物在线视频观看| 亚洲天堂一区在线观看| 在线看不卡av| av在线资源观看| 亚洲激情成人网| 中文字幕日本在线| 欧美大片免费观看| 欧美xxx网站| 成人黄色片网站| www.成人网| 性欧美.com| 亚洲一级影院| 国产又猛又黄的视频| 国产一区二区三区免费在线观看| 女性生殖扒开酷刑vk| 国产欧美日韩精品一区| 婷婷色中文字幕| 欧美午夜xxx| 国产视频手机在线| 亚洲精品小视频在线观看| 调教视频免费在线观看| 国外成人性视频| 国产精品777777在线播放| 精品人伦一区二区三区 | 在线播放日韩专区| 日本精品600av| 国产精品第一页在线| 亚洲国产精品免费视频| 欧美在线3区| 亚洲午夜激情在线| 色播五月综合网| 91丨国产丨九色丨pron| av黄色免费在线观看| 天天色综合成人网| 国产精品视频在线观看免费| 日韩精品视频在线观看网址| 欧美成人视屏| 国产精品va在线播放| 久久亚州av| 在线观看污视频| 秋霞电影网一区二区| 伊人网综合视频| 自拍偷拍亚洲激情| 中文在线观看av| 亚洲欧美激情视频| 96av在线| 成人情视频高清免费观看电影| 日韩欧美网站| 国产真实乱子伦| www.日韩精品| 国产一级特黄毛片| 51久久夜色精品国产麻豆| 看电影就来5566av视频在线播放| 久久全国免费视频| 一区二区三区在线免费看| 中文字幕一区二区三区5566| 日韩电影在线一区| 毛片网站免费观看| 天涯成人国产亚洲精品一区av| 亚洲黄色小说网址| 久久综合色影院| **日韩最新| 国产又大又长又粗又黄| 久久激情综合网| 久久爱一区二区| 91精品国产综合久久精品性色| 92国产在线视频| 国产精品免费网站| 日韩视频在线观看| 一本岛在线视频| 国产精品美女久久久久久久久久久 | 真实乱视频国产免费观看| 婷婷综合另类小说色区| 日本精品999| 97在线免费观看视频| 加勒比色综合久久久久久久久| 美女av免费观看| 成人午夜电影小说| 精品无码人妻一区二区三区品| 日韩美女一区二区三区| 图片区小说区亚洲| 国产成人av一区二区三区| 亚洲国产高清一区| 内射中出日韩无国产剧情| 天天爽夜夜爽夜夜爽精品视频| 爽爽视频在线观看| 国产成人精品视| 久久高清免费| www.久久com| 亚洲成va人在线观看| 外国精品视频在线观看 | 亚洲人成网站精品片在线观看| 国产一区二区三区视频免费观看| 久久亚洲电影天堂| 电影一区二区在线观看| 播放灌醉水嫩大学生国内精品| wwwwxxxxx欧美| 波多野结衣影片| 美女av一区二区三区| 女人抽搐喷水高潮国产精品| 日韩av在线综合| 国产精品热久久久久夜色精品三区 | 日本免费www| 欧美一区二区三区免费在线看| 人妖欧美1区| 欧美久久综合性欧美| 久久精品国产亚洲高清剧情介绍| 亚洲一级生活片| 日韩av综合中文字幕| 电影久久久久久| 超碰10000| 国产亚洲一本大道中文在线| 一起草av在线| 午夜精品久久久久久99热| 欧美日韩水蜜桃| 亚洲欧美综合视频| 91精品福利在线| 婷婷丁香在线| 色综合666| kk眼镜猥琐国模调教系列一区二区| 波多野结衣在线观看视频| 欧美国产一区二区三区| 久久99国内| 日本少妇xxxx软件| 欧美天天综合网| 激情国产在线| 国产奶头好大揉着好爽视频| 99久久久免费精品国产一区二区 | 麻豆91精品视频| 日本熟妇毛耸耸xxxxxx| 久久精品99国产精品酒店日本|