微軟AutoML_NNI綜述

NNI (Neural Network Intelligence) 是自動(dòng)機(jī)器學(xué)習(xí)(AutoML)的工具包蔬啡。 它通過(guò)多種調(diào)優(yōu)的算法來(lái)搜索最好的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和(或)超參星爪,并支持單機(jī)、本地多機(jī)近零、云等不同的運(yùn)行環(huán)境诺核。NNI也是非常友好的開源工具,用戶可以方便地拓展自己的搜索算法久信。

知乎的官方介紹如下:
如何看待微軟最新發(fā)布的AutoML平臺(tái)NNI窖杀?

特點(diǎn)

作為微軟亞洲研究院為研究人員和算法工程師量身定制的自動(dòng)機(jī)器學(xué)習(xí)工具, NNI 通過(guò)前沿的算法裙士、自動(dòng)化的框架和高效的分布式配置入客,可以節(jié)省訓(xùn)練時(shí)間與人力成本,賦能超參調(diào)優(yōu)(Hyperparameter Optimization)腿椎、神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(Neural Architecture Search)桌硫、特征工程(Feature Engineering)和模型壓縮(Model Compression)等各個(gè)機(jī)器學(xué)習(xí)生命周期,具有易于使用、可擴(kuò)展、靈活和高效的特點(diǎn):

易于使用:NNI 可通過(guò) pip 安裝;只需要添加幾行代碼际长,就可以利用 NNI 來(lái)調(diào)優(yōu)參數(shù)搓彻;支持使用簡(jiǎn)單的命令行工具或 Web 界面來(lái)查看實(shí)驗(yàn)(Experiment)稀轨,并擁有大量示例和詳細(xì)的中英文檔肚吏。
可擴(kuò)展:調(diào)優(yōu)超參或網(wǎng)絡(luò)結(jié)構(gòu)通常需要大量的計(jì)算資源斋泄,NNI 支持多種計(jì)算資源卒废,如遠(yuǎn)程服務(wù)器組参袱、訓(xùn)練平臺(tái)(包括OpenPAI环壤,Kubernetes)等,可并行運(yùn)行數(shù)百個(gè) Trial辛友,適用于具有不同能力的培訓(xùn)平臺(tái)九默。
靈活性:除內(nèi)置的算法外,NNI 還能輕松集成自定義的超參調(diào)優(yōu)算法、神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法邑飒、提前終止算法等。此外扮惦,NNI 還可以連接到更多訓(xùn)練平臺(tái)上豫领,如云中的虛擬機(jī)集群备蚓、Kubernetes 服務(wù)扎即,或外部環(huán)境中的特殊應(yīng)用和模型上知市。
高效性:在系統(tǒng)及算法級(jí)別上媳叨,NNI 始終在加速改進(jìn) ,以提高調(diào)優(yōu)效率泌神。例如:NNI 支持通過(guò)早期反饋來(lái)加速調(diào)優(yōu)過(guò)程墙杯。

支持“探索性訓(xùn)練”框架 Retiarii

深度學(xué)習(xí)框架(Deep Learning Framework)是目前研究人員開發(fā)深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network)的主要工具,對(duì)深度神經(jīng)網(wǎng)絡(luò)的成功應(yīng)用和快速發(fā)展有重要的促進(jìn)作用嫌褪。設(shè)計(jì)深度學(xué)習(xí)網(wǎng)絡(luò)是一個(gè)“探索性訓(xùn)練”(Exploratory-Training)的過(guò)程琅拌,通常以構(gòu)建一個(gè)基礎(chǔ)網(wǎng)絡(luò)(Base Graph)為出發(fā)點(diǎn)進(jìn)行訓(xùn)練即彪,根據(jù)訓(xùn)練情況的反饋深胳,對(duì)該神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行調(diào)整,然后通過(guò)一系列反復(fù)訓(xùn)練、調(diào)整煮纵,最終找到符合要求的神經(jīng)網(wǎng)絡(luò)采幌。

訓(xùn)練過(guò)程中,研究人員往往需要探索一類神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)震桶,而不是單個(gè)具體的神經(jīng)網(wǎng)絡(luò)休傍。目前的深度學(xué)習(xí)框架,如 TensorFlow 和 PyTorch蹲姐,僅支持開發(fā)單個(gè)神經(jīng)網(wǎng)絡(luò)磨取,但這只是探索性訓(xùn)練過(guò)程中的一步而已。另一方面柴墩,現(xiàn)有自動(dòng)機(jī)器學(xué)習(xí)的方案如神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索或超參數(shù)優(yōu)化忙厌,缺乏可編程性和模塊化,這使得一種 NAS(神經(jīng)結(jié)構(gòu)搜索)/HPO (超參數(shù)優(yōu)化)解決方案通常只能應(yīng)用在某一類神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)上江咳。此外逢净,在探索性訓(xùn)練過(guò)程中,很多神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是相似的歼指,但現(xiàn)有深度神經(jīng)網(wǎng)絡(luò)開發(fā)工具卻沒(méi)有系統(tǒng)性地利用相似性加速探索過(guò)程爹土。

Retiarii 能夠幫助用戶靈活、自由地表示各種搜索空間踩身、重用前沿搜索算法胀茵,并利用系統(tǒng)級(jí)優(yōu)化加速搜索過(guò)程。目前惰赋,Retiarii 已經(jīng)正式集成在 NNI 2.0 中宰掉。

Retiarii 創(chuàng)新性地將神經(jīng)網(wǎng)絡(luò)的開發(fā)看成一系列網(wǎng)絡(luò)模型的“變形”(Mutation),這一系列變形組成了在網(wǎng)絡(luò)空間(Model Space)內(nèi)的搜索過(guò)程赁濒。Retiarii 提出將“變形器”(Mutator)作為基本編程范式,神經(jīng)網(wǎng)絡(luò)開發(fā)人員可以利用“變形器”對(duì)基礎(chǔ)網(wǎng)絡(luò)進(jìn)行編程變形孟害,如增加或刪除某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)拒炎。在每次變形時(shí),“變形器”通過(guò)選擇(choose())接口將網(wǎng)絡(luò)變形的選擇權(quán)交給“探索策略”(Exploration Strategy)挨务,甚至可以實(shí)時(shí)地交給開發(fā)者本人击你。由此玉组,整個(gè)探索性訓(xùn)練將一系列的“變形器”作用于一個(gè)基礎(chǔ)網(wǎng)絡(luò)上,并交由探索策略來(lái)驅(qū)動(dòng)整個(gè)探索過(guò)程丁侄。

實(shí)驗(yàn)結(jié)果表明惯雳,Retiarii 通過(guò)單個(gè)變形器的抽象將 DNN 模型空間、探索策略和跨模型優(yōu)化完美地分離開來(lái)鸿摇,能夠簡(jiǎn)化編程過(guò)程石景,重用各個(gè)組件,極大地改善整個(gè)探索性訓(xùn)練過(guò)程的效率拙吉,在實(shí)驗(yàn)中達(dá)到了8.58倍的搜索加速潮孽。

使用 Retiarii 框架并不需要學(xué)習(xí)一門全新的框架語(yǔ)言,只需要對(duì)原始 TensorFlow 或 PyTorch 代碼進(jìn)行細(xì)小的改動(dòng)筷黔。對(duì) NNI 的“老粉”來(lái)說(shuō)往史,Retiarii 也將是一種全新的體驗(yàn):搜索空間直接定義在用戶模型代碼中,實(shí)驗(yàn)直接由 Python 啟動(dòng)佛舱,NAS 和 HPO 候選項(xiàng)的支持也更為友好…… NNI 目前正在將原始的 NAS 框架遷移到 Retiarii 框架椎例,在此,推薦大家嘗試新的框架并幫助 NNI 進(jìn)行改進(jìn)请祖。

image

Retiarii 使用示例

想要了解更多 Retiarii 的詳細(xì)信息粟矿,請(qǐng)點(diǎn)擊:

? 文檔鏈接:https://nni.readthedocs.io/en/latest/NAS/retiarii/retiarii_index.html

? 論文鏈接:https://www.usenix.org/conference/osdi20/presentation/zhang-quanlu

基于掩碼的模型壓縮加速工具

隨著更多層和節(jié)點(diǎn)大型神經(jīng)網(wǎng)絡(luò)的使用,降低模型的存儲(chǔ)和計(jì)算成本變得至關(guān)重要损拢。NNI 的模型壓縮工具包能夠有效解決此問(wèn)題陌粹。該工具包提供了最先進(jìn)的模型壓縮算法和策略,可以在不顯著損失模型性能的條件下壓縮并加速模型福压。

模型壓縮技術(shù)可以分為兩類:剪枝和量化掏秩。NNI 內(nèi)置了豐富的剪枝算法,它們通常使用權(quán)重掩碼來(lái)模擬實(shí)際的剪枝荆姆,然而掩碼雖然可以用來(lái)檢驗(yàn)壓縮模型的性能(如精度)蒙幻,但并沒(méi)有真正加速模型,而加速模型才是剪枝算法的最終目標(biāo)胆筒。為此邮破,NNI 從1.4版本開始就提供了通用的、基于掩碼的模型加速工具仆救,以減少推理延遲和模型大小抒和,并在1.7版本和1.8版本中持續(xù)改進(jìn)和更新。

NNI 的模型壓縮加速工具目前支持粗粒度剪枝算法彤蔽。該工具利用稀疏的掩碼將待剪枝模塊更換為壓縮后的模塊摧莽。更換模塊后,權(quán)重或輸入輸出張量的形狀常常會(huì)被改變顿痪,所以此工具還具備形狀推理功能镊辕,以檢查其他未修剪的層由于形狀變化是否需要被替換油够。加速后的模型有著較低的時(shí)延,Resnet18 的實(shí)驗(yàn)效果如下:

image

欲了解更多關(guān)于基于掩碼的模型壓縮加速工具的信息征懈,請(qǐng)點(diǎn)擊鏈接:

https://nni.readthedocs.io/en/latest/Compression/ModelSpeedup.html

支持通過(guò) Python 發(fā)起實(shí)驗(yàn)(預(yù)覽功能)

在 NNI 1.0 版本中石咬,使用 NNI 發(fā)起實(shí)驗(yàn)需要四個(gè)步驟:編寫 JSON 格式的搜索空間文件、修改 Trial 代碼獲取超參卖哎、定義 YAML 格式的配置文件鬼悠、使用交互式命令 nnictl 啟動(dòng)實(shí)驗(yàn)。對(duì)于 Trial 的管理棉饶,交互式的命令是非常自然合理的厦章,但只能利用日志進(jìn)行調(diào)試,過(guò)程相對(duì)繁瑣照藻。

在 2.0 版本中袜啃,NNI 提供了一種全新的、更為靈活的啟動(dòng)模式幸缕,用戶可以直接在 Python 文件中定義搜索空間群发、配置和發(fā)起實(shí)驗(yàn)。開發(fā)者可以直接在代碼里初始化調(diào)參器(tuner)對(duì)象发乔,tuner 處于當(dāng)前進(jìn)程熟妓,更加易于 debug 和做一些“魔改”。

目前利用 Python 啟動(dòng)實(shí)驗(yàn)的功能尚處于 Alpha 階段栏尚,暫不支持?jǐn)帱c(diǎn)和交互式執(zhí)行起愈。NNI 團(tuán)隊(duì)將會(huì)在以后的版本中改進(jìn)這個(gè)功能,并提供更多 API 來(lái)編程式地操控實(shí)驗(yàn)译仗,以收集實(shí)驗(yàn)結(jié)果并基于實(shí)驗(yàn)結(jié)果進(jìn)行更加高階的分析抬虽,也希望廣大 NNI 粉絲們?cè)?GitHub 提出寶貴的意見和建議,共同將該功能做的更實(shí)用纵菌。

欲了解更多該功能的相關(guān)信息阐污,請(qǐng)點(diǎn)擊鏈接:

https://nni.readthedocs.io/en/latest/Tutorial/HowToLaunchFromPython.html

支持多種算力的混合訓(xùn)練

自動(dòng)機(jī)器學(xué)習(xí)屬于計(jì)算密集型工作,發(fā)現(xiàn)最佳的超參數(shù)/挖掘最優(yōu)的神經(jīng)網(wǎng)絡(luò)架構(gòu)往往會(huì)消耗大量算力資源與時(shí)間咱圆。為了節(jié)約時(shí)間笛辟,研究人員總希望自己擁有的各種設(shè)備能夠“齊心協(xié)力”。在 2.0 版本中序苏,NNI 提供了混合訓(xùn)練模式(Hybrid Mode)手幢,支持同一個(gè)實(shí)驗(yàn)(Experiment) 在不同訓(xùn)練平臺(tái)上并行運(yùn)行,以實(shí)現(xiàn)資源利用效率最大化杠览。例如弯菊,以前的實(shí)驗(yàn)只能單獨(dú)使用遠(yuǎn)程機(jī)器或者 AML,現(xiàn)在則可以同時(shí)使用兩個(gè)訓(xùn)練平臺(tái)踱阿。

需要注意的是管钳,NNI 混合訓(xùn)練模式目前只支持本地、遠(yuǎn)程软舌、AML 和 PAI 四種訓(xùn)練平臺(tái)的混合訓(xùn)練才漆。此外,在發(fā)起實(shí)驗(yàn)之前佛点,需要開啟訓(xùn)練平臺(tái)并配置對(duì)應(yīng)的環(huán)境醇滥。

更多關(guān)于混合訓(xùn)練模式的詳細(xì)信息,請(qǐng)點(diǎn)擊鏈接:
https://nni.readthedocs.io/en/latest/TrainingService/HybridMode.html

新增對(duì)全部實(shí)驗(yàn)的統(tǒng)一管理界面

為了更加友好地可視化實(shí)驗(yàn)結(jié)果超营、方便快捷地操控和管理實(shí)驗(yàn)鸳玩,除了命令行工具 nnictl 之外,NNI 還提供了簡(jiǎn)單易用的 Web 界面演闭,使得用戶能夠直接查看實(shí)驗(yàn)的狀態(tài)不跟、更改實(shí)驗(yàn)的配置,對(duì)實(shí)驗(yàn)結(jié)果做更高級(jí)的分析米碰。

在2.0 版本中窝革,NNI 新增了實(shí)驗(yàn)管理頁(yè),所有運(yùn)行過(guò)(包括運(yùn)行中吕座、運(yùn)行完成虐译、已停止?fàn)顟B(tài))的實(shí)驗(yàn)都會(huì)在此頁(yè)面上展示,并通過(guò)點(diǎn)擊實(shí)驗(yàn) ID 可以輕松切換到任意一個(gè)未停止實(shí)驗(yàn)的詳情頁(yè)吴趴,這無(wú)疑為用戶查看歷史實(shí)驗(yàn)信息和管理所有實(shí)驗(yàn)提供了一個(gè)新的窗口漆诽,實(shí)驗(yàn)之間的切換也更加快速便捷。

image

NNI 實(shí)驗(yàn)管理界面示例

更多相關(guān)信息锣枝,請(qǐng)點(diǎn)擊:

https://nni.readthedocs.io/en/latest/Tutorial/WebUI.html

簡(jiǎn)化自定義算法的安裝

NNI 內(nèi)置了豐富的前沿 Tuner厢拭、Advisor 和 Assessor,可以直接應(yīng)用于超參數(shù)優(yōu)化中惊橱。同時(shí)蚪腐,為了滿足不同場(chǎng)景下的需求,NNI 允許自定義 Tuner税朴、Advisor 和 Assessor回季,并通過(guò)簡(jiǎn)單易用的接口將其安裝注冊(cè)為內(nèi)置算法。

在 NNI 2.0中正林,自定義算法的安裝進(jìn)一步得到了簡(jiǎn)化泡一。通過(guò)運(yùn)行簡(jiǎn)單的命令用戶可以將自定義的算法打包成 whl 文件,其他用戶則可以通過(guò) pip install 安裝算法觅廓,并通過(guò) nnictl algo register 將其注冊(cè)到 NNI 中鼻忠,就可以用與 NNI 內(nèi)置算法相同的方式使用自定義的算法了。這使得自定義算法在不同用戶之間的分享和傳播變得更加輕松杈绸、容易帖蔓。通過(guò)提供一個(gè)強(qiáng)大完備的系統(tǒng)矮瘟,NNI 希望幫助研究人員專注于 Tuner、Advisor 和 Assessor 算法研發(fā)塑娇,推動(dòng)各類想法方案應(yīng)用的落地澈侠。

關(guān)于簡(jiǎn)化自定義算法安裝方面的更多信息,請(qǐng)點(diǎn)擊鏈接:

https://nni.readthedocs.io/en/latest/Tutorial/InstallCustomizedAlgos.html

降低人工智能門檻埋酬,加速深度學(xué)習(xí)普及化是微軟一直追求的目標(biāo)哨啃。NNI 內(nèi)置的前沿自動(dòng)機(jī)器學(xué)習(xí)(AutoML)算法,能夠幫助用戶在沒(méi)有專業(yè)機(jī)器學(xué)習(xí)專家指導(dǎo)的情況下写妥,獲得高質(zhì)量的模型拳球,著重解決了一系列支持 AutoML 的系統(tǒng)問(wèn)題,并通過(guò)開放的方式有效加速算法研究者在這一領(lǐng)域的創(chuàng)新珍特。未來(lái)祝峻,NNI 將會(huì)以更強(qiáng)的自動(dòng)化框架、更豐富的算法次坡、更高效的分布式調(diào)參效率幫助研究人員和算法工程師們呼猪,以更靈活的方式從海量數(shù)據(jù)中洞察未來(lái)的人工智能世界。

兼容性

Linux Ubuntu 16.04 或更高版本
MacOS 10.14.1
Windows 10.1809

安裝
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple nni

為了更好地理解NNI的工作流程砸琅,首先需要認(rèn)識(shí)幾個(gè)概念:

Trial:Trial 是一次嘗試宋距,它會(huì)使用某組配置(例如,一組超參值症脂,或者特定的神經(jīng)網(wǎng)絡(luò)架構(gòu))來(lái)進(jìn)行訓(xùn)練谚赎,并返回該配置下的得分。本質(zhì)上就是加入了NNI_API的用戶的原始代碼诱篷。
Experiment:實(shí)驗(yàn)是一次找到模型的最佳超參組合壶唤,或最好的神經(jīng)網(wǎng)絡(luò)架構(gòu)的任務(wù)。 它由Trial和自動(dòng)機(jī)器學(xué)習(xí)算法所組成棕所。
Searchspace:搜索空間是模型調(diào)優(yōu)的范圍闸盔。 例如,超參的取值范圍琳省。
Configuration:配置是來(lái)自搜索空間的一個(gè)參數(shù)實(shí)例迎吵,每個(gè)超參都會(huì)有一個(gè)特定的值。
Tuner:Tuner是一個(gè)自動(dòng)機(jī)器學(xué)習(xí)算法针贬,會(huì)為下一個(gè)Trial生成新的配置击费。新的 Trial 會(huì)使用這組配置來(lái)運(yùn)行。
Assessor:Assessor分析Trial的中間結(jié)果(例如桦他,測(cè)試數(shù)據(jù)集上定期的精度)蔫巩,來(lái)確定 Trial 是否應(yīng)該被提前終止。
Training Platform:訓(xùn)練平臺(tái)是Trial的執(zhí)行環(huán)境。根據(jù)Experiment的配置圆仔,可以是本機(jī)垃瞧,遠(yuǎn)程服務(wù)器組,或其它大規(guī)模訓(xùn)練平臺(tái)(例如荧缘,OpenPAI皆警,Bitahub)拦宣。
那么你的實(shí)驗(yàn)(Experiment)便是在一定的搜索空間(Searchspace)內(nèi)尋找最優(yōu)的一組超參數(shù)(Configuration)截粗,使得該組參數(shù)對(duì)應(yīng)的Mnist(Trail)有最大的準(zhǔn)確率,在有限的時(shí)間和資源限制下鸵隧,Tuner和Assessor幫助你更快更好的找到這組參數(shù)绸罗。

工作流程&快速上手

為了理解NNI的工作流程,我們不妨來(lái)訓(xùn)練一個(gè)Mnist手寫體識(shí)別豆瘫,網(wǎng)絡(luò)結(jié)構(gòu)確定之后珊蟀,NNI可以來(lái)幫你找到最優(yōu)的超參。一個(gè)樸素的想法是:在有限的時(shí)間內(nèi)外驱,NNI測(cè)試一定量的超參育灸,返回給你最優(yōu)的參數(shù)組合。

【微軟AutoML】AutoML工具 NNI 安裝及使用體驗(yàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昵宇,一起剝皮案震驚了整個(gè)濱河市磅崭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓦哎,老刑警劉巖砸喻,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒋譬,居然都是意外死亡割岛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門犯助,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)癣漆,“玉大人,你說(shuō)我怎么就攤上這事剂买』菟” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵雷恃,是天一觀的道長(zhǎng)疆股。 經(jīng)常有香客問(wèn)我,道長(zhǎng)倒槐,這世上最難降的妖魔是什么旬痹? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上两残,老公的妹妹穿的比我還像新娘永毅。我一直安慰自己,他們只是感情好人弓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布沼死。 她就那樣靜靜地躺著,像睡著了一般崔赌。 火紅的嫁衣襯著肌膚如雪睁枕。 梳的紋絲不亂的頭發(fā)上斋荞,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼妄辩。 笑死既忆,一個(gè)胖子當(dāng)著我的面吹牛嗜湃,可吹牛的內(nèi)容都是我干的戳吝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痒留,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谴麦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起伸头,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤匾效,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后熊锭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弧轧,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年碗殷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了精绎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锌妻,死狀恐怖代乃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仿粹,我是刑警寧澤搁吓,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站吭历,受9級(jí)特大地震影響堕仔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晌区,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一摩骨、第九天 我趴在偏房一處隱蔽的房頂上張望通贞。 院中可真熱鬧,春花似錦恼五、人聲如沸昌罩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茎用。三九已至,卻和暖如春睬罗,著一層夾襖步出監(jiān)牢的瞬間轨功,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工傅物, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夯辖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓董饰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親圆米。 傳聞我的和親對(duì)象是個(gè)殘疾皇子卒暂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容