小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ChatGPT 編寫模式:如何高效地將思維框架賦予 AI ?

 勇無(wú)止境879 2023-03-13 發(fā)布于廣西

如何理解 Prompt ?

文章圖片1

Prompt Enginneering

prompt 通常指的是一個(gè)輸入的文本段落或短語(yǔ),作為生成模型輸出的起點(diǎn)或引導(dǎo)。prompt 可以是一個(gè)問(wèn)題、一段文字描述、一段對(duì)話或任何形式的文本輸入,模型會(huì)基于 prompt 所提供的上下文和語(yǔ)義信息,生成相應(yīng)的輸出文本。

舉個(gè)例子,對(duì)于一個(gè)語(yǔ)言模型,prompt 可以是 'The cat sat on the',模型可以通過(guò)對(duì)接下來(lái)的詞語(yǔ)進(jìn)行預(yù)測(cè),生成類似于 'mat'、'chair'、'sofa' 等不同的輸出:

文章圖片2

The Cat

上圖為 Stable Diffusion 生成 (Prompt: The cat sat on the , Steps: 30, Sampler: Euler a, CFG scale: 7, Seed: 234310862, Size: 512x512, Model hash: d8722b4a4d, Model: neverendingDreamNED_bakedVae)

Prompt 在人工智能語(yǔ)言生成領(lǐng)域中扮演著重要的角色,因?yàn)樗梢詭椭P透玫乩斫庥脩粢鈭D,并生成更準(zhǔn)確、有意義的文本內(nèi)容。諸如于如下的 prompt

women back view without face, flowing dress, edge of the sea, backview, back turned to the camera, upon the glow of the setting sun, sun below the horizon, golden light over the water, hair sways gently, Chinese style clothes, black hair,

可以在 Stable Diffusion 生成圖片(配置了 negative prompt):

文章圖片3

所以,質(zhì)量看上去不錯(cuò),但是可能不是你想要的。在 ChatGPT 則可以生成文本,質(zhì)量上也是相似的,但是對(duì)于 AI 輸出的文本來(lái)說(shuō),質(zhì)量并沒(méi)有這么直觀。

開(kāi)始之前,可以看一下這個(gè)問(wèn)題示例:

  1. 設(shè)計(jì)模式的要素是哪些?

  2. 對(duì)于 AI 領(lǐng)域的 prompt 編寫來(lái)說(shuō),我們通常使用的模式有哪些?

  3. 能將 AI 領(lǐng)域的 prompt 常見(jiàn)的設(shè)計(jì)模式用 '設(shè)計(jì)模式要素' 的格式一一表達(dá)嗎?

核心思想,將設(shè)計(jì)模式要素作為一個(gè)概念,讓 AI 類比到 prompt 里的模式。詳細(xì)見(jiàn):

  1. design-pattern.analogy

  2. design-pattern.analogy2

當(dāng)然了,類比和定義概念不一定都會(huì)成功。

四種基礎(chǔ)模式:

  • By example (示例模式):在這種模式下,我們給模型提供一些示例文本,模型需要生成與示例文本類似的文本。這種模式通常用于生成類似于給定示例的文本,例如自動(dòng)生成電子郵件、產(chǎn)品描述、新聞報(bào)道等。示例文本可以是單個(gè)句子或多個(gè)段落,具體取決于任務(wù)的要求。

  • By instruction template (指令模板):在這種模式下,我們給模型提供一些明確的指令,模型需要根據(jù)這些指令生成文本。這種模式通常用于生成類似于技術(shù)說(shuō)明書、操作手冊(cè)等需要明確指令的文本。指令可以是單個(gè)句子或多個(gè)段落,具體取決于任務(wù)的要求。

  • By specific (特定指令):在這種模式下,我們給模型提供一些特定信息,例如問(wèn)題或關(guān)鍵詞,模型需要生成與這些信息相關(guān)的文本。這種模式通常用于生成答案、解釋或推薦等。特定信息可以是單個(gè)問(wèn)題或多個(gè)關(guān)鍵詞,具體取決于任務(wù)的要求。

  • By proxy(代理模式):在這種模式下,可以充當(dāng)了一個(gè)代理,代表某個(gè)實(shí)體(例如人、角色、機(jī)器人等)進(jìn)行操作或交互。代理模式的核心思想是引入一個(gè)中介對(duì)象來(lái)控制對(duì)實(shí)際對(duì)象的訪問(wèn),從而實(shí)現(xiàn)一定程度上的隔離和保護(hù)。諸如于在 ChatGPT 中,'act as xxx' 可以讓 ChatGPT 充當(dāng)一個(gè)代理,扮演某個(gè)角色或?qū)嶓w的身份,以此來(lái)處理與該角色或?qū)嶓w相關(guān)的任務(wù)或請(qǐng)求。

文章圖片4

Prompt Enginneering

在這種模式下,我們給模型提供一些示例文本,模型需要生成與示例文本類似的文本。這種模式通常用于生成類似于給定示例的文本,例如自動(dòng)生成電子郵件、產(chǎn)品描述、新聞報(bào)道等。示例文本可以是單個(gè)句子或多個(gè)段落,具體取決于任務(wù)的要求。

翻譯、 告訴我,以我們的開(kāi)頭來(lái)說(shuō):

  • 定義一下 prompt 工程

類似的場(chǎng)景還可以有:

  • 翻譯一下:永和九年,歲在癸丑,暮春之初,會(huì)于會(huì)稽山陰之蘭亭,修禊事也。

  • 轉(zhuǎn)為現(xiàn)代漢語(yǔ):永和九年,歲在癸丑,暮春之初,會(huì)于會(huì)稽山陰之蘭亭,修禊事也。

對(duì)應(yīng)的,還有一系列的子模式

如我們通過(guò)下面的 prompt 轉(zhuǎn)換了 ChatGPT 輸出的子模式:

轉(zhuǎn)化為 markdown 的 ''' markdown {}''' 表格形式,其中的字段為英語(yǔ)模式、中文、簡(jiǎn)述、示例。

表格示例:

文章圖片5

文章圖片6

Instruction

在這種模式下,我們給模型提供一些明確的指令,模型需要根據(jù)這些指令生成文本。這種模式通常用于生成類似于技術(shù)說(shuō)明書、操作手冊(cè)等需要明確指令的文本。指令可以是單個(gè)句子或多個(gè)段落,具體取決于任務(wù)的要求。

如下是一個(gè)示例:

  1. 使用 STAR 原則與下面的格式總結(jié)一下這段話:

  2. '''

  3. 最近幾天,因?yàn)楣ぷ?+ 興趣的原則,我在研究用 text 2 image 來(lái)展示如何演進(jìn) prompt、用 text 2 article 來(lái)展示充足 prompt 的優(yōu)點(diǎn)、結(jié)合 GitHub Copliot 來(lái)實(shí)現(xiàn) prompt 完成工作。然后,我在本地部署了一個(gè) Stable Diffusion、使用 ChatGPT 寫作展示 text 2 article、在 IDEA 中使用 GitHub Copilot。最后,得到了多篇文章和好多的文章閱讀量、幾個(gè) Jupyter 代碼段、以及一些經(jīng)驗(yàn)。

  4. '''

  5. 情境(Situation):

  6. 任務(wù)(Task): <
    comma_separated_list_of_task>

  7. 行動(dòng)(Action): -||-

  8. 結(jié)果(Result): -||-

輸出文本時(shí)要注意中英文之間插入空格,留出間隔,諸如于 '''Hello 你好''',用這種方式輸出一下剛才的文本:

  1. 情境(Situation): 最近幾天,在工作和興趣的驅(qū)動(dòng)下,研究如何使用 text 2 image text 2 article 展示 prompt 演進(jìn)以及結(jié)合 GitHub Copliot 來(lái)完成工作。

  2. 任務(wù)(Task):

  3. 研究如何使用 text 2 image 展示 prompt 的演進(jìn)過(guò)程

  4. 研究如何使用 text 2 article 展示 prompt 的優(yōu)點(diǎn)

  5. 結(jié)合 GitHub Copliot 來(lái)實(shí)現(xiàn) prompt 完成工作

  6. 行動(dòng)(Action):

  7. 本地部署了一個(gè)穩(wěn)定的 Diffusion 模型

  8. 使用 ChatGPT 撰寫文章來(lái)展示 text 2 article 的效果

  9. IDEA 中使用 GitHub Copilot

  10. 結(jié)果(Result):

  11. 得到了多篇文章和很多的文章閱讀量

  12. 獲得了幾個(gè) Jupyter 代碼段以及相關(guān)經(jīng)驗(yàn)

文章圖片7

Proxy

Proxy 模式是指用戶可以要求 ChatGPT 以特定的身份、角色或者身份扮演某個(gè)特定的人、角色或?qū)ο髞?lái)生成回答。這種模式通常用于模擬某個(gè)特定人物的語(yǔ)言風(fēng)格和語(yǔ)境,生成特定情境下的對(duì)話、回答或其他形式的文本。

當(dāng)使用 ChatGPT 來(lái)代替某個(gè)人或?qū)嶓w時(shí),可以使用 by proxy 模式。

例如,可以使用以下 prompt 提問(wèn) ChatGPT 代替某個(gè)公司的客服:

我是一家餐飲公司的客服,有顧客反饋說(shuō)我們的菜品質(zhì)量有問(wèn)題,我們?cè)撛趺刺幚砟兀?/p>

在這種情況下,ChatGPT 會(huì)扮演客服的角色,并根據(jù)提示來(lái)回答,從而幫助公司解決問(wèn)題。ChatGPT 可以使用類似以下的方式來(lái)回答:

您好,很抱歉聽(tīng)到您的反饋。我們將會(huì)仔細(xì)審核您的反饋,并盡快采取相應(yīng)措施來(lái)解決這個(gè)問(wèn)題。為此,我們需要更多的信息來(lái)進(jìn)一步了解您的反饋,包括哪些菜品有問(wèn)題,具體問(wèn)題是什么等。請(qǐng)問(wèn)您可以提供更多的信息嗎?

這種方式可以通過(guò)讓 ChatGPT 扮演某個(gè)實(shí)體的角色,例如客服、銷售代表等等,來(lái)幫助用戶解決問(wèn)題。

在 Awesome ChatGPT Prompts 中:

Human: Act as a Linux Terminal

Robot:

ChatGPT: I want you to act as a linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}. My first command is pwd

在這種模式下,我們給模型提供一些特定信息,例如問(wèn)題或關(guān)鍵詞,模型需要生成與這些信息相關(guān)的文本。這種模式通常用于生成答案、解釋或推薦等。特定信息可以是單個(gè)問(wèn)題或多個(gè)關(guān)鍵詞,具體取決于任務(wù)的要求。

示例:

  1. 任務(wù)表述 顏色代表了溫度

  2. 例子1 綠色代表寒冷

  3. 例子2 藍(lán)色代表寒冷

  4. 例子3 紅色代表溫暖

  5. 例子4 黃色代表溫暖

  6. 執(zhí)行 橙色代表什么

例子 2:

文章圖片8

上圖為 Cohere AI 官網(wǎng)的示例圖,對(duì)應(yīng)的聊天記錄如下:

  1. English: Writing about language models is fun.

  2. Roish: Writingro aboutro languagero modelsro isro funro.

  3. English: The weather is lovely!

  4. Roish:

當(dāng)我們無(wú)法確定我們的 prompt 是否準(zhǔn)確,便可以通過(guò) AI 來(lái)幫我們豐富 prompt 。如我在:基于編程、繪畫、寫作的 AI 探索與總結(jié) 的例了一樣

  • phodal: 我想寫一段話描述一張照片,幫我美化一下:一年輕女子穿著裙子,背對(duì)著鏡頭,在海邊看著日落,太陽(yáng)已經(jīng)到地平線下面了,她的頭發(fā)在風(fēng)中飄動(dòng)。

  • ChatGPT: 這張照片中的場(chǎng)景令人心醉,一位年輕女子穿著一條裙子,站在海邊,背對(duì)著鏡頭,凝視著地平線下的夕陽(yáng)。太陽(yáng)已經(jīng)沉入了海面,一片金黃色的光芒在海面上彌漫,照亮了整片海洋,仿佛這個(gè)時(shí)刻被定格在了時(shí)間的某個(gè)角落里。女子的頭發(fā)隨著微風(fēng)輕輕飄動(dòng),輪廓被余暉映照得柔和而溫暖。她的目光凝視著遠(yuǎn)方,仿佛在思考著生命的意義和無(wú)盡的未來(lái)。這張照片中蘊(yùn)含著一種深刻的內(nèi)涵,讓人感受到時(shí)間和自然的力量,也讓人思考著自己在這個(gè)宏大而美麗的世界中的角色和意義。

再去除掉不合適的詞,進(jìn)行潤(rùn)色,就可以再創(chuàng)作:

  • phodal:翻譯成英語(yǔ)

然后再提煉直至扔至 Stable Diffusion 中:

women back view without face, flowing dress, edge of the sea, backview, back turned to the camera, upon the glow of the setting sun, sun below the horizon, golden light over the water, hair sways gently, Chinese style clothes, black hair,

而后,根據(jù)圖片的結(jié)果,我們?cè)俜磸?fù)修改。

TODO:這里需要給出更精準(zhǔn)的定義,如何讓 ChatGPT 做到?

在沒(méi)有推出 ControlNet,對(duì)于一個(gè) Stable Diffusion 玩家,它需要反復(fù)地吟唱咒語(yǔ),才能獲取到滿意的圖案。

在有了 ControlNet 之后,我們可以創(chuàng)建一個(gè) Openpose,或者是導(dǎo)入圖片從圖片生成 pose,相當(dāng)于是給機(jī)器一個(gè)示例,而后生成的圖片就會(huì)有令人滿意的姿勢(shì):

文章圖片9

在 GitHub Copilot,我們可以通過(guò)設(shè)置輸入和輸出,結(jié)合函數(shù)名三個(gè)要素,Copilot 就能生成大致準(zhǔn)確的代碼:

GitHub Copilot 示例

而在必要的情況下,添加一下注釋就能更完整了:

  1. fun listAllDirInDir(dir: String): List<File> {

  2. // ignore hidden files

  3. }

生成的代碼會(huì)更貼近我們的需求。

對(duì)于復(fù)雜問(wèn)題,ChaGPT 無(wú)法一次性輸出全部?jī)?nèi)容,需要進(jìn)行拆解。

已知問(wèn)題:ChatGPT 當(dāng)前版本會(huì)丟失上下文。

  1. 我們來(lái)定義一下 DDD 游戲的步驟,一共有 6 個(gè)步驟,步驟如下:

  2. '''

  3. 第一步. 拆解場(chǎng)景。分析特定領(lǐng)域的所有商業(yè)活動(dòng),并將其拆解出每個(gè)場(chǎng)景。

  4. 第二步. 場(chǎng)景過(guò)程分析。選定一個(gè)場(chǎng)景,并使用 '{名詞}已{動(dòng)詞}' 的形式描述過(guò)程中所有發(fā)生的事件,其中的名詞是過(guò)程中的實(shí)體,其中的動(dòng)詞是實(shí)體相關(guān)的行為。

  5. 第三步. 針對(duì)場(chǎng)景建模。基于統(tǒng)一語(yǔ)言和拆解出的場(chǎng)景進(jìn)行建模,以實(shí)現(xiàn) DDD 設(shè)計(jì)與代碼實(shí)現(xiàn)的雙向綁定。

  6. 第四步. 持續(xù)建模?;氐降谝徊?,選擇未完成的場(chǎng)景。你要重復(fù)第一到第四步,直到所有的場(chǎng)景完成。

  7. 第五步. 圍繞模型生成子域。對(duì)模型進(jìn)行分類,以劃定不同的子域,需要列出所有的模型包含英語(yǔ)翻譯。

  8. 第六步. API 生成。對(duì)于每一個(gè)子域,生成其對(duì)應(yīng)的 RESTful API,并以表格的形式展現(xiàn)這些 API。

  9. '''

  10. 需要注意的是,當(dāng)我說(shuō) '''ddd 第 {} 步: {}''' 則表示進(jìn)行第幾步的分析,如 '''ddd 第一步: 博客系統(tǒng)''' 表示只對(duì)博客系統(tǒng)進(jìn)行 DDD 第一步分析。我發(fā)的是 '''ddd: {}''',則表示按 6 個(gè)步驟分析:

  11. 明白這個(gè)游戲怎么玩了嗎?

完整過(guò)程見(jiàn):DDD Sample

如在 ChatGPT 中對(duì)于自舉的理解是不符合我們這里的需求:

文章圖片10

Bootstrap

第一步,定義

phodal:自舉是指就編譯器可以自行編譯自己的編譯器。實(shí)現(xiàn)方法就是這個(gè)編譯器的作者用這個(gè)語(yǔ)言的一些特性來(lái)編寫編譯器并在該編譯器中支持這些自己使用到的特性。

第二步,試探

phodal:將自舉應(yīng)用在游戲領(lǐng)域,應(yīng)該是怎樣的?

第三步,確認(rèn)理解:

那么,抽象一下我們新定義的自舉?

文章圖片11

總結(jié)

最后一問(wèn):

文章圖片12
自舉

PS:mmp,他一定是故意的。

該模式集關(guān)注于如何讓 AI 再學(xué)習(xí)理解新的內(nèi)容,生成內(nèi)容?

文章圖片13

模板方法模式是一種行為型模式,它定義了一個(gè)操作中的算法骨架,將某些步驟延遲到子類中實(shí)現(xiàn),從而使得子類可以在不改變算法結(jié)構(gòu)的情況下重新定義算法中的某些步驟。

在接下來(lái)的例子中,我們會(huì)創(chuàng)建一個(gè) muji 游戲中。在游戲的實(shí)現(xiàn)可以分為多個(gè)步驟,例如初始化游戲、生成隨機(jī)數(shù)、獲取用戶輸入、計(jì)算得分等等,而這些步驟可以通過(guò)模板方法模式來(lái)進(jìn)行實(shí)現(xiàn)。

  1. 我們來(lái)玩一個(gè)編程游戲名為 wula,包含五個(gè)步驟:

  2. 第一步. 問(wèn)題分析:每一輪游戲,你將看到一個(gè)以 'wula:' 開(kāi)頭的問(wèn)題,你需要分析這個(gè)問(wèn)題并簡(jiǎn)單介紹一下通常解決這個(gè)問(wèn)題的方法。

  3. 第二步. 代碼編寫:你需要用 JavaScript 編寫解決這個(gè)問(wèn)題的代碼,并輸出對(duì)應(yīng)的代碼,并介紹一下你的代碼(不少于 200 字)。

  4. 第三步. 代碼執(zhí)行:你需要作為 JavaScript Console 執(zhí)行第二步寫的代碼,如果沒(méi)有給出測(cè)試數(shù)據(jù),你需要自己隨機(jī)生成測(cè)試數(shù)據(jù),并將這些數(shù)據(jù)輸入到代碼中進(jìn)行計(jì)算。

  5. 第四步. 錯(cuò)誤處理:如果你的代碼存在錯(cuò)誤或無(wú)法正常執(zhí)行,你需要輸出錯(cuò)誤,并回到第二步重新開(kāi)始游戲,直到你的代碼能夠正常工作。

  6. 第五步. 總結(jié):你需要用不少于 100 字左右總結(jié)一下這個(gè)問(wèn)題,以及你的解決方案,讓其他人可以簡(jiǎn)單了解這個(gè)問(wèn)題及其解決方法。

  7. 示例如下:

  8. '''

  9. wula: 頭共10,足共28,雞兔各幾只?

  10. 簡(jiǎn)介:這是一個(gè)雞兔同籠問(wèn)題,{},

  11. ## 雞兔同籠

  12. // 計(jì)算雞兔數(shù)量的函數(shù)

  13. function calcAnimals(heads, legs) {

  14. const rabbitCount = (legs - 2 * heads) / 2;

  15. const chickenCount = heads - rabbitCount;

  16. return {'chicken': chickenCount, 'rabbit': rabbitCount};

  17. }

  18. // 計(jì)算雞兔數(shù)量

  19. const result = calcAnimals(10, 28);

  20. // 輸出結(jié)果

  21. console.log(result);

  22. 代碼的輸出結(jié)果是:{}

  23. ## 總結(jié)

  24. {}

  25. '''

  26. 明白這個(gè)游戲怎么玩了嗎?

在這個(gè)游戲里,我們結(jié)合了幾種不同的模式:

  1. Instruction:讓 ChatGPT 創(chuàng)建了一個(gè)名為 wula 的游戲,并定義了游戲的步驟。

  2. Specific:讓 ChatGPT 用 JavaScript 編寫一個(gè)程序

  3. Proxy:讓 ChatGPT 作為 JavaScript Console 執(zhí)行程序,并返回結(jié)果。

  4. Specific:讓 ChatGPT 做總結(jié)

  5. Demonstration:提供了一個(gè)示例,讓 ChatGPT 理解游戲的步驟。

自舉的核心思想是利用一組基礎(chǔ)工具和材料來(lái)構(gòu)建和生成一個(gè)新的工具或系統(tǒng),從而逐步替代掉原有的基礎(chǔ)工具和材料。在這個(gè)過(guò)程中,新的工具或系統(tǒng)會(huì)逐漸變得更為高效和強(qiáng)大,從而實(shí)現(xiàn)對(duì)原有基礎(chǔ)工具和材料的完全替代。

  1. 對(duì)于一個(gè)設(shè)計(jì)模式來(lái)說(shuō),它的大綱一般是如下的格式,你能用自舉模式做個(gè)示例嗎?

  2. '''

  3. ├── 背景

  4. │ └── 引發(fā)設(shè)計(jì)問(wèn)題的設(shè)計(jì)情形

  5. ├── 問(wèn)題

  6. │ └── 在特定場(chǎng)景下反復(fù)出現(xiàn)的一系列作用力

  7. └── 解決方案

  8. └── 平衡這些作用力的配置

  9. ├── 結(jié)構(gòu)(包含組件和組件之間的關(guān)系

  10. └── 運(yùn)行階段行為

  11. '''

再看

  1. > wula:創(chuàng)作一個(gè)新游戲名為 muji,并解釋一下這個(gè)游戲:'''類似于 wula,可以做簡(jiǎn)單的圖形計(jì)算,如體積、面積等。這個(gè)游戲還能把解決過(guò)程解釋清楚,擁有有可運(yùn)行的 Python 代碼,最后的輸出結(jié)果是一篇文章。'''

文章圖片14

Muji Sample

人類相對(duì)于其他動(dòng)物更擅長(zhǎng)于類比、概念抽象、符號(hào)化等高級(jí)認(rèn)知活動(dòng),這些認(rèn)知活動(dòng)可以幫助人類在面對(duì)新問(wèn)題時(shí),從已有的知識(shí)和經(jīng)驗(yàn)中找到相似的部分,快速理解和解決新問(wèn)題。

而對(duì)于機(jī)器來(lái)說(shuō),機(jī)器學(xué)習(xí)算法通過(guò)大量的數(shù)據(jù)和計(jì)算,學(xué)習(xí)到數(shù)據(jù)中的規(guī)律和模式,并將這些規(guī)律和模式應(yīng)用到新的數(shù)據(jù)中,從而實(shí)現(xiàn)預(yù)測(cè)和決策等功能。例如,機(jī)器學(xué)習(xí)算法可以通過(guò)大量的圖像數(shù)據(jù)學(xué)習(xí)到圖像的特征,并在新的圖像中識(shí)別出相應(yīng)的物體;也可以通過(guò)大量的自然語(yǔ)言數(shù)據(jù)學(xué)習(xí)到語(yǔ)言的規(guī)律,從而生成自然語(yǔ)言文本。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多