作者 | 月山橘
编辑 | 张洁
校对 | 卷毛
上个月,GenWorld联合Hugging Face、真格基金等举办了首届“中文AI微小说大赛”。
参赛选手必须使用LLM (大语言模型)来创作小说,并提交具体的交互截图、聊天记录外链等材料,以证明作品是由LLM生成。
而且为了保证公平性,比赛还严禁对AI生成的作品进行任何人工润色和加工。
从小说的主题构思、情节设计到文字表述,所有环节都要由AI完成,这不仅考验AI的算法和模型能力,更考验人类对AI的驾驭和掌控。
来自主办方GenWorld的宋俊霆告诉“头号AI玩家”:“我们评审下来发现, 作品的好坏基本上跟Prompt的质量高低是直接挂钩的。好的作品,一般在交互上也体现出了细致清晰的思维。”
在综合了作品的独特性、创新性、应用AI的能力、文笔表达和情感共鸣等因素后,大赛最终评选出6篇优胜作品,并公开了获奖选手的Prompt记录。
我们跟其中3位获奖选手聊了聊,虽然他们的作品和Prompt技巧各有千秋,但有一个共同点,他们都不是专业的小说创作者。
一等奖《将军百战死》的作者“麦兜不是猪”(以下简称“麦兜”)是一位游戏策划,二等奖《回环》的作者“易木里”是一位翻译,三等奖《我是E&M》的作者Elfe则是一位在老师和程序员之间反复横跳的斜杠中年。
在与三位选手的对话中,我们主要探讨了以下几个话题:
在用AI进行微小说创作时,如何准确表达自身需求,引导AI产出理想内容?
有什么具体实用的Prompt方法论分享?
人类究竟应该在人机共创过程中扮演怎样的角色?
如何看待AIGC引发的版权和伦理道德争议?
AI能否取代人类创作者?
一场人机联合写作实验
《将军百战死》
作者 / 麦兜不是猪
由于国王连续多月受到梦中魔物的干扰,脸色憔悴,忧心忡忡。
为此,他召见国中最勇敢的将军,商议对策。
“将军,我该如何摆脱梦中魔物?”国王焦虑地询问。
将军和国王从小一起长大,屡立功勋,曾多次征战四方,曾经99次战胜了妖魔鬼怪,把妖魔鬼怪都驱赶到了黑暗森林。
将军战功赫赫,被平民称为伏魔神将。所有民众都对将军青睐有加,将军的威名恐要超越了国王。
“陛下,无论是何种魔障在您梦中作祟,我都将把它们消灭。”将军毫不犹豫地回答道。
“伏魔神将,我请你帮我完成夙愿。”国王的命令坚定,但语气中有一丝懊悔和担忧。
这位将军坚定地说道:“为了国王和王国,我毫不退缩,勇往直前。
将军来到了黑暗森林,竟然偶遇之前被流放的老国师。
老国师在老国王时期,为救民于水火,国师不顾老国王劝阻打开了上古封印,解除魔物的束缚,导致妖魔横行。但也带来了一种可以不断生产粮食的魔种。魔种会生产粮食,但也会让少数动植物变异成为妖魔。
直到在将军所在家族的努力下,组建了一支很强大的降妖军队,经历了与妖魔的无数次大战之后,把妖魔击退进了黑暗森林,让妖魔不敢再出现在国家里。
老国师说,黑暗森林现在哪还有什么魔物,魔物只存在于国王的梦中。
将军向老国师寻求帮助,国师告诉他,上古有一种封印术,可以将将死之人的灵魂封印到某个人的梦中。
“但你必须做好万全的准备,梦境中的危险可能比你想象的还要严……”
还没等老国师说完,将军拔剑刎颈,跳进封印之中。
我愿意为王守护一生。
将军感觉自己的身影消散,被光环绕,转眼间就来到了国王的宫殿。
将军才意识到,原来自己仍然进入了国王的梦境中。
国王的梦境充满了黑暗和恐惧。将军面对冬种噩梦中的怪物和恶魔,奋力战斗。
将军用剑斩断了恶龙的利爪,用盾牌抵挡了女妖的诱惑,用智慧和勇气击败了瓶中妖怪和狮身人面兽。
将军的勇气和决心在梦境中闪耀,奋不顾身,为了国王和王国的安宁,与梦中的妖魔展开惊心动魄的战斗。
将军奋勇杀敌,最终来到了国王梦境的房间。
在那里,将军发现了一个巨大的镜子。
国王站在镜子前,面容憔悴。
“王,那骚扰您的梦魇何在?”将军恭敬地问道。
国王默不作声,指向镜面。
将军走近镜子,却看到了自己的倒影。
“王。”
将军单膝跪地,“如果我是你梦中魇,那我已经无法在现实中困扰你。”
“我知道,我的将军。”
国王的声音充满了悲伤。
他看着镜子里的将军。
轻轻摘下头盔,长发披散,将军的面容温柔而坚毅。
那一刻,国王似乎触及了某种情感的边缘,他不知道自己做的对还是不对。
一滴眼泪从国王的眼角滑过。
“我们以后都会在梦中相见的对吗?”
国王的声音带着渴望,却又充满了无奈。
在调教AI的方法中,比较常见的一种是通过赋予AI不同的角色/身份,让它代入,然后输入具体的指令要求,使其回答更准确,更符合我们的需求。实践发现,让模型扮演某个领域的专家,的确能提高模型表现。
具体到创作微小说的场景而言,麦兜一上来就开门见山,让ChatGPT扮演一位小说作家,并将详细的指令和需求融入进角色描述中,比如“2000字以内”“反转小说”“文字短小精悍”“生动的语言”等。
不过,后续的小说名称、故事背景和情节,主要源自麦兜自己,他几乎是把草稿直接喂给了ChatGPT,让ChatGPT进一步拓展和加工,使内容更丰满和引人入胜。
为了达到出人意料的反转效果,麦兜不想读者一开始就知道将军是女性,但ChatGPT却多次使用“她”来指代将军。
在这个问题上,麦兜和ChatGPT来回Battle了不下10个回合。ChatGPT嘴上说着“完全明白”,实际一点没get到问题所在。
Round 1
Round 2
Round 3
Round 4
Round 5
……
“交互轮次多了,AI就记不住,生成的东西就不能用。所以我的方法是整理了一套Prompt,不断地新建对话,不断地去生成内容,直到生成我满意的一版为止。没找到好的技巧,就是多试。”麦兜说。
他前前后后用讯飞星火、文心一言、ChatGPT生成了大概50篇小说,最后选了一篇读起来最舒服的作为参赛作品。
而之所以在小说主题和情节构思上占据绝对主导,麦兜解释道:“《将军之死》是我在初中写过的一篇作文,灵感来源于岳飞的精忠报国。讲的是一个将军在沙场上战功赫赫,却不被皇帝所信任,最终在一次战役中刎颈自尽了。当时的老师没有给我打分,她觉得这篇作文不像是一个初中生写的。所以就想借这次机会,释怀心中的意难平。”
这次获奖唤醒了麦兜的文学梦,在他看来,写作的快乐来自人类本身的思考和创作,这是AI无法替代的。
《回环》
作者 / 易木里
地铁摇晃,亨利亚尔揉着酸痛的眼睛,盯着手机里的邮件和日程。
又是在公司加班到通宵,亨利亚尔已经连续一个月没有正常作息了。他匆忙赶回家洗漱换衣服,现在又挤上了早高峰的地铁,赶回公司。
穿着皱巴巴的衬衫,靠咖啡因勉强支撑着疲备的身躯和大脑,地铁上拥挤的人群让他更加神经紧绷,一个不注意就被人撞到。早高峰的地铁里,所有人都面目模糊,亨利亚尔感觉自己就像一尾匿名的小鱼,被困在浑浊的河流里。
当一个背包重重地撞在亨利亚尔身上时,他再也忍不住,竖起了中指。
就在这时,地铁突然一个急刹,亨利亚尔连忙抓住扶手稳住身形。抬头一看,所有的人都静止不动了,就像全世界按下了暂停键。“这是怎么回事?!”亨利亚尔脱口而出。
他惊恐地张望四周,所有的人都停止了动作,像被冻结在各种奇怪的姿势里。车厢里鸦雀无声嘈杂的人声戛然而止,就连电子显示屏上的数字也停滞了。这突如其来的寂静让享利亚尔汗毛直竖。
“这到底是怎么回事?”亨利亚尔自言自语道,一边小心翼翼地走过那些静止的人群,向车门拥去。就在这时,一个穿黑衣的男子突然从车门口冒了出来,动作敏捷地抓住亨利亚尔的手腕:“跟我走,你陷入危险了!”
亨利亚尔惊呆了,拼命甩开那人的手:“你是谁? 这里发生了什么事?”那人神秘地回答:“我是来帮你的。你必须跟我走,这里已经被黑暗力场控制了。”
亨利亚尔疑惑不解:“黑暗力场是什么?你到底在说什么啊?”“就是控制时间的黑暗力量,它正在侵蚀人们的时间感知能力,你已经陷入其中脱离不出了。只有跟我走,才能逃离这个环形时间陷阱。”那人环视四周,小声说。
亨利亚尔还想问个清楚,但黑衣人已经不容分说地拉着他向车门奔去。
两人从地铁钻出,来到了一个空无一人、死寂的陌生车站。这里令人窒息。
黑衣人带着亨利亚尔来到一面墙前,墙上显示着一个奇怪的倒计时器,红色的数字在不停跳动。
“这就是控制时间的程序,它造成了你被困在环形时间里。”黑衣人说。
亨利亚尔震惊地问:“这究竟是怎么回事?为什么我会被困在这里?”
黑衣人沉吟着说:“因为你触发了程序案乱的条件......每当你生气中指时,就会启动一次时间回环。”
“什么?!”享利亚尔难以置信。“我们必须在计时结束前,输入终止代码,才能打破这个循环。”黑衣人说着,快速操作起了键盘。
“嘀一一嘀一一”计时器跳到了00:00!黑衣人还没来得及输入终止代码。
一片黑暗。亨利亚尔发现自己回到了拥挤的地铁车厢,刚才的一切就像做了一个荒诞的梦。他揉着酸痛的眼睛,手机里依然是没完没了的邮件和日程。
地铁就要到站了,亨利亚尔深吸一口气,整理了一下衣着和情绪,迈向车门。车门打开,在拥挤的人群中,有人踩了他脚。他忍不住抬起了手。
相比于麦兜较为简单、开放的交互,易木里运用结构化Prompt,以更加清晰、明确的指令,更大限度地确保了AI生成内容的可控性。
结构化提示词借鉴了编程语言方式,以一定的语法结构或形式来表达指令或请求,以提供清晰、明确的信息指导AI执行特定任务,减少歧义和误解。
以易木里与Claude的交互为例,她先是将Claude设定为一名有着二十年从业经验的科幻小说家,擅长人物塑造、细节描写、环境描写、情节构思,写作风格是爱伦坡式的。然后依次对Background(背景)、Goals(目标)、Constraints(限制/规则)、Skills(技能)进行了详细说明。
Claude按照要求生成了小说开端,但存在时空错乱、不合逻辑的情节和不恰当的表达,为了便于记录迭代版本,易木里在提出修改意见后,要求Claude将输出的内容命名为“开端v1”。
每修改一次,易木里都会要求Claude迭代一次版本号,足足修改了六次,总算是得到了一个相对满意的小说开头。
接下来对开头进行续写,易木里再次运用结构化Prompt,在原先的基础上修改版本号为2.0,让Claude在“开端v6”的基础上续写故事,并对续写字数、故事风格、结构、需包含的元素等进行了重新限定。
针对Claude续写的第一版正文,易木里在提出对应的修改意见后,要求Claude将输出结果命名为“初稿v1”,此后每修改一次就迭代一次版本号。
但并非每次修改都比上一个版本更让人满意,改来改去还是觉得第一版好,莫名有一种做甲方的快感。
经过多轮博弈,第6版初稿最终进入了决胜圈,在此基础上修改的结果被命名为“终稿v1”。
综合易木里的交互记录,“头号AI玩家”整理了一份结构化提示词的详细公式:
结构化Prompt公式
(可直接复制填写)
Role(角色)
Profile(角色描述)
· Author(作者)
· Version(版本)
· Language(语言)
· Description(描述)
Background(背景)
Goals(目标)
Constrains(约束条件)
Rules(规则)
Skills(技能)
Example(参考示例)
Workflows(工作流程)
· Step 1
· Step 2
· Step 3
Initialization(冷启动对话)
作为
一级标题如Role、Profile、Background等是属性词,是对模块下内容的总结和提示,用于标识语义结构。
Role(角色)可以确保定向唤醒模型的角色扮演能力,通过设定AI的角色/身份,使其在特定场景和任务中的表现更专业,也可以用Master(大师)、Expert(专家)等提示词替代。
而Constraints和Rules,则规定了模型在交互过程中必须遵守的原则、规则或操作流程。比如可以在Constraints下添加“不得出现政治敏感