社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

【赠书】ChatGPT进阶:提示工程入门

AINLP • 1 年前 • 213 次点击  

注:本文节选自《ChatGPT进阶:提示工程入门》

   人工智能也有很多种,它们各自有各自擅长的任务。我们完全可以让它们互相协作,共享知识,解决问题。而ChatGPT,作为一个擅长理解和生成自然语言的模型,就像一个会说话的通用翻译机,帮助我们与其他AI模型进行对话,打破了语言壁垒。这不仅让AI的使用变得更加简单,也极大地拓宽了我们可以解决的问题的范围。

   事实上,学界已经进行了很多探索,例如“HuggingGPT”, 它会先用ChatGPT来分析你的请求,把它分成一系列的子任务,比如说话、看图、听声音等。然后它会从Hugging Face社区中找到合适的AI模型来做这些子任务,比如用A模型来检测图像中的物体,用 B模型来识别语音等。最后它会把这些子任务的结果汇总起来,用ChatGPT来生成一个完整的回答给你。

   不过,本章并不会涉及太高深的,关于技术的部分。我们会给出一个简单的,将ChatGPTAI绘图结合起来的示例,帮助你理解如何将不同的AI结合起来,发挥更多的用处。

   除了文生图以外,你还可以将ChatGPT与更多模型结合起来,例如用ChatGPT+MusicLM生成音乐,用ChatGPT+runaway GEN生成视频等等。

ChatGPT+midjourney生成文学作品配图

   不知道你有没有留意过本书的插图,它们中的绝大部分都是使用midjourney生成的。Midjourney是一个由Midjourney, Inc.创建和托管的生成式人工智能程序和服务,以根据自然语言描述,也就是“提示”,生成图像。你可以想象任何东西,比如“一只猫在吃鱼”或者“一个蓝色的星球”,然后输入到Midjourney,它就会为你画出来。

       图1  a happy baby cat astronaut, white background --ar 16:9 --v 5.1

   截止到23年5月,我们仍然需要花很多心思,精心设计提示(输入的文字),才可以在midjourney上得到特别符合心意的结果。不过,类似于midjourney的绘图工具不断进化,门槛也在持续降低。与此同时,各种绘图工具也在持续整合到大语言模型中。例如,new bing与ChatGPT(到2023年5月止)就整合了OpenAI的dell-e绘图模型。

         图2   用new bing调用dell-e模型生成太空仓鼠图片

  不过,AI工具会进化,解决问题的思路却是有共性的。所以,本章的讲解会更加注重问题的分析与解决,也就是“授人以渔”。不管未来如何变化,这种思维方式都可以帮助你更好地利用它们。下面,我们将以“使用ChatGPT+midjourney给文学作品配图”作为例子,来设计一个可以重复使用的,由ChatGPT生成midjourney prompt的提示。

  要使用ChatGPT与midjourney给文学作品配图,我们面临着三个困难:

  • 文学作品的复杂性:文学作品通常蕴含着丰富的情感和微妙的意象,想要通过图像表达出其中的信息并不是简单的事情。

  •  有截止日期的知识:在笔者落笔时,ChatGPT的知识截止日期是2021年9月,这意味着它只能提供该日期之前的信息。而21年9月时,midjourney还没有发布。


   不过,办法总比困难多,让我们试着解决一下这个问题:

第一步:确定作图流程

要获得可控,高质量的结果,我们需要一套固定流程。笔者并非设计与视觉传达相关的专业出身,不过我们有ChatGPT,就让我们来问问它。

             对话7-11 分析插图流程

   很棒,我们可以提取出其中的一部分流程,融入我们的提示撰写中。

第二步:解决问题1,确定作图流程

     文学作品通常蕴含着丰富的情感和微妙的意象,想要通过图像表达出其中的信息并不是简单的事情。所以,我们需要根据第一步的分析来给ChatGPT作图的过程制定一个流程。

   与此同时,Midjourney官方提供了一些质量非常高的教程[注:https://bit.ly/Clarinet-Prompt-Troubleshooting],其中笔者比较喜欢的一篇叫做“Clarinet’s Troubleshooting Midjourney Text Prompts”。这篇教程里,作者给midjourney prompt提供了一个模板,将其划分为1.Subject,2.Other Details & Surroundings,3.Stylizations, Media Type, Artists,4.Parameters四个部分。由于第4部分“Parameters”是可选的,所以我们让ChatGPT代劳工作量最大的前3部分。

      那么,根据这个模板与步骤1中的分析,我们可以让将整个作图流程分为几步:

1. 理解文本内容,把握主题、氛围和故事情节。

2. 根据文本内容,选择合适的艺术风格和技术

3.设计构图和视觉元素:规划插图的构图和视觉元素。

4.根据分析,填写模板中的前3个元素

5.写出midjourney prompt

第三步:解决问题2,帮助ChatGPT理解midjourney prompt

     我们需要让ChatGPT理解midjourney是什么,所以在开头应该为它介绍这个go

    为了让ChatGPT理解midjourney prompt,我们可以有两种方法,第一种是直接把midjourney的教程贴给ChatGPT看,另外一种是用我们第六章第一节提到的“上下文学习方法”,为它提供几个输入-输出对的例子,为它提供范例。

第四步:根据分析,组装各个部分并写出prompt

    最后,我们根据这样的设计思路把prompt组装起来,得到了一个ChatGPT+midjourney文学作品插图生成器。本书中的插图绝大多数都是由下面这个prompt,利用ChatGPT+midjourney得到的。让我们把它用在赫胥黎的小说《美丽新世界》中试试看。

     需要注意的是,由于篇幅限制,midjourney的“说明书”部分我们并不在本书中展示,你可以将上文中提到的“Clarinet’s Troubleshooting Midjourney Text Prompts”整理后并粘贴进去,应该可以得到一样的效果。

     对话7-12 ChatGPT+midjourney生成插图

    我们把得到的midjourney prompt发送给midjourney的discord bot,可以得到下面的结果:

                                        

 图3   midjourney生成的图像,版本5.1

     不过,midjourney更新很快,你需要与时俱进地更新你提供给ChatGPT的教程,甚至需要重新设计整个prompt。你也不总是能够一次得到满意的结果,所以你会需要在ChatGPT生成的midjourney prompt的基础上进行调整,试验或者修改。

本文出自北京大学出版社《ChatGPT进阶:提示工程入门》一书中,经授权此公号,略有修改,以出版纸质书为准。

编辑推荐

系统:全面剖析ChatGPT应用技巧,带你从小白变身ChatGPT应用专家。
实用:内含开箱即用的“提示公式”,聚焦ChatGPT实际应用。
有思路,有办法,能落地:带你将ChatGPT真正转化为生产力,开启AI驱动的工作流程。
简单易读:深入浅出,循序渐进,内含60 个示例,适合初学者和进阶读者。
深度:理论结合实际,涵盖提示工程学科深度讨论,授人以鱼更授人以渔。


赠书



点击下方名片关注「AGI之美」

在后台回复暗号“赠书”

即可参与赢取这本新书

奖品数量共计 5 份!

活动截止时间为 11 月 17 日 12:00






    

进技术交流群请添加AINLP小助手微信(id: ainlp2)

请备注具体方向+所用到的相关技术点

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。



阅读至此了,分享、点赞、在看三选一吧🙏

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/163918
 
213 次点击