91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

怎么構(gòu)建命名實(shí)體識(shí)別(NER)任務(wù)的標(biāo)注數(shù)據(jù)

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:PaperWeekly ? 作者:康洪雨 ? 2022-07-26 14:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近一段時(shí)間在做商品理解的工作,主要內(nèi)容是從商品標(biāo)題里識(shí)別出商品的一些屬性標(biāo)簽,包括不限于品牌、顏色、領(lǐng)型、適用人群、尺碼等等。這類(lèi)任務(wù)可以抽象成命名實(shí)體識(shí)別(Named Entity Recognition, NER)工作,一般用序列標(biāo)注(Sequence Tagging)的方式來(lái)做,是比較成熟的方向。

10da4dea-0ca5-11ed-ba43-dac502259ad0.png

▲ 商品理解示例,品牌:佳豐;口味:蒜香味

本文主要記錄下做這個(gè)任務(wù)上遇到的問(wèn)題,踩的坑,模型的效果等。

主要內(nèi)容:

  1. 怎么構(gòu)建命名實(shí)體識(shí)別(NER)任務(wù)的標(biāo)注數(shù)據(jù)
  2. BertCRF 訓(xùn)練單標(biāo)簽識(shí)別過(guò)程及踩坑

  3. BertCRF 訓(xùn)練超多標(biāo)簽識(shí)別過(guò)程及踩坑
  4. CascadeBertCRF 訓(xùn)練超多標(biāo)簽識(shí)別過(guò)程及踩坑

NER任務(wù)標(biāo)注數(shù)據(jù)方法

其實(shí)對(duì) NER 任務(wù)來(lái)說(shuō),怎么獲取標(biāo)注數(shù)據(jù)是比較重要、比較耗時(shí)費(fèi)力的工作。針對(duì)商品理解任務(wù)來(lái)說(shuō),想要獲取大量的標(biāo)注數(shù)據(jù)一般可以分為 3 種途徑:

  1. 花錢(qián)外包,靠外包人肉打標(biāo),羨慕有錢(qián)的公司。

  2. 抓取其他平臺(tái)的數(shù)據(jù),這塊也可以分成兩種情況,第一種是既抓標(biāo)題又抓標(biāo)簽-標(biāo)簽值,比如 標(biāo)題:珍味來(lái)(zhenweilai)小黃魚(yú)(燒烤味),品牌:珍味來(lái)(zhenweilai),口味:燒烤味,得到的數(shù)據(jù)直接可以訓(xùn)練模型了;第二種是只抓 標(biāo)簽-標(biāo)簽值,把所有類(lèi)目下所有常見(jiàn)的標(biāo)簽抓下來(lái),不抓標(biāo)題,然通過(guò)一些手段把標(biāo)簽掛到自己平臺(tái)的標(biāo)題上,構(gòu)造訓(xùn)練數(shù)據(jù);第一種抓取得數(shù)據(jù)準(zhǔn),但很難找到資源給抓,即使找到了也非常容易被風(fēng)控;第二種因?yàn)檎?qǐng)求量小,好抓一點(diǎn),但掛標(biāo)簽這一步的準(zhǔn)確度會(huì)影響后面模型的效果。

  3. 用自己平臺(tái)的商品標(biāo)題去請(qǐng)求一些開(kāi)放 NER 的 api,比如阿里云、騰訊云、百度 ai 等,有些平臺(tái)的 api 是免費(fèi)的,有些 api 每天可以調(diào)用一定次數(shù),可以白嫖,對(duì)于電商領(lǐng)域,阿里云的 NER 效果比其他家好一些。

BertCRF單標(biāo)簽NER模型

這部分主要記錄 BertCRF 在做單一標(biāo)簽(品牌)識(shí)別任務(wù)時(shí)踩的一些坑。

先把踩的坑列一下:

  1. 怎么輕量化構(gòu)建 NER 標(biāo)注數(shù)據(jù)集。

  2. bert tokenizer 標(biāo)題轉(zhuǎn) id 時(shí),品牌值的 start idx、end idx 和原始的對(duì)不上,巨坑。

  3. 單一標(biāo)簽很容易過(guò)擬合,會(huì)把不帶品牌的標(biāo)題里識(shí)別出一些品牌,識(shí)別出來(lái)的品牌也不對(duì)。

2.1 輕量化構(gòu)建標(biāo)注數(shù)據(jù)集

上面講到構(gòu)建 NER 標(biāo)注數(shù)據(jù)的常見(jiàn) 3 種方法,先把第一種就排除,因?yàn)闆](méi)錢(qián)打標(biāo);對(duì)于第三種,我嘗試了福報(bào)廠的 NER api,分基礎(chǔ)版 和 高級(jí)版,但評(píng)估下來(lái)發(fā)現(xiàn)不是那么準(zhǔn)確,召回率沒(méi)有達(dá)到要求,也排除了;

那就剩第二種方案了,首先嘗試了第二種里的第一種情況,既抓標(biāo)題又抓標(biāo)簽,很快發(fā)現(xiàn)就被風(fēng)控了,不管用自己寫(xiě)的腳本還是公司的采集平臺(tái),都繞不過(guò)風(fēng)控,便放棄了;所以就只抓標(biāo)簽-標(biāo)簽值,后面再用規(guī)則的方法掛到商品標(biāo)題上。

只抓標(biāo)簽和標(biāo)簽值相當(dāng)于構(gòu)建類(lèi)目下標(biāo)簽知識(shí)庫(kù)了,有了類(lèi)目限定之后,通過(guò)規(guī)則掛靠在商品標(biāo)題上時(shí),會(huì)提高掛靠的準(zhǔn)確率。比如“夏季清涼短款連衣裙”,其中包含標(biāo)簽“裙長(zhǎng)”:“短款”,如果不做類(lèi)目限定,就會(huì)用規(guī)則掛出多個(gè)標(biāo)簽“衣長(zhǎng)”:“短款”,“褲長(zhǎng)”:“短款”,“裙長(zhǎng)”:“短款”等等,類(lèi)目限制就可以把一些非此類(lèi)目的標(biāo)簽排除掉。

通過(guò)規(guī)則掛靠出的數(shù)據(jù)也會(huì)存在一些 bad case,盡管做了類(lèi)目限制,但也有一定的標(biāo)錯(cuò)樣本;組內(nèi)其他同學(xué)在做大規(guī)模對(duì)比學(xué)習(xí)模型,于是用規(guī)則掛靠出的結(jié)果標(biāo)題——標(biāo)簽:標(biāo)簽值走一遍對(duì)比學(xué)習(xí)模型,把標(biāo)題向量和標(biāo)簽值向量相似得分高的樣本留下當(dāng)做優(yōu)質(zhì)標(biāo)注數(shù)據(jù)。

113cb4d0-0ca5-11ed-ba43-dac502259ad0.png

▲ 輕量化構(gòu)建NER標(biāo)注數(shù)據(jù)

通過(guò)以上步驟,不需要花費(fèi)很多人力,自己一人就可以完成整個(gè)流程,減少了很多人工標(biāo)注、驗(yàn)證的工作;得到的數(shù)據(jù)也足夠優(yōu)質(zhì)。

2.2 正確打標(biāo)label index

NER 任務(wù)和文本分類(lèi)任務(wù)很像,文本分類(lèi)任務(wù)是句子或整篇粒度,NER 是 token 或者 word 粒度的文本分類(lèi)。

所以 NER 任務(wù)的訓(xùn)練數(shù)據(jù)和文本分類(lèi)任務(wù)相似,但有一點(diǎn)點(diǎn)不同。對(duì)于文本分類(lèi)任務(wù),一整個(gè)標(biāo)題有 1 個(gè) label。

114a8e2a-0ca5-11ed-ba43-dac502259ad0.png

▲ 文本分類(lèi)任務(wù)token和label對(duì)應(yīng)關(guān)系

對(duì)于 NER 任務(wù),一整個(gè)標(biāo)題有一串 label,每個(gè) tokend 都有一個(gè) label。在做品牌識(shí)別時(shí),設(shè)定 label 有 3 種取值。

"UNK":0," B_brand":1,"I_brand":2,其中 B_brand 代表品牌的起始位置,I_brand 代表品牌的中間位置。

1158ac6c-0ca5-11ed-ba43-dac502259ad0.png

▲品牌NER任務(wù)token和label對(duì)應(yīng)關(guān)系

搞清了 NER 任務(wù)的 label 形式之后,接下來(lái)就是怎么正確的給每個(gè)樣本打上 label,一般先聲明個(gè)和 title 長(zhǎng)度一樣的全 0 列表,遍歷,把相應(yīng)位置置 1 或者 2 就可以得到樣本 label,下面是一個(gè)基礎(chǔ)的例子

a={
"title":"潘頓特級(jí)初榨橄欖油",
"att_name":"品牌",
"att_value":"潘頓",
"start_idx":0,
"end_idx":2
}
defset_label(text):
title=text['title']
label=[0]*len(title)
foridxinrange(text['start_idx'],text['end_idx']):
ifidx==text['start_idx']:
label[idx]=1
else:
label[idx]=2
returnlabel
text_label=set_label(a)
print(text_label)

但這里需要把 title 進(jìn)行 tokenizer id 化,bert tokenizer 之后的 id 長(zhǎng)度可能會(huì)和原來(lái)的標(biāo)題長(zhǎng)度不一致,包含有些英文會(huì)拆成詞綴,空格也會(huì)被丟棄,導(dǎo)致原始的 start_idx 和 end_idx 發(fā)生偏移,label 就不對(duì)了。

這里先說(shuō)結(jié)論:強(qiáng)烈建議使用 list(title)全拆分標(biāo)題,再使用 tokenizer.convert_tokens_to_ids 的方式 id 化?。?!

剛開(kāi)始沒(méi)有使用上面那種方式,用的是 tokenizer(title)進(jìn)行 id 化再計(jì)算偏移量,重新對(duì)齊 label,踩了 2 個(gè)坑

  1. tokenizer 拆分英文變成詞綴,start index 和 end index 會(huì)發(fā)生偏移,盡管有offset_mapping 可以記錄偏移的對(duì)應(yīng)關(guān)系,但真正回退偏移時(shí)還會(huì)遇到問(wèn)題;

  2. 使用 tokenizer(title)的方式,預(yù)測(cè)的時(shí)候會(huì)遇到?jīng)]法把 id 變成 token;比如下面這個(gè)例子,
fromtransformersimportAutoTokenizer
tokenizer=AutoTokenizer.from_pretrained('../bert_pretrain_model')
input_id=tokenizer('呫頓')['input_ids']
token=[tokenizer.convert_ids_to_tokens(w)forwininput_id[1:-1]]
#['[UNK]','頓']

因?yàn)椤皡恪笔巧ё郑褂?convert_ids_to_tokens 是沒(méi)法知道原始文字是啥的,有人可能會(huì)說(shuō),預(yù)測(cè)出 index 之后,直接去標(biāo)題里拿字不就行了,不用 convert_ids_to_tokens;上面說(shuō)過(guò),預(yù)測(cè)出來(lái)的 index 和原始標(biāo)題的文字存在 offset,這樣流程就變成

1182f120-0ca5-11ed-ba43-dac502259ad0.png

▲ 使用tokenizer id化label對(duì)應(yīng)關(guān)系

所以,還是強(qiáng)烈建議使用 list(title)全拆分標(biāo)題,再使用 tokenizer.convert_tokens_to_ids 的方式 id 化?。?!

這樣就不存在偏移的問(wèn)題,start idx 和 end idx 不會(huì)變化,預(yù)測(cè)的時(shí)候不需要使用 convert_ids_to_tokens,直接用 index 去列表里 token list 取字

正確打標(biāo) label 非常重要,不然訓(xùn)練的模型就會(huì)很詭異。建議在代碼里加上校驗(yàn)語(yǔ)句,不管使用哪種方法,有考慮不全的地方,就會(huì)報(bào)錯(cuò)

assertattribute_value==title[text['start_idx']:text['end_idx']]

2.3 BertCRF模型結(jié)構(gòu)

Pytorch 寫(xiě) BertCRF 很簡(jiǎn)單,可能會(huì)遇到 CRF 包安裝問(wèn)題,可以不安裝,直接把 crf.py 文件拷貝到項(xiàng)目里引用。

classBertCRF(nn.Module):
def__init__(self,num_labels):
super(BertCRF,self).__init__()
self.config=BertConfig.from_pretrained('../xxx/config.json')
self.bert=BertModel.from_pretrained('../xxx')
self.dropout=nn.Dropout(self.config.hidden_dropout_prob)
self.classifier=nn.Linear(self.config.hidden_size,num_labels)
self.crf=CRF(num_tags=num_labels,batch_first=True)
defforward(
self,
input_ids=None,
attention_mask=None,
token_type_ids=None,
labels=None,
):
outputs=self.bert(
input_ids,
attention_mask=attention_mask,
token_type_ids=token_type_ids,
)
sequence_output=outputs[0]
sequence_output=self.dropout(sequence_output)
logits=self.classifier(sequence_output)
outputs=(logits,)
iflabelsisnotNone:
loss=self.crf(emissions=logits,tags=labels,mask=attention_mask)
outputs=(-1*loss,logits)
returnoutputs

2.4 緩解過(guò)擬合問(wèn)題

只做一個(gè)標(biāo)簽(品牌)識(shí)別時(shí),訓(xùn)練集是 標(biāo)題-品牌值 pair 對(duì),每個(gè)樣本都有品牌值。由于品牌長(zhǎng)尾現(xiàn)象嚴(yán)重,這里對(duì)熱門(mén)品牌的數(shù)據(jù)進(jìn)行了采樣,1 個(gè)品牌最少包含 100 個(gè)標(biāo)題,最多包含 300 個(gè)標(biāo)題,數(shù)據(jù)分布如下

118eedf4-0ca5-11ed-ba43-dac502259ad0.png

模型關(guān)鍵參數(shù)

max_seq_length=50
train_batch_size=256
epochs=3
learning_rate=1e-5
crf_learning_rate=5e-5

第一版模型訓(xùn)練之后,驗(yàn)證集 F1 0.98,通過(guò)分析驗(yàn)證數(shù)據(jù)的 bad case,發(fā)現(xiàn)模型對(duì)包含品牌的標(biāo)題預(yù)測(cè)效果還不錯(cuò),但是對(duì)不包含品牌的標(biāo)題,幾乎全軍覆沒(méi),都會(huì)抽出 1、2 個(gè)字出來(lái),模型過(guò)擬合了。而且抽出的字一般都是標(biāo)題前 1、2 個(gè)字,這與商品品牌一般都在標(biāo)題前面有關(guān)。

針對(duì)過(guò)擬合問(wèn)題及表現(xiàn)的現(xiàn)象,嘗試了 2 種方法:

  1. 既然對(duì)沒(méi)有品牌的標(biāo)題一般都抽出前 1、2 個(gè)字,那在訓(xùn)練的時(shí)候把品牌從前面隨機(jī)插入到標(biāo)題中間、尾部等位置,是不是可以緩解。

  2. 構(gòu)建訓(xùn)練集的時(shí)候加入一些負(fù)樣本,負(fù)樣本里 label 都是 0,不包含品牌,正負(fù)樣本比 1:1。

法 1 訓(xùn)練之后,沒(méi)有解決問(wèn)題,而且過(guò)擬合問(wèn)題更加嚴(yán)重了

法 2 訓(xùn)練之后,過(guò)擬合問(wèn)題解決了,增加了近 1 倍樣本,訓(xùn)練時(shí)間翻倍。

BertCRF 模型訓(xùn)練完之后,通過(guò)分析 bad case,會(huì)發(fā)現(xiàn)有的數(shù)據(jù)模型預(yù)測(cè)是對(duì)的,標(biāo)注時(shí)標(biāo)錯(cuò)了,模型有一定的糾錯(cuò)能力,transformer 強(qiáng)??!

美國(guó)新安怡(fsoothielp)安撫奶嘴。標(biāo)注品牌:”soothie“;預(yù)測(cè)品牌:“新安怡(fsoothielp)”

美羚富奶羊羊羊粉 2 段。標(biāo)注品牌:“羊羊羊”,預(yù)測(cè)品牌:“美羚”

針對(duì) BertCRF 在 Finetune 時(shí)有 2 種方式,一種是 linear probe,只訓(xùn)練 CRF 和線性層,凍結(jié) Bert 預(yù)訓(xùn)練參數(shù),這種方式訓(xùn)練飛快;另一種是不凍結(jié) Bert 參數(shù),模型所有參數(shù)都更新,訓(xùn)練很慢。

一般在 Bert 接下游任務(wù)時(shí),我都會(huì)選擇第二種全部訓(xùn)練的方式,不凍結(jié)參數(shù),雖然訓(xùn)練慢,但擬合能力強(qiáng);尤其是用 bert-base 這類(lèi)預(yù)訓(xùn)練模型時(shí),這些模型在電商領(lǐng)域直接適配并不會(huì)很好,更新 bert 預(yù)訓(xùn)練參數(shù),能讓模型向電商標(biāo)題領(lǐng)域進(jìn)行遷移。

BertCRF多標(biāo)簽NER模型

這部分主要記錄 BertCRF 訓(xùn)練超多標(biāo)簽識(shí)別時(shí),遇到的問(wèn)題,模型的效果等。

先把踩的坑列一下:

  1. 爆內(nèi)存問(wèn)題,因?yàn)橐?xùn)練多標(biāo)簽,所以訓(xùn)練數(shù)據(jù)很多,千萬(wàn)級(jí)別,dataloader 過(guò)程中內(nèi)存不夠。

  2. 爆顯存問(wèn)題,CRF 的坑,下面會(huì)細(xì)說(shuō)。

  3. 訓(xùn)練完的模型,預(yù)測(cè)時(shí)召回能力不強(qiáng),準(zhǔn)確率夠用。

多標(biāo)簽和單標(biāo)簽時(shí),模型的結(jié)構(gòu)不變,和上面的代碼一模一樣。

3.1 爆內(nèi)存問(wèn)題

和單標(biāo)簽一樣,也對(duì)每個(gè)標(biāo)簽值進(jìn)行了采樣,減少標(biāo)簽值的長(zhǎng)尾分布現(xiàn)象。1 個(gè)標(biāo)簽值最少包含 100 個(gè)標(biāo)題,最多包含 300 個(gè)標(biāo)題。數(shù)據(jù)分布如下

11c8cb3c-0ca5-11ed-ba43-dac502259ad0.png

一個(gè)標(biāo)簽有多個(gè)標(biāo)簽值,比如“顏色”:“紅”,“黃”,“綠”,...等。一個(gè)標(biāo)簽有 2 個(gè) label 值,B 代表起始位置,I 代表終止位置,所以整體有 1212 + 1 個(gè)類(lèi)別,1 代表 UNK。

單類(lèi)別負(fù)采樣后訓(xùn)練數(shù)據(jù)總共 200w 左右,多類(lèi)別時(shí)沒(méi)負(fù)采樣訓(xùn)練數(shù)據(jù) 900 多 w,數(shù)據(jù)量多了 4 倍,原有的 dataset 沒(méi)有優(yōu)化內(nèi)存,到多標(biāo)簽這里就爆內(nèi)存了。

把特征處理的模塊從__init__里轉(zhuǎn)移到__getitem__函數(shù)里,這樣就可以減少很多內(nèi)存使用了

舊版本的 dataset 函數(shù)

classMyDataset(Dataset):
def__init__(self,text_list,tokenizer,max_seq_len):
self.input_ids=[]
self.token_type_ids=[]
self.attention_mask=[]
self.labels=[]
self.input_lens=[]
self.len=len(text_list)
fortextintqdm(text_list):
input_ids,input_mask,token_type_ids,input_len,label_ids=feature_process(text,tokenizer,max_seq_len)
self.input_ids.append(input_ids)
self.token_type_ids.append(token_type_ids)
self.attention_mask.append(input_mask)
self.labels.append(label_ids)
self.input_lens.append(input_len)
def__getitem__(self,index):
tmp_input_ids=torch.tensor(self.input_ids[index]).to(device)
tmp_token_type_ids=torch.tensor(self.token_type_ids[index]).to(device)
tmp_attention_mask=torch.tensor(self.attention_mask[index]).to(device)
tmp_labels=torch.tensor(self.labels[index]).to(device)
tmp_input_lens=torch.tensor(self.input_lens[index]).to(device)
returntmp_input_ids,tmp_attention_mask,tmp_token_type_ids,tmp_input_lens,tmp_labels
def__len__(self):
returnself.len

新版本的 dataset 函數(shù)

classMyDataset(Dataset):
def__init__(self,text_list,tokenizer,max_seq_len):
self.text_list=text_list
self.len=len(text_list)
self.tokenizer=tokenizer
self.max_seq_len=max_seq_len
def__getitem__(self,index):
raw_text=self.text_list[index]
input_ids,input_mask,token_type_ids,input_len,label_ids=feature_process(raw_text,
self.tokenizer,
self.max_seq_len)
tmp_input_ids=torch.tensor(input_ids).to(device)
tmp_token_type_ids=torch.tensor(token_type_ids).to(device)
tmp_attention_mask=torch.tensor(input_mask).to(device)
tmp_labels=torch.tensor(label_ids).to(device)
tmp_input_lens=torch.tensor(input_len).to(device)
returntmp_input_ids,tmp_attention_mask,tmp_token_type_ids,tmp_input_lens,tmp_labels
def__len__(self):
returnself.len

可以看到新版本比舊版本減少了 5 個(gè)超大的 list,爆內(nèi)存的問(wèn)題就解決了,雖然這塊會(huì)有一定的速度損失。

3.2 爆顯存問(wèn)題

當(dāng)標(biāo)簽個(gè)數(shù)少時(shí),BertCRF 模型最大 tensor 是 bert 的 input,包含 input_ids,attention_mask,token_type_ids三個(gè)tensor,維度是(batch size,sequence length,hidden_size=768),對(duì)于商品標(biāo)題數(shù)據(jù) sequence length=50,顯存占用大小取決于 batch size,僅做品牌識(shí)別,16G 顯存 batch size=300,32G 顯存 batch size=700。

但當(dāng)標(biāo)簽個(gè)數(shù)多時(shí),BertCRF 模型最大 tensor 來(lái)自 CRF 這貨了,這貨具體原理不展開(kāi),后面會(huì)單獨(dú)寫(xiě)一期,只講下這貨代碼里的超大 tensor。

CRF 在做 forward 時(shí),函數(shù)_compute_normalizer 里的 next_score shape 是(batch_size, num_tags, num_tags),當(dāng)做多標(biāo)簽時(shí),num_tags=1212,(batch_size, 1212, 1212)>>(batch_size, 50, 768),這個(gè) tensor 遠(yuǎn)遠(yuǎn)大于 bert 的輸入了,多標(biāo)簽時(shí),16G 顯存 batch size=32,32G 顯存 batch size=80

#shape:(batch_size,num_tags,num_tags)
next_score=broadcast_score+self.transitions+broadcast_emissions

排查到爆顯存的原因之后,也沒(méi)找到好的優(yōu)化辦法,CRF 這貨在多標(biāo)簽時(shí)太慢了,又占顯存。

3.3 模型效果

經(jīng)過(guò)近 4 天的顯卡火力全開(kāi)之后,1k+ 類(lèi)別的模型訓(xùn)練完成了。使用測(cè)試數(shù)據(jù)對(duì)模型進(jìn)行驗(yàn)證,得到 3 個(gè)結(jié)論

  1. 模型沒(méi)有過(guò)擬合,盡管訓(xùn)練數(shù)據(jù)沒(méi)有負(fù)樣本

  2. 模型預(yù)測(cè)準(zhǔn)確率高,但召回能力不強(qiáng)

  3. 模型對(duì)單標(biāo)簽樣本預(yù)測(cè)效果好,多標(biāo)簽樣本預(yù)測(cè)不全,僅能預(yù)測(cè) 1~2 個(gè),和 2 類(lèi)似

先說(shuō)一下模型為什么沒(méi)有出現(xiàn)單標(biāo)簽時(shí)的過(guò)擬合問(wèn)題,因?yàn)樵诮?1k 個(gè)標(biāo)簽?zāi)P陀?xùn)練時(shí),學(xué)習(xí)難度直接上去了,模型不會(huì)很快的收斂,單標(biāo)簽時(shí)任務(wù)過(guò)于簡(jiǎn)單,容易出現(xiàn)過(guò)擬合。

驗(yàn)證模型效果時(shí),先定義怎么算正確:假設(shè)一個(gè)標(biāo)題包含 3 個(gè)標(biāo)簽,預(yù)測(cè)時(shí)要把這 3 個(gè)標(biāo)簽都識(shí)別出來(lái),并且標(biāo)簽值也要對(duì)的上,才算正確;怎么算錯(cuò)誤:識(shí)別的標(biāo)簽個(gè)數(shù)少于真實(shí)的標(biāo)簽個(gè)數(shù),識(shí)別的標(biāo)簽值和真實(shí)的對(duì)不上都算錯(cuò)誤。

使用 105w 驗(yàn)證數(shù)據(jù),整體準(zhǔn)確率 803388/1049268=76.5%,如果把預(yù)測(cè)不全,但預(yù)測(cè)對(duì)的樣本也算進(jìn)來(lái)的話,準(zhǔn)確率(803388+76589)/1049268=83.9%。

對(duì) bad case 進(jìn)行分析,模型對(duì)于 1 個(gè)標(biāo)題中含有多個(gè)標(biāo)簽時(shí),識(shí)別效果不好,表現(xiàn)現(xiàn)象是識(shí)別不全,一般只識(shí)別出 1 個(gè)標(biāo)簽,統(tǒng)計(jì)驗(yàn)證數(shù)據(jù)里標(biāo)簽個(gè)數(shù)和樣本個(gè)數(shù)的關(guān)系,這個(gè)指標(biāo)算是標(biāo)簽個(gè)數(shù)維度的召回率

多標(biāo)簽樣本是指一個(gè)標(biāo)題中包含多個(gè)標(biāo)簽,比如下面這個(gè)商品包含 5 個(gè)標(biāo)簽。


標(biāo)題:“吊帶潮流優(yōu)雅純色氣質(zhì)收腰高腰五分袖喇叭袖連體褲 2018 年夏季”。


標(biāo)簽:袖長(zhǎng):五分袖;上市時(shí)間:2018年夏季;風(fēng)格:優(yōu)雅;圖案:純色;腰型:高腰。

11f1a5ca-0ca5-11ed-ba43-dac502259ad0.png

可以看到對(duì)于標(biāo)簽數(shù)越多的標(biāo)題,模型的識(shí)別效果越不好,然后我分析了訓(xùn)練數(shù)據(jù)的標(biāo)簽個(gè)數(shù)個(gè)樣本數(shù)的關(guān)系,可以看到在訓(xùn)練數(shù)據(jù)里,近 90% 的樣本僅只有一個(gè)標(biāo)簽,模型對(duì)多標(biāo)簽識(shí)別效果不好主要和這個(gè)有關(guān)系。

所以在構(gòu)建數(shù)據(jù)集時(shí),可以平衡一下樣本數(shù),多加一些多標(biāo)簽的樣本到訓(xùn)練集,這樣對(duì)多標(biāo)簽樣本的適配能力也會(huì)增強(qiáng)。

但多標(biāo)簽樣本本身收集起來(lái)會(huì)遇到困難,于是我又發(fā)現(xiàn)了一個(gè)新的騷操作

沒(méi)法獲得更多的多標(biāo)簽樣本提升模型的召回能力咋辦呢?模型不是對(duì)單標(biāo)簽樣本很牛 b 嘛,那在預(yù)測(cè)的時(shí)候,每次如果有標(biāo)簽提取出來(lái),就從標(biāo)題里把已經(jīng)預(yù)測(cè)出的標(biāo)簽值刪掉,繼續(xù)預(yù)測(cè),循環(huán)預(yù)測(cè),直到預(yù)測(cè)是空終止。

第一次預(yù)測(cè)

input title:吊帶潮流優(yōu)雅純色氣質(zhì)收腰高腰五分袖喇叭袖連體褲2018年夏季
predict label:袖長(zhǎng):五分袖

把五分袖從標(biāo)題里刪除,進(jìn)行第二次預(yù)測(cè)

input title:吊帶潮流優(yōu)雅純色氣質(zhì)收腰高腰喇叭袖連體褲2018年夏季
predict label:上市時(shí)間:2018年夏季

把2018年夏季從標(biāo)題里刪除,進(jìn)行第三次預(yù)測(cè)

input title:吊帶潮流優(yōu)雅純色氣質(zhì)收腰高腰喇叭袖連體褲
predict label:風(fēng)格:優(yōu)雅

把優(yōu)雅從標(biāo)題里刪除,進(jìn)行第四次預(yù)測(cè)

input title:吊帶潮流純色氣質(zhì)收腰高腰喇叭袖連體褲
predict label:圖案:純色

把純色從標(biāo)題里刪除,進(jìn)行第五次預(yù)測(cè)

吊帶潮流氣質(zhì)收腰高腰喇叭袖連體褲
predict label:腰型:高腰

把高腰從標(biāo)題里刪除,進(jìn)行第六次預(yù)測(cè)

input title:吊帶潮流氣質(zhì)收腰喇叭袖連體褲
predict label:預(yù)測(cè)為空

可以看到,標(biāo)簽被一個(gè)接一個(gè)的準(zhǔn)確預(yù)測(cè)出,這種循環(huán)預(yù)測(cè)是比較耗時(shí)的,離線可以,在線吃不消;能找到更多 多標(biāo)簽數(shù)據(jù)補(bǔ)充到訓(xùn)練集里是正確的方向。

多標(biāo)簽 CRF 爆顯存,只能設(shè)定小 batch size 慢慢跑的問(wèn)題不能解決嘛?當(dāng)然可以,卷友們提出了一種多任務(wù)學(xué)習(xí)的方法,CRF 只學(xué)習(xí) token 是不是標(biāo)簽實(shí)體,通過(guò)另一個(gè)任務(wù)區(qū)分 token 屬于哪個(gè)標(biāo)簽類(lèi)別。

CascadeBertCRF多標(biāo)簽?zāi)P?/span>

4.1 模型結(jié)構(gòu)

在標(biāo)簽數(shù)目過(guò)多時(shí),BertCRF 由于 CRF 這貨的問(wèn)題,導(dǎo)致模型很耗顯存,訓(xùn)練也很慢,這種方式不太科學(xué),也會(huì)影響效果。

從標(biāo)簽過(guò)多這個(gè)角度出發(fā),卷友們提出把 NER 任務(wù)拆分成多任務(wù)學(xué)習(xí),一個(gè)任務(wù)負(fù)責(zé)識(shí)別 token 是不是實(shí)體,另一個(gè)任務(wù)判斷實(shí)體屬于哪個(gè)類(lèi)別。

這樣 NER 任務(wù)的 lable 字典就只有"B"、"I"、"UNK"三個(gè)值了,速度嗖嗖的;而判斷實(shí)體屬于哪個(gè)類(lèi)別用線性層就可,速度也很快,模型顯存占用很少。

1220e808-0ca5-11ed-ba43-dac502259ad0.png

▲ 左單任務(wù)NER模型;右多任務(wù)NER模型

Cascade 的意思是級(jí)聯(lián)。就是把 BERT 的 token 向量過(guò)一遍 CRF 之后,再過(guò)一遍 Dense 層分類(lèi)。但這里面有一些細(xì)節(jié)。

訓(xùn)練時(shí),BERT 的 tokenx 向量過(guò)一遍 Dense 層分類(lèi),但不是所有 token 都計(jì)算 loss,是把 CRF 預(yù)測(cè)是實(shí)體的 token 拿出來(lái)算 loss,CRF 預(yù)測(cè)不是實(shí)體的不計(jì)算 loss,一個(gè)實(shí)體有多個(gè) token,每個(gè) token 都計(jì)算 loss;預(yù)測(cè)時(shí),把實(shí)體的每個(gè) token 分類(lèi)結(jié)果拿出來(lái),設(shè)計(jì)了三種類(lèi)別獲取方式。

比如“蒜香味”在模型的 CRF 分支預(yù)測(cè)出是實(shí)體,標(biāo)簽對(duì)應(yīng) "B"、"I"、"I";接下要解析這個(gè)實(shí)體屬于哪個(gè)類(lèi)別,在 Dense 分支預(yù)測(cè)的結(jié)果可能會(huì)有四種

  1. “蒜香味”對(duì)應(yīng)的 Dense 結(jié)果是 “unk”、“unk”、“unk”,沒(méi)識(shí)別出實(shí)體類(lèi)別

  2. “蒜香味”對(duì)應(yīng)的 Dense 結(jié)果是 “口味”、“口味”、“口味”,每個(gè) token 都對(duì)

  3. “蒜香味”對(duì)應(yīng)的 Dense 結(jié)果是 “unk”、"口味"、"口味",有的 token 對(duì),有的token 沒(méi)識(shí)別出

  4. “蒜香味”對(duì)應(yīng)的 Dense 結(jié)果是 “unk”、“品牌”、“口味”,有的 token 對(duì)了,有的 token 沒(méi)識(shí)別出,有的 token 錯(cuò)了

針對(duì)上面 4 中結(jié)果,可以看到 4、3、2 越來(lái)越嚴(yán)謹(jǐn)。在評(píng)估模型效果時(shí),采用 2 是最嚴(yán)的,就是預(yù)測(cè)的 CRF 結(jié)果要對(duì),Dense 結(jié)果中每個(gè) token 都要對(duì),才算完全正確;3 和 4 越來(lái)越寬松。

4.2 模型代碼

importtorch
fromcrfimportCRF
fromtorchimportnn
fromtorch.nnimportCrossEntropyLoss
fromtransformersimportBertModel,BertConfig
classCascadeBertCRF(nn.Module):
def__init__(self,bio_num_labels,att_num_labels):
super(CascadeBertCRF,self).__init__()
self.config=BertConfig.from_pretrained('../bert_pretrain_model/config.json')
self.bert=BertModel.from_pretrained('../bert_pretrain_model')
self.dropout=nn.Dropout(self.config.hidden_dropout_prob)
self.bio_classifier=nn.Linear(self.config.hidden_size,bio_num_labels)#crf預(yù)測(cè)字是不是標(biāo)簽
self.att_classifier=nn.Linear(self.config.hidden_size,att_num_labels)#預(yù)測(cè)標(biāo)簽屬于哪個(gè)類(lèi)別
self.crf=CRF(num_tags=bio_num_labels,batch_first=True)
defforward(
self,
input_ids=None,
attention_mask=None,
token_type_ids=None,
bio_labels=None,
att_labels=None,
):
outputs=self.bert(
input_ids,
attention_mask=attention_mask,
token_type_ids=token_type_ids,
)
sequence_output=outputs[0]
sequence_output=self.dropout(sequence_output)
bio_logits=self.bio_classifier(sequence_output)#(batchsize,sequencelength,bio_num_labels)
num_bio=bio_logits.shape[-1]
reshape_bio_logits=bio_logits.view(-1,num_bio)#(batchsize*sequencelength,bio_num_labels)
pred_bio=torch.argmax(reshape_bio_logits,dim=1)#ner預(yù)測(cè)的bio結(jié)果
no_zero_pred_bio_index=torch.nonzero(pred_bio)#取出ner結(jié)果非0的token
att_logits=self.att_classifier(sequence_output)#(batchsize,sequencelength,att_num_labels)
num_att=att_logits.shape[-1]#att_num_labels
att_logits=att_logits.view(-1,num_att)#(batchsize*sequencelength,att_num_labels)
outputs=(bio_logits,att_logits)
ifbio_labelsisnotNoneandatt_labelsisnotNone:
select_att_logits=torch.index_select(att_logits,0,no_zero_pred_bio_index.view(-1))
select_att_labels=torch.index_select(att_labels.contiguous().view(-1),0,no_zero_pred_bio_index.view(-1))
loss_fct=CrossEntropyLoss()
select_att_loss=loss_fct(select_att_logits,select_att_labels)
bio_loss=self.crf(emissions=bio_logits,tags=bio_labels,mask=attention_mask)
loss=-1*bio_loss+select_att_loss
outputs=(loss,-1*bio_loss,bio_logits,select_att_loss,att_logits)
returnoutputs

4.3 模型效果

上面提到評(píng)估 Dense 的結(jié)果會(huì)遇到 4 種情況,使用第 4 種方式進(jìn)行指標(biāo)評(píng)估;NER 的識(shí)別效果和上面一致。

使用 105w 驗(yàn)證數(shù)據(jù),整體準(zhǔn)確率 792386/1049268=75.5%,比 BertCRF 低 1 個(gè)點(diǎn);把預(yù)測(cè)不全,但預(yù)測(cè)對(duì)的樣本也算進(jìn)來(lái)的話,準(zhǔn)確率(147297+792386)/1049268=89.6%,比 BertCRF 高 5 個(gè)點(diǎn);

標(biāo)簽個(gè)數(shù)和預(yù)測(cè)標(biāo)簽個(gè)數(shù)的對(duì)照關(guān)系:

124b7078-0ca5-11ed-ba43-dac502259ad0.png

CascadeBertCRF 模型的召回率比 BertCRF 要低,但模型的準(zhǔn)確率會(huì)高一些。CascadeBertCRF 相比 BertCRF,主要是提供了一種超多實(shí)體識(shí)別的訓(xùn)練思路,且模型的效果沒(méi)有損失,訓(xùn)練速度和推理速度有大幅提高。

把實(shí)體從標(biāo)題里刪掉訓(xùn)練預(yù)測(cè)的方法也同樣適用 CascadeBertCRF。


審核編輯 :李倩


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

    關(guān)注

    4

    文章

    1236

    瀏覽量

    26196
  • 標(biāo)簽
    +關(guān)注

    關(guān)注

    0

    文章

    157

    瀏覽量

    18640

原文標(biāo)題:NER | 商品標(biāo)題屬性識(shí)別探索與實(shí)踐

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    大模型時(shí)代自動(dòng)駕駛標(biāo)注有什么特殊要求?

    在自動(dòng)駕駛的發(fā)展歷程中,數(shù)據(jù)標(biāo)注一直被視為算法進(jìn)化的基石。然而,隨著大模型時(shí)代的到來(lái),這一領(lǐng)域正經(jīng)歷著重構(gòu)。 過(guò)去,標(biāo)注員的任務(wù)是簡(jiǎn)單地在二維照片上畫(huà)框,標(biāo)記出車(chē)輛和行人的位置。但現(xiàn)在
    的頭像 發(fā)表于 03-01 09:09 ?2439次閱讀
    大模型時(shí)代自動(dòng)駕駛<b class='flag-5'>標(biāo)注</b>有什么特殊要求?

    自動(dòng)駕駛數(shù)據(jù)標(biāo)注是所有信息都要標(biāo)注嗎?

    [首發(fā)于智駕最前沿微信公眾號(hào)]數(shù)據(jù)標(biāo)注對(duì)于自動(dòng)駕駛來(lái)說(shuō),就像是老師教小朋友知識(shí),數(shù)據(jù)標(biāo)注可以讓車(chē)輛學(xué)習(xí)辨別道路交通信息的能力。攝像頭、雷達(dá)、激光雷達(dá)(LiDAR)拍下來(lái)的只是一堆原始信
    的頭像 發(fā)表于 12-04 09:05 ?871次閱讀
    自動(dòng)駕駛<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>是所有信息都要<b class='flag-5'>標(biāo)注</b>嗎?

    自動(dòng)駕駛數(shù)據(jù)標(biāo)注主要是標(biāo)注什么?

    的結(jié)構(gòu)化標(biāo)簽。這些標(biāo)簽不僅構(gòu)成了模型訓(xùn)練與評(píng)估的數(shù)據(jù)基礎(chǔ),也直接影響系統(tǒng)在實(shí)際道路環(huán)境中的識(shí)別、理解和決策能力。準(zhǔn)確、系統(tǒng)的數(shù)據(jù)標(biāo)注能夠有效提升感知算法的魯棒性與泛化能力,因此
    的頭像 發(fā)表于 07-30 11:54 ?1342次閱讀
    自動(dòng)駕駛<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>主要是<b class='flag-5'>標(biāo)注</b>什么?

    什么是自動(dòng)駕駛數(shù)據(jù)標(biāo)注?如何好做數(shù)據(jù)標(biāo)注?

    [首發(fā)于智駕最前沿微信公眾號(hào)]在自動(dòng)駕駛系統(tǒng)的開(kāi)發(fā)過(guò)程中,數(shù)據(jù)標(biāo)注是一項(xiàng)至關(guān)重要的工作。它不僅決定了模型訓(xùn)練的質(zhì)量,也直接影響了車(chē)輛感知、決策與控制的性能表現(xiàn)。隨著傳感器種類(lèi)和數(shù)據(jù)量的劇增,有效
    的頭像 發(fā)表于 07-09 09:19 ?1376次閱讀
    什么是自動(dòng)駕駛<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>?如何好做<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>?

    端到端數(shù)據(jù)標(biāo)注方案在自動(dòng)駕駛領(lǐng)域的應(yīng)用優(yōu)勢(shì)

    10-20TB,其中需要標(biāo)注數(shù)據(jù)占比超過(guò)60%。在這樣的背景下,端到端數(shù)據(jù)標(biāo)注方案應(yīng)運(yùn)而生,正在重塑自動(dòng)駕駛的數(shù)據(jù)生產(chǎn)范式。 端到端
    的頭像 發(fā)表于 06-23 17:27 ?1013次閱讀

    數(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)力,是模型不可或缺的“養(yǎng)料。大模型則憑借
    的頭像 發(fā)表于 06-04 17:15 ?1987次閱讀
    <b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>與大模型的雙向賦能:效率與性能的躍升

    AI時(shí)代 圖像標(biāo)注不要沒(méi)苦硬吃

    識(shí)別算法的性能提升依靠大量的圖像標(biāo)注,傳統(tǒng)模式下,需要人工對(duì)同類(lèi)型數(shù)據(jù)集進(jìn)行一步步手動(dòng)拉框,這個(gè)過(guò)程的痛苦只有做過(guò)的人才知道。越多素材的數(shù)據(jù)集對(duì)于算法的提升越有幫助,常規(guī)情況下,一個(gè)2
    的頭像 發(fā)表于 05-20 17:54 ?552次閱讀
    AI時(shí)代   圖像<b class='flag-5'>標(biāo)注</b>不要沒(méi)苦硬吃

    東軟集團(tuán)入選國(guó)家數(shù)據(jù)數(shù)據(jù)標(biāo)注優(yōu)秀案例

    近日,東軟飛標(biāo)醫(yī)學(xué)影像標(biāo)注平臺(tái)在國(guó)家數(shù)據(jù)局發(fā)布數(shù)據(jù)標(biāo)注優(yōu)秀案例集名單中排名第一(案例名稱“多模態(tài)醫(yī)學(xué)影像智能數(shù)據(jù)
    的頭像 發(fā)表于 05-09 14:37 ?1220次閱讀

    標(biāo)貝科技“4D-BEV上億點(diǎn)云標(biāo)注系統(tǒng)”入選國(guó)家數(shù)據(jù)局首批數(shù)據(jù)標(biāo)注優(yōu)秀案例

    4月29日,作為第八屆數(shù)字中國(guó)建設(shè)峰會(huì)的重要組成部分,由國(guó)家數(shù)據(jù)局主辦的高質(zhì)量數(shù)據(jù)集和數(shù)據(jù)標(biāo)注主題交流活動(dòng)在福州市數(shù)字中國(guó)會(huì)展中心舉行。會(huì)議交流活動(dòng)聚焦“推動(dòng)高質(zhì)量
    的頭像 發(fā)表于 04-30 14:38 ?731次閱讀
    標(biāo)貝科技“4D-BEV上億點(diǎn)云<b class='flag-5'>標(biāo)注</b>系統(tǒng)”入選國(guó)家<b class='flag-5'>數(shù)據(jù)</b>局首批<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>優(yōu)秀案例

    大模型預(yù)標(biāo)注和自動(dòng)化標(biāo)注在OCR標(biāo)注場(chǎng)景的應(yīng)用

    OCR,即光學(xué)字符識(shí)別,簡(jiǎn)單來(lái)說(shuō)就是利用光學(xué)設(shè)備去捕獲圖像并識(shí)別文字,最終將圖片中的文字轉(zhuǎn)換為可編輯和可搜索的文本。在數(shù)字化時(shí)代,OCR(光學(xué)字符識(shí)別)技術(shù)作為處理圖像中文字信息的關(guān)鍵手段,其
    的頭像 發(fā)表于 04-15 15:18 ?943次閱讀

    數(shù)據(jù)標(biāo)注服務(wù)—奠定大模型訓(xùn)練的數(shù)據(jù)基石

    數(shù)據(jù)標(biāo)注是大模型訓(xùn)練過(guò)程中不可或缺的基礎(chǔ)環(huán)節(jié),其質(zhì)量直接影響著模型的性能表現(xiàn)。在大模型訓(xùn)練中,數(shù)據(jù)標(biāo)注承擔(dān)著將原始數(shù)據(jù)轉(zhuǎn)化為機(jī)器可理解、可學(xué)
    的頭像 發(fā)表于 03-21 10:30 ?3297次閱讀

    標(biāo)貝數(shù)據(jù)標(biāo)注服務(wù):奠定大模型訓(xùn)練的數(shù)據(jù)基石

    數(shù)據(jù)標(biāo)注是大模型訓(xùn)練過(guò)程中不可或缺的基礎(chǔ)環(huán)節(jié),其質(zhì)量直接影響著模型的性能表現(xiàn)。在大模型訓(xùn)練中,數(shù)據(jù)標(biāo)注承擔(dān)著將原始數(shù)據(jù)轉(zhuǎn)化為機(jī)器可理解、可學(xué)
    的頭像 發(fā)表于 03-21 10:27 ?1111次閱讀
    標(biāo)貝<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>服務(wù):奠定大模型訓(xùn)練的<b class='flag-5'>數(shù)據(jù)</b>基石

    自動(dòng)化標(biāo)注技術(shù)推動(dòng)AI數(shù)據(jù)訓(xùn)練革新

    標(biāo)貝自動(dòng)化數(shù)據(jù)標(biāo)注平臺(tái)在全棧數(shù)據(jù)標(biāo)注場(chǎng)景式中搭載了大模型預(yù)標(biāo)注和自動(dòng)化標(biāo)注能力,并應(yīng)用于3D點(diǎn)云
    的頭像 發(fā)表于 03-14 16:46 ?1359次閱讀

    標(biāo)貝自動(dòng)化數(shù)據(jù)標(biāo)注平臺(tái)推動(dòng)AI數(shù)據(jù)訓(xùn)練革新

    標(biāo)貝自動(dòng)化數(shù)據(jù)標(biāo)注平臺(tái)在全棧數(shù)據(jù)標(biāo)注場(chǎng)景式中搭載了大模型預(yù)標(biāo)注和自動(dòng)化標(biāo)注能力,并應(yīng)用于3D點(diǎn)云
    的頭像 發(fā)表于 03-14 16:42 ?1649次閱讀
    標(biāo)貝自動(dòng)化<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>標(biāo)注</b>平臺(tái)推動(dòng)AI<b class='flag-5'>數(shù)據(jù)</b>訓(xùn)練革新

    請(qǐng)問(wèn)NanoEdge AI數(shù)據(jù)集該如何構(gòu)建

    我想用NanoEdge來(lái)識(shí)別異常的聲音,但我目前沒(méi)有辦法生成模型,我感覺(jué)可能是數(shù)據(jù)集的問(wèn)題,請(qǐng)問(wèn)我該怎么構(gòu)建數(shù)據(jù)集?或者生成模型失敗還會(huì)有哪些原因?
    發(fā)表于 03-10 08:20