让AI模仿作家写作风格!3个你不知道的技巧

Posted by 活水智能 on April 18, 2024 · 1 min read

作者: by Dan Shipper

编译:Gavin

来源: https://every.to/chain-of-thought/how-to-make-ai-write-like-your-favorite- author

入门级AI写作缺乏特色,读来如同嚼蜡。

这就像是在舔一块纸板,有一种味道,但缺乏任何真正的风格。因此,AI辅助写作理所当然的名声不佳。人们说它读起来像用来SEO(搜索引擎优化)的废话。它不适合写作严谨的作家。

这种批评是正确的,因为向ChatGPT或Bing等流行模型输入基本提示,会输出完全平庸的回应。

但这种批评有点像说使用键盘打字是乏味的。没错,当你第一次学习用键盘写作时,你也写不出任何特别好的东西。

但只要稍加练习,你就可以用键盘写出任何你想写的东西。AI也是如此。

我之前写过如何在写作过程中使用AI———它可以帮助我把想法从脑海中表达出来,找到文章的叙事结构,或在我卡壳时提供帮助。

但今天我想重点讨论你可以用AI辅助写作做的最有用的事情之一:捕捉特定的写作风格。

本文将介绍整个过程:从撰写有效的提示词到微调。读完后,你将更深入地了解如何将生成式AI模型推向新的方向,以及如何为自己的写作增添更多深度和风格。

我知道本文的标题声称要教你如何使用AI模仿你最喜欢的作者的写作风格。但这不是关于学习按一个按钮就能输出一部深度伪造的托尔斯泰小说。这在技术上是不可能的,可能也不可取。

相反,本文将教你使用AI写出更丰富、带自我风格的文字。它可以帮助你理解你喜欢的某位作者,还可以帮助你理解他们的文字魅力,从而将他们的一些风格融入你自己的风格中。

我是如何开始的?

我喜欢安妮·迪拉德(Annie Dillard)。

有时我想让我的文字更好地描述大自然,或像她一样使用生动的比喻。通常,如果我想这样做,我会坐下来阅读她的一些作品,比如《丁克溪的朝圣者》或《写作生活》,然后开始写作。

我所读到的一些内容会影响到我当天的语气,如果幸运的话,它会体现在我的写作中——把我推向正确的心理状态,以获得我想要的风格。

最近,我开始思考GPT是否可以提供帮助。我不希望它自动吐出我可以冒充自己的文章。

相反,我想知道它是否可以像阅读该作者的作品一样帮助我的大脑运转,但额外的好处是我正在阅读的句子将与我正在写的主题相关,而不是完全无关。

于是我打开OpenAI Playground,尝试了一个简单的提示:”当我呼吸时,我感觉……”

我想以这样一个句子开头可能会比较接近安妮·迪拉德的风格。不幸的是,它没有奏效:

上图翻译:”当我呼吸时,我感到随着我呼气,我感受到一种宁静和清晰。”

这在语法上是正确的,但它就像AI批评者所说的那样,平淡无奇,乏味。它没有做任何有趣的事情。但在大量实验之后,我设计了一些方法,可以让AI进入一个听起来更像迪拉德的领域——这反过来让我的思维开始运转。

好了,准备好了吗?让我们开始吧。

用AI“捕捉”作家写作风格

我发现有三种很好的方法实现用AI“捕捉”作者的写作风格

  1. 1. 直接要求AI模仿特定作家的写作风格

  2. 2. 描述作家的风格特点,并要求AI按照这种风格写作(最好提供例子)

  3. 3. 用作家的语料微调模型

这三种方法按照实施的难度和成本排序。如果你想自己尝试,可以先直接要求AI模仿你欣赏的作家的写作风格。如果不奏效,试着描述你希望AI写作的的语言风格。最后,如果还是不行,就尝试微调。

微调更专业、更昂贵,但并不一定意味着它就是最适合你的。先尝试简单的方法,然后再尝试困难的方法。在这个过程中你会学到很多。(当然,如果你只是觉得微调很有趣想尝试,那也不错,我不会阻止你。)

那么,让我们从第一步开始:直接要求AI模仿作家的写作风格。

让AI直接模仿作家的风格

AI不是一个有特定声音或思维方式的单一事物。相反,它是一个模拟器。它接收一个提示,并试图预测你想要什么。所以直接要求它模仿你欣赏的作家的文字是一个很好的起点。

对于那些作品著名、在互联网上有大量代表作的作家来说,这种方法实际上效果相当不错。

让我们先让GPT-3重写一个可以用狄拉德风格改进的句子:

上图翻译: 请将这段文字改写成安妮·迪拉德的风格:我坐在沙发上,听着古典音乐。外面正轻柔地下着雪。我盖着毯子取暖,一直在阅读。朱莉娅在隔壁房间安稳地睡着。 以下是用安妮·迪拉德的风格重写这段文字的可能方式: 沙发像摇篮一样拥着我,我任由音乐将我包围。我想是巴赫,或者可能是莫扎特。音符清晰而精准,就像屋檐上垂挂的冰柱。外面,雪轻轻地下着,给世界披上了一层白色的毯子。我透过窗户感受到它的寒冷,但在自己的毯子下却感到温暖。这是一条羊毛毯,是我祖母很久以前编织的。她教会了我如何阅读,以及如何热爱文字。我一直在阅读她最喜欢的书,一本爱默生的散文集。他的文字也像音乐,但却是另一种。它们丰富而深邃,充满了智慧和惊奇。朱莉娅在隔壁房间睡着了。她是我的女儿,我的独生女。她有她祖母的眼睛和她父亲的微笑。他在两年前的一场车祸中去世了。我每天都想念他,但我对朱莉娅心存感激。她是我的喜悦和希望。她还不知道,我为她买了一把小提琴作为圣诞礼物。我希望她也 学习音乐,感受它的美丽和力量。也许有一天,她会在这沙发上为我演奏巴赫或莫扎特。

很明显,这个结果很荒谬,听起来一点也不像狄拉德。但是……它听起来确实不一样。

这应该告诉我们,我们找对了方向。语音语调有点像莎士比亚式的、中世纪的或者”高中生第一次发现词库时的感觉”。它使用了一些平时不会用到的大词。

例如,我喜欢”cushioned throne”(软垫王座)这个短语和”sonorous”(洪亮的)这个词。

所以我可能不会全盘接受这个输出,但我可能会很乐意在我写的任何东西中使用其中的一些词。它激发了我的思维,扩展了我的词汇选择范围——这正是我想要的。

有趣的是,必应(使用了更先进版本的同一模型)在这方面做得更好一些。

在这里,我们可以看到必应使用了明喻: “音符清晰而精准,就像檐下悬挂的冰柱。”这感觉有点像狄拉德的风格。但我必须决定……这是真的吗?音乐的音符听起来清晰而精准吗?我还必须决定檐下的冰柱是否能唤起这种感觉。

但现在我真的在思考这个问题了。我正在听的音乐的特点是什么?有什么明喻可以唤起这种感觉?这些问题激发了我的大脑——再一次,帮助我改进我正在写的段落。

这种技巧对其他主要作家也很有效。

与ChatGPT相比,使用必应的一个好处是它可以访问互联网。所以它可以实时查找一位作家,试图找到更多关于他们风格的信息——这有助于改进它的回答。这对那些不太出名或在互联网上的作品较少的作家特别有用。

花点时间试验一下什么有效,什么无效。但如果你没有得到想要的结果,是时候进入下一步了:描述你想要的风格。

向AI具体描述作家的风格

告诉AI”像安妮·狄拉德那样写作”或”像托尔金那样写作”可以给你有趣的结果,但这也很模糊。

你想捕捉狄拉德或托尔金的什么特点?是狄拉德对大自然的描述吗?是托尔金关于矮人和魔法的故事吗?风格和内容之间有一条模糊的界限。AI必须猜测,这会使结果不那么有趣。

下一步是尝试具体说明。告诉它你到底想让它做什么,看看它能不能做到。这是一个值得尝试的好办法,因为你得到的结果可能会更好——而且在这个过程中你会成为一个更好的作家。

为了让AI以特定的风格写作,你需要理解如何描述你想要的风格。你需要问自己:我喜欢这些作家的什么?这个过程非常有价值。

这里有一个例子。当我想到狄拉德使用词语的方式时,有几点立即浮现在我的脑海中:

她的文字非常生动,她有令人难以置信的隐喻和明喻,她对大自然的描述具体、美丽而深刻。

她的写作风格还有很多值得喜欢的地方——但对于这种事情来说,最好从简单的开始,然后在此基础上进行扩展。让我们看看使用这个描述可能会如何改变我们从AI得到的输出:

(作者输出)请将这段文字改写如下: -尽可能生动-使用至少一个独特的、非陈词滥调的隐喻或明喻- 集中于你对自然的描述,使它们闪闪发光。避免陈词滥调。以下是正文:我坐在沙发上听古典音乐。外面正下着雪。我盖了条毯子取暖,我一直在看书。茱莉亚在我旁边的房间里睡得正香。 (AI的输出)以下是按要求的样式重写文本的可能性:当我懒洋洋地躺在沙发上时, 充满了我的耳朵。透过窗户,我看着雪花在空中飞舞,把世界画成白色。一条舒适的毯子像茧一样把我包裹起来,为我抵御寒冷。一本打开的书躺在我的腿上,但我被冬天的仙境迷住了,读不下去。隔壁房间里,朱丽亚轻柔的鼾声和音乐混在一起。我敢说她一定梦到春天了。

这还不错,但有点陈词滥调。但我想知道我们是否可以让它更有趣一些。我想为我的提示找到一个很好的狄拉德写作风格的描述。一个办法是看看评论家对她的评价,并将其纳入考虑。

所以我找到了一篇关于她的书《写作生活》的评论,并要求必应总结一下:

这是我得到的回复:

现在我可以把其中的一些内容纳入我的提示,看看会得到什么结果:

我真的很喜欢其中的一些内容!”古典音乐继续演奏,像优雅的丝带一样在空中编织”相当不错!我也喜欢”梦想轻如雪花”。它仍然有点过于直白和平凡——但你可以看到,只是在我们的提示上花了一点时间,就完全改变了我们从模型中得到的输出。

但如果你觉得这不够满足你的需求,下一步就是微调。

用作家的语料微调模型

要最大限度地接近特定作者的风格,最好的方法是使用微调(fine-tuning)技术。

微调是一种通过在专门为特定任务设计的数据集上训练AI模型,使其适应该任务的方法。

这是一门玄学。有很多变量可以调整,而人们对GPT-3等AI模型的微调知识,似乎大多来自反复试错的经验。(而且错误代价高昂:一次微调的费用在10到50美元之间。)

以下是一些基本知识。

进行模型微调时,你要提供提示和示例。这相当于告诉模型:”如果你看到这个提示,这里有一个很好的补全示例。”如果你反复向模型展示这样的例子,它最终会学会给出更接近你偏好的输出。

例如,如果你在如下的提示-补全对上进行微调:

提示: 什么是最好的狗狗品种?

补全: 伯恩迪尔

那么下次使用该模型时,如果你问它最好的狗狗品种是什么,它更有可能回答”伯恩迪尔”。所以问题是,我们如何微调模型,使其更有可能输出我们最喜欢的作者风格的写作?

我尝试了许多不同的实验,试图让AI以特定作者的风格写作。最好的方法似乎是在空提示上进行微调,补全内容是作者作品中的几个句子。例如,你的微调可以是这样的:

提示:

补全:”我曾经养过一只猫,一只老斗猫。它会在半夜跳过我床边的敞开窗户,落在我胸口。我会半梦半醒。它会把脑袋塞到我鼻子下面,发出呼噜声,散发着尿液和血液的恶臭。有些夜晚,它会用前爪有力地揉搓我赤裸的胸膛,拱起背部,仿佛在磨爪子,或像幼猫吮乳般用力揉搓。有些早晨,我在日光中醒来,发现自己的身体上布满了血色的爪印;我看起来像是被玫瑰花染色了一般。”

这种类型的微调似乎可以教会模型,无论提示是什么,都倾向于使用特定作者的语气、风格和主题。这对我们的目的非常有用。

具体过程如下:

  1. 1. 找到你喜欢的作者的大量文本语料

  2. 2. 将语料分割成一个个只有几句话的片段

  3. 3. 创建一个提示-补全对的文件,其中提示为空,补全是你的文本中的几个句子

  4. 4. 在该文件上进行8或16个周期的微调

以下是具体步骤:

寻找文本语料

这一部分有点棘手,但对于任何已过版权保护期的作者,你都可以使用古登堡计划(Project Gutenberg,网址:gutenberg.org)。对于其他作者,你通常可以在互联网上找到他们写的东西,或者尝试购买和下载无DRM的数字版作品。

有很多方法可以做到这一点,发挥你的创意吧。但要确保你的做法考虑到合理使用和版权问题。

将文本语料分割成片段,创建空提示-补全对

这一步稍微有点困难和技术性,但幸运的是,你实际上可以使用ChatGPT或Bing来完成。最终你会得到一个如下所示的文件:

{“prompt”:””,”completion”:”[这里是你选择的作者的文本]”}

{“prompt”:””,”completion”:”[这里是你选择的作者的文本]”}

要得到这个结果,打开ChatGPT并问:

请为我编写一个Python脚本,读取一个文本文件,将其分割成每个包含3个句子的片段,并将每个片段以以下有效的JSON格式输出到文件中: {“prompt”:””,”completion”:”[片段1]”}{“prompt”:””,”completion”:”[片段2]”}

拿ChatGPT输出的脚本,在上一步得到的文本语料上运行它。

在JSON文件上进行微调

现在你有了JSON文件,是时候进行微调了。你应该参考OpenAI的微调指南,基本步骤如下:

准备数据

OpenAI有一个微调工具,可以检查你的JSON文件并对其进行修改,以优化微调效果。

运行以下命令来准备数据:

openai tools fine_tunes.prepare_data -f

完成后,就可以实际运行微调了。

运行微调

要开始微调,可以运行以下命令:

openai api fine_tunes.create -t -m --suffix "[为你的模型命名]" --n_epochs 8

OpenAI微调指南中缺少两个重要部分。

第一,你一定要设置后缀名。用一个明智的名称为你的模型命名,如”我最喜欢的作家风格”,以便以后可以找到它。

第二,你应该将epoch数设置为8或16。Epoch是模型在你提供的数据集上训练的次数。默认值为4,但我的经验是最佳值通常在8或16左右。

目前尚不清楚原因,但8或16似乎可以让模型充分关注你提供的提示和补全,确保你想要的风格得以体现。但微调程度又不至于过度,导致输出质量下降。

使用微调后的模型

现在模型已经训练好了,是时候使用它了!我在安妮·迪拉德的作品上训练了一个模型,下面是输出结果:

这是另一次运行的结果:

你会注意到,我没有要求模型重写我的作品,只是以迪拉德的方式继续写下去。我还没能让重写类型的微调效果很好。但我认为这种微调效果相当不错。它不那么陈词滥调,更多地体现了迪拉德的风格和韵味,对大自然的描写非常优美动人。

总 结

以上就是如何利用AI模仿最喜欢的作者写作风格的基本方法。

需要注意的是:你在这样做时要谨慎。正如我在开头所写,这些练习的目的不是帮助你深度伪造,而是帮助你找到自己的风格,并更立体地了解你欣赏的作家。

我建议你不要照搬这些AI生成的内容,而是将其作为你自己作品的起点。如果你在一个严格禁止抄袭的环境中写作,要用抄袭检查工具检查这些输出,确保生成的内容与他人的作品不同。

如果你认真对待上述建议,这里有大量值得探索的领域。你会得到很多奇怪古怪的输出,它会经常失败。

但在尝试和失败中,你会发现自己的声音。它会更加丰富、更有深度,融合了我们阅读和喜爱的所有人的韵味。

祝你好运!


推荐阅读

用AI重塑新闻网站后,我总结了十个AI使用心得