大模型在人工智能領域的應用正迅速擴展,從最初的提示詞(Prompt)工程到追求通用人工智能(AGI)的宏偉目標,這一旅程充滿了挑戰與創新。本文將探索大模型在實際應用中的進展,以及它們如何為實現AGI鋪平道路。
基于AI大模型的推理功能,結合了RAG(檢索增強生成)、智能體(Agent)、知識庫、向量數據庫、知識圖譜等先進技術,我們向實現真正的AGI(通用人工智能)邁出了重要步伐。
為了方便大家理解,將AI大模型視作類比人類大腦的存在,我們與之交互,仿佛是在與一個能夠理解并使用人類語言的智能體溝通。這樣的AI大模型能夠接收信息、生成回應,并且提供答案。然而,就像人類也會犯錯一樣,AI大模型提供的答案也可能不完全準確。下面分別對提示詞工程,RAG,AI Agent, Fine-tuning,Function calling ,知識庫,知識圖譜等應用進行詳細介紹。
一、提示詞工程(Prompt Engineering)
提示詞工程涉及設計和使用特定的提示詞或問題構造來引導語言模型生成期望的輸出或執行特定的任務。提示詞就像是給AI的一把鑰匙,用來開啟特定知識寶庫的大門。
Prompt = 角色 + 任務 + 要求 + 細節【步驟拆解、范例說明,技巧點撥等】
?
提示詞看起來很簡單,給出一句話,大模型就會給出問題響應,但要想大模型精準回復問題,是自己想要的答案,還需要有結構化的提示詞知識。
1.1 結構化Prompt
結構化Prompt是一種預定義的輸入格式,它指導AI對話系統以特定的方式理解和響應用戶的查詢。與傳統的自由形式的Prompt相比,結構化Prompt通過提供清晰的指令和格式要求,幫助AI更準確地捕捉用戶的意圖。
1.2 結構化Prompt的重要性
1.提高理解力:結構化Prompt通過明確的指令幫助AI更好地理解用戶的查詢意圖。
2.增強一致性:它們確保了對話的一致性,因為AI會以相同的方式處理類似的查詢。
3.提升效率:結構化的數據更容易被AI處理,從而提高了對話系統的整體效率。
4.減少歧義:它們減少了用戶的輸入歧義,降低了AI誤解用戶意圖的可能性。
1.3 如何設計結構化Prompt
1.明確目標:在設計Prompt之前,明確你希望AI執行的任務或回答的問題類型。
2.使用清晰的語法:確保Prompt使用簡單、明確的語法,避免模糊或復雜的句子結構。
3.包含關鍵信息:確保Prompt包含了完成任務所需的所有關鍵信息。
4.測試和迭代:設計完成后,通過測試來驗證Prompt的有效性,并根據反饋進行迭代。
1.4 構建結構化Prompt的要素
結構化Prompt涉及多個關鍵部分:
1.角色定義(# Role):明確AI角色,增強特定領域的信息輸出。
2.作者信息(## Profile):包括作者、版本和描述,增加信息的可信度。
3.目標設定(## Goals):一句話明確Prompt的目的。
4.限制條件(## Constrains):幫助AI“剪枝”,避免無效的信息分支。
5.技能描述(## Skills):強化AI在特定領域的知識和能力。
6.工作流程(## Workflow):指導AI如何交流和輸出信息。
7.初始化對話(# Initialization):開始時的對話,重申關注的重點。
?
二、RAG與知識庫
RAG即Retrieval-Augmented Generation,是一種結合檢索和生成技術的模型。它通過引用外部知識庫的信息來生成答案或內容,具有較強的可解釋性和定制能力,適用于問答系統、文檔生成、智能助手等多個自然語言處理任務中。RAG模型的優勢在于通用性強、可實現即時的知識更新,以及通過端到端評估方法提供更高效和精準的信息服務。
為什么要用 RAG,因為大模型(LLM)的知識存在固有缺陷:
?知識不新:由于訓練的時間和成本,大模型的知識往往是舊的,如 GPT-4 Turbo 的知識庫截至時間是 2023 年 4 月
?知識不全:缺少專業的領域知識或私有的業務知識
2.1 RAG架構
RAG的工作原理是通過檢索大規模文檔集合中的相關信息,然后利用這些信息來指導文本的生成,從而提高預測的質量和準確性。
?
?
RAG = LLM+知識庫
具體而言,RAG通過三個關鍵部分實現工作:檢索、利用和生成。在檢索階段,系統會從文檔集合中檢索相關信息;在利用階段,系統會利用這些檢索到的信息來填充文本或回答問題;最后在生成階段,系統會根據檢索到的知識來生成最終的文本內容。
通過這一過程,RAG模型能夠在各種自然語言處理任務中發揮作用,如問答系統、文檔生成和自動摘要、智能助手和虛擬代理、信息檢索以及知識圖譜填充等。同時,RAG模型具有及時更新、解釋性強、高度定制能力、安全隱私管理以及減少訓練成本等優點。與微調相比,RAG是通用的,適用于多種任務,并且能夠實現即時的知識更新而無需重新訓練模型。
?
2.2 知識庫介紹
對于企業而言,構建一個符合自身業務需求的知識庫是至關重要的。通過RAG、微調等技術手段,我們可以將通用的大模型轉變為對特定行業有著深度理解的“行業專家”,從而更好地服務于企業的具體業務需求。這樣的知識庫基本上適用于每個公司各行各業,包括:市場調研知識庫、人力資源知識庫、項目管理知識庫、技術文檔知識庫、項目流程知識庫、招標投標知識庫等等。
知識庫的技術架構分為兩部分:
第一、離線的知識數據向量化
?加載:通過文檔加載器(Document Loaders)加載數據/知識庫。
?拆分:文本拆分器將大型文檔拆分為較小的塊。便于向量或和后續檢索。
?向量:對拆分的數據塊,進行 Embedding 向量化處理。
?存儲:將向量化的數據塊存儲到向量數據庫 VectorDB 中,方便進行搜索。
?
第二、在線的知識檢索返回
?檢索:根據用戶輸入,使用檢索器從存儲中檢索相關的 Chunk。
?生成:使用包含問題和檢索到的知識提示詞,交給大語言模型生成答案。
?
2.3 RAG應用場景
1.問答系統(QA Systems):RAG可以用于構建強大的問答系統,能夠回答用戶提出的各種問題。它能夠通過檢索大規模文檔集合來提供準確的答案,無需針對每個問題進行特定訓練。
2.文檔生成和自動摘要(Document Generation and Automatic Summarization):RAG可用于自動生成文章段落、文檔或自動摘要,基于檢索的知識來填充文本,使得生成的內容更具信息價值。
3.智能助手和虛擬代理(Intelligent Assistants and Virtual Agents):RAG可以用于構建智能助手或虛擬代理,結合聊天記錄回答用戶的問題、提供信息和執行任務,無需進行特定任務微調。
4.信息檢索(Information Retrieval):RAG可以改進信息檢索系統,使其更準確深刻。用戶可以提出更具體的查詢,不再局限于關鍵詞匹配。
5.知識圖譜填充(Knowledge Graph Population):RAG可以用于填充知識圖譜中的實體關系,通過檢索文檔來識別和添加新的知識點。
三、智能體(AI Agent)
在 AI 大模型時代,任何具備獨立思考能力并能與環境進行交互的實體,都可以被抽象地描述為智能體(Agent)。這個英文詞匯在 AI 領域被普遍采納,用以指代那些能夠自主活動的軟件或硬件實體。在國內,我們習慣將其譯為“智能體”,盡管過去也曾出現過“代理”、“代理者”或“智能主體”等譯法。智能體構建在大語言模型的推理能力基礎上,對大語言模型的 Planning 規劃的方案使用工具執行(Action) ,并對執行的過程進行觀測(Observation),保證任務的落地執行。
Agent一詞起源于拉丁語中的Agere,意思是“to do”。在LLM語境下,Agent可以理解為在某種能自主理解、規劃決策、執行復雜任務的智能體。
AI Agent是由人工智能驅動的程序,當給定目標時,它們能夠自己創建任務、完成任務、創建新任務、重新確定任務列表的優先級、完成新的頂級任務,并循環直到達到目標。
Agent = LLM+Planning+Tool use+Feedback Agent 是讓 LLM 具備目標實現的能力,并通過自我激勵循環來實現這個目標。
?
3.1 PDCA思維模型
PDCA思維模型大家應該都了解,我們可以把智能體執行過程比作PDCA思維模型,我們可以將完成一項任務進行拆解,按照作出計劃、計劃實施、檢查實施效果,然后將成功的納入標準,不成功的留待下一循環去解決。目前,這是人們高效完成一項任務非常成功的經驗總結。
3.2 智能體架構
PDCA 循環是人日常做事思維模型,大模型是否可以像人一樣,讓大模型代替人的工作。因而,智能體應運而生,讓大模型具備執行能力。
要讓LLM替代人去做事,我們可以基于PDCA模型進行規劃、執行、評估和反思。
規劃能力(Plan):智能體(Agent)的大腦能夠將復雜的大任務細分為小的、可操作的子任務,這種能力對于高效、有序地處理大型任務至關重要。
執行能力(Do):智能體能學會在內部知識不足時調用外部API,例如獲取實時信息、執行代碼或訪問專有知識庫。這需要構建一個平臺加工具的生態系統,鼓勵其他廠商提供更多工具組件,共同形成繁榮的生態系統。
評估能力(Check):任務執行后,智能體需要判斷結果是否達到預期目標,并在出現異常時進行分類、定位和原因分析。這種能力通常不是通用大模型所具備的,需要針對特定場景進行定制化的小模型訓練。
反思能力(Action):基于評估結果,智能體能夠及時結束任務或進行歸因分析,總結成功的關鍵因素。如果出現異?;蚪Y果不符合目標,智能體會提出應對策略,重新規劃并啟動新的循環過程,這是整個任務管理流程的核心部分。
?
下圖是智能體架構典型的架構,在很多智能化介紹文檔都有引用。
?
?
LLM作為一種智能代理,引發了人們對人工智能與人類工作的關系和未來發展的思考。它讓我們思考人類如何與智能代理合作,從而實現更高效的工作方式。而這種合作方式也讓我們反思人類自身的價值和特長所在。
?
3.3 智能體開發框架
智能體是當前大模型最火熱的話題,如何快速開發智能體,智能體開發框架少不了。當下主流的智能體開發框架有Langchain,metaGPT。
1、Langchain
LangChain是一個用于開發由語言模型支持的應用程序的框架。它使應用程序能夠:
?感知上下文:將語言模型連接到上下文源(提示說明、小樣本示例、響應的內容等)
?推理:依靠語言模型進行推理(關于如何根據提供的上下文進行回答、采取什么操作等)
?
LangChain框架有以下幾個核心組成部分:
?LangChain庫:Python和JavaScript庫。包含無數組件的接口和集成、將這些組件組合成鏈和Agent的基本運行時,以及鏈和Agent的現成實現。
?LangChain模板:一系列易于部署的參考架構,適用于各種任務。
?LangServe:用于將LangChain鏈部署為RESTAPI的庫。
?LangSmith:一個開發者平臺,可讓您調試、測試、評估和監控基于任何LLM框架構建的鏈,并與LangChain無縫集成。
?
2、MetaGPT
MetaGPT是一個創新框架,將人類工作流程作為元編程方法整合到基于LLM的多智能體協作中。它使用標準化操作程序(SOP)編碼為提示,要求模塊化輸出,以增強代理的領域專業知識并減少錯誤。實驗表明,MetaGPT在協作軟件工程基準上生成了更連貫和正確的解決方案,展示了將人類知識整合進多智能體系統的潛力,為解決復雜問題提供了新機會。
在MetaGPT看來,可以將智能體想象成環境中的數字人,其中
智能體 = 大語言模型(LLM) + 觀察 + 思考 + 行動 + 記憶
?
這個公式概括了智能體的功能本質。為了理解每個組成部分,讓我們將其與人類進行類比:
1.大語言模型(LLM):LLM作為智能體的“大腦”部分,使其能夠處理信息,從交互中學習,做出決策并執行行動。
2.觀察:這是智能體的感知機制,使其能夠感知其環境。智能體可能會接收來自另一個智能體的文本消息、來自監視攝像頭的視覺數據或來自客戶服務錄音的音頻等一系列信號。這些觀察構成了所有后續行動的基礎。
3.思考:思考過程涉及分析觀察結果和記憶內容并考慮可能的行動。這是智能體內部的決策過程,其可能由LLM進行驅動。
4.行動:這些是智能體對其思考和觀察的顯式響應。行動可以是利用 LLM 生成代碼,或是手動預定義的操作,如閱讀本地文件。此外,智能體還可以執行使用工具的操作,包括在互聯網上搜索天氣,使用計算器進行數學計算等。
5.記憶:智能體的記憶存儲過去的經驗。這對學習至關重要,因為它允許智能體參考先前的結果并據此調整未來的行動。
四、向量數據庫
向量數據庫是專注于存儲和查詢向量的系統,其向量源于文本、語音、圖像等數據的向量化表示。相較于傳統數據庫,向量數據庫更擅長處理非結構化數據,比如:文本、圖像和音頻。在機器學習和深度學習中,數據通常以向量形式存在。向量數據庫憑借高效存儲、索引和搜索高維數據點的能力,在處理比如:數值特征、文本或圖像嵌入等復雜數據時表現出色。
?
GPT 彰顯了卓越的智能性能,其成功歸功于眾多要素,但在工程實現上,一個決定性的突破在于:神經網絡與大型語言模型將語言問題轉化為數學問題,并以高效工程方法解決了這一數學挑戰。
在人工智能領域,知識與概念的內在表示均采用數學向量。這個過程,即將詞匯、文本、語句、段落、圖片或音頻等對象轉換為數學向量,被稱為嵌入(Embedding)。
以 OpenAI 為例,它采用一個 1536 維的浮點數向量空間。當你向 ChatGPT 提出疑問時,輸入的文本首先被編碼并轉換成一個數學向量,隨后作為神經網絡的輸入。神經網絡產生的直接輸出也是一個向量,該向量隨后被解碼回人類的自然語言或其他形式,最終呈現給你。
?
?
人工智能大模型的"思考"過程,本質上是一系列涉及向量和矩陣的數學運算,包括加法、乘法以及它們的逆運算。這些運算對于人類來說非常抽象,難以直觀理解。然而,這種數學形式非常適合通過專用硬件如GPU(圖形處理單元)、FPGA(現場可編程門陣列)或ASIC(專用集成電路)來高效執行,從而為AI提供了一個基于硅的仿生"大腦"。這個"大腦"擁有龐大的神經元網絡、迅捷的處理速度、先進的學習算法,能夠展現出令人驚嘆的智能水平,并且具備快速自我復制和理論上的持久運行能力。
語言大模型處理的是編碼、運算到輸出的整個流程。但是,單純的計算并不足以支撐其智能行為,記憶同樣是關鍵組成部分。大型模型可以被看作是對人類公開數據集進行壓縮和存儲的一種形式,其中包含的豐富知識通過訓練過程被編碼進模型,體現在模型的權重參數中。為了實現更高精度、更長期、更過程化的大容量記憶存儲,就需要借助向量數據庫技術。這些數據庫專門設計來高效存儲和檢索高維向量,它們是大模型記憶功能的重要支撐,使得AI系統能夠更精準地回憶和利用已學習的知識。
五、知識圖譜
知識圖譜是一種以圖形式存儲和管理知識的數據庫,它基于實體和它們之間的關系來構建。這種結構化的數據庫設計用于高效地組織和呈現人類知識的各個方面。
知識圖譜通過語義分析抽取信息,建立實體之間的聯系,構建出層次化的網絡結構。在這個網絡中,實體如人物、地點、機構等,不僅被賦予了特定的屬性,還通過各種關系與其他實體相連。通過先進的數據挖掘技術、信息處理方法和圖形化展示手段,知識圖譜能夠揭示知識領域的演變趨勢,為學術研究提供有力的數據支持。
知識圖譜在反欺詐領域應用廣泛,通過分析實體間關系網絡識別潛在欺詐行為。它整合多源數據,實現多維度風險評估和異常檢測,提高預警準確性。知識圖譜的可視化分析助力快速識別欺詐模式,同時輔助制定和優化反欺詐策略。此外,它還用于貸后管理和案件調查,提升金融風控效率和效果。隨著技術發展,知識圖譜在反欺詐中的作用日益凸顯。
?
?
知識圖譜與智能體(AI Agent)結合,提供了豐富的背景知識與實體關系,增強了智能體的決策和理解能力。這種結合使得智能體能夠執行個性化服務、自動化任務、復雜問題解決等,同時提高了學習和適應能力。智能體通過知識圖譜進行上下文理解,實現精準的交互和響應,優化了用戶體驗,并提升了服務效率和準確性。
六、微調(Fine-tuning)
6.1 什么是微調(Fine-tuning)
大模型微調是提升AI應用性能的有效手段,主要基于以下幾點考慮:
首先,大模型由于參數眾多,訓練成本極高,不適宜每家公司都從頭開始訓練。微調可以在現有模型基礎上進行,性價比更高。
其次,雖然Prompt Engineering是一種易于上手的大模型使用方式,但它存在明顯缺陷。大模型通常對輸入序列長度有限制,而Prompt Engineering可能導致輸入過長,增加推理成本,甚至因超長被截斷,影響輸出質量。對企業而言,微調可以更有效地控制推理成本。
第三,當Prompt Engineering效果不佳,而企業又擁有高質量的自有數據時,微調可以顯著提升模型在特定領域的性能。
第四,微調支持個性化服務。企業可以針對每個用戶的數據訓練輕量級的微調模型,提供定制化服務。
最后,數據安全也是微調的重要原因。對于不能共享給第三方的數據,企業需要自行微調開源大模型,以滿足業務需求并保障數據安全。
綜上所述,大模型微調可以降低訓練成本,提升特定領域性能,支持個性化服務,并保障數據安全,是企業利用AI技術的重要策略。通過微調,企業可以更高效、更安全地利用大模型,推動業務發展。
6.2 如何微調(Fine-tuning)
在參數規模上,大模型微調主要有兩種方法:全量微調(FFT)和參數高效微調(PEFT)。
FFT通過用特定數據訓練模型,將權重矩陣W調整為W',從而在相關領域提升性能。然而,FFT存在兩個主要問題:一是訓練成本高,因為微調的參數量與預訓練相同;二是災難性遺忘,即微調可能削弱模型在其他領域的表現。
PEFT旨在解決FFT的這些問題,是目前更流行的微調方法。從訓練數據來源和方法來看,PEFT包括幾種技術路線:
1.監督式微調(SFT),使用人工標注數據,通過監督學習進行微調。
2.基于人類反饋的強化學習微調(RLHF),將人類反饋通過強化學習引入微調,使模型輸出更符合人類期望。
3.基于AI反饋的強化學習微調(RLAIF),與RLHF類似,但反饋來自AI,以提高反饋系統的效率。
不同的微調方法側重點不同,實際操作中可以結合多種方案,以達到最佳效果。
七、Function Calling
ChatGPT引入了一個名為Function Calling的新功能,它允許用戶在API調用中向模型gpt-3.5-turbo-0613和gpt-4-0613描述函數,并讓模型智能選擇輸出一個包含調用這些函數參數的JSON對象。不過,Chat completions API本身并不直接調用這些函數,而是生成一個JSON,供用戶在自己的代碼中調用這些函數。
function calling從本質上并不是嚴格的工具調用, 而是作為工具調用的前奏,它通過更加結構化的方式指導LLM輸出,為在本地執行具體函數提供了參數,鋪平了道路。
以“股票價格查詢”為例,可以定義一個名為get_stock_price的函數,該函數接收股票代碼作為參數。LLM根據用戶的問題,如“請查詢股票代碼為AAPL的價格”,識別出需要調用get_stock_price函數,并從問題中提取出參數值“AAPL”。
開發者隨后可以根據這個JSON參數,在后端用實際的代碼實現查詢股票價格的功能,并將查詢結果傳遞回LLM,最終由LLM將信息呈現給用戶。
ChatGLM3通過在模型輸入中嵌入函數描述的邏輯來實現工具調用,這涉及到對輸入的prompt進行一些調整,使得模型能夠識別和響應函數調用的需求。
總之,工具調用為LLM提供了調用外部工具的能力,擴展了其應用范圍,開發者可以定義各種功能的函數,幫助LLM完成更復雜的任務。
八、AGI
AGI即通用人工智能(Artificial General Intelligence)。按照維基百科的定義,通用人工智能是具備與人類同等智能、或超越人類的人工智能,能表現正常人類所具有的所有智能行為。
AGI(通用人工智能)代表著人工智能發展的頂峰,旨在創造能夠理解并處理各類復雜任務的智能系統,與人類智能相匹敵。在通往這一宏偉目標的征途上,一系列關鍵技術發揮著不可或缺的作用。
AI大模型通過其龐大的數據和模型參數,為理解和生成語言提供了基礎。Prompt Engineering則通過精心設計的提示,引導AI模型產生準確的響應。Agent智能體技術賦予了AI自主行動和決策的能力,而知識庫和向量數據庫則為AI提供了豐富的信息資源和高效的數據檢索能力。
RAG(Retrieval-Augmented Generation)模型結合了檢索和生成,進一步提升了AI處理任務的靈活性和準確性。知識圖譜則通過結構化的方式,將知識以圖的形式表示,增強了AI的推理和關聯能力。
這些技術相互配合,形成了一個多元化、高度協作的AI生態系統。它們共同推動著AI技術的持續進步,為實現AGI的終極目標打下了堅實的基礎。隨著技術的不斷發展和創新,我們離實現真正的通用人工智能的愿景越來越近。
審核編輯 黃宇
-
AI
+關注
關注
87文章
30896瀏覽量
269086 -
人工智能
+關注
關注
1791文章
47279瀏覽量
238495 -
Agi
+關注
關注
0文章
80瀏覽量
10207 -
大模型
+關注
關注
2文章
2450瀏覽量
2706
發布評論請先 登錄
相關推薦
評論