news 2026/5/14 8:09:59

【VLM】——vlm计算ppl损失

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【VLM】——vlm计算ppl损失

计算vlm模型的ppl损失。

代码:

fromtransformersimportQwen2VLForConditionalGeneration,AutoProcessorimporttorchfromtorch.nnimportCrossEntropyLossfromPILimportImage# 配置DEVICE="cuda:0"MODEL_NAME="/data1/chenjun/huf/Qwen2-VL-2B-Instruct"IMAGE_SIZE=384defresize_image(path,max_side=384):"""调整图片大小,保持宽高比"""image=Image.open(path).convert("RGB")width,height=image.sizeifwidth>height:new_width=max_side new_height=int(height*(max_side/width))else:new_height=max_side new_width=int(width*(max_side/height))return[image.resize((new_width,new_height),Image.Resampling.LANCZOS)]defmain():# 加载模型和处理器model=Qwen2VLForConditionalGeneration.from_pretrained(MODEL_NAME,dtype=torch.float32,device_map=DEVICE)processor=AutoProcessor.from_pretrained(MODEL_NAME)# 构建消息file='outputs/ppl_vlm_qwen3-vl-2b-axera-384/vit/0000.png'messages=[{"role":"user","content":[{"type":"image","image":file},{"type":"text","text":"描述这张图片"},],}]# 应用chat模板text=processor.apply_chat_template(messages,tokenize=False,add_generation_prompt=True)# 处理图片image_inputs=resize_image(file,IMAGE_SIZE)inputs=processor(text=[text],images=image_inputs,return_tensors="pt").to(DEVICE)gen_idx=inputs['input_ids'].shape[1]# 生成文本generated_ids=model.generate(**inputs,max_new_tokens=256)generated_ids_trimmed=[out_ids[len(in_ids):]forin_ids,out_idsinzip(inputs.input_ids,generated_ids)]output_text=processor.batch_decode(generated_ids_trimmed,skip_special_tokens=True,clean_up_tokenization_spaces=False)[0]# 计算PPLtext_with_response=text+output_text image_inputs=resize_image(file,IMAGE_SIZE)inputs2=processor(text=[text_with_response],images=image_inputs,return_tensors="pt").to(DEVICE)withtorch.no_grad():outputs=model(**inputs2,max_new_tokens=1)logits=outputs.logits# 计算交叉熵损失shift_labels=inputs2['input_ids'][...,gen_idx+1:].contiguous().to(DEVICE)shift_logits=logits[...,gen_idx:-1,:].contiguous().to(dtype=torch.float32)loss_fct=CrossEntropyLoss()ce_loss=loss_fct(shift_logits.view(-1,shift_logits.size(-1)),shift_labels.view(-1))print(f"ce_loss:{ce_loss:.3f}, ppl:{ce_loss.exp():.3f}")if__name__=="__main__":main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 22:23:06

《夜色正浓》熟男熟女太好磕了!张兆辉蓝盈莹成全剧C位

如果近期你也被都市剧《夜色正浓》刷屏,大概很难不被剧中一对特别的CP吸引,那就是剧中由张兆辉与蓝盈莹所组成的cp,这对年龄悬殊的组合竟碰撞出意料之外的默契火花。这对CP的魅力,在于演员与角色之间的高度契合。张兆辉饰演的沈默…

作者头像 李华
网站建设 2026/5/13 21:48:17

ACN配电监控模块:过流保护+能耗统计,工业场景适配

智能配电监控模块主要用于实时监测、保护、控制、远程管理配电回路,广泛覆盖需要稳定供电、能耗管理、安全报警、无人值守的场景。一、规格分类 4DO(50A)4DI4AI485232 50A电流检测4DO(50A)4DI4AI485232 50A电流检测4DO(50A)4DI4AI网口485232 50A电流检测4DO(50A)4DI…

作者头像 李华
网站建设 2026/5/12 8:02:26

ACN配电监控模块:4路/8路全电参监控,50A磁保持继电器长效运行

ACN配电监控模块是一款集成监测、控制、保护、远程管理功能于一体的智能电力终端设备,特别适用于照明与动力配电回路的精细化管理,通过内置磁保持继电器与智能芯片,实现“监、控、保、管”全流程智能化。一、核心定位 ACN配电监控模块是智能配…

作者头像 李华
网站建设 2026/5/11 17:01:47

天然氧吧的“守护者”:景区负氧离子监测站揭秘

走进山林景区,清新的空气总能让人神清气爽,这背后离不开“空气维生素”——负氧离子的滋养。而撑起这片“天.然氧吧”的,还有一位默默坚守的“守护者”,它就是景区负氧离子监测站。看似不起眼的它,藏着太多鲜为人知的奥…

作者头像 李华
网站建设 2026/5/1 11:34:16

招人求职哪个平台好用?2026招聘平台效果排行榜揭晓

在人才竞争日益激烈的当下,企业HR和求职者都面临一个共同难题:如何高效、精准地完成人岗匹配?传统“海投简历”“广撒网式招聘”已难以满足快节奏的职场需求。据艾瑞咨询《2025年中国智能招聘行业报告》显示,超68%的企业希望借助A…

作者头像 李华