Giter VIP home page Giter VIP logo

Comments (17)

Morizeyao avatar Morizeyao commented on May 17, 2024

可以的,我的代码设置了每个epoch单独保存代码,已经存储tensorboard展示loss下降的功能,都可以利用上。
效果不错,可以做一个pull request把你的成果上传并写在readme里,这样算是为开源项目做了贡献:)

from gpt2-chinese.

liuzhejun avatar liuzhejun commented on May 17, 2024

同样的困惑,一直在考虑要不要使用这个项目,我也一直在找用中文训练的GPT-2模型,但是看到作者使用的训练集似乎都比较小,并且是从0开始训练,对于GPT-2这样一个庞大的模型来说,拟合一个小数据集应该是比较容易的,这就会造成文本生成的效果很好的假象。
因为我之前也用三层LSTM模型训练过一个较小的数据集,文本生成的效果也很惊人,比作者这个并不差,但是仔细观察发现生成的句子和训练集严重重合,更像是从训练集中挑出了一句话而不是生成的,这样的模型在下流任务中没法使用。
担心作者的模型也会有同样问题,还请解惑。

from gpt2-chinese.

Morizeyao avatar Morizeyao commented on May 17, 2024

目前我已经做了一次3.4G语料训练5个epoch,一共141万步,约两周时间的测试。生成效果依然是很不错(或者说惊人)的,最终loss在2.2到2.3之间。
模型的话因为商业原因暂时无法公开。
更大规模的测试短期内可能我这里没有条件进行了。

from gpt2-chinese.

liuzhejun avatar liuzhejun commented on May 17, 2024

能否贴一张使用3.4G语料训练的生成效果图,还有硬件条件和训练时间是多少?先谢为敬!

from gpt2-chinese.

Morizeyao avatar Morizeyao commented on May 17, 2024

硬件是四个2080ti,训练时间两周。

from gpt2-chinese.

chiangandy avatar chiangandy commented on May 17, 2024

就开头有描述,有可能epoch太长Loss过低,造成内文输出会有整句输出的可能,我预计调整Loss在1.0左右来测试~
至于训练语料过小问题,这语料的确是小规模测试语料,由于我是在aws上用GPU的EC2做训练,成本满高的,用太久公司会抱怨,所以只能做小规模测试。

from gpt2-chinese.

kangkang61 avatar kangkang61 commented on May 17, 2024

我在预训练的时候有遇到一个问题,之前也有很同学讨论过一直没有一个答案,想问问您。我的目的是想训练一个语言模型,计算某一些句子的ppl因此我的n_ctx选的是=40,语料是找到爬取好的论坛上的语料,对语料进行了一些处理分为了一些句子,以句子为单位,接着在每个句子的首和尾加开始和结束的标志,再把所有的句子按照您的处理方式接在一起在分为了10个文件,最后进行滑窗作为输入,stride=1,最终在loss的时候会发现一个比较奇怪的现象,在每读入一个新文件时loss会突然增一下,比如在上一个文件完了之后,loss=1.98,突然会跳到4.6多再继续下降,感觉是又突然重新训练了一样?最最最开始loss=9.多,做过一个实验,把前三份语料换为一样的也会出现这个情况,不知道问题在哪里呢,还有stride的选取有什么技巧吗,我看您选的是大几百因为做的是文本生成n_ctx比较大,而我是做语言模型而且我的目的是想对比如口语稍微短一点的句子计算ppl,您觉得我的n_ctx=40,stride=1合理吗,或者这个选取有什么小技巧呢?

from gpt2-chinese.

Morizeyao avatar Morizeyao commented on May 17, 2024

ppl的话就是math.exp(loss)
训练的具体问题...我也没啥思路,上次你提的时候我观察了一下代码,貌似是没啥问题,可以加一下qq看下具体截图吗?

from gpt2-chinese.

huaxiaohua avatar huaxiaohua commented on May 17, 2024

如果为了训练句子级别的语言模型,是不是把n_ctr设的小一些,设置为句子的最大长度;并且取消stride,只对句子的tokens padding到n_ctr即可?我的理解是如果训练长文章,需要滑动窗口进行采样,短句子的话,是不是没必要做滑窗呀?还有个问题,请问您训练完之后,PPL一般在多少呢

from gpt2-chinese.

kangkang61 avatar kangkang61 commented on May 17, 2024

我之前用了63M的天涯语料训练了一个语言模型,epoch在2的时候,测试2000句的平均ppl在800多,还是蛮高的,看了一下有些句子可能太离谱文言文啥的ppl到达几万这种可能把平均ppl拉高了,今天在讨论之后有打算直接用句子来做,不用滑窗。

from gpt2-chinese.

kangkang61 avatar kangkang61 commented on May 17, 2024

例子:
(1)比如减轻医疗和教育的负担改善食品和生活环境 ppl:52.158
(2)空阁回荡秋声响满耳激昂春意临 ppl:292046.993
(3)也不是知识分子 ppl:12.619
(4) 章子怡比如潘婷和美宝年:4742.3319
(5)凭良心说广告贴也没什么不好但是我觉得穿上会暴傻 ppl:123.52

from gpt2-chinese.

huaxiaohua avatar huaxiaohua commented on May 17, 2024

请问你是用eval.py计算PPL的吗,我算出来后PPL超级大,感觉不太正常

from gpt2-chinese.

Morizeyao avatar Morizeyao commented on May 17, 2024

可以,PPL的话我还没测过

如果为了训练句子级别的语言模型,是不是把n_ctr设的小一些,设置为句子的最大长度;并且取消stride,只对句子的tokens padding到n_ctr即可?我的理解是如果训练长文章,需要滑动窗口进行采样,短句子的话,是不是没必要做滑窗呀?还有个问题,请问您训练完之后,PPL一般在多少呢

from gpt2-chinese.

Morizeyao avatar Morizeyao commented on May 17, 2024

有可能计算较可靠的PPL需要较大量的样本取平均?

例子:
(1)比如减轻医疗和教育的负担改善食品和生活环境 ppl:52.158
(2)空阁回荡秋声响满耳激昂春意临 ppl:292046.993
(3)也不是知识分子 ppl:12.619
(4) 章子怡比如潘婷和美宝年:4742.3319
(5)凭良心说广告贴也没什么不好但是我觉得穿上会暴傻 ppl:123.52

from gpt2-chinese.

kangkang61 avatar kangkang61 commented on May 17, 2024

我觉得是的,我这个测试样本还是偏少,而且我的数据可可能不是很好。我不是用eval.py算的我是自己写了个脚本对一些句子进行计算ppl

from gpt2-chinese.

Morizeyao avatar Morizeyao commented on May 17, 2024

先关了。。这边讨论的话题有点乱了,有需求的话开个新issue或者联系我

from gpt2-chinese.

leizhu1989 avatar leizhu1989 commented on May 17, 2024

同样的困惑,一直在考虑要不要使用这个项目,我也一直在找用中文训练的GPT-2模型,但是看到作者使用的训练集似乎都比较小,并且是从0开始训练,对于GPT-2这样一个庞大的模型来说,拟合一个小数据集应该是比较容易的,这就会造成文本生成的效果很好的假象。 因为我之前也用三层LSTM模型训练过一个较小的数据集,文本生成的效果也很惊人,比作者这个并不差,但是仔细观察发现生成的句子和训练集严重重合,更像是从训练集中挑出了一句话而不是生成的,这样的模型在下流任务中没法使用。 担心作者的模型也会有同样问题,还请解惑。

这种情况,相对于训练知识百科、或者特定业务那种本来标准的问答会不会是件好事呢

from gpt2-chinese.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.