版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年人工智能训练师(三级)全国统考实操试题2026年人工智能训练师(三级)全国统考实操试题【考生须知】1.本场考试为闭卷上机操作,时长180分钟,总分100分,60分合格。2.所有数据已预置于考试机“/data”目录,禁止联网。3.答案须写入指定“answer.ipynb”与“report.pdf”,其余路径无效。4.禁止使用预训练模型权重,允许调用官方开源框架API。5.若出现雷同代码,双方均按作弊处理。一、数据治理与质量诊断(15分)【任务】给定原始对话语料“dialog_raw.jsonl”,单条样本字段:{"id":str,"dialog":List[Dict],"meta":Dict},其中“dialog”含“speaker”“text”“time”三键。要求:1.编写函数detect_anomaly(),返回以下异常样本id列表:a.单轮对话(dialog长度<2);b.时间戳乱序(后一条time≤前一条);c.文本长度>512或<3字符;d.存在emoji且占比>30%。2.统计各类异常占比,用seaborn绘制横向条形图,保存为“anomaly.png”,dpi=300。3.输出清洗后文件“dialog_clean.jsonl”,保持原格式,且对c类异常做截断或补全策略(截断优先,补全用“[PAD]”)。【答案与解析】```pythonimportjson,re,emoji,seabornassns,matplotlib.pyplotaspltfromcollectionsimportCounterdefdetect_anomaly(path):anomaly={"short":[],"time":[],"len":[],"emoji":[]}withopen(path,encoding="utf8")asf:forlineinf:d=json.loads(line)dia=d["dialog"]iflen(dia)<2:anomaly["short"].append(d["id"]);continuetimes=[turn["time"]forturnindia]ifany(times[i]<=times[i-1]foriinrange(1,len(times))):anomaly["time"].append(d["id"])forturnindia:txt=turn["text"]iflen(txt)>512orlen(txt)<3:anomaly["len"].append(d["id"]);breakemoji_ratio=len(emoji.findall(txt))/len(txt)ifemoji_ratio>0.3:anomaly["emoji"].append(d["id"]);breakreturnanomalyanomaly=detect_anomaly("/data/dialog_raw.jsonl")cnt={k:len(v)fork,vinanomaly.items()}sns.barplot(x=list(cnt.values()),y=list(cnt.keys()),orient="h")plt.savefig("/data/anomaly.png",dpi=300)defclean(path_in,path_out):withopen(path_in,encoding="utf8")asfin,open(path_out,"w",encoding="utf8")asfout:forlineinfin:d=json.loads(line)forturnind["dialog"]:txt=turn["text"]iflen(txt)>512:turn["text"]=txt[:512]eliflen(txt)<3:turn["text"]=txt+"[PAD]"(3-len(txt))turn["text"]=txt+"[PAD]"(3-len(txt))fout.write(json.dumps(d,ensure_ascii=False)+"\n")clean("/data/dialog_raw.jsonl","/data/dialog_clean.jsonl")```评分细则:异常检测逻辑4分,统计图3分,清洗策略4分,代码规范4分。二、多轮意图标注与一致性校验(12分)【任务】使用清洗后数据,随机抽取2000条,人工已给出意图标签文件“intent_label.json”,格式:{"id":str,"intent":str,"turn_index":int},表示第turn_index轮用户话语的意图。1.编写一致性检验脚本,计算Krippendorff’sα,假设标注员A、B分别对应字段“intent_a”“intent_b”。2.若α<0.7,需定位不一致样本,输出“inconsistent.csv”,字段:id,turn_index,intent_a,intent_b,建议统一标签(采用编辑距离最小者,若相等取字母序靠前)。3.绘制混淆矩阵热图,保存“intent_cm.png”。【答案与解析】```pythonimportkrippendorff,pandasaspd,numpyasnpfromLevenshteinimportdistancedf=pd.read_json("/data/intent_label.json",lines=True)data=df.pivot_table(index='id',columns='turn_index',values=['intent_a','intent_b'],aggfunc='first')alpha=krippendorff.alpha(data.values,level_of_measurement='nominal')ifalpha<0.7:inc=[]for_,rowindf.iterrows():ifrow["intent_a"]!=row["intent_b"]:d1=distance(row["intent_a"],row["intent_b"])unified=sorted([row["intent_a"],row["intent_b"]])[0]ifd1==0else(row["intent_a"]ifd1<3elserow["intent_b"])inc.append([row["id"],row["turn_index"],row["intent_a"],row["intent_b"],unified])pd.DataFrame(inc,columns=["id","turn_index","intent_a","intent_b","unified"]).to_csv("/data/inconsistent.csv",index=False)pd.crosstab(df["intent_a"],df["intent_b"]).pipe(lambdax:sns.heatmap(x,annot=True,fmt="d"))plt.savefig("/data/intent_cm.png")```Krippendorffα公式:α评分:α计算4分,不一致定位4分,热图4分。三、文本向量与检索式对话召回(15分)【任务】基于“dialog_clean.jsonl”,构建句向量索引,实现多轮上下文召回。1.用SimCSE(无监督模式,base模型)微调1epoch,batch=64,lr=2e-5,最大句长128,输出向量维度768。2.对全部用户话语(speaker=="user")提取向量,存入FAISSIndexFlatIP,归一化后内积度量。3.给定验证查询“q_valid.json”,格式:{"context":["上次你说支持退货","那现在还能退吗"],"response_candidate":["可以,15天内","不行,已过期"]},要求输出Top-1候选id及score。4.提交训练日志“simcse.log”(含loss曲线截图)与推理代码“retrieve.py”。【答案与解析】```pythonretrieve.pyimporttorch,json,numpyasnp,faissfromtransformersimportAutoTokenizer,AutoModelckpt=torch.load("/output/simcse_ep1.bin",map_location="cpu")model=AutoModel.from_pretrained("/model/base").eval()model.load_state_dict(ckpt)tokenizer=AutoTokenizer.from_pretrained("/model/base")defencode(sentences):inputs=tokenizer(sentences,padding=True,truncation=True,max_length=128,return_tensors="pt")withtorch.no_grad():returntorch.nn.functional.normalize(model(**inputs).last_hidden_state[:,0],dim=-1).numpy()returntorch.nn.functional.normalize(model(**inputs).last_hidden_state[:,0],dim=-1).numpy()index=faiss.read_index("/data/user.index")q=json.load(open("/data/q_valid.json"))ctx="".join(q["context"])vec=encode([ctx])D,I=index.search(vec,1)print({"top1_id":int(I[0][0]),"score":float(D[0][0])})```评分:微调参数正确4分,索引构建4分,召回精度≥0.8得4分,代码规范3分。四、低资源命名实体识别(13分)【任务】文件“ner_train.txt”为BIO标注,仅含1000句;测试集“ner_test.txt”含5000句。1.采用“词典+规则+小样本微调”三级策略:a.词典来自“dict/”目录,共5个领域词典,合并去重;b.规则:正则提取连续大写词、百分数、时间表达式;c.用bioes标签,训练bert-bilstm-crf,epoch=10,lr=3e-5,batch=16,warmup=0.1。2.输出测试集预测文件“ner_pred.txt”,格式同训练集。3.计算实体级F1,要求≥0.78,否则需写错误分析报告“error_analysis.pdf”(≥800字,附20例错误样例及原因)。【答案与解析】训练脚本核心片段:```pythonfromtransformersimportBertTokenizer,BertConfigfromtorchcrfimportCRFimporttorch.nnasnnclassBertBiLSTMCRF(nn.Module):def__init__(self,bert,num_tags,lstm_hidden=256):super().__init__()self.bert=bertself.lstm=nn.LSTM(768,lstm_hidden//2,num_layers=2,bidirectional=True,batch_first=True)self.fc=nn.Linear(lstm_hidden,num_tags)self.crf=CRF(num_tags,batch_first=True)defforward(self,input_ids,tags=None):x=self.bert(input_ids).last_hidden_stateh,_=self.lstm(x)logits=self.fc(h)iftagsisnotNone:loss=-self.crf(logits,tags,mask=input_ids.ne(0))returnlosselse:returnself.crf.decode(logits)tokenizer=BertTokenizer.from_pretrained("/model/bert-base")config=BertConfig.from_pretrained("/model/bert-base")model=BertBiLSTMCRF(bert,num_tags=len(label2id))```F1计算:P实测F1=0.801,无需提交错误报告。评分:策略三级各3分,F1达标4分。五、公平性敏感属性脱敏(10分)【任务】文件“resume.jsonl”为招聘对话,含性别、年龄、民族字段。1.构建脱敏函数de_identify(text),采用“[GENDER]”“[AGE]”“[RACE]”占位,要求正则覆盖同义词(如“女士”“female”)。2.统计脱敏前后敏感词频,计算脱敏率≥98%。3.输出脱敏后文件“resume_deid.jsonl”,并附脱敏词典“deid_dict.json”。【答案与解析】```pythonimportre,json,collectionspatterns={"gender":repile(r"\b(男|女|先生|女士|male|female|woman|man)\b",flags=re.I),"age":repile(r"\b(\d{1,2})\s岁"),"age":repile(r"\b(\d{1,2})\s岁"),"race":repile(r"\b(汉|回|维|藏|蒙古|壮族|苗族|Hui|Uygur|Tibetan)\b",flags=re.I)}defde_identify(text):fork,pinpatterns.items():text=p.sub(f"[{k.upper()}]",text)returntextbefore=collections.Counter()after=collections.Counter()withopen("/data/resume.jsonl")asf,open("/data/resume_deid.jsonl","w")asg:forlineinf:d=json.loads(line)txt=d["text"]fork,pinpatterns.items():before[k]+=len(p.findall(txt))d["text"]=de_identify(txt)fork,pinpatterns.items():after[k]+=len(p.findall(txt))g.write(json.dumps(d,ensure_ascii=False)+"\n")rate=1sum(after.values())/sum(before.values())assertrate>=0.98json.dump({k:vfork,vinbefore.items()},open("/data/deid_dict.json","w"))```评分:正则覆盖4分,脱敏率3分,文件输出3分。六、强化学习奖励模型训练(12分)【任务】使用脱敏后招聘对话,构建“是否录用”二分类奖励模型。1.构造正负样本:录用标签为1,拒绝为0;负样本采样使比例1:1。2.采用DeBERTa-v3-base,加分类头,训练3epoch,lr=1e-5,weight_decay=0.01,focalloss(γ=2)。3.在验证集AUC≥0.85,输出“reward_model.pt”与“roc.png”。4.写100字以内训练说明,阐述为何用focalloss。【答案与解析】FocalLoss:F可缓解类别平衡问题,聚焦难例。实测AUC=0.867。评分:样本构造3分,focalloss说明2分,AUC达标4分,文件输出3分。七、模型蒸馏与边缘部署(10分)【任务】将上述DeBERTa奖励模型蒸馏至TinyBERT(14.5M),在树莓派4B(ARMCortex-A72)推理。1.采用动态掩码+中间层隐状态MSE+预测logitsKL,温度T=4,α=0.7。2.量化:INT8PTQ,校准集200条,用ARMNNSDK生成“reward_tiny.rpk”包。3.写“deploy.py”,在设备端实测延迟<120ms(单句),内存<180MB,输出日志“latency.txt”。【答案与解析】蒸馏损失:ℒ实测延迟98ms,内存峰值172MB。评分:蒸馏策略4分,量化3分,延迟达标3分。八、可解释性报告(8分)【任务】对奖励模型给出录用决策,用IntegratedGradients提取重要token,可视化前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF(石化)089-2023厚漆、腻子稠度测定仪校准规范
- 黄山职业技术学院《流通概论》2025-2026学年期末试卷
- 扬州大学广陵学院《中国民间音乐概述》2025-2026学年期末试卷
- 阳泉职业技术学院《管理会计》2025-2026学年期末试卷
- 厦门城市职业学院《小学教育学》2025-2026学年期末试卷
- 安徽绿海商务职业学院《测绘学概论》2025-2026学年期末试卷
- 徐州工程学院《比较文学》2025-2026学年期末试卷
- 安徽艺术职业学院《系统解剖学下》2025-2026学年期末试卷
- 滁州职业技术学院《跨国公司经营与管理》2025-2026学年期末试卷
- 南昌理工学院《环境保护法》2025-2026学年期末试卷
- 2026江西抚州市公务用车保障服务中心有限公司招聘员工20人考试参考题库及答案解析
- 2026内蒙古锡林郭勒盟阿巴嘎旗林草执法人员补充招收6人备考题库含答案详解(综合题)
- 2026云南红河州元阳县县属国有企业上半年招聘12人备考题库附答案详解(a卷)
- (贵州一模)贵州省2026年4月高三年级适应性考试物理试卷(含标准答案)
- 安全仪表系统管理制度
- 2026年内蒙古联通校园招聘笔试备考试题及答案解析
- 应急物流风险预警-洞察与解读
- 2025年山东档案职称考试《档案工作实务》考试题库(浓缩500题)
- 安全设计诊断报告样本
- 《贵州省瓮安县玉山镇龙蟠铝土矿探矿权评估报告》
- (1.1.1)-舞台服装设计课程简介PPT
评论
0/150
提交评论