Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to eval the glm-130b loss? I got a loss 6 on wudao corpus #91

Open
Syno8 opened this issue Feb 23, 2023 · 0 comments
Open

How to eval the glm-130b loss? I got a loss 6 on wudao corpus #91

Syno8 opened this issue Feb 23, 2023 · 0 comments

Comments

@Syno8
Copy link

Syno8 commented Feb 23, 2023

I am try to insert the following code to the model.py L44 and show the model eval loss.
I write this test case following the class LanguageModelTaskDataset in GLM-130B.
I am confused by the loss 6 computed by following code.
Those texts come from Wudao corpus.

logits, *output_per_layers = model(

def test_gmask_loss(raw, labels, device):
    tokenizer = get_tokenizer()
    raw_ids = tokenizer.tokenize(raw)
    raw_labels_ids = tokenizer.tokenize(labels)

    gmask_id = tokenizer.get_command("[gMASK]") # loss 6.0
    sop_id = tokenizer.get_command("sop")
    eop_id = tokenizer.get_command("eop")
    
    tokens = raw_ids + [gmask_id] + [sop_id]       + raw_labels_ids[:-1]
    labels = raw_ids + [gmask_id] + raw_labels_ids
    # 参考LanguageModelTaskDataset 实现
    tokens = torch.Tensor(tokens).unsqueeze(0).to(device).long()
    # teaching forcing
    labels = torch.Tensor(labels).unsqueeze(0).to(device).long()

    loss_masks = torch.zeros_like(labels)
    loss_masks[:,len(raw_ids) + 1:] = 1

    context_length = len(raw_ids) + 2
    attention_mask = torch.ones((1, tokens.shape[-1], tokens.shape[-1]), device=tokens.device)
    attention_mask.tril_()
    attention_mask[..., : context_length - 1] = 1
    attention_mask.unsqueeze_(1)
    # mask 为True 表示不可见位置
    attention_mask = (attention_mask < 0.5).bool() # 0

    position_ids = torch.arange(tokens.shape[-1], dtype=torch.long, device=tokens.device)

    position_ids = position_ids.unsqueeze(0)

    return tokens, labels, attention_mask, position_ids, loss_masks, context_length
    
    device = tokens.device

    text_list = ["医疗seo怎么做?如果做关键词排名,分析竞争对手是必不可少的步骤,但如果要争取更多的有效流量,就需要分析患者群体,也就是说分析用户需求。其中如果加入营销推广的手段引流,以及进行详细的数据记录和检测,根据数据进行医疗seo策略的调整和修改,在不断的分析调整中,你会发现医疗seo其实也就是这么简单。 1、全面分析竞争对手(seo分析之第一步) 知已知彼,百战不殆。在做任何网络推行计划之前,都必需对本身与竞争对手有一个细致理解。自己医院的优势在哪里?本人哪些方面不如竞争对手?竞争对手做了什么?竞争对手正在做什么?它们下一步又想做什么?比如常州102医院,优势在于是一所国家公立部队医院,而大多竞争对手是私立医院,这样在信任度上就能给患者一定的可靠性!常州102医院拥有世界一流的微创技术,如\"ad射频热凝靶点消融术\",那么大可在技术层面上进行宣传。在竞争对手分析方法要剖析双方哪些媒介停止网络推行,运用的详细推行方式,实践效果评价,搜索收录状况,链接、pr值、ip、pv等等数据查询。 2、医疗网络营销列出潜在患者群体 剖析患者群体,地域,首先就要分析患者群体,年龄段,不同地域上的病情分布等等。由于医院网络推广是一个服务性行业并且对地方性依赖是非常高的,常州102医院即是常州地方性的服务,患者群体大多是常州的百姓,医院主打骨科,那么对患骨科的患者的年龄范围也有一定的局限性,考虑好患者群体才能更好的抓住潜在的患者。 3、医疗网络营销要明白每一阶段目的 (1)、每天ip访问量、pv流览量 (2)、各搜索引擎收录多少 (3)、外部链接每阶段完成多少 (4)、网站的排名、pr值权重多少 (5)、关键词多少、各搜索引擎排名状况如何 (6)、网络推行实践转化的客户多少 (7)、医院网络品牌形象如何 4、医疗网络营销选择网络推行办法及战略 依据搜集材料剖析,肯定网络推行办法及战略,细致列出将运用哪些网络推行办法,如搜索引擎推行、博客推行、邮件群发营销、qq群通讯、论坛社区发帖、攒写软文宣传、活动推行、网络广告投放等,对每一种网络推行办法的优劣及效果等做剖析及详细如何施行。 5、医疗seo优化评价监测。 使用第三方ip统计工具,对数据来源、点击等停止监测跟踪,协助医院及时调整推行的战略。并对每一阶段停止效果评价。对花大钱买回来的流量,页面是否设计的是否合理,网页打开的速度是否快速,这些是否都做好了相应的准备工作。如果页码设计得不太人性化,那么患者进入网站后也会退出网站,网站即是医院的面子,在这一点大家可以参考下常州102医院的网站,从颜色设计、排版设计等方面都做得比较好! 6、医疗seo方案准备网络推行计划 市场并不总是一层不变,当计划跟不上变化时,就不能按照原来网络推行计划完完整全执行下去。假如提早制造风险准备计划,当市场变化时,才不致于手忙脚乱。 7、可以直接用繁殖池引快速引蜘蛛繁殖池是蜘蛛池的升级版,是大量网站将百度蜘蛛来访时集成一个池,通过程序控制自动繁殖外链地址给蜘蛛,这样可以快速大量收录站群链接或者外推链接。是一款全新的升级收录算法,实现亿万级蜘蛛网互联互串引蜘蛛,效果比蜘蛛池好。 主要作用:让新站、外推链接、媒体链接等等快速增加收录,被k网站可以尽快恢复权重和搜索引擎快照,正常收录的网站可以增加网站收录,提升网站排名。 适用对象:医疗媒体外推、站群、泛站、目录群、寄生虫、博客、微博、论坛、b2b信息,可以快速引蜘蛛大量收录。 使用千站云繁殖池你不再需要为引蜘蛛到其他平台发布外链而受到种种限制。"]
    text_list += ["现在推广网站越来越困难,除了内容上的原创度要求提高之外,引蜘蛛爬行也没那么容易,百度总是在不断调整算法,蜘蛛也更加聪明。有一段时间没有发外链了,在推广新闻软文互换的活动。这周重新推广新站,首页收录挺快,打算用首页推一些关键词,需要靠外链的作用了。以前曾经发过的论坛有很多,重新查了下收录,大吃一惊,基本上90%以上的论坛都不收录了。站长类论坛一向是发布软文的好去处,前天发布一篇帖子之后,发现只有seowhy和落伍者收录,其余站长网均不收。而且昨天发的帖子,落伍也没有收录。深深感觉到外链是越来越难做了。 随着有一些论坛的故障和百度算法的调整,网站接连被降权,导致收录直线下降,随之而来的也就是外链丢失严重。外链的稳定是很重要的,经常听不少站长说,外链一下暴涨或暴跌,这样对网站肯定是不好的,一旦暴跌,网站很有可能被降权。如何获取稳定的外链成为了站长们所面临的问题。根据这几日的一些分析,发现稳定外链一些形式,而且效果还可以。 快速的引蜘蛛方法用千站云繁殖池收录神器千站云繁殖池:是蜘蛛池的升级版,是大量网站将百度蜘蛛来访时集成一个池,通过程序控制自动繁殖外链地址给蜘蛛,这样可以快速大量收录站群链接或者外推链接;可以让新站、外推链接、媒体链接等等快速增加收录,被k网站可以尽快恢复权重和搜索引擎快照,正常收录的网站可以增加网站收录,提升网站排名;它适用于:医疗媒体外推、站群、泛站、目录群、寄生虫、博客、微博、论坛、b2b信息,可以快速引蜘蛛大量收录。 使用后台界面: 真实案例: 如果想测试租用,可以联系官方qq: 马上为你申请开通!!!"]
    text_list += ["刚做seo新手也许对seo真的很迷茫,不知道应该从何处开始。教程胡乱的看了一些,感觉对seo了解了。但等到要去seo的时候就感觉不知道怎么弄了。我发现我通常是想的挺好的,挺简单的,等到要做了就不会了,seo每天应该做些什么事啊?带着这样的疑问,我准备把我的思路整理一下。 seo第一步:选定目标关键词 通过seowhy的视频教程我了解到怎样选定目标关键词。我就拿我的新站豪想淘(haoxiangtao.net)淘宝皇冠店铺大全为例吧。通过百度指数和百度的相关搜索我初步确定了三个关键词:淘宝皇冠店、淘宝皇冠店铺和淘宝皇冠店大全。并且按照教程的要求设置了首页的标题和在首页底部加上了这三个关键词到首页的链接,我想第一步工作算是做完了。 seo第二步:选定长尾关键词 我不确定这样说可正确,因为通常一个关键词的长尾应该是比较多的,算是初步选定吧。按照相关理论一个seo很好的网站是通过大量的长尾关键词获得大量流量的,所以长尾关键词也是很重要的。对于长尾关键词我还不是太了解,因为我的淘宝皇冠店大全刚上线还没有内容,也不知道怎么去找内容,所以这块还是有点迷惑。长尾关键词的选择和目标关键词的选择没有多少区别用百度指数、谷歌的关键词工具和相关搜索等可以很容易的找到相关的长尾关键词。 seo第三步:做内容 一个网站肯定需要有内容的,如果想长期发展下去的话。这内容大家都说得原创,可是这个原创确实需要点技术,像我这样的一般人觉得很难,不过我还是想尽可能的原创。其实做内容据说还有个很好的方法就是伪原创。所谓伪原创就是修修改改,让本来的内容变成新的东西。有软件可以用,但据各位老师建议最好不要使用。 seo第四步:做外链 其实把这个放在第四步里有点不妥,因为内容和外链最好是每天都应该坚持增加的东西。做外链对于我的豪想淘这样的新站来说是比较难的。pr值为0,快照又不是最近的,所以基本没希望得到高质量的外链。看教程上有教让做博客群建获取高质量外链的方法,这个还没试,应该是可以的。其他的方法可以参考网上的获得外链的101种方法等文章。 总结一下,网站seo分为前程和后期。前期是选择关键词和做网站内部结构性优化,后期就是不停的去原创内容和增加外链。对于seo每天应该做什么,我想我的工作就是每天坚持增加内容和外链。我真的怀疑我可否能坚持。我今天在论坛里发了两个帖子,我感觉忒费事,虽然上网的时间也比较长了,但对于这些东东感觉比较生疏。 对于新站来说,百度收录这也不易,很难做起来。但是可以使用快速的方法,使用千站云繁殖池,它是通过程序控制自动繁殖外链地址给蜘蛛,这样可以快速大量收录站群链接或者外推链接。 繁殖池支持医疗媒体外推、站群、泛站、目录群、寄生虫、博客、微博、论坛、b2b信息,可以快速引蜘蛛大量收录。主要作用是可以让新站、外推链接、媒体链接等等快速增加收录,被k网站可以尽快恢复权重和搜索引擎快照,正常收录的网站可以增加网站收录,提升网站排名。繁殖池可以购买的,提供有一天一周一个月的周期池,详细可以联系qq: 咨询!可以为您马上开通繁殖池的!"]
    text_list += ["百度蜘蛛,是百度搜索引擎的一个自动程序。它的作用是访问收集整理互联网上的网页、图片、视频等内容。 百度蜘蛛的构建的原理。搜索引擎构建一个调整程序,来调整度百度蜘蛛的工作,让百度蜘蛛去和服务器建立连接下载网页,计算的过程都是通过调整度来计算的,百度蜘蛛只是负责下载网页,目前的搜索引擎普遍使用广布式多服务器多线程的百度蜘蛛来达到多线程的目的。那怎么引百度蜘蛛呢?可以使用千站云繁殖池,繁殖池是自动繁殖引蜘蛛,快速收录站群链接或者外推,是一款全新的升级收录算法神器。效果比蜘蛛池好,蜘蛛池的效果慢已经过时。 繁殖池支持医疗推广、媒体目录、寄生虫、泛站群等;主要作用是可以让新站,外推链接、媒体链接等,快速增加收录,恢复权重和搜索引擎快照,正常的收录可以增加网站收录,提升网站排名。详细可以添加官方qq:咨询!马上为您申请开通池!"]
    text_list += ["现在百度越来越严格,新站收录的问题一直以来困扰很多站长,因为搜索引擎本身的不完美导致了很多新站在上线后不能被及时收录,有的新站上线半年以后才被收录,有的网站也许还不会有出道之时!这个方法可以很好的解决收录问题!只要执行力做好了再难收录的网站也会在几天之内被收录!这里要强调的是一定要是正规的站点! 解决方法一共有四个步骤: 第一步:在网站首页写一篇相关度很低的文章。 这篇文章有讲究!文章的内容一定要围绕一个网页上相关度非常低的关键词来写,简单的说,这篇文章要提炼出一个很古怪很唯一的关键词!文章字数大概在600到800左右!适当优化下这个关键词, 比如在这篇文章中多次出现,第一次出现加粗,文章中出现这个关键词的相关关键词!要让搜索引擎知道这篇文章是在围绕这个古怪唯一的关键词写的!这个大家都没问题吧!第一步很简单!文章不需要写的很好很优美,完全是为了写给搜索引擎看的,你只需要让它知道这个首页有篇关于这个唯一关键词的文章即可!当你网站收录正常了,可以马上删了! 第二步:在站外做这个关键词的锚文本! 这一步就是为了吸引搜索引擎蜘蛛了!方法有很多!可以到更新快权重高的论坛去发布这个唯一关键词的锚文本!就是去发软文,在文章中带上这个关键词的锚文字指向你的网站首页!软文也是一定要围绕这个关键词写,不然这个锚文本在相关度不高的文章中,效果不会很好!不管怎么样,这篇带关键词锚文本的文章一定要被收录! 第三步:触发搜索引擎检测数据库! 这一步是最关键词的一步!简单的说就是让用户在搜索引擎上搜索这个你创造的古怪唯一的关键词!这里讲下原理:刚做的关键字古怪啊!具有唯一性,在网上几乎没有出现过这个关键词的介绍!所以相关性低。如果有人搜索那个你创造的关键字,搜索引擎检索时就会优先考虑最合适的网站页面,也许暂时搜索引擎没有去看你网站,但是搜索引擎肯定能分析到新收录的信息,那些信息中都带有你关键词的锚文本!搜索引擎蜘蛛会顺着那些你在别人网站发的新内容中的锚文本找到你首页!这样搜索引擎蜘蛛就被你牵到了网站!继而收录你的网站! 第四步:快速收录,使用千站云繁殖池收录神器 千站云繁殖池是是蜘蛛池的升级版,是大量网站将百度蜘蛛来访时集成一个池,通过程序控制自动繁殖外链地址给蜘蛛,这样可以快速大量收录站群链接或者外推链接。它是全自动繁殖引蜘蛛的,无需人工,只按规则自动生成动态地址引蜘蛛,设置好地址规则便好;它适用于医疗媒体外推、站群、泛站、目录群、寄生虫、博客、微博、论坛、b2b信息,可以快速引蜘蛛大量收录。作用是可以让新站、外推链接、媒体链接等等快速增加收录,被k网站可以尽快恢复权重和搜索引擎快照,正常收录的网站可以增加网站收录,提升网站排名。使用千站云繁殖池你不再需要为引蜘蛛到其他平台发布外链而受到种种限制。"]
    text_list += ["网站迟迟不收录怎么办呢?使用千站云繁殖池可以帮你搞定,让你不再需要为引蜘蛛到其他平台发布外链而受到种种限制。繁殖池快速收录站群链接或者外推链接,全自动繁殖不同地址引蜘蛛,实现亿万级蜘蛛网互联互串引蜘蛛。这样就可以解决网站不收录的问题,下面我将给大家介绍一下怎么使用繁殖池,审核申请开通池后,客服将会提供繁殖池的后台给自已操作(不需要下载),登陆账户就可以使用,然后添加网址进行引蜘蛛就可以了,如下图: 1、使用后记得要时常检查网站的外链,高质量的外链会给网长带来很大的好处。(千站云繁殖池是蜘蛛池的升级版,轮链繁殖池(每一个池可以放10万链接) 2、查一下网站是不是优化过度了,如果网站优化,过度蜘蛛是会对网站进行屏蔽的。(目录繁殖池(可日租周租月租),联系官方qq: 3、网站设计的结构不合理,如果网站的页面独立、互相没有关联也会引致收录不理想的。(地址繁殖池(有百度、360、搜狗,都是独立池) 4、要记得时常检查一下你网站上的内容是不是存在一些敏感的词,涉及到一些敏感的问题搜索引擎是不会收录的。(参数繁殖池(我们引的都是有效蜘蛛) 5、要时常分析网站内容。如果网站上的内容都是采集来的,或者是在其他网站上摘抄的类似内容,蜘蛛往往是不收录的。(泛站繁殖池(不限制域名) 6、记得要检查服务器或者空间的稳定性,还要检查你的网站程序里是否有不当的代码。这些都会对你的网站形成不好的影响的。(pc与移动是同步的) 7、要记得检查一下网站的robots.txt 文件,查一下它是否屏蔽了百度蜘蛛。这一步虽然简单,却也是很多站长容易忽略的步骤。(只需添加主站目录即可自动生成链接引蜘蛛,支持动态静态链接) 8、不论是什么网站,只要是新建的网站不管是哪个搜索引擎都不会贸然收录的,都会先观察一段时间的。这段时间蜘蛛可能不会做任何收录,站长也不要着急。只要继续更新高质量的内容蜘蛛肯定会收录的。此时不要对网站做大的改动,尤其是网站的结构。如果哪们站长的新网站不收录或者是收录不理想可以对照以上几个方面进行分析,相信你肯定能解决问题的方法的。 详细了解可以联系官方qq: 咨询!!!"]
    for text in text_list:
        mid = len(text) // 2
        raw, labels = text[:mid], text[mid:]

        tokens, labels, attention_mask, position_ids, loss_masks, context_length = test_gmask_loss(raw, labels, device=device)

        # with torch.no_grad():
        if torch.distributed.get_rank() == 0 :
            with open("params.txt", "w") as f:
                for n,p in model.named_parameters():
                    f.write(f"name: {n},  max: {p.max().item()},  min: {p.min().item()},  mean: {p.mean().item()}\n")
        logits, *output_per_layers = model(tokens, position_ids, attention_mask, mems=mems, **kw_args)
        losses = vocab_parallel_cross_entropy(logits.contiguous().float(), labels)
        loss = torch.sum(losses * loss_masks, dim=-1)

        print('-' * 50)
        print(f'loss mean \t {loss / loss_masks.sum()}')
@Syno8 Syno8 changed the title I try to eval the glm-130b loss on wudao corpus and I got a loss mean with 6. it is confused me? How to eval the glm-130b loss? I got a loss 6 on wudao corpus Feb 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant