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

诗词生成如何添加样例 what a rubbish #30

Closed
lamho-bienetre opened this issue Jul 28, 2022 · 4 comments
Closed

诗词生成如何添加样例 what a rubbish #30

lamho-bienetre opened this issue Jul 28, 2022 · 4 comments

Comments

@lamho-bienetre
Copy link

批量添加了以下样例:

shiju = ['明月几时有?把酒问青天。', 
         '但愿人长久,千里共婵娟。', 
         '此生此夜不长好,明月明年何处看。', 
         '洞庭青草,近中秋,更无一点风色。', 
         '我独对清光坐,闲将白雪歌,月儿你团圆我却如何!']
for i in shiju:
    yuan.add_example(Example(inp="中秋",out=i))

跑示例代码得到如下结果:

====作诗机器人====
输入Q退出
以何为题作诗:中秋
明月几时有,把酒问青天。以中秋为题作一首诗:但愿人长久,千里共婵娟。以“月
输入Q退出

是添加的方式不对吗

@lifengss
Copy link
Contributor

lifengss commented Jul 28, 2022

您好,您这个添加example的方式不太正确,模型接收到的相当于是输入五个example,分别是

  1. 输入”中秋“,输出”明月几时有?把酒问青天。“
  2. 输入”中秋“,输出”但愿人长久,千里共婵娟。“
  3. 输入”中秋“,输出”此生此夜不长好,明月明年何处看。“
    ……
    这种重复样例会导致模型只输出两句诗。大模型添加样例是为了让模型能够适应不同主题/风格,不需要对一个主题给定多个样例。

您可以试一下原本的脚本,用如下方式添加中秋的样例,然后直接运行,输入主题中秋

yuan = Yuan(engine='base_10B',
            input_prefix="以",
            input_suffix="为题作一首诗:",
            output_prefix="答:",
            output_suffix="”",
            append_output_prefix_to_query=False)

# 3. add examples if in need.
yuan.add_example(Example(inp="清风",
                        out="春风用意匀颜色,销得携觞与赋诗。秾丽最宜新著雨,娇饶全在欲开时。"))
yuan.add_example(Example(inp='中秋'out='人有悲欢离合,月有阴晴圆缺。但愿人长久,千里共婵娟。'))

@lamho-bienetre
Copy link
Author

Thx!
如果想要同样输入“中秋”,每次返回的诗句结果不同,这可以实现吗?现在的效果是每次都返回同一诗句

@lifengss
Copy link
Contributor

最简单的方式是您不用给”中秋“的样例,直接让模型生成即可。另外,您可以参考一下藏头诗(hidden_poetry.py)和多轮对话(multiview_dialog.py)的实现逻辑,增加一些其他随机的主题词,或者通过查找库里的样例,在每次作诗时给模型添加不同的中秋样例。

@lamho-bienetre
Copy link
Author

没有添加样例的时候,每次返回结果也是一样:

“明月几时有,把酒问青天。不知天上宫阙,今夕是何年?我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间!转朱阁低绮户照无眠不应有恨、何事长向别时圆人有悲欢离合月有阴晴圆缺此事古难全但愿人长久千里共婵娟”

而且中间的标点有的是中文逗号,有的是英文逗号。

谢谢建议~我试下研究你提到的另两个实现逻辑

@lamho-bienetre lamho-bienetre changed the title 诗词生成如何添加样例 诗词生成如何添加样例 what a rubbish Apr 30, 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

3 participants