日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過蒸餾來使小模型具有更好的性能

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 作者:深度學(xué)習(xí)自然語言 ? 2021-03-05 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

之前我們討論了『模型壓縮與蒸餾!BERT的忒修斯船』,算是一個(gè)開篇。本文繼續(xù)討論關(guān)于模型蒸餾(Distilling Knowledge)及關(guān)于BERT模型的知識(shí)蒸餾,分享針對(duì)具體任務(wù)時(shí)可行的簡(jiǎn)潔方案,同時(shí)在新的視角下探討了知識(shí)蒸餾有效的一些原因,并通過實(shí)驗(yàn)進(jìn)行驗(yàn)證。

模型蒸餾的最重要的一個(gè)特點(diǎn)就是降低資源使用以及加速模型推理速度,而小模型往往性能較低,本文總結(jié)如何通過蒸餾來使小模型具有更好的性能。

Distilling the Knowledge in a Neural Network

這篇是2015年Hinton發(fā)表的,也是我看到的最早提出Knowledge Distillation的論文[1]。

在這篇論文中,Hinton指出one-hot 的label只指示了true label 的信息,但是沒有給出negative label 之間、negative 與 true label之間的相對(duì)關(guān)系,比如:

現(xiàn)在的任務(wù)是給定一個(gè)詞(比如:蘋果),然后判斷詞對(duì)應(yīng)的類別(電視/手機(jī)/水果/汽車),假如現(xiàn)在我們有兩個(gè)樣本:(蘋果,[0,0,1,0])和(小米,[0,1,0,0])而one-hot 形式的label并不能告訴我們,蘋果中 label是水果的概率高出label是拖拉機(jī)的概率,稍低于是手機(jī)的概率,而小米中l(wèi)abel是電視的概率稍低于是手機(jī)的概率,但是同時(shí)要高于是汽車和水果的概率,這些相對(duì)關(guān)系在one-hot 形式的label中是無法得到的。

而這些信息非常重要,有了這些信息,我們可以更容易的學(xué)習(xí)任務(wù)。于是提出了Teacher-Student模式,即用一個(gè)大的復(fù)雜的模型(也可以是ensemble后的)來先學(xué)習(xí),然后得到label的相對(duì)關(guān)系(logits),然后將學(xué)習(xí)到的知識(shí)遷移到一個(gè)小模型(Student)。

Distilling

具體遷移過程是Student 在進(jìn)行training 時(shí),除了學(xué)習(xí)ground truth 外,還需要學(xué)習(xí)label 的probability(softmax output),但是不是直接學(xué)習(xí)softmax output,而是學(xué)習(xí)soften labels,所謂soften labels 即經(jīng)過Temperature 平滑后的 probability,具體形式:

其中T 越大,對(duì)應(yīng)的probability 越平滑,如下圖所示。而平滑probability 可以看作是對(duì)soften label的一種正則化手段。

更直觀的實(shí)驗(yàn)請(qǐng)查閱Knowledge Distillation From Scratch[2]

Distill BERT

看到的第一篇針對(duì) BERT 模型做蒸餾的是Distilling Task-Specific Knowledge from BERT into Simple Neural Networks[3]。

在這篇論文中,作者延續(xù)Hinton 的思路在BERT 上做實(shí)驗(yàn),首先用BERT-12 做Teacher,然后用一個(gè)單層Bi-LSTM 做Student,loss 上除了ground truth 外,也選擇了使用teacher 的logits,包括Temperature 平滑后的soften labels 的CrossEntropy和 logits 之間的MSE,最后實(shí)驗(yàn)驗(yàn)證MSE效果優(yōu)于CE。

此外,由于是從頭開始訓(xùn)練Student,所以只用任務(wù)相關(guān)數(shù)據(jù)會(huì)嚴(yán)重樣本不足,所以作者提出了三種NLP的任務(wù)無關(guān)的data augment策略:

mask:隨機(jī)mask一部分token作為新樣本,讓teacher去生成對(duì)應(yīng)logits ;

根據(jù)POS標(biāo)簽去替換,得到 ”What do pigs eat?" -> " How do pigs ear?"

n-gram采樣:隨機(jī)選取n-gram,n取[1-5],丟棄其余部分。

在Distilling the Knowledge in a Neural Network[4]中曾指出 logits 之間的CrossEntropy是可以看作是MSE 的近似版本,不過這里作者的結(jié)論是MSE 更好。

此外,由于Hinton 實(shí)驗(yàn)時(shí)是巨大數(shù)據(jù)量,所以不存在樣本不足的情況,而普通實(shí)驗(yàn)時(shí)都會(huì)遇到遷移時(shí)訓(xùn)練樣本不足,需要做數(shù)據(jù)增強(qiáng)的問題。

TinyBERT

TinyBERT 出自TinyBERT: Distilling BERT for Natural Language Understanding[5]。

由于Transformer 結(jié)構(gòu)在NLP 任務(wù)中的強(qiáng)大能力,作者選擇用與BERT 同結(jié)構(gòu)的方式做Student。此外,為了提高KD后模型性能,做了更細(xì)致的工作:

Student選擇一個(gè)更窄更淺的transformer;

將KD也分為兩個(gè)階段:pre-train 和 fine-tuning,并且在兩個(gè)階段上都進(jìn)行KD;

使用了更多的loss:Embedding之間的MSE,Attention Matrix中的logits之間的MSE,Hidden state之間的MSE以及最后的分類層的CE;

為了提高下游任務(wù)fine-tuning后的性能,使用了近義詞替換的策略進(jìn)行數(shù)據(jù)增強(qiáng)。

優(yōu)點(diǎn)

6層transformer基本達(dá)到了bert-12的性能,并且hidden size更小,實(shí)際是比bert-6更小的;

因?yàn)橛衟re-train KD,所以可以拿來當(dāng)bert 一樣直接在下游fine-tuning。

缺點(diǎn)

由于hidden size的不同,所以為了進(jìn)行MSE,需要用一個(gè)參數(shù)矩陣W 來調(diào)節(jié),這個(gè)參數(shù)只在訓(xùn)練時(shí)使用,訓(xùn)練完后丟棄,這個(gè)矩陣沒有任何約束,覺得不優(yōu)雅;

其次,student model的每一層都需要去學(xué)習(xí)teacher model的對(duì)應(yīng)的block的輸出,如何對(duì)不同的層如何設(shè)計(jì)更好的權(quán)重也是一個(gè)費(fèi)力的事;

雖然student的結(jié)構(gòu)也是transformer,但是由于hidden size 不同,沒法使用teacher的預(yù)訓(xùn)練結(jié)果,但是我覺得這里其實(shí)可以用降維的方式用teacher的預(yù)訓(xùn)練結(jié)果,可能不需要pretraining的階段了也說不定。

DistilBERT

DistilBERT 出自DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter[6]。

論文中作者通過調(diào)查發(fā)現(xiàn)BERT 中的hidden size 對(duì)計(jì)算效率的改變比hidden layer nums 的影響小,說白了就是「讓模型變矮比讓模型變瘦效率更高」,所以作者使用了一個(gè)更矮的BERT來做Student 來遷移BERT 中的知識(shí)。

由于DistilBERT 是一個(gè)與BERT 同結(jié)構(gòu)只是層數(shù)更小,所以DistilBERT 可以用BERT 的預(yù)訓(xùn)練的權(quán)重進(jìn)行初始化。此外,DistilBERT 是一個(gè)與任務(wù)無關(guān)的模型,即與BERT 一樣,可以對(duì)很多下游任務(wù)進(jìn)行fine-tuning。

由于DistilBERT 與 BERT 的前幾層一致,所以loss 的選擇上就更多一些,作者選擇了triple loss:MLM loss + embedding cosin loss + soften labels cross entropy loss

優(yōu)點(diǎn)

DistilBERT 做到了與BERT 一樣,完全與任務(wù)無關(guān),不需要添加額外的Distillation 階段(添加后結(jié)果會(huì)更好)。

MobileBERT

MobileBERT 出自MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices[7]。

92eed554-7c22-11eb-8b86-12bb97331649.png

作者同樣采用一個(gè)transformer 作為基本結(jié)構(gòu),但作者認(rèn)為深度很重要,寬度較小對(duì)模型損壞較小,所以整體架構(gòu)是保持模型深度不變,通過一個(gè)矩陣來改變feature size,即bottleneck,再通過在block的前后插入兩個(gè)bottleneck,來scale feature size。

由于MobileBERT太窄太深,所以不好訓(xùn)練,作者提出新的方式,通過一個(gè)同深但是更寬的同架構(gòu)的模型來訓(xùn)練 作為teacher,然后用MobileBERT遷移。

loss 設(shè)計(jì)上主要包括三部分:feature map之間的MSE,Attention logits之間的KL,以及pre-training MLM + pre-training-NSP + pre-training-KD

訓(xùn)練策略上,有三種方式:

將KD作為附加預(yù)訓(xùn)練的附加任務(wù),即一起訓(xùn)練;

分層訓(xùn)練,每次訓(xùn)練一層,同時(shí)凍結(jié)之前的層;

分開訓(xùn)練,首先訓(xùn)練遷移,然后單獨(dú)進(jìn)行pre-training。

此外,為了提高推理速度,將gelu 替換為更快的 relu ,LayerNormalization 替換為 更簡(jiǎn)單的NoNorm,也做了量化的實(shí)驗(yàn)。

優(yōu)點(diǎn)

首先mobileBERT容量更小,推理更快,與任務(wù)無關(guān),可以當(dāng)bert來直接在下游fine-tuning,而之前的KD大多數(shù)時(shí)候需要與任務(wù)綁定并使用數(shù)據(jù)增強(qiáng),才能達(dá)到不錯(cuò)的性能;

論文實(shí)驗(yàn)非常詳實(shí),包括如何選擇inter-block size, intra-block size, 不同訓(xùn)練策略如何影響等;

訓(xùn)練策略上,除了之前的一起訓(xùn)練完,實(shí)驗(yàn)了兩種新的訓(xùn)練方式,而最終的一層一層的訓(xùn)練與skip connection 有異曲同工的作用:每層都學(xué)一小部分內(nèi)容,從而降低學(xué)習(xí)的難度;

替換了gelu 和 LayerNormalization,進(jìn)一步提速。

缺點(diǎn)

要訓(xùn)練一個(gè)IBBERT作為teacher,而這個(gè)模型容量與BERT-Large差不多,增加了訓(xùn)練難度.

總結(jié)

以上論文的遷移過程其實(shí)可以總結(jié)為兩類:

soft label遷移,即主要遷移Teacher 模型最后分類層的logits 及相應(yīng)的soft label;

feature遷移,即除了最后分類層外,還遷移Teacher 模型中的output/attention/embedding等特征。

Student 的選擇上,除了自定義外,還可以選擇跟Teacher 同結(jié)構(gòu),而為了降低參數(shù)量,可以選擇將模型變矮/變窄/減小hidden size 等方式。

而為了蒸餾后的模型能更加的general,適應(yīng)更多的task,就需要遷移更多的信息,設(shè)計(jì)上也越復(fù)雜。

想法

實(shí)際工作上,大多數(shù)時(shí)候我們都是需要一個(gè)task 來做模型,而以上論文中告訴我們,遷移的信息越多,Student 的性能越好。

而針對(duì)具體task ,我覺得比較簡(jiǎn)潔有效的一種方式是采用更矮的Teacher 來作為Student ,這樣可以直接將Teacher 中的前幾層的信息完全遷移過來,然后在object 上,加入遷移Teacher 在train data 上的logits ,這樣就可以比較有效的進(jìn)行蒸餾了。

除此之外,讓我們換個(gè)角度看看為什么logits 能增強(qiáng)Student 模型的性能呢?除了遷移的角度外,其實(shí)logits 提供了label 更多的信息(不同類別的相對(duì)關(guān)系),而這個(gè)額外信息只要優(yōu)于隨機(jī)分布,就能對(duì)模型提供更多的約束信息,從而增強(qiáng)模型性能,即當(dāng)前的模型可以看作是分別擬合ground truth 和 logits的兩個(gè)模型的ensemble,只不過是兩個(gè)模型共享參數(shù)。

上面我們提到只要logits 優(yōu)于隨機(jī),對(duì)Student 模型來說就會(huì)有所提升,那logits 由誰產(chǎn)生的其實(shí)并不重要。所以,我們除了可以用Teacher 產(chǎn)生的logits來增強(qiáng)Student 模型外,我們還可以增強(qiáng)Teacher 模型,或者直接用Student 先學(xué)習(xí)一下,產(chǎn)生logits,再用Student 去遷移上次產(chǎn)生的logits。

想到這里,我不禁的有個(gè)大膽的想法:既然我可以一邊生成logits, 一邊學(xué)習(xí)logits,那我不是可以持續(xù)這個(gè)過程,直到模型完全擬合train data,生成的logits退化為one-hot,那此時(shí)的模型是不是能得到一個(gè)非常大的提升呢?

實(shí)驗(yàn)

實(shí)驗(yàn)的基本設(shè)置是用12層bert 作為Teacher model ,用3層bert 作為Student model 。soften labels 采用Temperature 平滑后的結(jié)果,此外,Student model 除了學(xué)習(xí) soften labels 的外,也需要學(xué)習(xí)ground truth。

Teacher-to-Student

Teacher model 在train data 上訓(xùn)練,然后在train data 上生成對(duì)應(yīng)的soften labels,Student model 學(xué)習(xí)ground truth 和 soften labels。

student-to-student

既然soften labels 是一種對(duì)labels 的一種平滑估計(jì),那我們可以用任何方式去估計(jì)他,所以這里我們就用student 去做一個(gè)估計(jì):student model 在train data 上進(jìn)行訓(xùn)練,然后在train data 上生成對(duì)應(yīng)的soften labels ,將 student model 利用bert 預(yù)訓(xùn)練結(jié)果重新初始化,然后去學(xué)習(xí)ground truth 和 soften labels.

normal-noise-training

既然是對(duì)labels 的一個(gè)估計(jì),那假如給一個(gè)隨機(jī)的估計(jì),只要保證生成的logits 中true label 對(duì)應(yīng)的值最大,就能對(duì)Student 模型進(jìn)行一定程度的提升:直接在train label 上添加一個(gè)normal noise ,然后重新進(jìn)行平滑后歸一,作為soften labels讓student model 去學(xué)習(xí)。

實(shí)驗(yàn)結(jié)果

從結(jié)果中可以看到:

優(yōu)于隨機(jī)的logits 對(duì)Student 模型有一定的提升,估計(jì)越準(zhǔn)確,提升越高;

越大的模型性能越好;

迭代進(jìn)行l(wèi)ogits 的生成與訓(xùn)練不能進(jìn)一步提高模型性能,原因主要是新的logits 分布相比之前的對(duì)模型的提升非常小,此外這個(gè)分布也比較容易擬合,所以無法進(jìn)一步提升。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 容量
    +關(guān)注

    關(guān)注

    0

    文章

    119

    瀏覽量

    21843
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3834

    瀏覽量

    52291
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    491

    瀏覽量

    23347

原文標(biāo)題:模型壓縮與蒸餾!BERT家族的瘦身之路

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    《多模態(tài)大模型 前沿算法與實(shí)戰(zhàn)應(yīng)用 第一季》精品課程簡(jiǎn)介

    部署延遲問題 采用模型剪枝、量化(如INT8)和知識(shí)蒸餾降低推理延遲。例如將CLIP模型蒸餾為更小的學(xué)生模型,在保持80%
    發(fā)表于 05-01 17:46

    AI Ceph 分布式存儲(chǔ)教程資料大模型學(xué)習(xí)資料2026

    的快速擴(kuò)縮容,分布式存儲(chǔ)必須支持模型文件的秒級(jí)分發(fā)。通過利用分層存儲(chǔ)策略,將冷數(shù)據(jù)歸檔至廉價(jià)的大容量 HDD,將熱數(shù)據(jù)(如活躍的模型權(quán)重)置于高性能 SSD,并結(jié)合全局命名空間的技術(shù),
    發(fā)表于 05-01 17:35

    HM博學(xué)谷狂野AI大模型第四期

    、 推理性能極致優(yōu)化:KV Cache 與顯存管理 在模型落地的商業(yè)場(chǎng)景中,推理速度與資源消耗是核心痛點(diǎn)。課程不只關(guān)注模型的“智商”,更關(guān)注其“效率”。通過對(duì)推理框架源碼的拆解,學(xué)員將
    發(fā)表于 05-01 17:30

    人工智能多模態(tài)與視覺大模型開發(fā)實(shí)戰(zhàn) - 2026必會(huì)

    模型通常采用深度神經(jīng)網(wǎng)絡(luò),尤其是卷積神經(jīng)網(wǎng)絡(luò)(CNN)及其變體。CNN 具有強(qiáng)大的特征提取能力,能夠自動(dòng)從圖像中學(xué)習(xí)到不同層次的特征,從簡(jiǎn)單的邊緣、紋理到復(fù)雜的物體形狀和語義信息。通過多層網(wǎng)絡(luò)的堆疊
    發(fā)表于 04-15 16:06

    華為如何通過模型技術(shù)打造智能IP網(wǎng)絡(luò)

    2025年非洲通信展在南非開普敦召開,華為數(shù)據(jù)通信產(chǎn)品線NCE數(shù)據(jù)通信領(lǐng)域總裁王輝受邀參加“Telecoms For Tomorrow”論壇,發(fā)表題為“擁抱AI時(shí)代,打造面向未來的智能IP網(wǎng)絡(luò)”的演講,分享華為如何通過模型技術(shù)打造智能IP網(wǎng)絡(luò),開啟自主智能新時(shí)代。
    的頭像 發(fā)表于 11-14 16:39 ?1654次閱讀

    如何在vivadoHLS中使用.TLite模型

    使用read_checkpoint命令或通過界面導(dǎo)入模型文件。 2. 檢查模型的輸入和輸出節(jié)點(diǎn)名稱 可以使用model.summary()或其他方法來查看模型的結(jié)構(gòu)和層名稱。 3.
    發(fā)表于 10-22 06:29

    一文讀懂大模型常見的10個(gè)核心概念

    如今高效智能的AI大模型,正如雨后春筍般破土而出,人們對(duì)于AI大模型的學(xué)習(xí)與探索之路,也愈發(fā)寬闊平坦。雖然AI工具已不再陌生,但其中關(guān)于AIPrompt、大模型的吞吐量、蒸餾與量化、私
    的頭像 發(fā)表于 09-22 17:02 ?1399次閱讀
    一文讀懂大<b class='flag-5'>模型</b>常見的10個(gè)核心概念

    【「DeepSeek 核心技術(shù)揭秘」閱讀體驗(yàn)】書籍介紹+第一章讀后心得

    模型圈子,其多項(xiàng)性能超過了當(dāng)時(shí)處于領(lǐng)先地位的ChatGPT 4,也證明了不需要高昂的費(fèi)用也能訓(xùn)練出優(yōu)質(zhì)大模型。這激起了我的好奇心,借著這次機(jī)會(huì)好好閱讀一下DeepSeek的核心技術(shù)。 開箱+簡(jiǎn)介
    發(fā)表于 07-17 11:59

    模型推理顯存和計(jì)算量估計(jì)方法研究

    GPU、FPGA等硬件加速。通過分析硬件加速器的性能參數(shù),可以估算模型在硬件加速下的計(jì)算量。 四、實(shí)驗(yàn)與分析 為了驗(yàn)證上述估計(jì)方法的有效性,我們選取了幾個(gè)具有代表性的深度學(xué)習(xí)
    發(fā)表于 07-03 19:43

    ModbusRTU轉(zhuǎn)EtherCAT網(wǎng)關(guān):蒸餾裝置通信提速方案

    蒸餾裝置等復(fù)雜控制系統(tǒng)中,如何有效地通過開疆智能Modbus RTU轉(zhuǎn)EtherCAT網(wǎng)關(guān)KJ-ECT-101將這兩種協(xié)議結(jié)合使用,以實(shí)現(xiàn)更高效、更可靠的系統(tǒng)性能,成為了工程師們關(guān)注的焦點(diǎn)。常壓
    的頭像 發(fā)表于 06-26 18:29 ?468次閱讀

    從FA模型切換到Stage模型時(shí):module的切換說明

    abilities中配置,在module標(biāo)簽下配置process。 uri標(biāo)識(shí)Ability的統(tǒng)一資源標(biāo)識(shí)符。/Stage模型不支持。 deviceCapability標(biāo)識(shí)Ability運(yùn)行時(shí)要求設(shè)備具有
    發(fā)表于 06-05 08:16

    數(shù)據(jù)標(biāo)注與大模型的雙向賦能:效率與性能的躍升

    ??在人工智能蓬勃發(fā)展的時(shí)代,大模型憑借其強(qiáng)大的學(xué)習(xí)與泛化能力,已成為眾多領(lǐng)域創(chuàng)新變革的核心驅(qū)動(dòng)力。而數(shù)據(jù)標(biāo)注作為大模型訓(xùn)練的基石,為大模型性能提升注入關(guān)鍵動(dòng)力,是
    的頭像 發(fā)表于 06-04 17:15 ?2273次閱讀
    數(shù)據(jù)標(biāo)注與大<b class='flag-5'>模型</b>的雙向賦能:效率與<b class='flag-5'>性能</b>的躍升

    Stage模型啟動(dòng)FA模型PageAbility方法

    Stage模型啟動(dòng)FA模型PageAbility 本小節(jié)介紹Stage模型的兩種應(yīng)用組件如何啟動(dòng)FA模型的PageAbility組件。 UIAbility啟動(dòng)PageAbility
    發(fā)表于 06-04 06:36

    成本狂降90%!國產(chǎn)芯片+開源模型如何改寫AI玩具規(guī)則

    成本實(shí)現(xiàn)更人性化的體驗(yàn)。這種技術(shù)迭代不僅重塑了玩具的定義,更悄然重構(gòu)著人與機(jī)器的關(guān)系圖譜。 ? 輕量級(jí)模型的出現(xiàn),本質(zhì)上是將云端大模型的智慧濃縮至終端設(shè)備的過程。以DeepSeek-R1為代表的技術(shù)路徑,通過知識(shí)
    的頭像 發(fā)表于 05-29 00:52 ?4130次閱讀

    亞馬遜功能最強(qiáng)模型Amazon Nova Premier現(xiàn)已正式可用

    是目前亞馬遜功能最強(qiáng)大的模型,適用于處理復(fù)雜任務(wù),并可作為教師模型蒸餾定制模型。 作為現(xiàn)有Amazon Nova理解模型家族的新成員,Am
    的頭像 發(fā)表于 05-09 18:18 ?696次閱讀
    亞馬遜功能最強(qiáng)<b class='flag-5'>模型</b>Amazon Nova Premier現(xiàn)已正式可用
    黎平县| 尤溪县| 康乐县| 绵竹市| 新和县| 宜宾市| 永仁县| 黑山县| 威海市| 田阳县| 阳谷县| 和硕县| 常宁市| 耿马| 阜城县| 廊坊市| 定兴县| 清涧县| 江达县| 卓尼县| 霍林郭勒市| 沂南县| 图木舒克市| 大化| 余姚市| 铜陵市| 伊川县| 甘谷县| 措美县| 山阳县| 博湖县| 临猗县| 方山县| 达日县| 昭苏县| 沧州市| 临澧县| 新巴尔虎右旗| 定边县| 分宜县| 邵阳县|