精品欧美一区二区三区在线观看 _久久久久国色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)推薦
国产精品视频在线看| 亚洲视频福利| 欧美人狂配大交3d怪物一区| 中文字幕99| www.色视频| 蜜桃av综合| 欧美精品一区二区三区国产精品| 欧美双性人妖o0| 韩国精品视频在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲va欧美va国产综合久久| 日本熟妇成熟毛茸茸| 成人网18免费网站| 亚洲国产精品美女| www.久久久久久久久久久| 国产高清中文字幕在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美xnxx| 午夜国产精品一区| 中文字幕一区二区三区四区五区| 欧美性受xxxx狂喷水| 久久精品av麻豆的观看方式| 性欧美亚洲xxxx乳在线观看| 91香蕉视频网| 精品中文一区| 亚洲国产欧美一区二区丝袜黑人| 久久6免费视频| 欧美日韩五码| 欧美视频在线免费| 成人免费在线网| 最新真实国产在线视频| 26uuu成人网一区二区三区| 91视频在线免费观看| 在线观看日韩一区二区| 美女黄色成人网| 国产91成人video| 日韩三级一区二区三区| 欧美日韩岛国| 欧美精品在线免费播放| frxxee中国xxx麻豆hd| 精品色999| 亚洲性生活视频| 亚洲人成人无码网www国产 | 国产成人精品午夜视频免费| 国产欧美va欧美va香蕉在线| aaa在线视频| 免费在线亚洲| 日韩美女主播视频| 日韩精品在线免费视频| 国产视频久久| 欧美中文字幕在线观看| 久热这里只有精品6| 伊人狠狠色j香婷婷综合| 欧美久久久精品| 国产精品白嫩白嫩大学美女| 女主播福利一区| 色在人av网站天堂精品| 九九久久免费视频| 亚洲国产精品一区制服丝袜| 久久久久久久影院| 成人精品免费在线观看| 一区二区黄色| 国产精品电影观看| 91午夜交换视频| 国产精品一级二级三级| 国产成人av一区二区三区| 开心激情综合网| 久久婷婷色综合| 婷婷五月色综合| 麻豆免费在线视频| 亚洲国产毛片aaaaa无费看| 可以在线看的av网站| 成人美女大片| 欧美巨大另类极品videosbest| 四虎成人在线播放| 9l视频自拍蝌蚪9l视频成人 | 国产在线视频你懂得| 中文字幕精品在线不卡| 日本丰满大乳奶| 国产在线看片免费视频在线观看| 欧美日韩国产麻豆| 五月婷婷六月合| 亚洲精品18| 亚洲香蕉成视频在线观看| 日韩一区二区不卡视频| 激情婷婷亚洲| 欧美又大又粗又长| 国产精品无码在线播放| av亚洲精华国产精华| 青青成人在线| 在线观看中文字幕的网站| 午夜视黄欧洲亚洲| 国产精品一区二区小说| 99精品中文字幕在线不卡 | 超碰在线资源| 欧美视频在线一区| 最新中文字幕日本| 波多野结衣在线观看一区二区三区 | 国产精品无码一区二区三区免费 | 国产欧美日韩在线视频| 国产一区一区三区| 欧美片第1页| 欧美变态口味重另类| 日本成人免费视频| 亚洲黄色大片| 91精品在线影院| 欧美美女搞黄| 亚洲成人资源在线| 污视频网站观看| 亚洲精品推荐| 欧美国产乱视频| 91国在线视频| 久久精品视频一区二区| 性高湖久久久久久久久aaaaa| 欧美性xxx| 亚洲国产精品va在线观看黑人| 国产乱子轮xxx农村| 国产精品亚洲综合色区韩国| 亚洲一区二区日本| 中文字幕在线视频区| 欧美日韩国产丝袜美女| 日韩女优在线视频| 欧美a级在线| 成人免费观看a| 成人在线观看免费| 日韩欧美高清视频| 中文视频在线观看| 国产精品啊啊啊| 亚洲aa在线观看| 九色porny丨首页在线| 欧美日韩亚洲综合在线| 性久久久久久久久久| 影音先锋久久资源网| 91大片在线观看| 黄色免费在线看| 制服丝袜中文字幕一区| 亚洲色图 激情小说| 日韩精品免费专区| 日本不卡一区二区三区在线观看| 国产精品一二三产区| 精品美女被调教视频大全网站| 成人免费视频网站入口::| 精品系列免费在线观看| 亚洲午夜精品久久久久久浪潮| 成人自拍视频网| 中国china体内裑精亚洲片| 久久精品视频5| 2023国产一二三区日本精品2022| 欧美成人高潮一二区在线看| 蜜臀av一区| 欧美专区在线观看| 精品乱码一区二区三四区视频| 色吊一区二区三区| 国产又粗又黄又猛| 久久99国产精品久久99| 少妇高潮流白浆| 欧美1区2区3| 欧美黑人一级爽快片淫片高清| 精品国自产拍在线观看| 亚洲国产一二三| 成人手机在线免费视频| 美女网站久久| 亚洲最新在线| 一区二区三区在线免费看| 久久久久久久久久国产精品| 性xxxx18| 欧美色区777第一页| 国精品无码一区二区三区| 成人三级伦理片| 日韩网址在线观看| 久久国产精品成人免费观看的软件| 国产日韩欧美在线看| 中文字幕在线观看播放| 亚洲第一精品福利| 成人a v视频| 亚洲青青青在线视频| 男女性杂交内射妇女bbwxz| 羞羞视频在线观看欧美| 亚洲精品日韩精品| 午夜电影一区| 青草青草久热精品视频在线网站 | 国模大尺度视频| 亚洲区一区二| 亚洲看片网站| 成人自拍在线| 国产精品久久久久久久av大片| 黄色精品免费看| 亚洲精品国产美女| 国产又大又黑又粗| 欧美日韩性生活视频| 国产三级aaa| av激情综合网| 国产欧美激情视频| 久久国产精品99国产| 免费久久久久久| 九九热爱视频精品视频| 91久久精品一区| 国产免费不卡| 久久久久久综合网天天| 啊v在线视频| 亚洲精品国产综合区久久久久久久| 亚洲天堂网在线观看视频| 天天操天天色综合| 国产一区二区精彩视频| 久久久久久久免费视频了| 一区二区三区人妻| 喷水一区二区三区| 91专区在线观看| 欧美特黄a级高清免费大片a级| 日韩理论片在线观看| 成人福利一区| 91在线视频一区| 四虎4545www精品视频| 国内精品久久久久久| 成人a在线视频免费观看| 国产亚洲精品日韩| 水莓100在线视频| 欧美成人性战久久| 国产欧美第一页| 欧美精品一二三四| 中文字幕一区二区三区四区免费看| 午夜精品一区二区三区三上悠亚| 顶臀精品视频www| 国产精品萝li| jizz日本在线播放| 欧美国产精品久久| 国产手机在线观看| 2021中文字幕一区亚洲| 亚洲自拍偷拍精品| 成人动漫一区二区在线| 蜜桃视频无码区在线观看| 狠狠色综合日日| 五月花丁香婷婷| 美国欧美日韩国产在线播放| 成人亚洲视频在线观看| 美女视频一区免费观看| 免费观看精品视频| 亚洲在线日韩| 国产日产欧美视频| 久久精品观看| 超碰网在线观看| 久久在线精品| 天天操天天摸天天爽| 日本强好片久久久久久aaa| 欧美激情国产精品日韩| 久久国产毛片| 日本精品一区二区三区四区 | 日韩视频在线观看一区二区三区| 美日韩一区二区三区| 亚洲国产日韩欧美在线观看| 极品销魂美女一区二区三区| 九一精品久久久| 国产美女在线精品| 亚洲熟女一区二区三区| www.视频一区| 一区二区三区免费在线观看视频| 91麻豆高清视频| 白白色免费视频| 中文字幕中文乱码欧美一区二区| 国产黄色录像片| 亚洲免费观看在线观看| 免费中文字幕视频| 欧美日韩人人澡狠狠躁视频| 日韩手机在线观看| 色狠狠一区二区三区香蕉| 亚洲天堂免费av| 欧美成人精精品一区二区频| 天堂a中文在线| 中文字幕一区电影| 美足av综合网| 国产精品av免费在线观看| 日日夜夜一区| 高清国产在线一区| 国产成人黄色| 99亚洲精品视频| 亚洲一区二区成人| 一级在线免费视频| 国产99久久久国产精品潘金| 中国av免费看| 亚洲天堂2016| 黄色片免费观看视频| 欧美日韩1区2区| 日本加勒比一区| 这里只有精品视频在线| 日本在线视频网址| 国产精品99久久久久久人| 国产 日韩 欧美| 欧美不卡三区| 中文字幕一区二区av| 农村妇女精品一二区| 国产乱码精品1区2区3区| www.色多多| 亚洲欧美国产三级| 国产精品一区无码| 日韩精品在线一区二区| 国产女人在线视频| 欧美精品九九久久| 国产精品一区二区免费福利视频| 97欧洲一区二区精品免费| 国产videos久久| 国产欧美久久久久| 免费观看日韩av| 特级西西人体4444xxxx| 亚洲欧美色一区| 国内av在线播放| 亚洲精品www久久久| www红色一片_亚洲成a人片在线观看_| 人人爽久久涩噜噜噜网站| 亚洲第一二区| 这里只有精品66| 久久只有精品| 国产三级视频网站| 亚洲线精品一区二区三区 | 黄色资源网久久资源365| 波多野结衣办公室33分钟| 亚洲一二三四在线| www.五月激情| 久久精品福利视频| 日本黄色一区| 日本不卡在线观看| 久久久久看片| 韩国无码一区二区三区精品| 亚洲一区二区三区视频在线播放| 国产一区二区在线视频聊天| 一本色道久久88综合亚洲精品ⅰ | 色婷婷狠狠综合| 色屁屁草草影院ccyycom| 欧美黑人一级爽快片淫片高清| 精品视频在线播放一区二区三区| 亚洲蜜桃av| 久久国产夜色精品鲁鲁99| 丰满的亚洲女人毛茸茸| 在线观看av一区| 国产一区二区三区福利| 奇米四色中文综合久久| 美女网站一区| 午夜视频在线瓜伦| 国产日韩欧美高清| 波多野结衣电车痴汉| 国产亚洲精品成人av久久ww| 欧美日韩尤物久久| 五月天亚洲综合情| 免费人成在线不卡| 青青青手机在线视频| 欧美精品久久99久久在免费线| 亚乱亚乱亚洲乱妇| 91久热免费在线视频| 这里只有精品在线| 下面一进一出好爽视频| 亚洲综合在线五月| 少妇一区二区三区四区| 欧日韩在线观看| 欧美日本成人| 爱爱爱爱免费视频| 自拍av一区二区三区| 亚洲av无码国产精品永久一区| 欧美激情国产日韩精品一区18| 高潮久久久久久久久久久久久久| 日韩精品―中文字幕| 久久亚洲春色中文字幕久久久| 中文字幕69页| 爽爽爽爽爽爽爽成人免费观看| 青青在线精品| 97在线免费视频观看| 99久久久久久| 欧美视频xxxx| 九九九久久久久久| 三级精品视频| www.亚洲高清| 一区二区视频在线看| 无码精品人妻一区二区| 国产成人精品视频在线| 欧美独立站高清久久| 麻豆tv在线观看| 色婷婷狠狠综合| 中文字幕有码在线观看| 久久久福利视频| 极品少妇xxxx偷拍精品少妇| 国产在线欧美在线| 在线日韩第一页| 97久久亚洲| 成人免费在线观看视频网站| 亚洲另类春色国产| 蜜桃视频在线入口www| 91免费版网站入口| 国产欧美综合一区二区三区| 中国美女黄色一级片| 亚洲第一二三四五区| 国产精品99久久久久久董美香 | 久久精品91| 国产suv一区二区三区| 亚洲欧美变态国产另类| 精品一区二区三区亚洲| 国产真实乱子伦| 亚洲综合男人的天堂| www.久久热.com| 国产欧美日韩一区| 久久99国内精品| 精品久久久久久久久久久久久久久久| 久久综合久久美利坚合众国|