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

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星

發(fā)布于 2024-4-9 13:27
瀏覽
0收藏

斷更近一個月,Karpathy終于上線了。


這次不是AI大課,而是帶來一個新項(xiàng)目。


僅用1000行純C語言訓(xùn)完GPT-2。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

想象一下,如果我們能夠不依賴于龐大的PyTorch(245MB)和cPython(107MB)庫,僅僅使用純C語言就能訓(xùn)練大型語言模型(LLM),那會怎樣?

現(xiàn)在,借助llm.c,這件聽起來似乎不太可能的事,已經(jīng)成為了現(xiàn)實(shí)!

這個項(xiàng)目的亮點(diǎn)在于,它僅用約1000行簡潔的C代碼,就實(shí)現(xiàn)了在普通計(jì)算機(jī)處理器(CPU)上訓(xùn)練GPT-2模型的能力。

而且,這份代碼不僅可以立即編譯運(yùn)行,其訓(xùn)練結(jié)果也和PyTorch版本的GPT-2完全一致。

之所以選擇GPT-2作為起點(diǎn),是因?yàn)樗鼧?biāo)志著大型語言模型發(fā)展史上的一個重要里程碑,是第一次以我們現(xiàn)在所熟悉的形式整合了這樣的技術(shù)棧,并且模型權(quán)重也是公開可獲取的。

這一項(xiàng)目剛剛發(fā)布幾個小時(shí),已經(jīng)獲得了2.5k星。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

項(xiàng)目地址:??https://github.com/karpathy/llm.c??


有網(wǎng)友表示,初創(chuàng)公司正在等著Karpathy挖掘新的點(diǎn)子。


很少有人知道,SUNO一開始是nanoGPT的一個分支。(Suno創(chuàng)業(yè)團(tuán)隊(duì)首款產(chǎn)品Bark受到了nanoGPT的啟發(fā))

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

或許Karpathy正在嘗試的是重新設(shè)計(jì)LLM架構(gòu),通過llm.c項(xiàng)目去探索一種更簡單、高效的模型訓(xùn)練方法。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

「我無法創(chuàng)造的,我就無法理解」。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

Karpathy完全讓AI走向大眾化。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

那么,僅用C語言如何訓(xùn)出LLM?

千行C代碼訓(xùn)完GPT-2

項(xiàng)目開篇介紹中,Karpathy還提到了自己目前正在進(jìn)行的研究:

- 直接使用CUDA實(shí)現(xiàn),速度會快得多,可能接近PyTorch。

- 使用SIMD指令加速CPU版本,x86上的AVX2/ARM上的NEON(比如蘋果芯片)。

- 采用更現(xiàn)代的架構(gòu),如Llama2、Gema等。


對于repo,Karpathy希望同時(shí)維護(hù)干凈、簡單的參考實(shí)現(xiàn)以及更優(yōu)化的版本,這些版本可以接近PyTorch,但只需很少的代碼和依賴項(xiàng)。

快速入門

下載數(shù)據(jù)集,并將其進(jìn)行分詞。Tinyshakepeare數(shù)據(jù)集下載和分詞速度最快:

python prepro_tinyshakespeare.py

打印內(nèi)容如下:

Saved 32768 tokens to data/tiny_shakespeare_val.bin
Saved 305260 tokens to data/tiny_shakespeare_train.bin

其中,.bin文件包含有int32的原始數(shù)據(jù)流,這些整數(shù)代表了通過GPT-2分詞器定義的Token ID。


當(dāng)然,也可以通過運(yùn)行prepro_tinystories.py來對TinyStories數(shù)據(jù)集進(jìn)行分詞處理。

理論上講,現(xiàn)在已經(jīng)能夠開始訓(xùn)練模型了。但是,目前基于CPU和FP32的參考代碼運(yùn)行效率極低,無法從零開始訓(xùn)練這些模型。


因此,我們選擇先用OpenAI發(fā)布的GPT-2模型權(quán)重進(jìn)行初始化,再對模型進(jìn)行微調(diào)。

為了這個目的,我們需要下載GPT-2模型的權(quán)重文件,并把它們作為檢查點(diǎn)保存下來,這樣就可以在C語言環(huán)境中進(jìn)行加載了:

python train_gpt2.py

這個腳本的作用是下載GPT-2(124M)模型,并對單個數(shù)據(jù)batch進(jìn)行10次迭代訓(xùn)練實(shí)現(xiàn)過擬合。


接著,腳本將執(zhí)行幾步生成任務(wù),并且最重要的是,保存兩個文件:

  1. gpt2_124M.bin,其中包含了可用于在C語言環(huán)境中加載模型的原始權(quán)重;
  2. gpt2_124M_debug_state.bin,其中包含了額外的調(diào)試信息,如輸入數(shù)據(jù)、目標(biāo)、logits和損失。?


這些信息對于調(diào)試、單元測試以及確保與PyTorch的參考實(shí)現(xiàn)完全一致很有幫助。

目前,主要關(guān)注的是gpt2_124M.bin文件中的模型權(quán)重。有了它們,就可以在C語言環(huán)境中初始化模型并開始訓(xùn)練了。


首先,我們需要編譯代碼:

make train_gpt2

你可以打開Makefile文件,并閱讀里面的注釋。


它會自動檢查你的電腦是否支持OpenMP,這對于以非常低的復(fù)雜度來加速代碼運(yùn)行很有幫助。


當(dāng)完成train_gpt2的編譯之后,就可以開始運(yùn)行了:

OMP_NUM_THREADS=8 ./train_gpt2

現(xiàn)在,你需要根據(jù)電腦的CPU核心數(shù)來設(shè)置程序運(yùn)行的線程數(shù)。


然后,程序會加載模型的權(quán)重和Token,接著進(jìn)行幾次迭代的微調(diào)過程,這個過程使用了Adam優(yōu)化算法,學(xué)習(xí)率設(shè)置為0.0001。


最后,程序會根據(jù)模型生成一個樣本。


總結(jié)來說,代碼實(shí)現(xiàn)了模型每一層的數(shù)據(jù)處理流程,包括前向傳播、反向傳播和參數(shù)更新等,并且被組織成了一個完整的循環(huán)。


在搭載M3 Max芯片的MacBook Pro上運(yùn)行時(shí),輸出結(jié)果如下:

[GPT-2]
max_seq_len: 1024
vocab_size: 50257
num_layers: 12
num_heads: 12
channels: 768
num_parameters: 124439808
train dataset num_batches: 1192
val dataset num_batches: 128
num_activations: 73323776
val loss 5.252026
step 0: train loss 5.356189 (took 1452.121000 ms)
step 1: train loss 4.301069 (took 1288.673000 ms)
step 2: train loss 4.623322 (took 1369.394000 ms)
step 3: train loss 4.600470 (took 1290.761000 ms)
... (trunctated) ...
step 39: train loss 3.970751 (took 1323.779000 ms)
val loss 4.107781
generated: 50256 16773 18162 21986 11 198 13681 263 23875 198 3152 262 11773 2910 198 1169 6002 6386 2583 286 262 11858 198 20424 428 3135 7596 995 3675 13 198 40 481 407 736 17903 11 329 703 6029 706 4082 198 42826 1028 1128 633 263 11 198 10594 407 198 2704 454 680 1028 262 1027 28860 286 198 3237 323
step 40: train loss 4.377757 (took 1366.368000 ms)

目前,程序生成的結(jié)果只是Token ID,我們需要把這些編號轉(zhuǎn)換成可讀的文本。


這個過程在C語言中實(shí)現(xiàn)起來相當(dāng)簡單,因?yàn)樯婕暗降闹饕菍?yīng)字符串片段的查找和輸出。


現(xiàn)在,我們可以利用一個叫做tiktoken的工具來完成這個任務(wù):

import tiktoken
enc = tiktoken.get_encoding("gpt2")
print(enc.decode(list(map(int, "50256 16773 18162 21986 11 198 13681 263 23875 198 3152 262 11773 2910 198 1169 6002 6386 2583 286 262 11858 198 20424 428 3135 7596 995 3675 13 198 40 481 407 736 17903 11 329 703 6029 706 4082 198 42826 1028 1128 633 263 11 198 10594 407 198 2704 454 680 1028 262 1027 28860 286 198 3237 323".split()))))

打印內(nèi)容如下:

<|endoftext|>Come Running Away,
Greater conquer
With the Imperial blood
the heaviest host of the gods
into this wondrous world beyond.
I will not back thee, for how sweet after birth
Netflix against repounder,
will not
flourish against the earlocks of
Allay

Karpathy表示,他對Netflix在模型生成結(jié)果中的呈現(xiàn)方式非常滿意,因?yàn)檫@顯示出模型仍然保留了其訓(xùn)練過程中的一些特征。


此外,他也沒有去調(diào)整微調(diào)的超參數(shù),因此如果能夠優(yōu)化這些設(shè)置,特別是通過延長訓(xùn)練時(shí)間,模型的性能應(yīng)該會有很大的提升空間。

測試

這里提供一個簡單的單元測試程序,用來驗(yàn)證我們編寫的C語言代碼是否與PyTorch框架中的代碼實(shí)現(xiàn)相匹配。


通過以下命令即可編譯并執(zhí)行:

make test_gpt2
./test_gpt2

這段代碼首先會加載gpt2_124M_debug_state.bin文件,然后執(zhí)行一次前向計(jì)算。


這個過程會生成模型的預(yù)測結(jié)果(logits)和損失(loss),并將其與PyTorch的標(biāo)準(zhǔn)實(shí)現(xiàn)進(jìn)行比較。


接下來,它會利用Adam優(yōu)化算法對模型進(jìn)行10輪訓(xùn)練,從而確保訓(xùn)練的損失與PyTorch的結(jié)果一致。

教程

項(xiàng)目最后,Karpathy還附上了一個非常小的教程——

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

項(xiàng)目地址:https://github.com/karpathy/llm.c/blob/master/doc/layernorm/layernorm.md

它是實(shí)現(xiàn)GPT-2模型的單層,即LayerNorm的一個簡單的分步指南。


這是了解如何用C語言實(shí)現(xiàn)層的一個很好的起點(diǎn)。

純CUDA也可訓(xùn)

在訓(xùn)練開始時(shí),先一次性預(yù)分配一大塊一維內(nèi)存,用于存儲訓(xùn)練過程中所需的所有數(shù)據(jù)。


這樣做的好處是,在整個訓(xùn)練過程中,我們無需再次分配或釋放內(nèi)存。如此一來,不僅簡化了內(nèi)存管理,還確保了內(nèi)存使用量保持不變,優(yōu)化了數(shù)據(jù)處理效率。


接下來的核心任務(wù)是——手動編寫代碼,實(shí)現(xiàn)模型中每一層的數(shù)據(jù)前向傳播和后向傳播過程,并將這些層按順序連接起來。


此外,為了構(gòu)建完整的模型,我們還需要實(shí)現(xiàn)多個關(guān)鍵組件,包括編碼器(encoder)、矩陣乘法(matmul)、自注意力機(jī)制(self-attention)、GELU激活函數(shù)、殘差連接(residual)、softmax函數(shù)和交叉熵?fù)p失計(jì)算。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

Karpathy繼續(xù)解釋道,一旦你有了所有的層,你就可以把所有的層串聯(lián)起來。


不瞞你說,寫這個過程相當(dāng)乏味,也很受虐,因?yàn)槟惚仨毚_保所有的指針和張量偏移向量都正確排列。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

左圖:在內(nèi)存中分配一個一維數(shù)組,然后將所有模型的權(quán)重和激活指向它

右圖:小心地進(jìn)行所有指針運(yùn)算


在完成了模型的前向傳播和反向傳播之后,接下來的工作,比如設(shè)置數(shù)據(jù)加載器和調(diào)整Adam優(yōu)化算法,就比較簡單了。


隨后,Karpathy還介紹了自己下一步進(jìn)行工作是:


一步步地將這個過程遷移到CUDA上,從而大幅提升運(yùn)算效率,甚至達(dá)到接近PyTorch的水平,而且不需要依賴那些復(fù)雜的庫。


目前,他已經(jīng)完成了其中的幾層。


接下來的工作包括減少計(jì)算精度——從FP32降到FP16甚至更低,以及添加一些新的層(如RoPE),從而支持更先進(jìn)的模型架構(gòu),例如Llama 2、Mistral、Gemma等。

1000行C語言搓出GPT-2!AI大神Karpathy新項(xiàng)目剛上線就狂攬2.5k星-AI.x社區(qū)

當(dāng)然了,等著這一切完成之后,另一期「從頭開始構(gòu)建」的視頻也會上線。


本文轉(zhuǎn)自 新智元 ,作者:新智元


原文鏈接:??https://mp.weixin.qq.com/s/_W2GlbO8nAfpLPtRtQJ-yw??

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
天堂av中文在线观看| 99一区二区| 日韩一区免费观看| 久久精品国产亚洲AV无码麻豆 | 激情小说综合网| 国产又粗又硬视频| 亚洲男人av| 国产精品理论片| 人人做人人澡人人爽欧美| www.黄色网| 在线观看操人| 中文字幕一区二区精品区| 日本高清视频一区二区| 快播日韩欧美| 久久黄色精品视频| 国产美女撒尿一区二区| 一区二区三区不卡在线观看| 亚洲aa中文字幕| 蜜臀av午夜精品久久| 久草综合在线| 亚洲欧洲日韩在线| 91香蕉国产在线观看| chinese全程对白| 91丨精品丨国产| 亚洲天堂免费看| 亚洲一区二区中文| 伊人久久中文字幕| 日韩精品二区| 91精品国产91久久久久久最新毛片 | 欧美激情三级| 亚洲精品中文在线观看| 国产日韩欧美黄色| 欧洲美女女同性互添| 小说区图片区色综合区| 色综合久久久久网| 久久综合婷婷综合| 亚洲欧美高清视频| 亚洲国产影院| 日韩精品免费在线| 亚洲五月天综合| 三区四区在线视频| 国产综合成人久久大片91| 欧美日韩成人精品| 插吧插吧综合网| jizz欧美| 一区二区三区不卡在线观看| 亚洲欧洲日本国产| 精品人妻一区二区三区换脸明星| 影院欧美亚洲| 精品视频久久久久久久| 老司机午夜av| 成人欧美大片| 亚洲欧洲av另类| 婷婷久久伊人| 亚洲不卡免费视频| 老司机午夜精品视频| 久久综合久久88| 国产麻豆剧传媒精品国产av| 国产精品字幕| 亚洲永久精品大片| 国内精品视频在线播放| 羞羞色院91蜜桃| 欧美日本二区| 一本色道久久88精品综合| 美女又黄又免费的视频| 久久毛片亚洲| 日本韩国精品一区二区在线观看| 北条麻妃在线一区| 亚洲丝袜精品| 亚洲国产高清在线| 999精品视频一区二区三区| 中文字幕精品三级久久久| 91精品国产调教在线观看| 日韩精品视频免费在线观看| 少妇精品一区二区| 精品视频在线观看免费观看| 日韩三级视频在线观看| 丁香婷婷激情网| 四虎精品一区二区免费| 一本色道久久综合狠狠躁的推荐| 精品免费国产一区二区| 欧美特黄色片| 精品精品欲导航| 亚洲最大成人在线观看| 亚洲国产欧美日本视频| 欧美综合一区二区| 久色视频在线播放| 在线中文字幕视频观看| 午夜在线成人av| 中文字幕第50页| jyzzz在线观看视频| 99视频精品全部免费在线| 亚洲free性xxxx护士hd| 神马午夜在线观看| 岛国精品一区二区| 91人成网站www| 亚洲av成人无码网天堂| 国产v综合v亚洲欧| 成人网在线观看| 国产精品成人久久久| 国产裸体歌舞团一区二区| 国产精品免费小视频| 少妇一级淫片免费放中国 | 欧美福利视频在线观看| 99国产精品无码| 精品国产91| 亚洲色图美腿丝袜| 人妻少妇一区二区| 91成人看片| 日本精品性网站在线观看| 日本一区二区三区免费视频| 激情久久中文字幕| 国产精品日日摸夜夜添夜夜av| 亚洲第一色网站| 欧美国产欧美综合| 国产精品免费入口| 亚洲国产福利| 精品国内片67194| 色撸撸在线视频| 91日韩欧美| 久久视频这里只有精品| 丰满人妻老熟妇伦人精品| 亚洲影音先锋| 国产精品久久久久久久久久ktv| 亚洲图片欧美日韩| 成人不卡免费av| 久久99精品久久久水蜜桃| 天天摸天天干天天操| 亚洲品质自拍视频网站| 99热手机在线| 亚洲欧洲二区| 中文字幕av一区中文字幕天堂| 日韩精品电影一区二区三区| 国产精品视区| 国产精品久久久久久久久| 污视频网站免费观看| 亚洲综合色噜噜狠狠| 久久久福利影院| 成人激情自拍| 91在线观看地址| 久久偷看各类wc女厕嘘嘘偷窃 | 欧美精品久久久久久久自慰 | 亚洲综合精品久久| 日韩不卡一二三| 国产不卡人人| 婷婷中文字幕一区三区| 国产免费人做人爱午夜视频| 久久影视三级福利片| 亚洲欧美激情一区| 极品色av影院| 另类中文字幕网| 高清国产一区| 东凛在线观看| 亚洲午夜电影网| 国产xxx在线观看| 欧美日本精品| 精品久久久久久一区| 麻豆影院在线观看| 精品国产电影一区| 变态另类丨国产精品| 欧美日韩少妇| 国产自产在线视频一区| 男人最爱成人网| 欧美一区二区视频观看视频| 国产精品久久久精品四季影院| 欧美中文日韩| 91中文字精品一区二区| 在线观看午夜av| 亚洲第一网站男人都懂| 91美女片黄在线观| 亚洲欧美日韩系列| 亚洲人成网站777色婷婷| 人成免费在线视频| 日韩二区三区在线观看| 日本中文字幕成人| 国产福利小视频在线| 欧美高清www午色夜在线视频| 91精品又粗又猛又爽| jlzzjlzz亚洲女人| 91精品久久久久久久久久久久久久 | 麻豆传媒视频在线观看| 欧美成人aa大片| 99精品在线播放| 国产精品久久久久久户外露出| 少妇大叫太大太粗太爽了a片小说| 在线男人天堂| 中文字幕欧美专区| 亚洲AV无码乱码国产精品牛牛| 欧美日韩国产精品| 手机在线观看日韩av| 日韩在线综合| 91黄色国产视频| 日韩脚交footjobhdboots| 欧美成人一区二区三区片免费 | 7777精品视频| 99久久免费国产精精品| 中文字幕精品—区二区四季| 超碰中文字幕在线观看| 麻豆成人精品| 久久久国内精品| 日韩毛片免费看| 国内精品小视频| 成 人片 黄 色 大 片| 疯狂欧美牲乱大交777| 欧美日韩黄色网| 久久久99精品免费观看不卡| 九九九九免费视频| 亚洲成人一区| 日韩欧美精品久久| 日韩av字幕| 91精品国产乱码久久久久久蜜臀 | 欧美一级免费视频| 香蕉国产在线视频| 91麻豆精品国产91久久久久久 | 亚洲午夜在线视频| 成年人免费视频播放| 91麻豆国产福利精品| 久草免费福利在线| 国产精品久久久久久久久久白浆| 国产精品99久久久久久www| 国产二区视频在线观看| 亚洲国产成人爱av在线播放| 国产视频第一页| 欧美日韩亚洲综合在线| 欧美三级黄色大片| 久久精品夜色噜噜亚洲aⅴ| 精品无码av一区二区三区| 一区免费视频| 免费在线精品视频| 白嫩亚洲一区二区三区| 国产精品激情av电影在线观看 | 91精品视频在线看| 久久影视精品| 国产精品自在线| 超碰在线caoporen| 欧美成人激情免费网| 国产美女明星三级做爰| 欧美喷潮久久久xxxxx| 最新一区二区三区| 国产精品视频免费| 欧美福利第一页| 国产一区二区调教| 性猛交ⅹ×××乱大交| 老鸭窝毛片一区二区三区| 欧美三级一级片| 午夜在线播放视频欧美| 看av免费毛片手机播放 | 色噜噜狠狠一区二区| 美女性感视频久久| 国产乱子伦精品视频| 日韩欧美精品一区| 亚洲欧洲精品在线| 午夜影院欧美| 日韩一二区视频| 亚洲午夜91| 亚洲7777| 欧美激情成人| a级片一区二区| 亚洲国产电影| 日韩 欧美 高清| 日韩电影一二三区| 国产三级三级看三级| 国产自产视频一区二区三区| 日本wwww色| 99久久精品免费看国产| 一女三黑人理论片在线| 国产午夜精品一区二区三区四区| 在线成人免费av| 国产不卡在线视频| 国产精品无码网站| 国产欧美精品一区二区色综合| 国产国语老龄妇女a片| 白白色亚洲国产精品| 97超碰在线免费观看| 国产精品欧美经典| 黄色一级视频在线观看| 国产精品免费视频观看| 成人免费黄色小视频| 精品久久久久久久中文字幕| 欧美成人一区二区视频| 日韩一区二区在线免费观看| 少妇激情av一区二区| 日韩精品一区二区三区视频| 日韩av视屏| 久久精品视频va| 国产爆初菊在线观看免费视频网站 | 91色琪琪电影亚洲精品久久| 福利电影一区| 亚洲精品在线视频观看| 欧美~级网站不卡| 亚洲视频在线观看日本a| 你懂的视频欧美| 黑人另类av| 久久国产成人精品| 热99这里只有精品| 在线播放日韩| 好男人www社区| 国产91丝袜在线播放九色| 亚洲成人网在线播放| 91热门视频在线观看| 国产精品免费在线视频| 欧美日韩免费网站| h片在线免费看| 欧美成人午夜电影| 成人动漫在线免费观看| 国内外成人免费激情在线视频| 日韩成人一区| 欧美日韩一区二区视频在线| 伊人春色之综合网| 青青草国产精品| 欧美日韩在线播放视频| 日本www在线视频| 国产在线精品一区在线观看麻豆| 美女被到爽高潮视频| 欧美极品xxx| 中文字幕亚洲精品在线| 日韩西西人体444www| 亚洲xxxxxx| 国产精品成人一区二区三区吃奶| 日韩mv欧美mv国产网站| 97免费视频观看| 国产精品 日产精品 欧美精品| 黄页网站在线看| 中文字幕制服丝袜一区二区三区| 久久久久久在线观看| 欧美体内she精视频| 国产又粗又猛又爽又黄的视频一| 555夜色666亚洲国产免| 高h视频在线| 国产成人精品视频| 免费成人高清在线视频theav| 国产精品专区在线| 成人毛片老司机大片| 欧美极品视频在线观看| 9191久久久久久久久久久| 精品电影在线| 欧美精品一区二区三区国产精品| 人人澡人人添人人爽一区二区| 91国产精品91| 国产一区二区三区亚洲| 青青在线免费观看| 丁香六月综合激情| 国产午夜视频在线播放| 亚洲加勒比久久88色综合| 国产福利小视频在线| 国产激情综合五月久久| 狠狠操综合网| 青青视频免费在线| 国产高清不卡二三区| 青娱乐在线视频免费观看| 日韩三级免费观看| sm在线观看| 日本在线观看天堂男亚洲| 国产一区二区三区四区| 中文久久久久久| 国产精品不卡视频| 国产同性人妖ts口直男| 欧美另类老女人| 国产丝袜一区| 免费日韩视频在线观看| 国产自产高清不卡| 强行糟蹋人妻hd中文| 在线观看av一区| 淫片在线观看| 99超碰麻豆| 欧美亚洲专区| 青青操在线播放| 精品美女一区二区| 26uuu亚洲电影| 亚洲三区在线| 国产不卡在线一区| 黄色在线免费观看| 北条麻妃在线一区二区| 色8久久影院午夜场| 国产精品 日韩| 久久久亚洲人| 国产真实乱在线更新| 亚洲国产精久久久久久久| 欧美三区四区| 屁屁影院ccyy国产第一页| 久久久久9999亚洲精品| 国产乱叫456在线| 午夜精品理论片| 免费观看亚洲视频大全| www.av中文字幕| 国产精品久久久久一区二区三区| 亚洲欧美黄色片| 国产精品视频一区二区高潮| 激情亚洲网站| 欧日韩不卡视频| 亚洲第一福利视频| 伦一区二区三区中文字幕v亚洲| 日韩a级黄色片| 国产精品免费视频一区| 无码国产精品高潮久久99| 91免费在线视频| 三级亚洲高清视频| 日本系列第一页| www.99久久热国产日韩欧美.com| 噜噜噜天天躁狠狠躁夜夜精品|