偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

AI 大模型應(yīng)用開(kāi)發(fā)全攻略 原創(chuàng)

發(fā)布于 2025-4-10 06:42
瀏覽
0收藏

AI 大模型應(yīng)用開(kāi)發(fā)作為新興領(lǐng)域,不斷出現(xiàn)新的技術(shù):LLM、Prompt、RAG、Agent、Fine-tuning、MCP 等,本文聚焦 AI 大模型應(yīng)用開(kāi)發(fā),帶領(lǐng)大家入門(mén),帶領(lǐng)大家了解 AI 大模型應(yīng)用開(kāi)發(fā)的全攻略。

盡管市面上的大語(yǔ)言模型(LLMs)種類(lèi)繁多,但大家在使用時(shí)其實(shí)都是通過(guò) API 來(lái)與大模型交互的。這些大模型的接口通常遵循一些通用的規(guī)范,比如:  OpenAI 的標(biāo)準(zhǔn)。下面,我們就以 OpenAI 接口為例,來(lái)聊聊這些大模型都有哪些能力。

當(dāng)你和大模型交流時(shí),除了可以控制大模型輸出的隨機(jī)性之外,最關(guān)鍵的參數(shù)就是 Messages 和 Tools??梢哉f(shuō),現(xiàn)在市面上的各種大模型應(yīng)用,都是基于這兩個(gè)參數(shù)設(shè)計(jì)的。

1、Messages - 大模型是如何“記住”對(duì)話的?

  • Messages 是一個(gè)對(duì)話記錄的列表,里面的角色包括:

    a.System:代表系統(tǒng)級(jí)別的指令,通常用來(lái)放置提示詞。

    b.User:用戶發(fā)出的指令。

    c.Assistant:LLM 給出的回復(fù)。

不同廠商可能會(huì)在這個(gè)基礎(chǔ)上增加一些額外的定義。

大模型所謂的“記憶”對(duì)話,其實(shí)是依賴于這個(gè)列表來(lái)傳遞信息的。

比如,第一輪對(duì)話中我告訴大模型我的名字。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

第二輪對(duì)話時(shí),如果問(wèn)大模型我是誰(shuí),它就能“記住”我的名字。這是因?yàn)槲以?Messages 列表中提供了這個(gè)名字信息。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

提示詞的不穩(wěn)定性:容易被指令注入攻擊。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

看完這三張圖,我們來(lái)總結(jié)一下:

為什么大模型能“記住”之前的對(duì)話呢?其實(shí),它并不是真的記住了,而是每次請(qǐng)求時(shí),系統(tǒng)都會(huì)給它之前對(duì)話的內(nèi)容。大模型的每次請(qǐng)求調(diào)用都是無(wú)狀態(tài)的,它的行為完全取決于你每次提供的信息。

那么,大模型的提示詞(Prompt)有什么用呢?提示詞可以進(jìn)一步控制(或者說(shuō)覆蓋)大模型的行為,具有高優(yōu)先級(jí),但同時(shí)也存在不穩(wěn)定的風(fēng)險(xiǎn)。

希望這樣的解釋能幫助你更好地理解大語(yǔ)言模型的工作原理和它們的應(yīng)用方式。

2、RAG - 檢索增強(qiáng)生成

讓我們深入了解一種重要的大模型應(yīng)用范式:檢索增強(qiáng)生成,簡(jiǎn)稱(chēng) RAG(Retrieval-Augmented Generation)。

簡(jiǎn)單來(lái)說(shuō),RAG 就是利用檢索到的知識(shí)來(lái)提升生成答案的質(zhì)量。舉個(gè)例子,假設(shè)我手頭有一堆關(guān)于數(shù)據(jù)倉(cāng)庫(kù)的問(wèn)題和答案(Q&A),我想基于這些 Q&A 來(lái)創(chuàng)建一個(gè)問(wèn)答機(jī)器人,讓它能夠根據(jù)這些 Q&A 來(lái)回答用戶的問(wèn)題。這個(gè)問(wèn)答機(jī)器人的工作流程就是:檢索到的 Q&A -> 利用檢索到的 Q&A 來(lái)回復(fù)用戶,這正是 RAG 的典型應(yīng)用場(chǎng)景。顯然,RAG 的最終目標(biāo)是為用戶提供可靠的答案。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

構(gòu)建 RAG 鏈路相對(duì)簡(jiǎn)單,但要達(dá)到好的效果卻不容易。從流程中我們可以發(fā)現(xiàn)兩個(gè)關(guān)鍵點(diǎn):

知識(shí)庫(kù)檢索召回:這里需要解決如何檢索到最相關(guān)、最準(zhǔn)確的答案。

基于知識(shí)庫(kù)的 LLM 回答:這里需要解決的是如何讓模型在眾多知識(shí)中給出自信且準(zhǔn)確的回答。

這些都是業(yè)界正在不斷探索的問(wèn)題,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)答案,只有最適合當(dāng)前業(yè)務(wù)需求的方案。

3、Tools - 大模型能執(zhí)行任何工具?

很多同學(xué)經(jīng)常對(duì)大語(yǔ)言模型(LLM)的能力有所誤解,比如詢問(wèn)大模型是否能執(zhí)行數(shù)據(jù)庫(kù)操作,或者是否能將數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)導(dǎo)入到對(duì)象存儲(chǔ)等。這些問(wèn)題通常源于對(duì)大模型的“Tools”參數(shù)理解不足。

“Tools”是一個(gè)工具集合的數(shù)組,其中包含了工具的作用描述和所需參數(shù),例如天氣查詢工具的定義如圖示。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

使用這些工具時(shí),通常需要兩次調(diào)用大模型:

第一次、將用戶的查詢和工具信息一起提供給模型,模型會(huì)根據(jù)這些信息推理出需要執(zhí)行相應(yīng)的工具及其參數(shù)。

后端系統(tǒng)根據(jù)大模型的選擇結(jié)果執(zhí)行相應(yīng)的工具,獲取結(jié)果。

第二次,再次請(qǐng)求大模型,此時(shí)上下文中包含了工具執(zhí)行的結(jié)果,大模型基于這些信息生成回復(fù)。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

總結(jié)一下

大模型本身并不能直接執(zhí)行任何工具,但能決定接下來(lái)要執(zhí)行哪些工具。一旦做出選擇,實(shí)際的工具執(zhí)行將由配合的系統(tǒng)(通常是 Agent)完成并獲取結(jié)果。

4、ReAct - 推理 + 行動(dòng)

接下來(lái),我們可以探討第二個(gè)重要的大模型范式:ReAct(推理+行動(dòng))。

需要強(qiáng)調(diào)的是,大模型的許多范式都是對(duì)人類(lèi)行為的模擬,因此我們可以通過(guò)生活中的案例來(lái)理解大模型。

案例:老板讓寫(xiě)一份調(diào)研外部大模型框架的報(bào)告

工具:互聯(lián)網(wǎng)搜索、PPT、思維導(dǎo)圖

思考 (Reasoning): 需要調(diào)研外部大模型框架,明確調(diào)研目標(biāo)是了解行業(yè)內(nèi)的主要框架、特點(diǎn)和應(yīng)用場(chǎng)景。需要先明確有哪些主流框架,然后針對(duì)性地收集資料。
行動(dòng) (Acting):
行動(dòng): 使用互聯(lián)網(wǎng)搜索“主流大模型框架 2024/2025”、“開(kāi)源大模型框架”。
觀察 (Observation):
觀察: 搜索結(jié)果顯示:PyTorch、TensorFlow、JAX等是主流框架,還有一些新興框架如 MindSpore、Paddle 等。

思考 (Reasoning): 我已經(jīng)拿到了想要的資料,接下來(lái)使用思維導(dǎo)圖搭建匯報(bào)思路
行動(dòng) (Acting):
行動(dòng): 使用思維導(dǎo)圖工具,搭建報(bào)告的初步框架,包括:框架名稱(chēng)、開(kāi)發(fā)語(yǔ)言、主要特點(diǎn)、優(yōu)勢(shì)、劣勢(shì)、應(yīng)用場(chǎng)景。
觀察 (Observation):
觀察: 初步框架包括:框架名稱(chēng)、開(kāi)發(fā)語(yǔ)言、主要特點(diǎn)(動(dòng)態(tài)圖/靜態(tài)圖、分布式訓(xùn)練支持等)、優(yōu)勢(shì)、劣勢(shì)、應(yīng)用場(chǎng)景(NLP、CV等)。

思考 (Reasoning): 信息基本收集完畢,需要將所有信息整理成結(jié)構(gòu)化的報(bào)告,并使用PPT進(jìn)行總結(jié)和分析。
行動(dòng) (Acting):
行動(dòng): 使用PPT工具,將思維導(dǎo)圖中的內(nèi)容整理成PPT,并撰寫(xiě)文字說(shuō)明。
觀察 (Observation):
觀察: 完成了PPT初稿,內(nèi)容比較全面,但需要進(jìn)行排版美化。

這個(gè)思考的流程就是 ReAct 模式。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

5、Agent - 自主完成復(fù)雜任務(wù)

許多人可能已經(jīng)注意到,大模型在數(shù)學(xué)計(jì)算方面并不擅長(zhǎng),如果直接用它們來(lái)做計(jì)算器,很容易出現(xiàn)錯(cuò)誤。


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

這里,我們用 llama_index 的 Agent 框架來(lái)舉個(gè)例子:

1. 我們定義了三個(gè)工具函數(shù):乘法、加法和減法。

2. 然后,我們構(gòu)建了一個(gè) Agent 來(lái)執(zhí)行這些操作模式。

import os
from dotenv import load_dotenv
from llama_index.core.agent import ReActAgent
from llama_index.core.tools import FunctionTool
from llama_index.llms.azure_openai import AzureOpenAI
def multiply(a: int, b: int) -> int:
    """Multiply two integers and returns the result integer"""
    return a * b
def add(a: int, b: int) -> int:
    """Add two integers and returns the result integer"""
    return a + b
def subtract(a: int, b: int) -> int:
    """subtract two integers and returns the result integer"""
    return a - b
# 加載 .env 文件
load_dotenv()
# 初始化工具
multiply_tool = FunctionTool.from_defaults(fn=multiply)
add_tool = FunctionTool.from_defaults(fn=add)
subtract_tool = FunctionTool.from_defaults(fn=subtract)
llm = AzureOpenAI(model="gpt-4o",  # 或者 gpt-4
                  engine='gpt-4o',
                  deployment_name="gpt-4o",
                  api_key=os.getenv('AZURE_KEY'),
                  azure_endpoint="https://ilm-dev.openai.azure.com",
                  api_versinotallow="2023-07-01-preview")
# 初始化Agent
agent = ReActAgent.from_tools([multiply_tool, add_tool, subtract_tool], llm=llm, verbose=True)
response = agent.chat("What is 60-(20+(2*4))? Calculate step by step ")

> Running step cba1a160-74c3-4e34-bcc4-88e6a678eaf9. Step input: What is 60-(20+(2*4))? Calculate step by step 
Thought: The current language of the user is: English. I need to use a tool to help me answer the question.
To solve the expression \(60 - (20 + (2 * 4))\) step by step, I will first calculate the multiplication inside the parentheses.
Action: multiply
Action Input: {'a': 2, 'b': 4}
Observation: 8
> Running step 5455108e-ac53-4115-8712-68f2457a9b82. Step input: None
Thought: Now that I have the result of the multiplication, I can proceed to the next step, which is to add 20 and 8.
Action: add
Action Input: {'a': 20, 'b': 8}
Observation: 28
> Running step 4d8fae00-83bd-4205-9993-f0e0119f408d. Step input: None
Thought: Now that I have the result of the addition, I can proceed to the final step, which is to subtract 28 from 60.
Action: subtract
Action Input: {'a': 60, 'b': 28}
Observation: 32
> Running step ce5d1075-ff11-47a2-b286-d7a715dc40ba. Step input: None
Thought: I can answer without using any more tools. I'll use the user's language to answer.
Answer: The result of the expression \(60 - (20 + (2 * 4))\) is 32.


AI 大模型應(yīng)用開(kāi)發(fā)全攻略-AI.x社區(qū)

之前有朋友問(wèn)到,在這種流程中,大語(yǔ)言模型(LLM)究竟扮演了什么角色?大模型最突出的能力是理解自然語(yǔ)言并進(jìn)行推理,我們可以嘗試將規(guī)則進(jìn)一步復(fù)雜化,比如用“張三”來(lái)代表減法,“李四”代表加法,“王二”代表乘法。那么,問(wèn)題“張三(李四(王二王24))”等于多少呢?如果要求一步步計(jì)算,盡管表現(xiàn)可能仍有不足,但大模型展現(xiàn)出了對(duì)自然語(yǔ)言的容錯(cuò)能力,能夠像人類(lèi)一樣去思考,而不是遵循一成不變的邏輯。

Thought: The current language of the user is English. I need to use a tool to help me answer the question. The expression given is 60張三(20李四(2王二4)), which translates to 60 - (20 + (2 * 4)). I will calculate step by step.
First, I need to calculate the multiplication part: 2王二4, which is 2 * 4.
Action: multiply
Action Input: {'a': 2, 'b': 4}
Observation: 8
> Running step 48262cb8-5c3a-47b7-b13b-449787c27078. Step input: None
Thought: The result of 2王二4 is 8. Now, I need to calculate the addition part: 20李四8, which is 20 + 8.
Action: add
Action Input: {'a': 20, 'b': 8}
Observation: 28
> Running step 1cccd5c6-3d96-4014-a579-1c997765a1da. Step input: None
Thought: The result of 20李四8 is 28. Now, I need to calculate the subtraction part: 60張三28, which is 60 - 28.
Action: subtract
Action Input: {'a': 60, 'b': 28}
Observation: 32
> Running step 65d33d20-1009-4482-a6d2-7af20333640c. Step input: None
Thought: I can answer without using any more tools. I'll use the user's language to answer.
Answer: The result of 60張三(20李四(2王二4)) is 32.

6、Fine-tuning 微調(diào)- 讓大模型具備精確處理公司任務(wù)的能力

讓我們通過(guò)一個(gè)具體的生產(chǎn)案例來(lái)說(shuō)明這一點(diǎn)。當(dāng)我們?yōu)?World First 提供客服服務(wù)時(shí),遇到了很多特殊的業(yè)務(wù)知識(shí),例如,用戶在萬(wàn)里匯下載的銀行對(duì)賬單并不等于下載交易流水單。這里涉及到具體的業(yè)務(wù)背景:銀行對(duì)賬單是亞馬遜要求的賬戶證明文件。這類(lèi)業(yè)務(wù)背景知識(shí)對(duì)于大模型來(lái)說(shuō)很難掌握,這時(shí)就需要引入微調(diào)(Fine-tuning),將這部分知識(shí)整合到大模型中。

目前,業(yè)界的主流做法正在逐漸減少對(duì)微調(diào)的依賴,因?yàn)檫@個(gè)過(guò)程既耗時(shí)又費(fèi)力,而且不總是能帶來(lái)預(yù)期的正面效果。更多的工程實(shí)踐傾向于將提示詞(Prompt)復(fù)雜化和動(dòng)態(tài)化,在工程上做更多的容錯(cuò)處理工作。

7、Prompt 提示詞工程- 說(shuō)人話

調(diào)優(yōu)提示詞:大模型工程中的核心,提示詞的優(yōu)秀與否決定了你是否需要鏈路上做額外的兜底。

調(diào)優(yōu)提示詞有三種實(shí)踐方式:直接使用提示詞、提示詞中引入 CoT(Chain-of-Thought)、提示詞中引入動(dòng)態(tài) Few-Shot。

大語(yǔ)言模型(LLM)確實(shí)能夠引發(fā)工作方式和思考模式的重大變革,它們讓問(wèn)題的解決方式變得依賴于你的創(chuàng)造力。然而,業(yè)務(wù)成效并不完全依賴于大模型。許多人誤以為擁有了 LLM,就能輕松解決業(yè)務(wù)效果、開(kāi)發(fā)效率和交付質(zhì)量等問(wèn)題,這種將所有問(wèn)題都推給 LLM 的想法是一個(gè)很大的誤區(qū)。

以客服場(chǎng)景為例,最初大家都認(rèn)為客服是非常適合應(yīng)用大型模型的場(chǎng)景,我最初也是這么認(rèn)為的。但深入實(shí)踐后發(fā)現(xiàn)事實(shí)并非如此,特別是在對(duì)專(zhuān)業(yè)度和準(zhǔn)確率有明確要求的場(chǎng)景中。客服作為售后服務(wù),用戶帶著問(wèn)題和情緒而來(lái),他們需要的是明確的解決方案,而不是機(jī)械式的安慰和模糊的答案。因此,業(yè)務(wù)能力和人性化是客服成功的關(guān)鍵因素。確定這些關(guān)鍵因素后,再去思考 LLM 能在這些方面帶來(lái)哪些幫助,然后構(gòu)建你的解決方案,這樣的應(yīng)用方式才是可靠的。

簡(jiǎn)而言之,大模型可以是一個(gè)強(qiáng)大的工具,但它們并不是萬(wàn)能的。在構(gòu)建解決方案時(shí),我們需要綜合考慮業(yè)務(wù)需求、用戶期望和模型的能力,以確保我們提供的服務(wù)既有效又人性化。


本文轉(zhuǎn)載自公眾號(hào)玄姐聊AGI  作者:玄姐

原文鏈接:??https://mp.weixin.qq.com/s/ER_LnXDoskWBkR0ssVePQA??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2025-4-10 06:42:03修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦