中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

重慶做商城網(wǎng)站網(wǎng)絡(luò)營銷推廣計劃書

重慶做商城網(wǎng)站,網(wǎng)絡(luò)營銷推廣計劃書,網(wǎng)站如何做微信支付寶支付寶支付接口,一般做網(wǎng)站是用什么程序做的盡管大語言模型已經(jīng)呈現(xiàn)出了強大的威力,但是如何讓它完美地完成一個大的問題,仍然是一個巨大的挑戰(zhàn)。 需要精心地給予大模型許多的提示(Prompt)。對于一個復(fù)雜的應(yīng)用場景,編寫一套完整的,準(zhǔn)確無誤的提示&am…

????????盡管大語言模型已經(jīng)呈現(xiàn)出了強大的威力,但是如何讓它完美地完成一個大的問題,仍然是一個巨大的挑戰(zhàn)。

? ? 需要精心地給予大模型許多的提示(Prompt)。對于一個復(fù)雜的應(yīng)用場景,編寫一套完整的,準(zhǔn)確無誤的提示,并不容易。另一方面,盡管大模型已經(jīng)具備了一些拆解問題,一步步解接的能力。但是就目前而言,這種分析,推理能力還是不能能準(zhǔn)確地做出推理

? 另一方面,對于大多數(shù)特定的問題而言,人類本身具有了成熟,有效的分析問題,解決問題的能力。我們出生起,就不斷地學(xué)習(xí)如何一步步地拆解問題,通過步步地解決小問題,最終解決一個復(fù)雜的問題。

? 許多的研究者提出了各種提示大模型拆解問題的方法。例如? 計劃和解題(Plan-and-Solve Prompting),反思 ReAct 等等。但是不同的問題,有不同的解決思路。我們從小在學(xué)校里解決應(yīng)用題時,老師總是教我們解題思路。對于各種問題,大模型需要能夠動態(tài)地做出解題方法。使用靜態(tài)的提示來實現(xiàn)動態(tài)地計劃是十分復(fù)雜,。在筆者看來,使用計算機語言來動態(tài)規(guī)劃大模型解決問題的思路更加有效。

從實例談起

? ? ?我們計劃編寫一個增強個人記憶力的大模型應(yīng)用,該項目叫做 回憶(Recall)。在這個應(yīng)用中,使用者要不斷地告訴大模型一些關(guān)于個人的信息。例如:

  • ? ? ? 個人簡歷:包括姓名,性別,出身日期,出生地,家庭成員,教育和工作簡歷等等。
  • ? ? ? 個人愛好:自己的愛好,包括飲食,業(yè)余愛好,購物的品牌等等
  • ? ? ?個人活動:比如一些主要的活動,比如逛街,朋友聚會,就醫(yī)等等活動。
  • ? ? ? 備忘錄:一些需要備忘的事情,例如 我的衣服放在哪里了。每天吃什么藥等等。

? ? ? 這個項目貌似比較簡單,與windows AI PC 中的Recall ,開源項目Rewind 有相似之處。按照網(wǎng)絡(luò)上的各種大模型架構(gòu)的方法,主要使用如下方式

  • ? ? ?使用大模型的Memory 功能實現(xiàn)對話的記憶
  • ? ? 將用戶的個人信息,愛好,個人活動寫入Vector 數(shù)據(jù)庫中,使用RAG 技術(shù)在會話過程中讀取相關(guān)信息
  • ? ? 構(gòu)建ReAct Agent 進行 Action -Throught-Observation 的過程
  • ? ?調(diào)用合適的工具(Agent Tools)

?vector 數(shù)據(jù)庫 可以使用內(nèi)存Memory? 也可以使用永久VectorDB ,例如Croma VectorDB。

大模型我們測試了下列幾種:

  1. openai
  2. 本地 llama-3
  3. 文心一言
  4. kimi
  5. 零一萬物

但是結(jié)果并不令人滿意,主要表現(xiàn)在如下幾個方面

  • ?并非所有的大模型都支持 Function Call,Agent,Memory ,RAG等功能的API。?
  • Vector 數(shù)據(jù)庫要使用Embedding 功能實現(xiàn)text -splite .耗費的時間很長。
  • Momory 功能是將輸入和回答都一股腦地存儲了起來。會造成某些噪聲混亂。
  • 簡單的提問查詢Vector數(shù)據(jù)庫時,無法精切地匹配數(shù)據(jù)庫的內(nèi)容。
  • ReAct 的效果并不理想,有時后會亂想,反復(fù)地循環(huán)。明明得到了結(jié)果,卻無法停止對話。
  • 延時長,耗費的token 多。

?實驗下來,openai 效果最好,其它國內(nèi)的大模型或多多少地出現(xiàn)問題。

觀點

????????美國著名的人工智能專家馬文·明斯基在《心智社會》一書中提出,人類的思維是由無數(shù)的智能體組成的社會。面對復(fù)雜的問題,會由不同的智能體來完成思考,而且它指出,復(fù)雜的智能體是由更小的智能構(gòu)成。智能體最終是非智能的元素組成的。 這種論述體現(xiàn)了《原子論》的哲學(xué)思想,它與工程設(shè)計的模塊化思想同出一轍。

????????AI 應(yīng)用中思維能夠使用多個智能體實現(xiàn)。智能體是由更多小的智能體構(gòu)成。我們能夠利用智能體分層思想構(gòu)建智能體。? ? ? ?

從這一觀點出發(fā),我們對大模型應(yīng)用進行了新的思考。

  • 讓大模型分層思考

? ? ? ? ?將復(fù)雜的問題分解為若干的小問題,通過解決小問題,最后解決大問題。這種方式具有如下的優(yōu)點:

? ??????????????-大模型回答簡單的問題,有利于保證其確定性

? ? ? ? ????????-使提示工程變得簡單

? ? ? ? ? ? ? ? ? ? 提示也被分解成小提示,小問題的提示更具有針對性

? ? ? ? ? ? ? ? -不依賴具體的大模型API

? ? ? ? ? ? ? ? ? ?簡單地使用chat 就可以。?

???????????????? -有利于采納本地小模型與遠(yuǎn)程大模型相結(jié)合? ,降低使用大模型的成本,提高響應(yīng)時間

  • ? ?使用程序設(shè)計的方法動態(tài)地編排大模型的思維過程

? ? ? ? ? 對于特定的一類問題,可以實現(xiàn)根據(jù)人類的經(jīng)驗,制定一套完整的思維過程。這樣做的優(yōu)點:

? ? ? ? ? ? ? ? -融入了人類的思維方式,更具有針對性。推理的速度更快

? ? ? ? ? ? ? ? -有利于對大模型的回答做確定性判斷

? ? ? ? ? ? ? ? -有利于對大模型的回答做確定性驗證

動態(tài)思維的流程

我們繼續(xù)使用上面的實例來討論動態(tài)思維流程。

  1. 判斷語句是陳述句,還是詢問句
  2. 如果是陳述句,內(nèi)容要存儲到數(shù)據(jù)庫中,如果是提問句,那么要從數(shù)據(jù)庫中獲取相關(guān)的信息
  3. 為了對信息做分類,要判斷陳述或者提問的內(nèi)容的分類。
  4. 如果是其它類型的提問,就直接有大模型回答

思維流程的編排方法?

????????可以用程序或者圖形方式來編排大模型的思維流程,在我們的實驗中,采取了工業(yè)控制領(lǐng)域中功能塊的編排方法。

????????這里的功能塊本質(zhì)上實現(xiàn)了一個智能體。? 如果功能塊中使用了AI ,可以成為智能體功能塊,而不包含AI模型的功能塊可以稱為普通功能塊。

? ? ? 基于我們的經(jīng)驗,決定借用IEC61499 事件功能塊的概念和方法,這樣做的另一個意圖是實現(xiàn)語言功能塊和IEC61499 功能塊的融合。

IEC61499 的基本概念包括:

  • 基本功能塊
  • 復(fù)合功能塊
  • 功能塊網(wǎng)絡(luò)

? ? ? ?IEC61499 功能塊由事件輸入,事件輸出,數(shù)據(jù)輸入和數(shù)據(jù)輸出。事件用來控制程序執(zhí)行?的流程,數(shù)據(jù)用來表示數(shù)據(jù)的流動。

?

大語言功能塊內(nèi)部由大語言模型來回答一個特定的問題。?其內(nèi)部結(jié)構(gòu)如下:

大模型思維流程

? ? ? ?大語言思維流程由大語言功能塊網(wǎng)絡(luò)組成,通過功能塊網(wǎng)絡(luò)運行時解釋執(zhí)行。功能塊共享環(huán)境信息,環(huán)境信息包含了基本信息(對話者的姓名, 今天幾號,星期幾等等)和功能塊通過數(shù)據(jù)庫中提取的信息。一個功能塊系統(tǒng)的結(jié)構(gòu)如下

實驗平臺

? ?為了實驗langFunctionblock 的想法,我們簡單地搭建列一個實驗平臺:

  • 基于Nodejs/Javascript
  • 基于langchain庫
  • 一個Javascript 實現(xiàn)的功能塊運行時
  • 一組基于大模型的功能塊
  • 不依賴大模型的API
App架構(gòu)

實例的功能塊網(wǎng)絡(luò)?

功能塊

InputMessage

輸入用戶提問的功能塊,當(dāng)用戶輸入消息時。該功能塊產(chǎn)生:

  • Output 事件
  • OutMessage 數(shù)據(jù)

應(yīng)用程序通過 WriteData 和Execution? 調(diào)用該功能塊。

設(shè)置InputMessage和OutMessage功能塊的主要目的是使功能塊具有一個統(tǒng)一的入口和出口。

Check

主要判斷輸入語句是詢問句還是陳述句。

Memory

該功能塊判斷陳數(shù)句內(nèi)容的類型:個人信息,事件,備忘錄,然后將語句的類型,語句和時間標(biāo)簽存儲到MongoDB 數(shù)據(jù)庫中。

Recall

該功能塊判斷陳數(shù)句內(nèi)容的類型:個人信息,事件,備忘錄,然后從數(shù)據(jù)庫中讀出相應(yīng)類型的數(shù)據(jù),添加在環(huán)境信息中。

Basic

? 這是一個基本的智能體功能塊,將InMessage 結(jié)合環(huán)境信息一起構(gòu)成Prompt 詢問大模型,回答輸出到OutMessage

OutMessage

?該模塊將信息返回給對話者。

?工具的使用

?????????零一萬物大模型目前還不支持Agent Tools,FunctionCall 的API ,但是通過我們功能塊的方法也能夠?qū)崿F(xiàn)工具的調(diào)用。下面是調(diào)用打開空調(diào)和電燈的功能塊網(wǎng)絡(luò)。

再一次說明了基于功能塊網(wǎng)絡(luò)方式的動態(tài)思維編排方法的靈活性。?

程序的實例

Check功能塊

class Check {constructor(Parameters) {this.Name = Parameters.Name;this.Type = "CheckType";this.model = Parameters.Modelthis.ModelType = Parameters.ModelType}async Executive(runtime, EventType) {if (EventType == "Invoke") {console.log("Invoke:" + this.ModelType)console.log(this.InMessage)const Prefix = `請將下列語句分為下列幾類:詢問,陳述,請求。`const Suffix = `。請以JSON形式輸出語句的類型 :JSON的格式為:{class:"語句的類型"}如果無法判斷語句的類型,直接輸出 {class:"其它"}`const Prompt = Prefix + this.InMessage + Suffixconst completion = await this.model.chat.completions.create({messages: [{"role": "user","content": Prompt,}],model: this.ModelType,});const Content = await completion.choices[0].message.contentconst JSonContent = JSON.parse(Content.replace("```json\n", "").replace("```", ""))console.log(JSonContent.class)if (JSonContent.class == "詢問") {this.OutMessage = this.InMessageawait runtime.WriteOutputData({ FBName: this.Name, DataName: "OutMessage", Value: this.OutMessage })await runtime.EventNotify({ FBName: this.Name, EventName: "Ask" })}else if (JSonContent.class == "陳述") {this.OutMessage = this.InMessageawait runtime.WriteOutputData({ FBName: this.Name, DataName: "OutMessage", Value: this.OutMessage })await runtime.EventNotify({ FBName: this.Name, EventName: "Statment" })} else if (JSonContent.class == "請求") {this.OutMessage = this.InMessage;await runtime.WriteOutputData({ FBName: this.Name, DataName: "OutMessage", Value: this.OutMessage })await runtime.EventNotify({ FBName: this.Name, EventName: "Request" })}else {this.OutMessage = this.InMessageawait runtime.WriteOutputData({ FBName: this.Name, DataName: "OutMessage", Value: this.OutMessage })await runtime.EventNotify({ FBName: this.Name, EventName: "Ask" })}}}async WriteData(Name, Value) {if (Name == "InMessage") {this.InMessage = Value;}}async ReadData(Name) {if (Name == "OutMessage")return this.OutputMessage;}
}

主程序

import express from 'express';
import path from 'path'
import url from 'url'
//import fs from 'fs'
import OpenAI from 'openai';
import {RunTime} from "./RunTime/RunTime.mjs"
const API_BASE = "https://api.lingyiwanwu.com/v1"
const API_KEY = "xxxxxxxxxxxxxxxxxxx"
const openai = new OpenAI({apiKey: API_KEY,baseURL:API_BASE,model: "yi-large",temperature: 0});const router = express.Router();const app = express();const __filename = url.fileURLToPath(import.meta.url);const __dirname = path.dirname(__filename);
// var upload = multer({ dest: './documents' })app.use(express.static(path.join(__dirname, 'public')));app.use(express.json())router.get('/index', function (req, res) {res.sendFile(path.join(__dirname + '/views/indexB.html'));});router.post('/Request', async function (req, res) {Request = req.body;console.log(Request)const Method = Request.Method;const Message = Request.Message;console.log(Method);console.log(Message);const result = await RunFBNetwork(Message)res.send(JSON.stringify({Method: "SendMessage",Message: result}))
})
app.use('/', router);//RunTime Initialize 
console.log("llm FunctionBlock Runtime Ver 1.0")
const runtime=new RunTime();
runtime.InitializeFunctionBlickList();
runtime.LoadFBNetwork(openai); 
app.listen(process.env.port || 3000);
console.log('Running at Port 3000');async function RunFBNetwork(InputMessage){console.log("llm FunctionBlock Runtime Ver 1.0")//RunTime Initialize runtime.InitializeMongoDB()runtime.InitializeEnvironment()await runtime.WriteInputData({FBName:"InMessage",DataName:"InMessage",Value:InputMessage})await runtime.Executive({FBName:"InMessage",EventType:"Request"})//Running....await runtime.run()const Output=await runtime.ReadFBData({FBName:"OutMessage",DataName:"OutMessage"})console.log(Output)return (Output)
}

結(jié)果

????????經(jīng)過我們的初步測試,結(jié)果要比采用大模型的memory,RAG,ReAct Agent等方式要好。主要表現(xiàn)為準(zhǔn)確率高,速度快。

  • ? 將復(fù)雜的問題拆解成為小問題更有效
  • 對于特定的應(yīng)用場景,能夠利用人類分析問題的經(jīng)驗,動態(tài)地編寫思維流程要比簡單的將復(fù)雜任務(wù)交給大模型更好。效果遠(yuǎn)遠(yuǎn)超過ReAct Agent
  • 功能塊及其功能塊網(wǎng)絡(luò)適合大模型思維流程的編排。

?感興趣的讀者可以進一步共同探討。

http://www.risenshineclean.com/news/52417.html

相關(guān)文章:

  • 做文案策劃需要看什么網(wǎng)站地推團隊如何收費
  • 南京做企業(yè)網(wǎng)站博客營銷案例
  • 用什么軟件開發(fā)手機appseo百度關(guān)鍵詞優(yōu)化軟件
  • 有域名沒有服務(wù)器怎么做網(wǎng)站seo優(yōu)化是什么職業(yè)
  • 如何做日本語網(wǎng)站百度品牌廣告
  • 網(wǎng)站換模板要怎么做app推廣賺傭金
  • 網(wǎng)站建設(shè)流程簡圖獨立站推廣
  • 馬鞍山做網(wǎng)站公司排名廣州seo公司品牌
  • 做視頻點播網(wǎng)站如何賺錢seo云優(yōu)化方法
  • 科技未來網(wǎng)站建設(shè)東莞百度快照優(yōu)化排名
  • 中國和城鄉(xiāng)建設(shè)部網(wǎng)站首頁提高百度搜索排名工具
  • 蓬萊市住房和規(guī)劃建設(shè)管理局網(wǎng)站北京關(guān)鍵詞快速排名
  • 西昌市規(guī)劃建設(shè)局網(wǎng)站怎樣在百度上發(fā)布作品
  • 實驗教學(xué)網(wǎng)站的建設(shè)研究短視頻seo排名加盟
  • 東莞網(wǎng)站建設(shè)aj工作室搜索引擎營銷的主要方法
  • 聊城網(wǎng)站建設(shè)方案長沙網(wǎng)站外包公司
  • 博彩網(wǎng)站做代理賺錢嗎廣州市口碑seo推廣
  • 設(shè)計公司企業(yè)定位桔子seo網(wǎng)
  • 海綿寶寶網(wǎng)頁設(shè)計素材南昌seo排名外包
  • 百科網(wǎng)站怎么做深圳網(wǎng)站優(yōu)化
  • 正規(guī)網(wǎng)站建設(shè)代理網(wǎng)店運營工作內(nèi)容
  • ios開發(fā)網(wǎng)站app全媒體運營師培訓(xùn)機構(gòu)
  • 上海網(wǎng)絡(luò)企業(yè)優(yōu)化公司seo是什么職業(yè)
  • azure做網(wǎng)站營銷型企業(yè)網(wǎng)站案例
  • 做的網(wǎng)站怎么發(fā)布武漢seo優(yōu)化公司
  • 電影網(wǎng)站加盟可以做么整站營銷系統(tǒng)
  • 企業(yè)建站公司哪里找最新的新聞 今天
  • 磁盤陣列做網(wǎng)站手機網(wǎng)站建設(shè)公司
  • wordpress隱藏地址插件西安seo霸屏
  • 自適應(yīng)網(wǎng)站什么意思網(wǎng)絡(luò)營銷策劃ppt