大模型是怎么生成結果的
通俗原理
其實,它只是根據上文,猜下一個詞(的概率)……
OpenAI 的接口名就叫【completion】,也證明了其只會【生成】的本質。
下面用程序演示【生成下一個字】。你可以自己修改 prompt 試試。還可以用相同的 prompt 運行多次。
from openai import OpenAI
import osfrom dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())client = OpenAI()prompt = "今天我很" # 改我試試
response = client.completions.create(model="gpt-3.5-turbo-instruct",prompt=prompt,max_tokens=20,stream=True
)for chunk in response:print(chunk.choices[0].text, end='')
典型業務架構
AI Embedded 模式:某個環節用到AI
AI? Copilot 模式:很多環節用到AI
AI Agent 模式:AI被大量的應用,人做的事幾乎微乎其微,只需提要求
技術架構
1、純Prompt
就像和一個人對話,你說一句,ta回一句,你再說一句,ta再回一句……
2、RAG = Agent + Function Calling
Agent:AI主動提要求
Function Calling:AI要求執行某個函數
場景舉例:你問過年去哪玩,ta先反問你有幾天假
3、RAG = Embeddings + 向量數據庫
向量搜索:根據輸入向量,找到最相似的向量
場景舉例:考試時,看到一道題,到書上找相關內容,再結合題目組成答案。然后就都忘了(打小抄)?
?4、Fine-tuning
(不打小抄,把知識記住了,回答效果更好)
編程調用 Open API
官方文檔:https://platform.openai.com/docs/api-reference?
?1、安裝OpenAI Python庫
在命令行執行:
pip install --upgrade openai
2、發一條消息
import openai
import os# 加載 .env 文件到環境變量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())# 初始化 OpenAI 服務。會自動從環境變量加載 OPENAI_API_KEY 和 OPENAI_BASE_URL
client = OpenAI()# 消息格式
messages = [{"role": "system","content": "你是AI助手小瓜,是 AGI 課程的助教。這門課每周二、四上課"},{"role": "user","content": "哪天有課?"},
}#調用GPT-3.5
chat_completion = client.chat.completion.create(model="gpt-3.5-turbo",message=message
)#輸出回復
print(chat_completion.choices[0].message.content)
這門課每周二、四有課。因此,下一堂課將在本周二舉行,再次在本周四上課。