Questions about fine-tuning the embedding model
当我用几十万样本做模型的微调时 目前是BGE-zh-large-1.5和BGE-m3
{ "query": "【超值揭秘】亚龙湾潜水大冒险就在离开三亚的前一天,我们决定不给旅程留遗憾,不去潜水怎么行?感觉自己就像站在长城脚下,不登就错过亿! 登山包准备起来,直奔亚龙湾!原本计划去蜈支洲,听说消费高得吓人,于是开始疯狂比价。最后,发现了一个超实惠套餐,600大洋一个人,十项全能体验!前一天晚上联系到店家,客服小哥哥小姐姐超Nice,保证没有隐藏费用,还说有任何不满就退款。我们就半信半疑地预订了(毕竟听说三亚的“坑”多,但我们还是要勇敢一试!)第二天,接我们的车准时出现在红树林酒店,一路直达亚龙湾。小团队出行,人少体验好!潜水教练详细讲解,然后我们就下水啦!(早上去,水清鱼多,而且还有免费深潜哦!不需要额外买装备呢!)拍了美美哒玻璃船照片,还全部赠送给我们。午餐海鲜大餐,满满的幸福感!️ 下午摩托艇、香蕉船、帆船,乐趣不断!最惊喜的是,又送了摄影服务,记录下每一个激动瞬间!离开时,他们还贴心地把我们送到机场附近的酒店。工作人员耐心又负责,这次真的没踩坑!这600块,值了!姐妹们,一定要避开摩的司机的“小建议”哦,我们差点被坑惨了!一顿海鲜花了大价钱,心疼!#亚龙湾潜水冒险# #三亚性价比之王# #海岛潜水日记#", "pos": [ "亚龙湾潜水后续全过来啦返程前一天去亚龙湾的潜水 本来不打算玩了 但是想了想来都来了 不玩潜水多可惜呀 就像到北京不登长城非好汉似的哈哈哈 |||然后我们就准备去蜈支洲岛上岛玩潜水 都说那边水质好 可后来网上人都说那边消费太高 于是我们就在各大平台使劲刷 后来看到亚龙湾一家套餐也不错 600块钱一个人 包括大概十几个项目 我们是去的前一天晚上联系到的他 然后的他绿泡泡 第一次体验潜水嘛什么都不知道 他们就耐心的给讲解了一下 说绝对不会߈ׯ؏ 隐形收费 要是被坑了 可以给我们退全款 于是我们也就抱着侥幸心理定下来了 (坑不坑都要体验一次 毕竟很多人都说三亚坑多嘛ߘðߘðߘï܉我们当时住三亚湾红树林酒店 去玩的当天早上他们来酒店楼下接的 大概上午9点多快10点左右到亚龙湾 到了之后他们的领队给我们讲了一下注意事项 然后就开始带我们玩了(不是大团哦)我们是上午玩的浅潜天气有点热 不过为了玩能接受ߘï܈带我们玩的人说上午水质好)能看见很多小鱼 还免费赠送我们深潜ߤߠ装备也不用自己买)然后拍了一些玻璃船的照片 底片还全送给了我们 (潜水照片过了一下滤镜ߘðߘï܉这一点感觉真的贴心了 然后就开始吃午餐了午餐还吃的海鲜 水果拼盘之类的 下午玩的摩托艇 香蕉船 帆船的项目 最后又赠送了我们摄影 下午结束之后我们去了机场附近的酒店 因为第二天要回家搬砖嘛 然后他们又安排车把我们送了过去 不得不说这个俱乐部工作人员真的很有耐心ߑͯ܈总算没踩坑 这600花的还算值)(姐妹们一定不要相信摩的司机的话 我们被那些黑心肠的人带去吃了一顿海鲜花了不到2000)#三亚亚龙湾#三亚潜水#一起去潜水#亚龙湾潜水#海岛游潜水体验" ], "neg": [ "探索魔都魅力不花一分钱的10️⃣大免费拍照点.1️⃣ 花海里的秘密基地 REi·FLOWER COFFEE BAR北苏州路234号,花香与咖啡香的浪漫邂逅,预算友好又不失格调2️⃣ 长乐路的秘密花园 Solo Garden333号的小天地,绿色草坪上的梦幻洋房,每一秒都想定格3️⃣ 粉色童话梦 常熟路地铁站4号口被粉色花朵包围的出口,少女心爆棚,仿佛走进了童话世界4️⃣ 韩风转角遇见爱 L'ATELIER OVER BAKERY利西路152号,不用出国,这里的街景也能拍出韩剧感5️⃣ 春风中的艺术之旅 春风纪行苏河湾万象城,天后宫的现代与古典,美得让人流连忘返️6️⃣ 日落追逐者 浦东美术馆滨江大道的桥下,最佳观赏日落的宝地,心随太阳一同沉醉7️⃣ 都市知识殿堂 徐家汇书院徐汇区的书香气息,只是记得别错过4点半的门禁哦⏰8️⃣ 欧洲街头的倒影 ️ 新天安教堂圆明园路附近,哥特式建筑,仿佛穿越时空的旅行9️⃣ 沙美大楼的复古时光 ️ 北京东路190号楼梯、阳台,每一处都是复古大片的诞生地 记得带上你的相机,和魔都的每一个角落来场美丽的约会吧!#魔都免费景点 #周末拍照计划 #上海文艺打卡 #城市漫步 #旅行摄影 #上海探店 #小众旅行地" ] }
上面这是我的单体样本 我的超参如下
torchrun --nproc_per_node 1
--nnodes=1
--node_rank=0
-m FlagEmbedding.baai_general_embedding.finetune.run
--output_dir /data/khazic/FlagEmbedding/saved
--model_name_or_path /data/khazic/BGE-m3
--train_data /data/khazic/cleaned_emb_data.json
--learning_rate 1e-5
--bf16
--num_train_epochs 5
--per_device_train_batch_size 16
--dataloader_drop_last True
--normlized True
--temperature 0.05
--query_max_len 1024
--passage_max_len 1024
--train_group_size 1
--negatives_cross_device
--logging_steps 5
--save_steps 1000000
--query_instruction_for_retrieval ""
但是我loss会一上来就是0.1左右 然后就到0.0几的级别了 是我的query跟pos正样本太接近了吗?
在我调整了temperture之后 0.2左右 他的loss就会下降 我是否应该这么做呢?
任务太简单了,需要提高任务难度。没有使用neg,train_group_size应该>1(指的是pos+neg的数量,pos数量一直为1,因此train_group_size-1为从neg中采样数量)。另外可以提高per_device_train_batch_size,这也能加大任务难度。
不应该提高temperture,推荐0.01-0.1。temperture过高会让模型难以优化。我们的经验中,0.02就很好了。
感谢 我再测试一下模型
Shitao Xiao @.***>于2024年4月25日 周四下午12:50写道:
任务太简单了,需要提高任务难度。没有使用neg,train_group_size应该>1(指的是pos+neg的数量,pos数量一直为1,因此train_group_size-1为从neg中采样数量)。另外可以提高per_device_train_batch_size,这也能加大任务难度。
不应该提高temperture,推荐0.01-0.1。temperture过高会让模型难以优化。
— Reply to this email directly, view it on GitHub https://github.com/FlagOpen/FlagEmbedding/issues/724#issuecomment-2076351520, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUAB5RGCP5TKIYRWOTFDIT3Y7CDSDAVCNFSM6AAAAABGYBCPG2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZWGM2TCNJSGA . You are receiving this because you authored the thread.Message ID: @.***>
这个loss的图 真的看着很不正常 我把train_group_size==2 bs写成64了 temperture==0.05
并不觉得不正常。loss只是0-0.15之间波动,波动范围很小。
我做一下eval的测评看看结果
因为我是5个epoch 只要后端的 loss比前段小 波动也更小 那我就认为是学进去了的