FlagOpen / FlagEmbedding

Retrieval and Retrieval-augmented LLMs
MIT License
7.17k stars 521 forks source link

bge-m3中文本dense向量不一致问题 #542

Open Hspix opened 7 months ago

Hspix commented 7 months ago

具体是表现为,同样的文本在batch中被转向量和单独一条转向量的结果不同,例如

model = BGEM3FlagModel('model_dir', use_fp16=True,device='cuda:0')
text = '益新生技股份有限公司'
texts = ['益新生技股份有限公司','Young Fast (SCL)CO.,LTD']
emb = model.encode(text )
embs = model.encode(texts )

emb['dense_vecs'].tolist()[:5]
[-0.03167724609375,
 -0.0196380615234375,
 -0.0083465576171875,
 0.0128631591796875,
 0.0007815361022949219]

embs['dense_vecs'][0].tolist()[:5]
[-0.03167724609375,
 -0.01953125,
 -0.00818634033203125,
 0.0128936767578125,
 0.0008335113525390625]
staoxiao commented 7 months ago

可以参考huggingface上的讨论:https://huggingface.co/BAAI/bge-m3/discussions/22

Hspix commented 7 months ago

可以参考huggingface上的讨论:https://huggingface.co/BAAI/bge-m3/discussions/22

当batch越来越大时会不会带来更明显的差异?

hanhainebula commented 7 months ago

可以参考huggingface上的讨论:https://huggingface.co/BAAI/bge-m3/discussions/22

当batch越来越大时会不会带来更明显的差异?

我用下面的代码做了测试:

import numpy as np
from FlagEmbedding import BGEM3FlagModel

model = BGEM3FlagModel('BAAI/bge-m3',  
                       use_fp16=True,
                       device='cuda:0')

sentences = [
    "挪威属于哪一大洲?",
    "挪威\n挪威国内先后两次投票表决是否加入欧盟,都未能在议会中通过。主要是挪威担心加入欧盟后会对本国农业带来巨大的冲击。但是,挪威属于欧洲贸易自由圈,所以在很多程度上,挪威经济和欧盟紧密相关。",
    "北歐五國\n北歐五國是位於北歐的丹麥、芬蘭、冰島、挪威和瑞典及其附屬領土如属-{zh-hans:于; zh-hant:於}-丹麦的法羅群島、格陵蘭,属于芬兰的奧蘭群島和属于挪威的斯瓦尔巴群岛的統稱。而由于地理位置原因,挪威南极领地通常不被视为北欧五国的一部分。欧洲的一些地区,例如苏格兰的北方群島,与北欧五国有着文化或种族上的联系,但不被认为属于北欧五国。诺斯人占该地区人口的四分之三以上,是最大的族群,其次是芬兰人,在芬兰占大多数。其他种族包括格陵蘭伊努伊特人、萨米人以及新移民及其后裔。",
    "挪威地理\n挪威位于欧洲北部斯堪的纳维亚半岛,西面与北面临大西洋,东北面滨临俄罗斯(陆上边界长196公里)、芬兰(陆上边界长729公里),东面与瑞典(陆上边界长1619公里)接壤,南面与丹麦隔海相望。",
    "北挪威\n馬格爾島上的,是歐洲地理範圍的最北端,旅遊業則常以旁邊較易到達的北角為最北端,而歐洲大陸的最北端諾爾辰角也在北挪威。","挪威經濟\n挪威国内先后两次投票表决是否加入欧盟,都未能在议会中通过。主要是挪威担心加入欧盟后会对本国农业带来巨大的冲击。但是,挪威属于欧洲贸易自由圈,所以在很多程度上,挪威经济和欧盟紧密相关。",
    "大尉\n俄罗斯军队的尉级军衔设置共4级:大尉、上尉、中尉、少尉。这一设置方式可上溯到苏联乃至帝俄时代。",
    "俄罗斯军衔史\n苏联解体后,俄罗斯除了取消大元帅、军兵种主帅及军兵种元帅以外,基本上沿用了前苏联军衔。",
    "寮國國旗\n老挝保护国国旗是在老挝法国殖民统治时期使用的一面国旗。左上角的法国国旗象征着法国与老挝保护国的联系。红色的旗底象征着人民的血液。图像为三只大象站在撑有阳伞的五阶台座上。大象象征着尊贵、智慧、吉祥,并作为一种交通工具。同时,三只大象还象征着老挝历史上的三个古国:万象、琅勃拉邦和川圹王国。位于大象之上的伞也有其确切的含义,在佛教的宇宙哲学中,须弥山(Mt. Meru)为世界的中心,此伞象征须弥山,代表了老挝的国民信仰。大象所站之台基象征着老挝王国的法律。",
    "深海魚\n现已知中层带游泳深海鱼约750种,巨口鱼目所属钻光鱼科、褶胸鱼科、巨口鱼科以及灯笼鱼目所属燈籠魚科的种类和数量上领先。这些群体广泛分布於全世界海洋中(包括极地海洋),生物量巨大。其中,钻光鱼科圆罩鱼属被认为是脊椎动物中个体数最多的类群。",
    "中层带\n海洋中层带一般有旗鱼、鱿鱼、鳗鱼、墨鱼等半深海生物。",
    "洪都拉斯\n洪都拉斯位于太平洋和加勒比海之间,東北部是未開發的大型低地叢林,西北部是人口稠密的低地河谷,可可河將洪都拉斯與尼加拉瓜分開。洪都拉斯擁有三個不同的地形區域:廣闊的內陸高地和兩個狹窄的沿海低地。內陸是山區,約佔該國地形的80%。北部較大的加勒比低地和與豐塞卡灣接壤的太平洋低地以沖積平原為特徵。三個自然地理區域的氣候類型各不相同。加勒比低地屬熱帶潮濕氣候,高溫多濕,全年降雨分佈相當均勻。太平洋低地屬熱帶乾濕氣候,氣溫高,但從11月到4月有明顯的旱季。內陸高地也有明顯的旱季,但作為熱帶高地氣候的特徵,該地區的溫度隨著海拔升高而降低。",
    "台灣地理\n台灣由於地殼變動頻繁,使山地丘陵會因構造作用而拗陷成盆地,再經河流作用和差異侵蝕而呈現今日所見的樣貌。因其相較周圍地勢平坦、土壤肥沃、水源充足,往往會發展成聚落。",
    "台灣地理\n台灣因歐亞板塊與菲律賓海板塊的互相擠壓而造山運動發達,導致台灣山地面積大,台灣山脈走向大致與地質構造線一致,北半部主要為東北—西南走向,南半部為北北西—南南東走向,由東向西可分為海岸、中央、雪山、玉山、阿里山等山脈。",
    "台灣土壤\n台灣土壤 台灣位處板塊交界,富含各種地形、各種多樣的氣候變化,地表有平原、丘陵、台地、盆地、高山、火山、泥火山、闊葉林、混合林、針葉林、窪地、海埔新生地、月世界...,天氣現象會出現焚風、東北季風、西南季風、梅雨、颱風雨、對流雨...。這些都是造成台灣出現多種土質的各種因素。 這裡指一般大眾的分類方法。(此排列愈上面愈優質)(中文譯名與解釋來源為、)",
    "台灣地理\n台灣西部衝上斷層山地之西,有起伏較為平緩的山麓丘陵與臺地。通常是地表因板塊擠壓使地層抬升而形成,其中台地多數為頭嵙山層、大南灣層等礫石層以及晚更新世之紅土堆積層。",
    "台灣地理\n台灣西部衝上斷層山地之西,多分布在山地的外緣,有起伏較為平緩的山麓丘陵與臺地。其中丘陵大部分為紅土台地受河川侵蝕切割而形成。由於海拔高度較低,地勢較緩,可以作為農業用地,通常開闢成茶園、果園等。",
    "台灣地理\n總面積為36,188平方公里,南北長394公里,南北狹長,東西窄,形似番薯。地勢東高西低,地形主要以山地、丘陵、盆地、台地、平原為主體。山地、丘陵約佔全島總面積的三分之二。地殼被擠壓抬升而形成的山脈,南北縱貫全台,其中以中央山脈為主體,地勢高峻陡峭。",
    "台灣地理\n台灣地形因坡陡流急使河川下游的堆積作用盛行,加上地盤隆起的離水作用,使中下游及沿海地區形成許多沖積平原。平原是農業生產精華區,也是人口密集的地區。台灣四面環海,位處於西太平洋第一島鏈中心,對於國際海洋漁業、經濟貿易與海空交通航線來說是重要經濟、交通的必經地點。",
    "北京时间1月27日,世预赛亚洲区12强赛第7轮比赛将拉开战幕。而在经过前6轮的角逐后,出线形势已经逐渐明朗。本轮比赛,伊朗、韩国、沙特有望提前3轮出线。而中国男足则命悬一线,如果此役输给日本,基本告别世界杯。\n在A组中,伊朗和韩国前6轮都保持不败。伊朗5胜1平16分居首,韩国4胜2平14分排名次席,而之后的阿联酋、黎巴嫩、伊拉克、叙利亚分别只有6分、5分、4分以及2分。\n本轮比赛,伊朗和韩国只要分别击败伊拉克和黎巴嫩,就可以提前3轮携手出线,锁定世界杯的门票。而剩余4支球队之间的最大分差不过4分,均保留着晋级附加赛的希望。\n在中国球迷颇为关注的B组中,沙特阿拉伯优势明显,5胜1平积16分领跑的他们,领先身后的日本队4分,领先第3名澳大利亚5分。本轮若能顺利击败阿曼,沙特就近乎可确保小组前二的名次,从而跻身世界杯决赛圈。\n至于中国男足的形势则不容乐观,由于沙特基本确定出线,中国男足只能与澳大利亚和日本争夺另外一个直接出线名额。本轮比赛中,澳大利亚将对阵此前6连败的越南。“袋鼠军团”大概率将送给越南7连败,这也就意味着,一旦国足输给日本,与澳大利亚的分差将达到9分,加上目前净胜球的巨大劣势,无疑等于提前3轮宣告出局。\n值得注意的是,获得亚洲区附加赛资格的球队将对阵的是来自南美洲预选赛的第5名。从目前的南美区预选赛的积分情况来看,大概率是对阵哥伦比亚、智利、乌拉圭、秘鲁等劲旅,中国男足想要依靠附加赛晋级的可能性微乎其微。\nTags : 国足世界杯出线形势",
    "中国小康网3月15日讯 老马 一连串暴力事件爆发,数起致命事件表明拉丁美洲足球的球迷骚乱正在失控。\n法新社报道,3 月 5 日在墨西哥的一场比赛中发生大规模斗殴,造成26人重伤,并导致14人被捕的照片在网上疯传并引起了更多关注,因为该国将与美国加拿大共同举办 2026 年世界杯。\n同一天晚上,在美国和拉科鲁尼亚卡利球迷之间的哥伦比亚卡利市外,帕尔米拉的一个体育场旁发生了野蛮袭击。\n尽管研究该问题的学者表示,冠状病毒限制的结束(被指责为法国英国足球暴力事件增加的原因)是一个因素,但当局并未充分解决一些潜在问题。\n“没有办法结束足球中的暴力,这应该非常清楚,”圣保罗 Unicamp 大学教授 Heloisa Reis 告诉法新社。\n“但它可以减少。为此,需要一个非常全面的公共政策,”Reis 说,他是一本关于这个问题的书的作者。\n阿根廷、巴西、哥伦比亚、厄瓜多尔和秘鲁已颁布法律,通过监禁流氓甚至取消体育赛事来平息过激行为。\n其中一些举措复制了欧洲控制流氓的步骤,例如生物识别或体育场内和周围的视频监控。\n【回顾】皇家马德里欧冠决赛晋级之路\n卫冕冠军皇家马德里延续了近几个赛季在欧冠赛场的良好表现,本赛季的他们一路披荆斩棘杀入了加的夫的欧冠决赛,接下来 […] ...\n取笑人!两个德甲老球员联手升级附加赛注定有人无缘顶级联赛。\n德甲应该是五大联赛中最无聊的联赛了。拜仁几乎在赛季初就预定了联赛冠军,其他球队顶多竞争一个亚军,一点都不激烈。 […] ...\n英超时代还从来没有降过级这六支球队未来还能在英超待多久?\n今年是英超成立30周年的日子,在英超时代,下面这几支球队还从没有降级过,不知道他们还能在英超待多久呢? 作为英 […] ...",
    "日前,有媒体爆料,特斯拉Model Y或将于2019年4月16日在上海车展首次亮相。目前这一消息并未得到官方证实,但从CEO频频到访中国以及Model Y在中国排产的消息来看,特斯拉的确十分重视中国市场,所以此消息有一定合理性。\n『Model Y预告图』\n据报道,Model Y是特斯拉产品序列中的第五款量产车型,定位于紧凑型跨界SUV,将使用与Model 3相同的平台。与Model X一样,该车也将拥有第三排座椅以及仪表盘,不过鹰翼门或将取消。如何在有限的空间内实现7座布局,将是Model Y车型设计的重点之一。\n定价方面,预计该车的价格将介于Model 3与Model S之间,与旗舰级SUV车型Model X拉开一定差距。产能方面,根据此前爆料,特斯拉规划于2020年年底在美国内华达州的Gigafactory 1工厂实现每周7000辆的产能,同时在2021年2月在中国Gigafactory 3工厂实现每周5000辆的产能。虽然这份数据被特斯拉回应为早期规划的版本,但依然有一定参考价值。关于Model Y车型的最新消息,请持续关注汽车之家的后续报道。\n于上海车展亮相 合众哪吒将推三款车型\n或2020年亮相 奥迪RS Q4路试谍照曝光",
    "环境影响评价 首页 > 业务范围 > 环境影响评价\n环境影响评价是指对规划和建设项目实施后可能造成的环境影响进行分析、预测和评估,提出预防或者减轻不良环境影响的 对策和措施,进行跟踪监测的方法与制度。实行环境影响评价制度是为了实施可持续发展战略,预防因规划和建设项目实施后对环 境造成的不良影响,促进经济、社会和环境的协调发展。\n澳门正规金沙网站自成立以来完成各类冶金机电、建材火电、采掘、交通运输、社会区域类以及规划类项目1500余项。\n近年来嘉宇公司先后完成了宝钢总体工程、宝钢上海地区企业环境影响回顾评价、宝钢总部绿色钢铁产业园区循环经济规划、 宝钢湛江钢铁基地项目及变更项目、首钢京唐钢铁搬迁项目及变更项目、首钢贵钢搬迁项目、首钢通钢产能置换淘汰落后项目、 山钢日照精品基地项目、酒钢循环经济和结构调整项目、神华准格尔矿区发电厂项目、大唐怀来发电厂项目、环评鞍钢老区铁矿 山改扩建规划项目、本钢矿山中产期规划项目、辽宁营口机场项目、内蒙古乌兰浩特机场项目、广州金光东西大道项目、丽江白 沙直升机升降站改扩建工程、北京长安中心项目、宜家大兴项目、贵州省钢铁产业规划、藏青工业园规划、格尔木工业园规划等 大型建设、规划项目环境影响评价。\n嘉宇公司自成立以来,本着“服务社会 止于至善”的企业宗旨在环境评价工 作中坚持科学公正、质量第一的原则,认真工作,以优质的服务赢得企业和管理部门的好评。",
    "作 者: 来 源:网络 时 间:2022年05月06日\n中国老龄科学研究中心主任、《中国养老机构发展研究报告》课题组组长吴玉韶在发布会上强调,《报告》对于全面了解中国养老机构发展的整体状况,认清目前存在的主要问题,研判养老机构发展趋势,理清养老机构发展思路,为政府部门制定相关政策提供理论依据,引导全社会共同参与、推动养老机构健康发展,具有积极意义。\n截至2014年底,中国60岁及以上老年人口数量已达2.12亿,高龄老年人口数量达到2400万,失能老年人口接近4000万,对老龄服务事业和产业的发展提出了新要求。\n未来中国养老机构的发展将呈现五个趋势:一是民办民营养老机构将成为发展主体,养老机构的市场化趋势将会更加明显。二是机构养老服务将与居家、社区养老服务融合发展。未来,随着中国养老服务的快速发展和养老服务网络的不断建立完善,机构、社区和居家养老服务一体化发展将是必然趋势。三是小型化、专业化、社区化、连锁化将成为养老机构发展主要态势。未来的养老机构将更加社区化,即依托社区发展养老机构,通过小型化、连锁化经营来获取市场份额、提高市场竞争力。四是养老机构养医结合发展将更加紧密,养医结合的模式将会更加多样。五是养老机构服务更趋亲情化、人性化发展。\n上一篇:老人饮食知识--吃粗粮好处多",
    "Raiders’ swimming and diving defeats Mahtomedi at home meet\nThe Hastings girls’ swimming and diving team hosted Mahtomedi on Thursday, Sept. 9, where they won 99-87.\nThe Raiders varsity won nine events to Mahtomedi’s three, which included the diving event. Hastings’ Drew Gerlach and Natasha Girgen both won two events; Gerlach won the 200 IM and 100 butterfly, and Girgen won the 100 freestyle and 100 backstroke.\nElli Walker won the 200 freestyle, Katie Gjelhaug the 100 breaststroke and Johanna Ingenerf the 500 freestyle. The Raiders also won two relay events in the 200 medley and 400 freestyle.\nSwimming head coach Katie McAlpin said the meet went very well and a couple girls stood out in both swimming and diving.\n“The swimmer of the meet was Johanna Ingenerf,” McAlpin said. “Johanna had a phenomenal 500 freestyle swim. She has been a great asset to our team and is also a very hard worker in practice.”\n“Diver of the meet was Lauren Ruder (who dove junior varsity),” McAlpin explained. “Lauren improved her score from two weeks ago by 15 points. That's over two points a dive. It is going to be fun to see her improve throughout the season.”\nThe team will next be in action on Sept. 15 at North St. Paul.",
    "Letter: Political party roles have reversed\nWhen did the roles of the major political parties get reversed? For many decades Republicans were blamed or credited for supporting the goals of businesses and allegedly drawing fat cat donors. A careful scrutiny of current donors shows that the biggest political PACs, labor unions, teachers’ unions, public employee unions, fund managers, capital groups, etc., give to the Democrat party and especially to Hillary Clinton. Do they figure that to play they must pay?\nIronically, the 2nd Congressional District race features the wealthy Angela Craig hauling in huge chunks of cash from similar donors. Meanwhile, the candidate with the least wealth, Jason Lewis, is receiving his financial support from hundreds of small donors. The role of the parties and candidates have certainly changed in the last decades, but the myth that the Democrat party is the party of the little guy, has been shattered.",
    "Annual booya comes to Hastings this weekend\nA fall tradition returns to Hastings this weekend. On Sunday, Sept. 11, the Hastings Fire Department Relief Association will sell massive amounts of booya to the community.\nThe event is the Relief Association’s only fundraiser, said Chris Paulson, firefighter/paramedic and chairman of the booya committee. The association raises money to provide food for victims of fires as well as contribute to local charitable organizations, including Hastings Family Service. They also provide two scholarships to Hastings High School students every year.\nOn Sunday, booya sales will start at 11 a.m. at the Knights of Columbus Hall, 3075 Vermillion St.\nThe association is making about 1,200 gallons of booya, including their regular recipe and a cajun style.\nAlso at the event, people will be able to purchase hot dogs, brats, chips and such inside the hall. There will be a cash bar available as well, and a bake sale.\nWhile booya gets scooped and sold outside, inside will be other fundraiser events, including pull tabs, a wheel of fortune game, door prizes and activities for kids.\n“The whole family can come have a good time,” Paulson said.\nBooya is sold for $4 per bowl. One scoop is equal to three bowls.\nPeople need to bring their own containers. Paulson said that no glass containers will be allowed at the event.",
    "Medical examiner results confirm two Aug. 15 deaths were murder-suicide\nThe Hennepin County Medical Examiner today confirmed that the deaths of two Hastings residents on Aug. 15 were the result of a murder-suicide.\nAccording to the press release, at approximately 5:45 p.m. on Aug. 15, Hastings police and EMS responded to a medical call along Three Rivers Drive after a relative found Danielle Aimee Denney, 29, and Justin DJ Anderson, 34, unresponsive inside the residence. The BCA Crime Lab and Hennepin County Medical Examiner’s Office responded and assisted Hastings police in this investigation.\nIt was determined that Denney was the victim of homicide by gunshot wound to the head. The offender, Anderson, died of an apparent self-inflicted gunshot wound to the head.",
    "UPDATE: Five Farmington schools placed in \"modified lockdown\" in response to police incident\nPolice blocked streets in some areas of downtown Farmington on Monday, Sept. 19. At around 9:35 a.m., the Farmington Police posted that the incident had been cleared.\nFive Farmington schools were placed on modified lockdown for about 20 minutes while police were searching for an active shooter around 9:30 a.m. on Monday, Sept. 19.\nThe school district reported that the lockdown at Farmington Elementary, Boeckman Middle, Dodge Middle, Riverview Elementary, and Farmington Elementary schools was done in response to a request from the Farmington Police Department. A modified lockdown is a safety precaution during which all doors are locked and no one is allowed in or out of the school building. All students and staff remained safe and secure during the lockdown, district officials said.\nNo officers with the Farmington Police Department were available for comment, but one officer on scene advised citizens to stay inside and away from the area.\nAt around 9:35 a.m., the Farmington Police Department posted the following message on Facebook: “The police incident in downtown Farmington has been cleared. Some of the schools were put on lockdown as a precaution. There was never any direct threat to the schools.”\nLakeville police were assisting with the search. Anchor Bank was on lockdown as well.\nWe’ll continue to update this story with more details as they are available.",
    ]

embds = []
batch_size_list = [1, 2, 4, 8, 16, 32]
for batch_size in batch_size_list:
    embd = model.encode(sentences, 
                        batch_size=batch_size, 
                        max_length=512,
                        )['dense_vecs']
    embds.append(embd[0])

for embd in embds:
    print(embd[:10])
print('-------------')
# compute the cosine similarity matrix
embds = np.array(embds)
similarity_matrix = embds @ embds.T
print(similarity_matrix)

输出结果如下:

[ 0.01617   0.01524  -0.0479    0.005062  0.00579  -0.00768  -0.04166
 -0.0296    0.03137  -0.01314 ]
[ 0.01622   0.01523  -0.04797   0.004997  0.00578  -0.007526 -0.04163
 -0.0296    0.03143  -0.013245]
[ 0.01631   0.01531  -0.04794   0.005085  0.00578  -0.00762  -0.0417
 -0.02963   0.03137  -0.01315 ]
[ 0.01631   0.01531  -0.04794   0.005085  0.00578  -0.00762  -0.0417
 -0.02963   0.03137  -0.01315 ]
[ 0.01617   0.015274 -0.04794   0.00501   0.00579  -0.00762  -0.04163
 -0.02966   0.03146  -0.01316 ]
[ 0.01617   0.015236 -0.04797   0.00506   0.005814 -0.00764  -0.04172
 -0.0296    0.03146  -0.0132  ]
-------------
[[1.     1.     1.     1.     1.     1.    ]
 [1.     1.     1.     1.     1.     1.    ]
 [1.     1.     1.     1.     1.     1.    ]
 [1.     1.     1.     1.     1.     1.    ]
 [1.     1.     1.     1.     0.9995 1.    ]
 [1.     1.     1.     1.     1.     1.    ]]

可以看出即使 batch_size 变大,这个差异依然很小,同一个文本的向量在不同 batch_size 下的余弦相似度都近似为1