国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ChatGPT新突破:打造自己的智能機(jī)器人控制系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了ChatGPT新突破:打造自己的智能機(jī)器人控制系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

  • ?? 作者簡(jiǎn)介:大家好,我是Zeeland,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。
  • ?? CSDN主頁(yè):Zeeland??
  • ?? 我的博客:Zeeland
  • ?? Github主頁(yè): Undertone0809 (Zeeland) (github.com)
  • ?? 支持我:點(diǎn)贊??+收藏??+留言??
  • ?? 系列專欄:Python系列專欄 ??
  • ??介紹:The mixture of software dev+Iot+ml+anything??

本人的Python開源項(xiàng)目

  • 【promptulate】一個(gè)強(qiáng)大的大語(yǔ)言模型自動(dòng)化與應(yīng)用開發(fā)框架,支持連續(xù)對(duì)話、角色預(yù)設(shè)、對(duì)話存儲(chǔ)、工具擴(kuò)展等功能,可以無(wú)需代理直接訪問(wèn),開箱即用。 通過(guò) promptulate,你可以輕松構(gòu)建起屬于自己的GPT應(yīng)用程序
  • 【cushy-storage】一個(gè)基于磁盤緩存的ORM框架,可以輕松地進(jìn)行數(shù)據(jù)和對(duì)象存儲(chǔ)
  • 【cushy-serial】A lightweight python serial library. You can create a serial program easily.
  • 【cushy-socket】A lightweight python socket library. You can create a TCP/UDP connection easily.
  • 【broadcast-service】一個(gè)強(qiáng)大的Python發(fā)布訂閱者框架,支持同步異步、定時(shí)任務(wù)、主題管理等功能
  • 一個(gè)markdown圖片鏈接轉(zhuǎn)換器,你可以輕松地將web鏈接的圖片地址轉(zhuǎn)換成本地地址或指定圖床的地址
  • event: 一個(gè)面向大學(xué)生的賽事組隊(duì)交流分享平臺(tái)

本文節(jié)選自筆者博客: https://www.blog.zeeland.cn/archives/1029hsadagpt

簡(jiǎn)介

谷歌機(jī)器人聯(lián)合Everyday機(jī)器人研發(fā)的新的語(yǔ)言處理模型SayCan,該模型能夠更好地理解語(yǔ)言指令并給出回答,并且能結(jié)合當(dāng)前物理環(huán)境評(píng)估每個(gè)回答的真正實(shí)現(xiàn)可能性,從而讓機(jī)器人更好地幫助用戶完成任務(wù)。SayCan模型還能夠提取大型語(yǔ)言模型中的結(jié)果,進(jìn)行以語(yǔ)言為條件的價(jià)值函數(shù)的學(xué)習(xí)和訓(xùn)練,并采用強(qiáng)化學(xué)習(xí)方法。實(shí)驗(yàn)表明,SayCan模型的規(guī)劃成功率為84%,執(zhí)行成功率為74%,比其他模型更好地將語(yǔ)言任務(wù)轉(zhuǎn)化為機(jī)器人行為。

自谷歌提出SayCan框架以來(lái),大語(yǔ)言模型賦能機(jī)器人對(duì)復(fù)雜任務(wù)的指令解釋成為熱門研究。人對(duì)于機(jī)器人的需求不再局限于我說(shuō)你做,而是希望進(jìn)一步對(duì)潛在需求挖掘的的語(yǔ)義理解和任務(wù)執(zhí)行。以ChatGPT為代表的技術(shù)出現(xiàn)推動(dòng)了這一技術(shù)的演進(jìn),而RoboSDK和ROS針對(duì)機(jī)器人制定的面向云、機(jī)器人對(duì)象的統(tǒng)一API可以滿足對(duì)異構(gòu)設(shè)備的數(shù)據(jù)采集和任務(wù)執(zhí)行。

本文嘗試構(gòu)建一種思路,以prompt technique來(lái)實(shí)現(xiàn)Robo特定的功能,如通過(guò)用戶輸入來(lái)形成特定的信息,構(gòu)建特定指令等。下面,本文將從技術(shù)背景、設(shè)計(jì)思路上描述如何構(gòu)建一個(gè)可以用ChatGPT控制的機(jī)器人。

功能框架

一個(gè)可以用LLM來(lái)控制的機(jī)器人需要有什么樣的功能?

  1. 以復(fù)合機(jī)器人在室內(nèi)或室外的導(dǎo)航和抓取任務(wù)為測(cè)試場(chǎng)景,根據(jù)給出的指令(例如:你去前面那輛比亞迪看一下,是否有落下什么重要的東西。),結(jié)合LLM(如chatgpt),輸出機(jī)器人的感知、規(guī)劃與控制等算法。
  2. 完成該過(guò)程在仿真環(huán)境中的閉環(huán)驗(yàn)證。
  3. 可以部署在實(shí)地的應(yīng)用場(chǎng)景中,通過(guò)ROS或者RoboSDK去開發(fā)基于LLM的機(jī)器人框架。

當(dāng)然,這樣的機(jī)器人可以有很多的可能性,可以通過(guò)LLM來(lái)控制機(jī)器人,那么首先這些機(jī)器人就需要開放對(duì)應(yīng)的控制權(quán)限,如智能車控制權(quán)限與對(duì)應(yīng)API,LLM通過(guò)調(diào)用這些API從而達(dá)到控制機(jī)器人的目的,那么,如何使用LLM控制機(jī)器人來(lái)使其執(zhí)行特定的指令呢?

一個(gè)簡(jiǎn)單的思路實(shí)現(xiàn)

對(duì)于上面的問(wèn)題,一個(gè)簡(jiǎn)單的流程是,LLM在接收到來(lái)自用戶發(fā)送的需求指令之后,LLM需要在內(nèi)部拆解命令,下面是一個(gè)簡(jiǎn)單的示例。

用戶發(fā)送“請(qǐng)你到廚房幫我拿我的水杯過(guò)來(lái)”這個(gè)指令,LLM來(lái)接收到這個(gè)指令之后,內(nèi)部應(yīng)該先生成一系列的計(jì)劃,如“我應(yīng)該先找到廚房的位置”;“然后我需要移動(dòng)到廚房的位置”;“我需要在廚房中找到水杯的位置”;“我需要移動(dòng)到水杯旁邊,用我的機(jī)械臂來(lái)夾取水杯”;“我需要返回原來(lái)出發(fā)的地方,并把水杯交給用戶?!?/p>

對(duì)于每一個(gè)任務(wù),LLM應(yīng)該對(duì)其構(gòu)建一個(gè)任務(wù)樹,一個(gè)任務(wù)樹的架構(gòu)可能如下所示,一個(gè)任務(wù)在構(gòu)建出來(lái)時(shí)候又可能會(huì)產(chǎn)生子任務(wù),又會(huì)構(gòu)建出一個(gè)子樹。通過(guò)這種機(jī)制,LLM會(huì)在最后任務(wù)成功之后把結(jié)果返回。

對(duì)于第一個(gè)任務(wù),“我應(yīng)該先找到廚房的位置”,LLM需要調(diào)用傳感器的數(shù)據(jù),如激光雷達(dá)、深度相機(jī)等,獲取到廚房的位置,然后使用控制相關(guān)的權(quán)限,讓機(jī)器人移動(dòng)到廚房的位置。

如何讓機(jī)器人進(jìn)行自主導(dǎo)航?

一個(gè)簡(jiǎn)單的思路實(shí)現(xiàn)可以參考Microsoft的PromptCraft-Robotics,PromptCraft-Robotics資料庫(kù)是為人們提供一個(gè)社區(qū),以在機(jī)器人領(lǐng)域測(cè)試和共享大型語(yǔ)言模型(LLMs)有趣的提示示例。此外,PromptCraft-Robotics還提供了一個(gè)示例機(jī)器人模擬器(基于Microsoft AirSim),與ChatGPT集成,讓用戶可以開始使用。

在這個(gè)倉(cāng)庫(kù)中,他們將ChatGPT的功能擴(kuò)展到了機(jī)器人上,并使用語(yǔ)言直觀地控制多平臺(tái),如機(jī)器臂、無(wú)人機(jī)和家庭助手機(jī)器人。

提示LLMs是一門高度經(jīng)驗(yàn)主義的科學(xué)。通過(guò)試錯(cuò),我們建立了一套寫機(jī)器人任務(wù)提示的方法論和設(shè)計(jì)原則:

首先,我們定義一組高級(jí)機(jī)器人 API 或函數(shù)庫(kù)。這個(gè)庫(kù)可以針對(duì)特定的機(jī)器人,并且應(yīng)該映射到來(lái)自機(jī)器人控制堆?;蚋兄獛?kù)的現(xiàn)有低級(jí)實(shí)現(xiàn)。對(duì)于高級(jí) API,使用描述性名稱非常重要,這樣 ChatGPT 就可以推斷它們的行為;

接下來(lái),我們?yōu)?ChatGPT 編寫文本提示,描述任務(wù)目標(biāo),同時(shí)明確指出高級(jí)庫(kù)中可用的函數(shù)。提示還可以包含有關(guān)任務(wù)限制的信息,或者 ChatGPT 應(yīng)如何形成其答案(使用特定的編程語(yǔ)言,使用輔助解析元素);

用戶會(huì)一直留在循環(huán)中,以評(píng)估 ChatGPT 的代碼輸出,可以直接檢查或使用模擬器。如果需要,用戶將使用自然語(yǔ)言向 ChatGPT 提供反饋,以評(píng)估答案的質(zhì)量和安全性。當(dāng)用戶對(duì)解決方案滿意時(shí),最終代碼可以部署到機(jī)器人上。

從下面一個(gè)簡(jiǎn)單的prompt,我們可以了解到其具體是怎么工作的,下面是一個(gè)使用仿真進(jìn)行LLM操控機(jī)器人進(jìn)行室內(nèi)導(dǎo)航的prompt。


Imagine I am a robot equipped with a camera and a depth sensor. I am trying to perform a task, and you should help me by sending me commands. You are only allowed to give me the following commands:

  • turn(angle): turn the robot by a given number of degrees
  • move(distance): moves the robot straight forward by a given distance in meters.

On each step, I will provide you with the objects in the scene as a list of <object name, distance, angle in degrees>. You should reply with only one command at a time.
The distance is in meters, and the direction angle in degrees with respect to the robot’s orientation. Negative angles are to the left and positive angles are to the right. If a command is not valid, I will ignore it and ask you for another command. If there is no relevant information in the scene, use the available commands to explore the environment.

Task: go to the chairs
Objects in the scene: <door, 0.53 m, 22>, <chair, 4.84 m, -21>, <chair, 2.12 m, -24>, <window, 6.74 m, -3>, <window, 7.17 m, 6>, <door, 0.61 m, 18>, <stairs, 1.42 m, 0>
Command:


move(1.5) # Move forward by 1.5 meters to explore the environment. 

Objects in the scene: <seating, 5.05 m, 21>, <chair, 3.93 m, -25>, <window, 4.55 m, 22>, <window, 5.24 m, -4>, <stairs, 3.49 m, 13>, <window, 5.67 m, 7>, <window, 4.37 m, 23>
Command:


turn(-25) # Turn to the left to face the chair that is 3.93 meters away. 

Objects in the scene: <chair, 4.85 m, -14>, <chair, 4.76 m, -9>, <chair, 1.57 m, -23>, <chair, 2.66 m, -24>, <window, 4.96 m, 10>, <window, 4.19 m, 25>
Command:


turn(-10) # Turn to the right to explore the environment further. 

Objects in the scene: <door, 5.07 m, -25>, <chair, 5.36 m, -6>, <table, 2.17 m, -24>, <chair, 5.01 m, -1>, <chair, 1.80 m, -16>, <chair, 3.15 m, -16>, <window, 4.30 m, 19>
Command:


turn(-6) # Turn to the right to face the chair that is 5.36 meters away. 

Objects in the scene: <counter, 1.24 m, -24>, <door, 5.93 m, -17>, <chair, 5.48 m, 1>, <table, 2.60 m, -14>, <chair, 4.92 m, 6>, <chair, 2.02 m, -7>, <chair, 3.53 m, -7>, <chair, 3.16 m, -18>
Command:


turn(1) # Turn to the left to explore the environment further. 

Objects in the scene: <door, 5.07 m, -25>, <chair, 5.36 m, -6>, <table, 2.17 m, -24>, <chair, 5.01 m, -1>, <chair, 1.80 m, -16>, <chair, 3.15 m, -16>, <window, 4.30 m, 19>
Command:


move(5.5) # Move forward towards the chair that is 5.36 meters away. 

Objects in the scene: <chair, 0.96 m, -10>, <chair, 0.99 m, 20>, <chair, 1.77 m, -20>
Command:


move(1) # Move forward to approach the chairs. 

Full Navigation


這里的演示應(yīng)該比較通俗了,我就不直接翻譯了,大概的意思就是給定LLM角色預(yù)設(shè),讓其進(jìn)行特定格式的輸入和輸出,并且每執(zhí)行一步,傳感器監(jiān)測(cè)到的數(shù)據(jù)就會(huì)傳給LLM,其根據(jù)傳感器返回的當(dāng)前位姿信息進(jìn)行進(jìn)一步調(diào)整,規(guī)劃下一步應(yīng)該做什么,通過(guò)這種機(jī)制,LLM操控機(jī)器人移動(dòng)到了椅子旁邊的位置。

當(dāng)然這只是一個(gè)很簡(jiǎn)單的例子,里面還有很多復(fù)雜問(wèn)題丞待解決:

  • 如果使用GPT,返回的結(jié)果的時(shí)效性無(wú)法保證,如何解決GPT指令返回時(shí)間的不確定性問(wèn)題
  • 如果指令更新時(shí)間過(guò)久,兩個(gè)指令之間的中間過(guò)程怎么處理
  • 傳感器部分失效之后的判別機(jī)制怎么處理

總的來(lái)說(shuō),這里只是一個(gè)簡(jiǎn)單地demo演示,如果想要看更多相關(guān)的prompt demo,可以查看https://github.com/microsoft/PromptCraft-Robotics

RoboAgent以及配套R(shí)oboToolKit的構(gòu)建

上面只是一個(gè)簡(jiǎn)單的demo,對(duì)于復(fù)雜任務(wù)的處理,需要更加復(fù)雜的Prompt,而不是簡(jiǎn)單的進(jìn)行室內(nèi)二維導(dǎo)航,正如最開頭介紹的任務(wù)樹,一個(gè)復(fù)雜的任務(wù)需要LLM構(gòu)建一套復(fù)雜的框架去嚴(yán)謹(jǐn)?shù)貓?zhí)行各個(gè)方面的指令,通常來(lái)說(shuō),可以執(zhí)行復(fù)雜任務(wù)的LLM我們叫做Agent。關(guān)于這方面的工作,我們不需要從零開始構(gòu)建一個(gè)這種Agent框架,在LLM蓬勃發(fā)展的過(guò)程中,我們已經(jīng)做了一些工作出來(lái)。

在項(xiàng)目初期,我們可以采用LangChain的能力,用agent + tool的思路來(lái)構(gòu)建一個(gè)具有任務(wù)規(guī)劃、任務(wù)分析、指令生成、任務(wù)執(zhí)行一體的RoboAgent。下面,為了更好地介紹RoboAgent如何可以擁有處理復(fù)雜Robo任務(wù)的能力,我將會(huì)介紹一下LangChain、agent、tool、ReAct等相關(guān)的Prompt technique概念。

技術(shù)背景

LangChain

如果你想構(gòu)建一些復(fù)雜的LLM應(yīng)用,我強(qiáng)烈建議你使用LangChain(雖然有一點(diǎn)私心,本人也是LangChain的開發(fā)者之一),LangChain是一個(gè)強(qiáng)大的框架,旨在幫助開發(fā)人員使用語(yǔ)言模型構(gòu)建端到端的應(yīng)用程序。它提供了一套工具、組件和接口,可簡(jiǎn)化創(chuàng)建由大型語(yǔ)言模型 (LLM) 和聊天模型提供支持的應(yīng)用程序的過(guò)程。LangChain 可以輕松管理與語(yǔ)言模型的交互,將多個(gè)組件鏈接在一起,并集成額外的資源,例如 API 和數(shù)據(jù)庫(kù)。

ReAct

paper: https://arxiv.org/pdf/2210.03629.pdf

ReAct是Reasoning和Acting的縮寫。這個(gè)框架的基本思路是給一個(gè)Prompt,這個(gè)Prompt將Question拆解成幾個(gè)步驟。分別是:

  • Tought: 面對(duì)這個(gè) Question 我下一步應(yīng)該做什么。
  • Action:執(zhí)行某個(gè)動(dòng)作。在 ReAct 里有三種動(dòng)作,第一個(gè)是 Search[entity] 如果存在對(duì)應(yīng)實(shí)體的維基頁(yè)面,則返回前5句話,否則使用維基百科搜索引擎搜索前5個(gè)類似的實(shí)體;第二個(gè)是 Look[sring] 它將返回包含該字符串的頁(yè)面中的下一句話,模擬瀏覽器上的 Ctrl+F 功能。第三個(gè)是 Finish[answer] 它將使用答案完成當(dāng)前任務(wù)。
  • Observation:觀察到的外部工具給到的結(jié)果,將作為新的提示輸入給 ChatGPT。

下面是一些ReAct的Prompt demo:

Question: What is the elevation range for the area that the eastern sector of the
Colorado orogeny extends into?
Thought 1: I need to search Colorado orogeny, find the area that the eastern sector
of the Colorado orogeny extends into, then find the elevation range of the
area.
Action 1: Search[Colorado orogeny]
Observation 1: The Colorado orogeny was an episode of mountain building (an orogeny) in
Colorado and surrounding areas.
Thought 2: It does not mention the eastern sector. So I need to look up eastern
sector.
Action 2: Lookup[eastern sector]
Observation 2: (Result 1 / 1) The eastern sector extends into the High Plains and is called
the Central Plains orogeny.
Thought 3: The eastern sector of Colorado orogeny extends into the High Plains. So I
need to search High Plains and find its elevation range.
Action 3: Search[High Plains]
Observation 3: High Plains refers to one of two distinct land regions
Thought 4: I need to instead search High Plains (United States).
Action 4: Search[High Plains (United States)]
Observation 4: The High Plains are a subregion of the Great Plains. From east to west, the
High Plains rise in elevation from around 1,800 to 7,000 ft (550 to 2,130
m).[3]
Thought 5: High Plains rise in elevation from around 1,800 to 7,000 ft, so the answer
is 1,800 to 7,000 ft.
Action 5: Finish[1,800 to 7,000 ft]

Question: Musician and satirist Allie Goertz wrote a song about the "The Simpsons"
character Milhouse, who Matt Groening named after who?
Thought 1: The question simplifies to "The Simpsons" character Milhouse is named after
who. I only need to search Milhouse and find who it is named after.
Action 1: Search[Milhouse]
Observation 1: Milhouse Mussolini Van Houten is a recurring character in the Fox animated
television series The Simpsons voiced by Pamela Hayden and created by Matt
Groening.
Thought 2: The paragraph does not tell who Milhouse is named after, maybe I can look up
"named after".
Action 2: Lookup[named after]
Observation 2: (Result 1 / 1) Milhouse was named after U.S. president Richard Nixon, whose
middle name was Milhous.
Thought 3: Milhouse was named after U.S. president Richard Nixon, so the answer is
Richard Nixon.
Action 3: Finish[Richard Nixon]

Question: Which documentary is about Finnish rock groups, Adam Clayton Powell or The
Saimaa Gesture?
Thought 1: I need to search Adam Clayton Powell and The Saimaa Gesture, and find which
documentary is about Finnish rock groups.
Action 1: Search[Adam Clayton Powell]
Observation 1 Could not find [Adam Clayton Powell]. Similar: [’Adam Clayton Powell
III’, ’Seventh Avenue (Manhattan)’, ’Adam Clayton Powell Jr. State Office
Building’, ’Isabel Washington Powell’, ’Adam Powell’, ’Adam Clayton Powell
(film)’, ’Giancarlo Esposito’].
Thought 2: To find the documentary, I can search Adam Clayton Powell (film).
Action 2: Search[Adam Clayton Powell (film)]
Observation 2: Adam Clayton Powell is a 1989 American documentary film directed by
Richard Kilberg. The film is about the rise and fall of influential
African-American politician Adam Clayton Powell Jr.[3][4] It was later aired
as part of the PBS series The American Experience.
Thought 3: Adam Clayton Powell (film) is a documentary about an African-American
politician, not Finnish rock groups. So the documentary about Finnish rock
groups must instead be The Saimaa Gesture.
Action 3: Finish[The Saimaa Gesture]

Question: What profession does Nicholas Ray and Elia Kazan have in common?
Thought 1: I need to search Nicholas Ray and Elia Kazan, find their professions, then
find the profession they have in common.
Action 1: Search[Nicholas Ray]
Observation 1: Nicholas Ray (born Raymond Nicholas Kienzle Jr., August 7, 1911 - June 16,
1979) was an American film director, screenwriter, and actor best known for
the 1955 film Rebel Without a Cause.
Thought 2: Professions of Nicholas Ray are director, screenwriter, and actor. I need
to search Elia Kazan next and find his professions.
Action 2: Search[Elia Kazan]
Observation 2: Elia Kazan was an American film and theatre director, producer, screenwriter
and actor.
Thought 3: Professions of Elia Kazan are director, producer, screenwriter, and actor.
So profession Nicholas Ray and Elia Kazan have in common is director,
screenwriter, and actor.
Action 3: Finish[director, screenwriter, actor]

其中,前面部分屬于少樣本學(xué)習(xí)中的示例,目的是教會(huì) ChatGPT 如何使用工具。最后一行的 Question 就是我們要問(wèn) ChatGPT 的問(wèn)題。對(duì)于這個(gè)問(wèn)題,ChatGPT 將使用外部工具解答。具體的結(jié)果如下:

Question: Author David Chanoff has collaborated with a U.S. Navy admiral who served as the ambassador to the United Kingdom under which President?Thought 1: I need to search David Chanoff and the U.S. Navy admiral, find the ambassador to the United Kingdom, then find the President they served under.
Action 1: Search[David Chanoff]
Observation 1: David Chanoff is an American author and journalist. He is the co-author of
several books, including Inside the Mirage: America's Fragile Partnership
with Saudi Arabia (2004) and The Game Player: Confessions of the CIA's
Original Political Operative (1989).
Thought 2: I need to search the U.S. Navy admiral David Chanoff collaborated with.
Action 2: Search[U.S. Navy admiral]
Observation 2: Admiral Charles R. Larson was a United States Navy four-star admiral who
served as the United States Ambassador to the United Kingdom from 1998 to
2001.
Thought 3: Admiral Charles R. Larson served as the United States Ambassador to the
United Kingdom from 1998 to 2001. So the President they served under is
Bill Clinton.
Action 3: Finish[Bill Clinton]

其中,前面部分屬于少樣本學(xué)習(xí)中的示例,目的是教會(huì) ChatGPT 如何使用工具。最后一行的 Question 就是我們要問(wèn) ChatGPT 的問(wèn)題。對(duì)于這個(gè)問(wèn)題,ChatGPT 將使用外部工具解答。具體的結(jié)果如下:

Thought 1: I need to search David Chanoff and the U.S. Navy admiral, find the ambassador to the United Kingdom, then find the President they served under.
Action 1: Search[David Chanoff]
Observation 1: David Chanoff is an American author and journalist. He is the co-author of
several books, including Inside the Mirage: America's Fragile Partnership
with Saudi Arabia (2004) and The Game Player: Confessions of the CIA's
Original Political Operative (1989).
Thought 2: I need to search the U.S. Navy admiral David Chanoff collaborated with.
Action 2: Search[U.S. Navy admiral]
Observation 2: Admiral Charles R. Larson was a United States Navy four-star admiral who
served as the United States Ambassador to the United Kingdom from 1998 to
2001.
Thought 3: Admiral Charles R. Larson served as the United States Ambassador to the
United Kingdom from 1998 to 2001. So the President they served under is
Bill Clinton.
Action 3: Finish[Bill Clinton]

當(dāng)然,這里只是對(duì)ReAct的思路做了簡(jiǎn)單的闡述,其背后還有一些更加復(fù)雜的邏輯處理,這里不做詳細(xì)闡述,如消息截?cái)唷rompt等處理不做詳細(xì)闡述。通過(guò)介紹ReAct,我們可以了解到如何處理Prompt來(lái)讓ReAct處理更加復(fù)雜的功能。

Agent與Tool

單單有ReAct的Prompt并不能很好地構(gòu)建起本項(xiàng)目的解決方案,必須有一套完善的框架可以更好地對(duì)ReAct的Prompt進(jìn)行更加細(xì)致化地調(diào)整,告訴ChatGPT可以使用哪些工具,并且怎么使用這些工具,然后框架可以根據(jù)ChatGPT輸出的內(nèi)容準(zhǔn)確地進(jìn)行工具調(diào)用,并使用工具返回的結(jié)果進(jìn)行進(jìn)一步操作。隨著系統(tǒng)的復(fù)雜化,我們需要引入Agent和Tool的概念。

在LLM的Prompt Engineering中,Agent是更高級(jí)的執(zhí)行器,負(fù)責(zé)復(fù)雜任務(wù)的調(diào)度和分發(fā),在用戶向Agent輸入了其要求之后,Agent內(nèi)部會(huì)通過(guò)Action Plan Generation拆解用戶的要求并形成一系列的計(jì)劃,進(jìn)一步地,我們讓Agent內(nèi)部自動(dòng)執(zhí)行每一個(gè)Plan,并通過(guò)ReAct Prompting technique來(lái)讓Agent對(duì)自己Plan的執(zhí)行計(jì)劃的輸出進(jìn)行一個(gè)觀察,對(duì)輸出的結(jié)果得出自己的結(jié)論,并根據(jù)結(jié)論繼續(xù)執(zhí)行任務(wù),直到Agent認(rèn)為其得到了想要的結(jié)果。

我們可以為Agent構(gòu)建相關(guān)的ToolKit,對(duì)于每個(gè)Tool,提供其使用方法和工具名的Prompt,并實(shí)現(xiàn)其對(duì)應(yīng)的功能,如對(duì)于FileWriteTool,我們需要在代碼上實(shí)現(xiàn)寫入文件的功能。有了Tool,我們可以在Agent初始化的時(shí)候注入到SystemMessage中作為系統(tǒng)預(yù)設(shè),從而為Agent提供調(diào)用外部工具的能力。而LangChain已經(jīng)提供了這種框架,可以讓我們更加方便的實(shí)現(xiàn)Agent的能力,并提供了高度的自定義化,我們由此可以對(duì)RoboAgent進(jìn)行深度定制化。

RoboToolKit的構(gòu)建

關(guān)于如何去構(gòu)建Robot查詢語(yǔ)句以及校驗(yàn)等,我們可以參考一下langchain中SqlDatabaseTookKit的思路來(lái)構(gòu)建RoboToolKit,具體來(lái)說(shuō),我們可以將RoboToolKit分為以下幾個(gè)部分。

  • RoboQueryTool Robo指令查詢工具
  • RoboInfoTool Robo當(dāng)前信息查詢工具
  • RoboActionTool Robo行為指令工具,這里或許并不是RoboActionTool,而是某某一些具體的行為實(shí)現(xiàn),如前進(jìn),后退等動(dòng)作.

在將任務(wù)輸入到RoboToolKit之前,我們可能需要任務(wù)進(jìn)行預(yù)處理。具體而言,預(yù)處理過(guò)程包括:將任務(wù)轉(zhuǎn)換為適合RoboToolKit處理的格式,如對(duì)任務(wù)進(jìn)行特征提取,例如提取出具體的行為信息等。

RoboAgent的構(gòu)建

構(gòu)建一個(gè)RoboAgent,RoboAgent可以調(diào)用RoboToolKit的功能,我們需要構(gòu)建一個(gè)合適的Prompt,然后通過(guò)ReAct實(shí)現(xiàn)Zero-shot的復(fù)雜需求理解,讓RoboSDK對(duì)生成的具體指令行為進(jìn)行執(zhí)行,并最終驅(qū)動(dòng)機(jī)器人。

關(guān)于Prompt設(shè)計(jì),遵循1)設(shè)計(jì)模板;2)生成模板;3)篩選最佳模板的流程;關(guān)于Prompt有效性的驗(yàn)證,需要進(jìn)行后續(xù)的測(cè)試進(jìn)行橫向?qū)Ρ取?/p>

構(gòu)建仿真,在仿真中完成閉環(huán)驗(yàn)證

在完成了基本的功能驗(yàn)證之后,我們需要在仿真中完成閉環(huán)驗(yàn)證,進(jìn)一步地,我們需要一步步調(diào)試以優(yōu)化機(jī)器人的表現(xiàn)能力,最終達(dá)到特定的預(yù)期。

在安裝LangChain、RoboSDK等開發(fā)環(huán)境,針對(duì)當(dāng)前構(gòu)建RoboAgent和RoboToolKit的各個(gè)模塊進(jìn)行單元測(cè)試,并且分別對(duì)單機(jī)模式和實(shí)物模式(如果可以的話)下進(jìn)?測(cè)試,得到運(yùn)?效果。

總結(jié)

本文介紹了如何使用LLM的能力構(gòu)建一個(gè)可以控制機(jī)器人的復(fù)雜指令系統(tǒng),并且介紹了當(dāng)前前言的一些研究,如Google的SayCan,MicroSoft的PromptCraft等,最后,本文介紹了一下筆者的構(gòu)建思路。2023是LLM蓬勃發(fā)展的一年,未來(lái),肯定會(huì)有越來(lái)越多LLM+機(jī)器人相關(guān)的項(xiàng)目和研究出來(lái),可以期待一下!筆者也期待可以與志同道合的小伙伴可以一起交流一下。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-476097.html

References

  • github: promptulate
  • github: PromptCraft
  • 谷歌聯(lián)合發(fā)布SayCan模型,讓機(jī)器人做出合理回答,還能“說(shuō)到做到”
  • github: LangChain
  • ChatGPT for Robotics: Design Principles and Model Abilities

到了這里,關(guān)于ChatGPT新突破:打造自己的智能機(jī)器人控制系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API)

    手把手教你打造自己的AI聊天機(jī)器人程序(訊飛星火API)

    案例背景 最近發(fā)現(xiàn)科大的訊飛星火大模型可以申請(qǐng)API試用了,我一直想用chatgpt的API,一是因?yàn)槭召M(fèi)買不起,二是因?yàn)榫W(wǎng)絡(luò)不方便..... 現(xiàn)在有了科大訊飛這個(gè)國(guó)內(nèi)免費(fèi)的,當(dāng)然要試試。 目前訊飛星火可以申請(qǐng)?jiān)囉盟麄兊哪P虯PI,但是只有200w的token上限(一下就能花光),而且

    2024年02月08日
    瀏覽(99)
  • 智能機(jī)器人:打造自動(dòng)化未來(lái)的關(guān)鍵技術(shù)

    智能機(jī)器人:打造自動(dòng)化未來(lái)的關(guān)鍵技術(shù)

    ??歡迎來(lái)到AIGC人工智能專欄~智能機(jī)器人:打造自動(dòng)化未來(lái)的關(guān)鍵技術(shù) ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁(yè):IT·陳寒的博客 ??該系列文章專欄:AIGC人工智能 ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平

    2024年02月09日
    瀏覽(17)
  • 奧比中光:進(jìn)擊具身智能,打造機(jī)器人之眼

    奧比中光:進(jìn)擊具身智能,打造機(jī)器人之眼

    大數(shù)據(jù)產(chǎn)業(yè)創(chuàng)新服務(wù)媒體 ——聚焦數(shù)據(jù)?· 改變商業(yè) 跨過(guò)奇點(diǎn)的生成式人工智能是一個(gè)缸中大腦,只有賦予形體,才能與物理世界產(chǎn)生互動(dòng)。 在5月的ITF世界半導(dǎo)體大會(huì)上,英偉達(dá)創(chuàng)世人兼CEO黃仁勛說(shuō),人工智能的下一波浪潮將是具身智能。 8月中旬,世界機(jī)器人大會(huì)在北京

    2024年02月11日
    瀏覽(22)
  • 機(jī)器人ChatGPT來(lái)了,80億參數(shù)、前OpenAI人員經(jīng)數(shù)年打造

    機(jī)器人ChatGPT來(lái)了,80億參數(shù)、前OpenAI人員經(jīng)數(shù)年打造

    嚴(yán)格地說(shuō),是“拾取與放置任務(wù)”版本的ChatGPT來(lái)了。除了自然語(yǔ)言交流,還能像Sora一樣生成視頻。 有了機(jī)器人基礎(chǔ)模型RFM-1,使用簡(jiǎn)單英語(yǔ)就能指導(dǎo)機(jī)器人完成揀選工作。 機(jī)器人 AI 公司 Covariant CEO Peter Chen ?坐在一個(gè)聊天機(jī)器人面前,界面和 ChatGPT 的很像。 “給我看看你面

    2024年04月08日
    瀏覽(20)
  • 自己制作智能語(yǔ)音機(jī)器人(基于jetson nano)

    自己制作智能語(yǔ)音機(jī)器人(基于jetson nano)

    如上圖,主要采用jetson上編寫python代碼實(shí)現(xiàn),支持離線語(yǔ)音喚醒、在線語(yǔ)音識(shí)別、大模型智能文檔、在線語(yǔ)音合成。 所需硬件如下: jetson nano:linux 科大訊飛麥克風(fēng)硬件:AIUI R818麥克陣列開發(fā)套件+6麥陣列,支持離線語(yǔ)音喚醒 USB免驅(qū)聲卡+喇叭 所需軟件如下: 科大訊飛在線語(yǔ)

    2024年02月15日
    瀏覽(99)
  • 一個(gè)開源免費(fèi)功能強(qiáng)大的Chatgpt Web程序 搭建自己的Chatgpt機(jī)器人

    一個(gè)開源免費(fèi)功能強(qiáng)大的Chatgpt Web程序 搭建自己的Chatgpt機(jī)器人

    ChatGPT Web Midjourney Proxy 是我用過(guò)的幾款ChatGPT Web程序當(dāng)中我覺得最好用的一款,還支持midjourney的圖片生成 ai換臉和很多的ChatGPT store。 ? 原chatgpt web 所有功能 ? chatgpt web 支持自定義api key、base_url ? midjourney 文生圖 ? midjourney 墊圖+文生圖 ? midjourney 圖變 U1到U4 、 V1到V4、重繪

    2024年03月23日
    瀏覽(31)
  • 機(jī)器人和AI大模型的結(jié)合:如何打造智能化的物流和配送解決方案?

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 物流、配送、倉(cāng)儲(chǔ)等是人類社會(huì)中最重要和普遍的需求之一。目前,無(wú)論是在快遞、物流還是客服部門等,機(jī)器人技術(shù)的應(yīng)用越來(lái)越廣泛。隨著人們對(duì)自動(dòng)駕駛、智能包裝、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)等新興技術(shù)的追逐,物流行業(yè)正在發(fā)生翻天覆地的

    2024年02月07日
    瀏覽(92)
  • 【大模型AIGC系列課程 1-2】創(chuàng)建并部署自己的ChatGPT機(jī)器人

    獲取 openai api api-key https://platform.openai.com/account/api-keys 利用 python requests 請(qǐng)求 openai 參考 openai 接口說(shuō)明:https://platform.openai.com/docs/api-reference/chat/create

    2024年02月11日
    瀏覽(37)
  • 在微信小程序中如何支持使用流模式(stream),打造ChatGPT實(shí)時(shí)回復(fù)機(jī)器人,最詳細(xì)講解。

    在微信小程序中如何支持使用流模式(stream),打造ChatGPT實(shí)時(shí)回復(fù)機(jī)器人,最詳細(xì)講解。

    有開發(fā)過(guò)ChatGPT相關(guān)應(yīng)用的都知道,小程序是不支持流式請(qǐng)求的,目前市面上大多數(shù)開發(fā)者的解決方案都是使用websocket來(lái)解決。 還有一部分開發(fā)者是小程序嵌套網(wǎng)頁(yè)解決這個(gè)問(wèn)題,前者對(duì)于我們軟件銷售型的團(tuán)隊(duì)來(lái)說(shuō),交付會(huì)很麻煩,而且問(wèn)題也會(huì)很多,而后者主要是體驗(yàn)不

    2024年02月06日
    瀏覽(20)
  • 使用Java和ChatGPT Api來(lái)創(chuàng)建自己的大模型聊天機(jī)器人

    什么是大模型? 大型語(yǔ)言模型(LLM)是一種深度學(xué)習(xí)模型,它使用大量數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,并能夠通過(guò)提示工程解決各種下游任務(wù)。LLM 的出發(fā)點(diǎn)是建立一個(gè)適用于自然語(yǔ)言處理的基礎(chǔ)模型,通過(guò)預(yù)訓(xùn)練和提示工程的方式實(shí)現(xiàn)模型在新的數(shù)據(jù)分布和任務(wù)上的強(qiáng)大泛化能力。LLM 旨

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包