大模型是怎么生成结果的
通俗原理
其实,它只是根据上文,猜下一个词(的概率)……
OpenAI 的接口名就叫【completion】,也证明了其只会【生成】的本质。
下面用程序演示【生成下一个字】。你可以自己修改 prompt 试试。还可以用相同的 prompt 运行多次。
from openai import OpenAI
import os
from 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)
这门课每周二、四有课。因此,下一堂课将在本周二举行,再次在本周四上课。