AI 大模型

使用 Assistant 搭建 AI 助手

这是一个付费课程的体验课,后续系列课程付费,这节课大概了解了 Assistant API 和基础概述

链接:https://www.zhihu.com/education/training/course-detail/1744009771047370752

来源:知乎在线视频,简单介绍 GPT assistant 如何搭建一个 AI 助手,概述 + demo

讲师是一个创业失败的产品经理出身,也干过一点技术,这个就是入门介绍

和 AI 大模型相关的四种人

1、底层模型开发工程师:训练基础大模型 GPT4,为大模型提供硬件层面的算力(英伟达),门槛很高

2、AI 开发程序员:编程实现 AI 工具——重点目标

3、AI 产品经理:给用户设计AI程序,或者给自己设计AI程序

4、用户

AI能力的上限是使用者的判断力。AI很强,那么用户需要足够强,才能生效。如果用户能力不强,那么AI发挥效果发挥不出来(AI辅助编程,那么原始用户的编程能力应该需要很强)。

AI 类似智能驾驶和洗衣机,适合做难度不大重复性的基础工作,目前对于复杂工作和特殊场景还存在局限。

大模型应用的知识体系

大模型应用的技术架构如下,从简单,到复杂,分成四种应用。

应用1:应用程序直接输入 prompt 调用基础大模型 API,基础大模型返回 response,可以理解为静态固定的数据(使用市面上已知的开源基础大模型训练的结果)

应用2:在1的基础上,加入了外部第三方 APIs,例如百度地图 API,或者微信 API。那么基础大模型就可以调用特定服务器的 API,然后完成特定的操作(导航,分享朋友圈等)下面做的 demo 就是这个级别的应用。agent 智能体:大模型向 server 发送要求(应用程序应该调用某个API获取某个信息)的部分。大模型是静态的数据,没有直接访问外部API的能力,所以通过应用程序执行这个外部API。例如:明天出门是否带伞?先向API查询明天北京的天气,查询到结果之后才能确定是否带伞。

应用3:进一步增加了 RAG。传统的知识体系是 mysql 关系型数据库,现在很多外部知识库是特定的数据结构(例如实时爬虫爬取的新闻数据),先把这部分知识转换成向量数据库,然后已有大模型调用这部分数据库。

检索增强生成(Retrieval-augmented Generation,RAG),是当下最热门的大模型前沿技术之一。如果将“微调(fine tune)”理解成大模型内化吸收知识的过程,那么RAG就相当于给大模型装上了“知识外挂”,基础大模型不用再训练即可随时调用特定领域知识。

向量数据库是一种特殊的数据库,它具备数据存储和读取的基础能力,同时也有一个特殊的查询操作,即向量检索。类似的是 redis 向量检索。

应用4:加入微调。很多实际行业场景和基础大模型有出入,那么需要对实际行业的参数进行微调和限制。这部分也是提高精度的重要因素,也是现在很多应用岗位实际做的事情。

具体的知识点:Embedding: 相似度计算、聚类分析、词向量、句子向量,这部分比较基础和底层

提供 Assistant API 的框架 streamLit

这个应用可以调用 openai 的接口,使用自定义的 API 对基本功能进行扩展。

框架:streamLit 更方便快速的搭建分享应用,是一个入门简单的 python 框架,直接给配置即可,不需要考虑路由等细节。

Assistant = Thread(界面交互的UI,一串对话) + Run(内部逻辑,包括获取信息,AI 执行,显示返回结果)

AI Client —— Assistant —— Thread —— message —— server run —— response

每一个类都有很多 API,直接调用即可(实际生产项目使用自己实现)

Demo 滴滴打车

config.toml

1
2
3
4
[server]

# 允许访问本地静态资源(图片和 favicon)
enableStaticServing = True

utils.py 自定义的 API,AI 可以直接调用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# coding=utf-8
# by Michael An
import time
import streamlit as st

def get_current_time(*arg, **kwargs):
	# API 返回自然语言,不能返回对象,模型不能理解对象
	return f'现在时间是{time.strftime(format: "%H:%M:%S", time.localtime())}'

def random_placeholder_text():
	text_list = [
		'Your message',
		'Say hello',
	]
	return text_list[int(time.time()) % len(text_list)]

# user avatar setting
ICON = 'static/avatar.png'
ICON_USER = 'user'

def append_and_show(role, content):
	"""
	将消息添加到 messages 列表中,并展示
	role: 角色, assistant or user
	content: 消息内容
	"""
	st.session_state.message.append({"role": role, "content": content})
	
	st.chat_message(role, avatar = ICON if role == 'assistant' else ICON_USER).write(content)

if __name__ == '__main__':
	print(random_placeholder_text())

第三方给出的 server API 地图

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 高德地图 API
# 获取开始和结束的经纬度和 POI ID 
# 获取开始和结束的驾车时间和距离

import requests

map_key = '123'

def get_poi_id(address):
	params = {
		'key': key,
		'keywords': address
	}
	response = response.get('https://restapi.amap.com/v5', params=params)
	location = response.json()['pois'][0]['location']
	poi_id = response.join()['pois'][0]['id']
	return location, poi_id

def get_distance_time(origin, destination):
	origin_location, origin_id = get_poi_id(origin)
	destination_location, destination_location = get_poi_id(destination)
	params = {
		'key': key,
		'origin': origin_location,
	}

主函数:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import json
import logging

from dotenv import load_dotenv
from openai import OpenAI

from tools.utils import *
from tools.amsp import get_distance_time

load_dotenv()

logging.basicConfig(level=logging.INFO)

# 初始化 client
client = OpenAI()

availavle_functions = {     'get_current_time':
get_current_time,     'get_distance_and_duration':
get_distance_time, }

# 获取创建好的 assistant
assistant = client.beta.assistants.retrive('token-xxxxxxxxx')

# streamlit 初始化
st.set_page_config(
	page_title="打车车费估算模型",
	page_icon="icon",
)

# 初始展示
st.caption('使用 open AI Assistant 结合其他技术,实现打车 demo')

if "message" not in st.session_state:
	st.session_state["message"] = [
		{
			"role": "assistant",
			"content": "我是打车助手"
		}
	]
# 
if "thread" not in st.session_state:
	thread = client.beta.threads.create()
	st.session_state['thread'] = thread

for msg in st.session_state.messages:
	st.chat_message(msg["role"], avatar=ICON if msg["role"] == 'assistant' else ICON_USER).write(msg['content'])

# 核心逻辑
if prompt := st.chat_input():
	append_and_show("user", prompt)
	message = client.beta.threads.messages.create(thread_id=st.session_state.thread.id, role="user", content=prompt)
	run = client.beta.threads.runs.create(thread_id=st.session_state.thread_id, assistant_id=assistant.id)

	# 轮训(忽略了处理细节)
	while True:
		try:
			# 轮训等待,更新run状态
			if run.status == 'queued' or run.status == 'in_progress':
				pass
			# 执行本地方法
			elif run.status == 'requires_action':
				pass
			# 完成后,显示最新消息
			elif run.status == 'completed':
				pass

		except Exception, e:
			logger.error(e)
			raise

因为这是一个 demo 介绍,代码就忽略了很多技术细节

局限性:没有处理用户恶意调用 API 问题(调用API 费钱);没有处理安全合规问题等;没有更多的逻辑推断能力,格式不完美等等。所以这里需要高质量的 Prompt 提示词工程;没有处理图片视频音频等问题。

AI 对未来职业的影响

1、基本应用:单行代码提示

2、copilot: 提示一个函数或者一个模块

3、交互:支持上下文交互效果

4、社交性:模型不断学习新的数据库,从对话中学习

Prompt Engineer + LangChain

Prompt Engineer 提示词工程

prompt 告诉大模型要做什么

怎样用在代码中(单轮问答,多轮交互)

案例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
def example():
  instruction = """帮我写一个课程框架,主题是react.js课程框架,200字."""
  prompt = f"""{instruction}"""
  response = getResponse(prompt)
  print(response)

# 基于 prompt 生成文本
def getResponse(prompt, model='gpt-3.5-turbo-16k-0613'):
  # messages 列表(存放对话信息)
  # 目前支持单轮对话
  messages = [
    {
      'role': 'user',
      'content': prompt,
    }
  ]
  response = openai.ChatCompletion.create(
    model=model,
    messages=messages,
    temperature=0,
  )
  return response.choices[0].message['content']

API 中主要的参数和说明:

model: 使用 GPT 的模型,默认是 gpt3.5 模型

messages: 对话数组。role 表示角色,支持 user, assistant, system 三种情况。assistant 表示 GPT 返回来的信息。system 表示环境系统变量,系统预先设置的信息。例如:你现在是一个化学老师,只能解答化学有关的问题。

tempetature: 温度,temperature 表示随机性,0最小,2最大,默认较小值0。如果给到 1.8 那么答案天马行空。

这里还有其他的参数,根据官方文档使用

注意点:

  • 内容审核:harassment: true or false 对于不同类型骚扰如何处理

LangChain 大模型 python 框架

LangChain 是一个面向大模型的开发框架,使用简单配置即可实现复杂的 AI 应用。内部封装了很多组件(网络模块)。可以把大模型和外部数据结合起来,输入自己的知识库,定制化大模型。

中文文档:https://www.langchain.com.cn/

基本介绍:https://zhuanlan.zhihu.com/p/644500258

使用 node 开发:https://js.langchain.com.cn/docs/getting-started/guide-llm

未来可以把这个放在阅读器中,自己写一个助手

关键申请一个 OPENAI_API_KEY 然后直接调用即可

IO 模块

这里的 IO 和计算机的 IO 输入设备输出设备无关,指的是向大模型输入和输出的模块,就是应用和大模型的接口。

  • prompts:可以直接处理多种模型,不需要考虑不同模型的差异化,减少了程序员处理工作

  • outputs: 解析输出的结果,分成普通的 LLM 和对话式的 chat_model,如下

  • language model: 使用哪种语言模型进行解析

1
2
3
4
5
6
7
8
# prompts:可以直接处理多种模型
from langchain import PromptTemplate

prompt_template = PromptTemplate.from_template(
	"Tell me a {adj} joke about {content}."
)

prompt_template.format(adj="funny", content="kids")
1
2
3
4
5
6
7
8
# model = LLM
prompt_template.format(adj="funny", content="kids")

from langchain.llms import OpenAI

llm = OpenAI()

print(llm.predict('Hello, '))
1
2
3
4
5
6
# model = chat_models
from langchain.chat_models import ChatOpenAI

chat_model = ChatOpenAI()

print(chat_model.predict('Hello, '))

数据连接模块

load: 加载数据,支持多种格式 Document loader(cvs, html, file, json, pdf)

1
2
3
4
5
6
from langchain.document_loaders import PyPDFLoader

loader = PyPDFLoader("test.pdf")
pages = loader.load_and_split()

print(pages[0].page_content)

transform: split(把数据切成块,就是上面的 split() 函数) + translate(把输入翻译成指定语言)

embed: 数据向量化,模型无法直接阅读文本或者字符串,只能处理数值。所以使用机器学习的方法,从数据中进行特征值提取,变成一个高维的数据(向量或者张量)

store:把向量存储后,和已有的数据集中的向量进行对比,比较相似程度,找到最相似的结果(判别)相似度的计算原理:两个点的距离是欧氏距离,两个向量的距离是余弦距离。

memory 模块:记忆化模块:与多轮对话强相关。使用已有的对话,训练出下一个结果。把下一个结果 message 作为参数(或者处理后的结果),继续询问大模型,就是记忆化模块。类似上下文处理。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from langchain.memory import ConversationBufferMemory

history = ConversationBufferMemory()
history.save_context({'input': 'hello'}, {'output': 'hi'})

# 注意:这里需要传参,是空的字典
print(history.load_memory_viriables({}))

history = ConversationBufferMemory()
history.save_context({'input': 'hi'}, {'output': 'hello'})

# 输出两轮对话
print(history.load_memory_viriables({}))

处理特别长的对话,使用另一个方法,增加最大队列长度

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from langchain.memory import ConversationBufferWindowMemory

window = ConversationBufferWindowMemory(k=3)

window.save_context({'input': 'hi'}, {'output': 'hi'});
window.save_context({'input': 'hi'}, {'output': 'hi'});
window.save_context({'input': 'hi'}, {'output': 'hi'});
window.save_context({'input': 'hi'}, {'output': 'hi'});
window.save_context({'input': 'hi'}, {'output': 'hi'});

print(window.load_memory_variables({})) #3


# 总结前几轮的对话结果
from langchain.memory import ConversationSummaryMemory
from langchain.llms import OpenAI

memory = ConversationSummaryMemory(
	llm=OpenAI(tempetature=0)
)

memory.save_context(
	{'input': 'hello'},
	{'output': 'hello, I am your AI assistant'}
)

print(memory.load_memory_variables({}))

Fine-tuning 微调

一般人和团队,没有时间和能力去从头训练一个大模型,所以就基于已有大模型进行微调。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
from finetune import ModifiedTrainer, data_collator
from transformers import TrainingArguments

training_args = TrainingArguments(
	"output",
	fp16 = True,
	gradient_accumulation_steps = 1,
	seed = 0,
	data_seed = 0,
	group_by_length = False,
)

trainer = ModifiedTrainer(
	model=model,
	train_dataset=dataset,
	args=training_args,
	data_collator=data_collator
)

trainer.train()

大模型

大模型 Large-scale Model / Large Model

大模型:LLM 是基于深度学习训练的模型(类似一个函数集),大模型是指具有大规模、高维度、复杂性强等特点的机器学习模型。随着数据量的增加和计算能力的提升,大模型在自然语言处理、计算机视觉、语音识别等领域得到了广泛应用。大模型的训练需要大量的数据和计算资源,同时也需要对模型进行优化和压缩,以便在实际应用中能够高效地运行。

AI 大模型的价值:已经在艺术创作(文字,图片)获得很多成就,大模型数据集可以出售,也提供了很多新岗位。

提示词:Prompt,如何向大模型提问题,或者做出引导,让大模型更好的使用。

使用说明

集成后文档比较大,加载图片可能服务器返回 503 错误,所以可以点击链接,访问原始网页

https://cloud.seatable.cn/dtable/external-links/621babd7e22b4ceb88ec/

AI 写代码

主要功能:

1、项目规划和搭建(Builder Generator 模式切换)

2、解释代码,对陌生项目进行讲解(先整体讲解,然后分模块进行解释,包括方法中的每一行代码)

3、细节代码补全(js sql java)

4、生成单元测试

5、排查问题

项目中应用 AI 的场景

项目背景:我们的产品功能是:智能化表格管理、文件管理,工单管理。

后端

1、AI 搜索,增强搜索能力

早期:elasticSearch 需要建立索引,Java 内核比较重。

现在:在 Go zincsearch 基础上改动,需要的资源更少。

技术细节:文本的分词和分析等,然后计算不同文档的匹配度,进行语义搜索(我们内部有大量的表格和文件,首先对已有的表格和文件进行向量化,这部分需要专门写,所以市场上面已有的工具不能满足)。

前端

1、AI 助手,赋能传统数据

早期逻辑是:用户需要直接操作表格,输入内容,点击按钮,或者进行复杂操作,统计数据,费时费力。

现在我们增加了 AI 助手,根据用户的自然语言描述,使用开源大模型,然后转换成对应的代码,执行对应的 API 或者功能(统计某人本周的任务,统计表格整体的信息,以统计图形式展现出来),大批量处理表格的数据,实现了传统软件赋能。

技术细节:用户自然语言输入,通过自然语言分析,调用大模型,根据大模型的返回值,调用对应的 API

2、AI 识别,智能管理图片

早期:只能上传照片(网盘)

现在:上传图片并进行分析,然后增加元数据,以表格等多种视图管理图片信息

技术细节:识别发票图片,然后进行填写,避免用户手动录入数据。我们内部的技术实现调用了图片识别接口(还有其他身份证,驾照,发票识别等等)。市场上有一些开源的工具,例如前端的 tesseract 可以进行识别,但是准确率不是很高,所以我们基于开源的数据进行了改进。

开发层面

使用 OpenCode 进行项目规划,使用 Trea AI 进行代码分析等。

不同人数团队如何使用 AI

AI+个人开发者

例如 LLM 做 Prompt 工程师,借助个人在某些专业上的能力,创建对应领域的智能体,创建文案写故事,对接下游短视频自动生成,可以进行大量变现操作。

AI+小型团队

需求分析,用户调研,AI应用场景与引擎编排流程,针对小型团队及初创公司,推荐利用AI进行需求分析、文档优化、会议纪要提炼、客服机器人(RAG模式)、内容生成工具、数据报告可视化等高效工具开发,强调通过整合企业数据与智能体技术提升业务效率,实现低成本、快速落地。

AI+大型企业

AI场景落地应用与引擎编排流程,通过飞书文档、Imagic AI、猿辅导等案例,展示AI能力与业务深度融合,利用多维表、Canvas技术实现高效数据可视化与性能优化,并构建AI开发平台,集成网关、实时计算等模块,支持5分钟快速部署,显著提升大型企业AI工程化开发效率。

AI 的优缺点

视频记录于2023年

视频链接:https://www.bilibili.com/video/BV1VL411U7MU/?spm_id_from=333.337.search-card.all.click&vd_source=2d5bdee7ea59486ed4aa4a9b10020224

AI 的优势和劣势

AI 优势:AI 在2023年大量发展,多家国内外AI厂商发布自己的产品,各种论文大发展,GPT 进化速度很快,功能很强大。使用过后,确实可以解决很多搜索引擎的工作,完成基本的考试和固定答案的问题。

AI 不足:很多业界大佬联名,暂停大规模数据的训练,避免 AI 的负面问题。高级AI会影响人类思考,可能对很对职业取代,可能对人类文明造成影响。负面影响,AI 可能造成欺骗和错误。

AI 就类似互联网,是把双刃剑,可以让强者更强,让弱者更弱。从社会的发展看,不会造成现有打工人的工作减轻,而是造成更明显的差异化。普通人要熟练使用 AI 工具。

AI 对职业的影响

目前 AI 主要可以取代的职业:初级的脑力劳动者(初级程序员,翻译,会计,小说网文,PPT word 制作,漫画和短视频制作),部分体力劳动者(自动驾驶取代司机)。

目前 AI 无法取代的职业:体力劳动者(运动员,建筑工人,需要身体素质和成本),高级的脑力劳动者(外科医生,常年经验)。

大模型在产品中的应用

大模型+办公场景

微软:所有传统应用或者系统,都将接入 coplilot,让AI大模型成为系统中的真正的智能助手。实际包括 github + copilot 实现代码管理,Azure + Office 办公套件,实现 AI 辅助办公。

腾讯:腾讯元宝,插入到微信QQ等办公软件中,进行聊天对话等操作,应用在编辑文档中,安排会议中。

目前趋势,各种办公产品都加入 AI 模块。

大模型+软件开发

低代码平台:产品经理直接生成前后端代码(​以自然语言对话形式)。​目前主要是针对前端开发,腾讯内部已经基于大模型构建了一款自然语言交互的低代码平台,目前已经基本具备了靠对话就能生成前后端代码,并且靠对话就能优化修改功能的能力,也就是说产品经理可以直接通过该平台生成可以直接上线的网站。

代码生成开发平台:程序员使用AI辅助生成代码。​github copilot 也可以以插件的形式集成到 vscode、Androidstudio、xcode中,未来Androidstudio、xcode应该会发布自己更强大,并且和开发工具融合更好的copilot。这个目前是主要的使用场景。

软件开发的核心工作内容,也将从关注代码的细节,转变成了如何将大功能拆分成更小粒度的功能(架构师)​,转变成了如何将需求转换成实际功能(产品经理),从而可以方便交给大模型直接生成代码。

总结:大模型重塑我们的开发工具,重塑软件开发的工作方式和流程。

不同大模型的区别

一个公司或者组织,发布 AI 模型(有不同的版本),适应于不同场景(通用AI,代码编辑,图片制作,逻辑推理等场景)。

一个 AI 工具,会选择使用的模型,例如 github copilot 可以选择下面的模型。

下面是主要的模型对比(Claude 3.5 Sonnet、Gemini 2.0 Flash、GPT 4o、o3-mini 等)大模型的对比

开发公司

  • Claude:Anthropic

  • Gemini :谷歌。

  • GPT:OpenAI。

  • 文心一言:百度

  • 通义千问:阿里

  • 星火:科大讯飞

  • 智谱:由智谱AI开发(北京智谱华章)。

不同版本的性能对比和使用情况

模型名称 性能差异 适用情况
Claude 3.5 Sonnet 在多模态方面有不错表现,尤其视觉相关能力较强,研究生水平推理、本科生知识水平等基准测试中多领域表现良好,数学稍弱于部分对手 适用于企业复杂任务编排、内容创作,以及零售、物流等领域视觉相关场景
Gemini 2.0 Flash 整体性能处于较前列水平,多模态能力使其能应对文本与简单图像等多类型信息处理,在一些困难任务上能达到较强水平 通用自然语言处理场景、多模态创作场景,如辅助图文创作等
GPT 4o 多模态综合能力出色,能处理多种类型输入,在很多基准测试中速度快,整体智能水平高,数学等方面也有优势 教育领域个性化学习、客户服务、多媒体创作、实时交互要求高的场景,如实时翻译等
o3-mini 支持函数调用等功能,编码评估性能提升明显,在数学能力测试有较好表现,可按需选择推理强度 编程开发、对推理速度有要求且规模成本受限场景、特定领域简单应用构建
文心一言4.0 中文推理、语言理解能力突出,在数学能力上表现优秀,安全性把控较好 广告营销、内容创作、智能客服等领域,尤其处理中文文化相关内容更具优势
通义千问 语言流畅度佳,在办公文档处理、多语言支持、图片理解等方面有优势 电商、客户服务、企业数字化办公场景,辅助办公文案撰写等
讯飞星火4.0 turbo 多模态交互出色,七大核心能力超GPT-4 turbo,数学和代码能力也超越部分对手,有超拟人的数字人交互 教育、医疗、司法、政务等多领域应用,如智能教师、医学影像助手等
智谱GLM-Zero 擅长数理逻辑、代码及深度复杂推理任务,部分评测效果与较强竞品相当 科研、学术研究领域,助力解决复杂数理逻辑及深度推理工作

OpenAI 多个模型

GPT系列

  • GPT-4:2023年3月推出,在文本生成、对话、推理等方面能力很强,是当时的先进模型代表,为后续模型发展奠定基础。但上下文长度和价格方面相对劣势,其能力被后续的GPT-4 Turbo等模型优化和超越,现在OpenAI已将GPT-4 Turbo作为GPT-4的默认实现,原版GPT-4很少单独开放。

  • GPT-4 Turbo:是GPT-4的优化版,智能水平非常高,是市面上最强的通用大模型之一。支持图像输入,具备极强的推理、代码生成、多轮对话和图像理解能力,还能调用工具和函数。上下文长度达128K,适合大型文档处理。适用于高智能要求的Agent系统、复杂内容生成、精准代码生成与解释、图文混合分析等场景,推荐给高级开发者、企业用户、产品经理等对质量要求高的人群。

  • GPT-3.5 Turbo:是最具性价比的模型,智能水平中等偏上,接近GPT-4早期版。在处理通用对话、基础代码生成、轻量文本任务上表现优秀,成本低,适合大批量调用场景,如客服机器人、智能问答等。上下文长度为16K,能满足大部分应用,适用于轻量级写作、多轮对话的原型测试等,推荐给预算有限的中小型项目团队、训练AI Chatbot的初期探索者。

  • GPT-4o:2024年5月推出,“o”代表“omni”即全能,是多模态大模型,可处理50种不同语言,接受文本、音频和图像组合输入,生成文本、音频和图像任意组合输出,在多语言、音频和视觉功能方面表现出色,处理速度比GPT-4提升200%。

  • GPT-4o-mini:2024年7月推出,具备文本、图像、音频、视频的多模态推理能力,性能比GPT-4好,取代了GPT-3.5,在处理一些对成本敏感且需要多模态推理的任务中具有优势。

o系列

  • o1-preview:2024年9月12日推出,相对模型规模较大,运算能力强,适合处理科学研究、深度分析和学术论文写作等需要复杂推理的任务。不过运行速度较慢,尤其是面对深层次推理问题时耗时较长,但在高精度需求场景下,能给出精准、逻辑严密的回答。

  • o1 - mini:2024年9月12日推出,是o1 - preview的“精简版”,体积小、速度快,适合日常使用和资源受限的任务,如编程、快速文本生成等,在一般性论证和简易分析中表现良好。

  • o1:2024年12月5日推出,相比o1 - preview更智能、更快速,思维更简洁,犯错次数约减少三分之一,思考速度提高约50%,在编码、数学和科学写作等方面表现更出色,还支持图像输入等多模态功能。

  • o1 - pro:2024年12月5日推出,在数据科学、编程和案例分析等领域能产生更可靠、准确和全面的回应,在数学、科学和编码等领域的挑战性机器学习基准测试中表现优于o1和o1 - preview,具有更强的复杂问题处理能力。

  • o3 - mini:2025年1月31日推出,作为o1的后继模型,目前只有这一个版本,继承了o系列擅长复杂推理的特点,在处理数学、物理、化学等复杂问题上有更出色表现。

其他类型的模型

  • Codex:2021年推出,旨在理解和生成多种编程语言的代码,GitHub Copilot就是由它驱动,能完成自动编程任务、解释编码问题以及自动为用户执行程序等。

  • DALL - E:2021年推出的图像生成模型,可根据文本描述生成图像,经过多个版本的发展,如DALL - E 2、DALL - E 3等,图像生成能力不断提升,能生成更复杂、更准确、分辨率更高的图像。

  • CLIP:2021年推出,即对比语言 - 图像预训练模型,是一种深度神经网络,在4亿个图像 - 文本对上进行训练,能够执行图像分类、对象检测和从图像生成文本描述等任务,可用于连接图像和文本理解,例如在反向图像搜索中发挥作用。

  • Whisper:2022年推出的先进自动语音识别和翻译系统,在68万小时的音频样本及其转录数据上进行训练,能够在不同语言、环境和方言下进行语音转录,在困难环境中也有良好表现。

  • Sora:OpenAI近期公布的文本到视频模型,能够将文本提示转换为具有多个对象和角色的逼真视频,但目前还在开发中,在复杂场景的物理效果和空间连续性理解上还存在困难。

Google AI 多个模型

Gemini系列

  • Gemini Ultra:是Google旗下最大、最强大的模型,用于处理非常复杂的任务。在32项学术和多模态基准测试中,有30项表现出色,是第一个在大规模多任务语言理解测试中超越人类专家的模型。能处理自然图像、音频和视频,在数学推理、编码等方面能力突出,在HumanEval上获得74.4%的得分,在Natural2Code上获得74.9%的分数,优于GPT - 4。主要面向企业和数据中心应用。

  • Gemini Pro:是一款中端型号,通用能力强,能在性能和效率之间取得较好平衡,可用于处理多种类型的任务,包括一些较为复杂的任务,如为Bard提供支持。在大规模多任务语言理解测试中的表现优于PaLM 2和GPT - 3.5。

  • Gemini Nano:是适合执行设备端任务的高效模型,有1.8亿参数的Nano - 1和3.25亿参数的Nano - 2两个版本。它可以在移动设备等本地设备上运行,无需网络连接,对硬件要求低。在总结、阅读理解、文本补全等任务上表现良好,在推理、STEM、编码、多模态和多语言任务方面也展现出一定能力。

  • Gemini 1.5 - Pro - 002:在数学基准测试中表现出色,能够解决需要深度专业知识的高级数学问题,达到了最先进的水平。

  • Gemini 1.5 - Flash - 002:在遵循指令方面有很大进步,在速度和效率方面经过专门优化,对于大多数常见任务,能以更低的成本实现与更大模型相媲美的质量。

PaLM 2

这是一款先进的语言模型,具备更强的多语言、推理和编码能力。在逻辑、常识推理和数学方面有较好表现,语言理解、生成和翻译能力强,能处理习语、诗歌和谜语等复杂文本,还精通多种编程语言,可生成专用代码。不过,与Gemini系列相比,它不是多模态模型,在多模态处理能力上有所欠缺。

Anthropic AI 多个模型

Anthropic AI的Claude 3系列包含Claude 3 Haiku、Claude 3 Sonnet和Claude 3 Opus三个模型

Claude 3 Opus

是最强大的模型,智能水平最高,擅长处理高度复杂的任务,在各种基准测试中表现出色,如在研究生水平的推理测试中得分高达50.4%,而GPT - 4仅为35.7%。它能够以流畅和理解的程度处理开放式提示和未探索的场景,适用于复杂的任务自动化、研发和战略分析等领域。

支持200k tokens上下文窗口,可根据要求为特定用例提供1M tokens功能,能够处理大量信息,对于需要深入了解长时间对话或文档的复杂任务特别有用。

每百万输入代币15美元,每百万个输出代币75美元,是三个模型中最昂贵的。

适用于对智能水平要求极高、处理复杂任务的场景,如科研机构进行深度研究、大型企业进行战略分析等。

Claude 3 Sonnet

在速度和智能之间取得了平衡,专为广泛的AI操作而设计,能够快速处理信息,处理速度是Claude 2的两倍,适用于数据处理、销售增强和省时任务等场景,为扩展提供了经济高效的解决方案。

每百万个输入代币3美元,每百万个输出代币15美元,成本相对适中。

适用于企业环境中对速度和智能有一定要求的场景,如电商企业处理大量客户数据、金融机构进行风险评估等。

Claude 3 Haiku

是最快的模型,能够在不到三秒的时间内阅读并理解包含图表和图形的密集研究论文,以无与伦比的速度处理简单的查询和请求,非常适合客户交互、内容审核和节省成本的运营等场景。

每百万输入代币0.25美元,每百万个输出代币1.25美元,是最具成本效益的模型。

适用于对成本敏感且需要快速响应的场景,如小型企业的客户服务聊天机器人、内容平台的实时审核等。

DeepSeek AI 模型对比

DeepSeek-Coder

  • 特点:是DeepSeek公司2023年11月2日推出的代码大模型,面向开发人员,可生成、完成和调试代码,已开源1B、7B、33B全系列模型,包含Base模型和指令调优模型。在国际权威数据集HumanEval编程多语言测试上,各语言表现均领先已有开源模型,70亿参数版本在代码能力上达到CodeLlama 340亿参数水平,指令调优后全面超越GPT3.5 - Turbo。除代码能力外,还展现出极强的数学和推理能力。

  • 优势:采用Transformer架构和编码器 - 解码器框架,能有效处理序列数据,捕捉长距离依赖关系,支持多任务学习,具有更高的准确性、更强的泛化能力和更快的训练速度。

  • 应用场景:主要用于软件开发中的快速原型开发和自动化测试等领域,帮助开发者提高开发效率。

  • DeepSeek - Coder专注于代码相关任务;

DeepSeek - V3

  • 特点:2024年末发布,是混合专家(MoE)架构的模型,有6710亿参数,激活370亿参数,预训练于14.8万亿Token。采用预训练 + 监督微调(SFT)+ 少量强化学习(RL)的训练方法,通过FP8混合精度训练、无辅助损失负载均衡等技术实现高效训练与推理。引入多令牌预测(MTP)功能,可同时预测多个令牌,加速推理。

  • 优势:在大规模自然语言处理任务上效率高,成本效益好,在CMath测试中得分90.7%,在中文基准测试如CLUE WSC和C - EVAL中表现出色。

  • 应用场景:适用于处理大规模自然语言处理任务,如文本生成、语言理解等一般性的语言相关任务。

  • DeepSeek - V3在大规模语言处理任务上注重效率和泛化能力;

DeepSeek - R1

  • 特点:2025年1月发布,基于V3模型,采用监督微调(SFT)+ 多阶段强化学习(RL)+ 混合数据微调的训练方法,通过大规模强化学习和冷启动技术提升推理能力。有从1.5B到671B不同参数规模的版本,如R1 - Distill - Qwen - 32B等蒸馏版本,可提供相近结果但参数更少,更适用于小规模应用。

  • 优势:在逻辑推理、数学推理和实时问题解决方面表现出色,在AIME 2024数学测试中成绩为79.8%,在Codeforces Elo测试中达到2029,超过DeepSeek - V3和OpenAI的O1 - mini等。

  • 应用场景:适合需要深度逻辑分析的任务,如数学问题解决、代码辅助、科学研究等。

  • DeepSeek - R1则在推理方面有突出表现,尤其是逻辑和数学推理。

海外版

  • Claude:由Anthropic公司开发,主要使用Claude 3.5 Sonnet、Claude 3 Opus等模型,2025年2月19日又推出Claude 3.7 Sonnet(Thinking)版本。该工具机器味儿不明显,中文写作能力出色,有处理代码、图像、文档的工作台等功能。

  • ChatGPT:OpenAI开发的语言模型,擅长推理的o1 - preview新模型表现出色,主力模型GPT - 4o在各大模型评测榜单中表现优异。ChatGPT综合能力强大,任务理解能力强,电脑和移动端app使用方便,还具备Canvas画布编辑等功能。

  • Gemini:谷歌推出的AI模型,有多个版本,如Gemini 1.5 Pro可在aistudio中免费使用,擅长处理长文本和复杂任务;Gemini 1.5 Flash是面向个人用户官网的版本。2024年12月推出了Gemini - Exp - 1206、2.0 Flash及Thinking推理版本等,在中文理解、长文本处理、音视频多模态处理方面能力一流。

  • Grok:Elon Musk旗下xAI公司推出的AI模型,Grok3在逻辑推理、信息检索和快速研究等方面表现出色,支持推理和深度研究功能,在信息检索和研究场景中优势明显。

国产版

  • Qwen Chat:由阿里于2025年1月10日上线,支持全系列Qwen模型,包括Qwen - Max、Qwen2.5 - Plus、QwQ和QVQ等各模态模型。Qwen - Max语言能力在国内领先,2025年2月推出的QwQ - 32b推理模型在2025年3月登顶LiveBench。该平台涵盖日常对话、联网搜索、图像理解与生成、视频生成、逻辑推理及编程生成等功能。

  • kimi Chat:长文本上下文能力国内一流,适合办公族、文字工作者和研究者。2025年1月20日发布的K1.5多模态思考模型,性能对标OpenAI o1满血版,可解决复杂数学问题、编程调试、多模态数据分析等深度推理任务,产品界面简约,有聊天框常用语、Kimi +智能体等实用功能。

大模型是什么

大模型:指大语言模型(LLM),就是很多参数的神经网络处理器。

模型:所谓模型,通俗的讲是一个基于神经网络构建好的一个处理器,它能够根据输入产生相应的预测或者输出内容。而这个模型中是有多层神经网络,每层神经网络有很多神经元,而每个神经元可以理解为一个函数y= F(x),它可以通过调整参数来控制输出。

在训练模型的时候,就是通过输入数据,并监督输出结果,来不断地调节每个神经元的参数,从而最终训练出输出结果与实际偏差最小的模型。

大:我们常听到哪个公司训练了一个大模型具备600亿参数,或者千亿的参数,这个就是所谓的大,指代的是参数量上亿级别,而这些参数就是存储知识和信息的变量,参数越多,记住的知识越多,输出结果更准确。

大模型特征:不稳定(答案不完全对,并不是到数据库中找到对应的答案);不全面(保密训练集的内容不能获取)

向量空间模型

向量空间模型 (Vector Space Model, VSM)​ 是信息检索与自然语言处理中最经典的文本数学化表示模型。​

核心是将非结构化的文本(文档查询)转化为高维空间中的向量,通过向量运算(如余弦相似度)来量化文本间的相关性。

VSM 是NLP 的基石,虽被 Word2Vec、BERT 等深度学习模型超越(后者能捕捉语义与上下文),但仍是理解文本表示、相似度计算的入门必备知识。

核心步骤(向量搜索)

  1. 构建词汇表:对所有文档分词、去重,得到维度词典。

  2. 向量化:将每个文档和查询转为 TF-IDF 权重向量。

  3. 相似度计算:用余弦公式计算查询与所有文档的相似度。

  4. 排序返回:按相似度得分降序,返回最相关文档。

优点

  • 直观易懂:数学逻辑清晰,易于实现与解释。

  • 灵活高效:支持部分匹配与相关性排序,优于布尔检索。

  • 数学基础强:可直接应用线性代数工具(降维、聚类)。

缺点

  • 高维稀疏:词汇表巨大,向量多为 0,计算与存储成本高。

  • 语义丢失:忽略词序与上下文,无法理解一词多义、同义词。

  • 无法处理复杂语义:难以捕捉深层语义关联(如 “苹果” 公司 vs 水果)。

应用

  • 信息检索:早期搜索引擎、文献库的核心排序算法。

  • 文本分类 / 聚类:将文本转为向量后,用 SVM、K-Means 等算法处理。

  • 推荐系统:将用户画像、商品描述向量化,计算匹配度。

  • 自然语言处理:作为文本特征提取的基础方法。

训练大模型

需求: 我的某些需求,公开的模型不能免费完成,或者政策法律限制不能完成,需要训练自己的模型

思路1 调用公开大模型杰阔

这是常用的工作方式,调用公开的 LLM 接口,给出一定关键词,然后完成润色,然后对接到文档项目中。

局限:国内公开的 LLM 接口可能存在限制,根据相关法律,不能满足需求;国外公开的大模型,存在登录问题。

思路2 自己训练大模型

自己训练模型,然后把已有语料喂给模型,然后设置边界值等,这样自由度更高。

局限:个人技术有限,还不熟悉具体的细节;硬件条件有限,训练大模型性能有困难;已有语料欠缺,可能训练后的效果不及预期(类似线性回归方程,样本量较小精度有偏差)。

本地训练大模型难度大:自己训练内部的大模型,需要消耗较多的硬件,而且性能和效果也不是很好。

总结:

不管是公司还是个人,主要调用其他大公司的 API,类似云服务器一样,而不是自己搭建大模型,还需要额外的维护费用。​

Data Warehouse 数据仓库

数据仓库(Data Warehouse)是一种用于存储和管理数据的系统,旨在支持商业智能(Business Intelligence)和数据分析。它是一个中央存储库,收集来自各种来源的数据,经过清理、转换和整合后,提供给用户进行查询、分析和报告。

数据仓库的主要特点包括:

* 集中存储:数据仓库将来自不同来源的数据集中存储在一个地方。

* 数据整合:数据仓库将来自不同来源的数据进行整合和清理,以确保数据的一致性和准确性。

* 数据转换:数据仓库将数据转换为适合分析和报告的格式。

* 支持商业智能:数据仓库提供了支持商业智能和数据分析的功能,例如数据挖掘、预测分析和数据可视化。

数据仓库的常见应用场景包括:

* 商业智能和数据分析

* 报表和数据可视化

* 预测分析和数据挖掘

* 客户关系管理(CRM)

* 供应链管理(SCM)

数据仓库的好处包括:

* 提高数据的一致性和准确性

* 支持商业智能和数据分析

* 提高决策效率和准确性

* 降低数据管理成本

总之,数据仓库是一种用于存储和管理数据的系统,旨在支持商业智能和数据分析。

大模型基本术语和概念

本文介绍了 LLM 的基本概念,通俗易懂

英文原文链接:https://towardsdatascience.com/understanding-llms-from-scratch-using-middle-school-math-e602d27ec876

如何通过简单的加法和乘法来分类对象(如叶子或花朵)并解释了下述的概念——

  • 输入数据:叶子和花朵的RGB颜色和体积。

  • 神经元、权重和层:节点对应神经元、连接线上的数值即为权重,图中可以清晰看到网络的层结构(输入层、中间层、输出层)。

  • 输出解释:使用两个输出神经元分别表示“叶子”和“花朵”,通过比较输出值的大小来进行分类,分类结果。

模型的训练方式:

  • 训练目标:通过调整权重,使模型能够正确地对输入进行分类。

  • 损失函数:说明如何计算损失(loss),以及损失函数在模型训练中的作用。

  • 梯度下降:介绍梯度下降算法如何用于优化模型参数,以最小化损失。

  • 迭代过程:描述训练过程中的迭代步骤,包括多次遍历训练数据(epochs),以及如何避免过拟合。

生成语言的原理:

  • 从字符到句子:讨论如何将神经网络应用于语言生成,通过预测下一个字符来逐步构建句子。

  • 输入和输出的表示:提出将字符映射为数字的方法,以及如何解释模型的输出为下一个字符。

  • 固定的上下文长度:解释在生成过程中,输入的长度是固定的,这被称为“上下文长度”(context length)。模型只能利用有限的上下文信息进行预测。

大型语言模型的有效性原因:

  • 模型的局限性:指出简单的字符预测模型的局限性,如无法捕捉长距离依赖和复杂的语言结构。

  • 改进方法:引入更复杂的技术,如嵌入、子词分词器和自注意力机制,以提升模型的性能。

嵌入(Embeddings):

  • 概念:说明嵌入是如何将离散的字符或词映射为连续的向量表示,以捕捉它们之间的语义关系。

  • 训练嵌入:在训练过程中,同时优化嵌入向量,使模型能够更好地理解输入数据。

  • 向量表示的优势:使用多维向量表示字符或词,可以更丰富地捕捉语言的特征。

子词分词器(Subword Tokenizers):

  • 动机:直接使用词作为基本单元会导致词汇量过大,模型难以处理。

  • 方法:将词分解为更小的子词或字符(如使用SentencePiece分词器),这样可以降低词汇量,同时捕捉词形变化和词缀信息。

  • 示例:展示如何将“cats”分解为“cat”和“s”,从而利用“cat”的已有信息,提升模型的泛化能力。

自注意力机制(Self-Attention):

  • 问题背景:传统的神经网络难以捕捉序列中远距离词之间的依赖关系。

  • 解决方案:自注意力机制允许模型根据输入序列中不同位置的词,动态地调整它们的重要性。

  • 具体实现:

    • 查询(Query)、键(Key)和值(Value):引入这三个概念,说明如何计算注意力权重。

    • 计算过程:通过点积计算注意力得分,使用Softmax函数归一化权重,然后加权求和得到输出。

    • 优势:自注意力机制能够高效地捕捉序列中不同位置的依赖关系,无论它们之间的距离多远。

Softmax函数:

  • 作用:将模型的原始输出转换为概率分布,使得输出的各个元素之和为1。

  • 必要性:在多分类问题中,需要将输出映射为概率,以便进行合理的预测和计算损失。

残差连接(Residual Connections):

  • 问题背景:随着网络层数的增加,训练深层神经网络会遇到梯度消失或爆炸的问题。

  • 解决方案:残差连接通过在层与层之间添加直接的捷径连接,缓解了梯度消失问题,使得信息能够更直接地传递。

  • 效果:这种结构提高了模型的训练稳定性和性能。

层归一化(Layer Normalization):

  • 概念:在每个层对输入进行归一化处理,减去均值,除以标准差,然后应用可训练的缩放和平移参数。

  • 作用:加速模型训练,稳定梯度,提高模型的泛化能力。

Dropout:

  • 概念:在训练过程中,随机丢弃一部分神经元的连接,以防止模型过拟合。

  • 原理:通过让模型在训练时学习多个子模型的集成,从而提高模型的鲁棒性。

多头注意力(Multi-Head Attention):

  • 概念:在自注意力机制的基础上,引入多个“头”,让模型能够从不同的子空间中学习表示。

  • 实现:对输入进行线性变换,生成多个查询、键和值,然后并行地计算注意力,最后将结果拼接起来。

  • 优势:增强模型的表达能力,使其能够捕捉更丰富的特征。

位置嵌入(Positional Embedding):

  • 问题背景:自注意力机制本身不考虑序列中元素的位置信息。

  • 解决方案:通过为每个位置添加一个位置嵌入向量,将位置信息显式地编码到输入中。

  • 方法:使用可训练的嵌入向量,或者采用固定的正弦和余弦函数进行位置编码。

GPT架构:

  • 整体结构:将前面介绍的所有组件组合起来,构建了GPT模型的完整架构。

  • 流程:

    • 输入层:将输入的文本通过词嵌入和位置嵌入进行编码。

    • Transformer块:包含多头自注意力、残差连接、层归一化和前馈神经网络等组件。

    • 输出层:通过Softmax函数,预测下一个词或字符的概率分布。

  • 特点:GPT模型主要用于文本生成,能够根据给定的上下文,生成连贯的文本。

Transformer架构:

  • 背景:Transformer模型最初是为了解决机器翻译等序列到序列的任务。

  • 结构:由编码器(Encoder)和解码器(Decoder)组成。

    • 编码器:对输入序列进行编码,捕捉其语义表示。

    • 解码器:根据编码器的输出和已生成的序列,生成目标序列。

  • 创新点:完全基于注意力机制,摒弃了传统的循环神经网络(RNN)结构,提高了并行计算效率。

metadata 元数据

元数据(Metadata)是描述数据的数据。

它提供了关于数据的背景信息,帮助用户理解数据的含义、结构和关系。

元数据可以包括各种类型的信息,例如:

* 数据的定义和描述

* 数据的结构和格式

* 数据的来源和创建时间

* 数据的更新和修改记录

* 数据的访问权限和安全信息

* 数据的关系和依赖信息

元数据的作用包括:

* 提供数据的上下文信息

* 帮助用户理解数据的含义

* 支持数据的搜索和检索

* 支持数据的管理和维护

* 支持数据的安全和访问控制

元数据的分类包括:

* 描述性元数据(Descriptive Metadata):描述数据的内容和结构

* 管理性元数据(Administrative Metadata):描述数据的管理和维护信息

* 结构性元数据(Structural Metadata):描述数据的结构和格式

* 关系性元数据(Relational Metadata):描述数据之间的关系

元数据的应用场景包括:

* 数据仓库和商业智能

* 数据库管理和维护

* 数据搜索和检索

* 数据安全和访问控制

* 数据科学和机器学习

总之,元数据是描述数据的数据,提供了关于数据的背景信息,帮助用户理解数据的含义、结构和关系。

AI 智能程度划分

弱人工智能:也叫狭义人工智能,它专注于特定的、相对狭窄的任务领域,并且在这些任务上表现出智能行为,比如语音助手只能处理语音交互相关任务、图像识别软件专门进行图像识别等,它们无法像人类一样灵活地应对各种不同类型的任务,智能范围局限在设定好的特定领域。目前大部分市场的AI助手是弱人工智能。

强人工智能:具备和人类同等的智能水平,能够理解、学习、思考、推理等,可以像人类一样灵活地处理各种各样的复杂任务,甚至有自我意识,但目前还处于理论探索和研发阶段,尚未完全实现。

超人工智能:这是一种设想中的人工智能阶段,其智能程度远远超过人类,能够在几乎所有领域都展现出远超人类的能力,不过这更多存在于科幻想象中,距离现实还非常遥远。

AI 技术角度怎么划分

机器学习:

  • 监督学习:通过给定有标记的训练数据,让模型学习输入特征和输出标签之间的映射关系,例如常见的用于图像分类的卷积神经网络(CNN),在有大量已标注好类别图像数据基础上进行训练,像识别图片中是猫还是狗等;还有用于预测数值的线性回归、决策树等算法,可应用在预测房价等场景中。

  • 无监督学习:训练数据没有事先标记,模型要自己去发现数据中的结构和模式,比如聚类算法,能将相似的数据点聚成不同的簇,常用于客户细分、图像分割等方面,通过对用户行为数据聚类了解不同用户群体特点,或者把图像按区域聚类划分。

  • 强化学习:智能体在环境中采取一系列行动,根据行动获得的奖励反馈来学习最优策略,典型应用是机器人控制、游戏领域等,像AlphaGo在围棋游戏环境里,通过不断试错和获得奖励反馈(如赢棋得高分等)来学习下棋策略。

应用场景:

  • 个性化推荐:电商、新闻资讯、视频流媒体等各类前端应用,通过收集用户的浏览历史、购买行为、收藏偏好等数据,利用机器学习算法训练推荐模型,预测用户可能感兴趣的商品、文章、视频等内容,然后在前端界面的推荐板块精准展示给用户,提高用户的留存率和活跃度。例如,音乐类APP根据用户平时听歌的风格、歌手偏好等,为其推荐相似风格的新歌或相关歌手的其他作品。

  • 用户行为预测:对于有交互功能的前端应用,像在线游戏、金融交易平台等,AI可以分析用户过往的操作行为模式,预测用户下一步可能采取的行动,游戏中可以提前准备相应的资源加载或者关卡调整等;金融平台则可以对可能出现的异常交易行为提前预警,保障交易安全,优化用户的使用体验。

深度学习

  • 是机器学习的一个分支,它依靠深度神经网络结构,有多个隐藏层,能自动从大量数据中学习复杂的模式和特征,例如深度卷积神经网络,用于图像识别准确率极高,循环神经网络(RNN)及其改进的长短期记忆网络(LSTM)、门控循环单元(GRU)等在处理自然语言序列数据,像机器翻译、语音识别、文本生成等方面表现出色。

自然语言处理(NLP):

  • 语言理解:旨在让机器理解人类语言的含义,像语义分析,分析句子中词语的语义关系,以及情感分析,判断文本表达的是积极、消极还是中性情感,可用于舆情监测、产品评论分析等;还有问答系统,能理解用户问题并给出合理答案,如智能客服机器人。

  • 语言生成:包括文本摘要生成,从长篇文章中提炼关键内容生成摘要,以及机器翻译,将一种语言文本转换为另一种语言文本,还有故事、诗歌等创造性文本生成,例如一些写作辅助工具能帮用户生成部分文案内容。

应用场景:

  • 智能搜索与过滤:在前端界面中,比如电商网站的搜索栏或者内容平台的筛选功能,借助AI中的自然语言处理技术,用户可以用更自然、口语化的语句来搜索商品或内容。例如,用户输入“适合夏天穿的透气轻薄的白色连衣裙”,系统能准确理解语义,筛选出符合要求的商品展示给用户,而不是局限于简单的关键词匹配,极大提升了搜索体验和精准度。

  • 智能客服聊天窗口:前端的在线客服聊天界面嵌入AI驱动的自然语言对话系统,能实时理解用户咨询的问题,像客户询问产品的使用方法、退换货政策等,智能客服可以像真人一样流畅回复,引导用户解决问题,提高客户服务效率,并且可以24小时不间断提供服务。

  • 内容生成辅助:对于一些有内容创作需求的前端应用,如写作平台、文案编辑工具等,AI可以基于自然语言处理的文本生成能力,帮助用户生成文章大纲、提供创意灵感,或者对已有的文本进行语法检查、润色优化等,辅助用户更高效地完成写作任务。

计算机视觉:

  • 图像识别:识别图像中的物体、场景、人物等,例如人脸识别技术用于门禁系统、安防监控中识别特定人员;物体识别在物流自动化中可分拣不同物品等。

  • 图像分割:把图像划分成不同的区域,例如在医学影像中精确分割出病变组织区域,辅助医生诊断病情;自动驾驶领域中对道路、车辆、行人等进行分割定位。

  • 视频理解:分析视频内容,包括动作识别,判断视频中人物的行为动作,像在体育赛事分析中识别运动员的动作是否规范、违规等;还有视频内容摘要生成,提取视频关键信息形成简短摘要。

应用场景:

  • 图像识别与验证:在前端登录界面、身份验证场景中,除了传统的密码输入等方式,可加入人脸识别、指纹识别等基于计算机视觉的AI技术。例如,用户通过摄像头进行人脸识别,系统快速比对数据库中的人脸特征信息,确认身份后允许登录,提高了安全性和便捷性;在图片分享社交平台,还能自动识别图片中的物体、场景等元素,方便用户添加准确的标签描述,便于后续搜索和分类管理。

  • 增强现实(AR)体验:在前端开发的移动端应用或者网页端AR展示中,利用AI计算机视觉算法对现实场景进行分析理解。比如在一款家居购物APP中,用户通过手机摄像头扫描房间,AI能识别房间的空间布局、已有家具等情况,然后将虚拟的家具模型精准地叠加显示在相应位置,让用户可以直观看到购买的家具摆放在家中的实际效果,增强用户的交互体验。

  • 视频内容分析:在视频播放类的前端应用中,AI可以分析视频画面,比如自动生成视频内容的文字摘要、识别视频中的人物动作、提取关键帧用于视频预览等,方便用户快速了解视频核心内容,也有助于视频的分类推荐等功能实现。

AI 应用上怎么划分

移动端前端应用:

  • 语音助手集成:在手机端的各类APP前端界面中,集成语音助手功能,如地图导航APP,用户可以通过语音指令查询路线、查找周边兴趣点等;生活服务类APP能按照语音指令完成诸如订餐、叫车等操作,背后是AI语音识别和自然语言理解技术在起作用,让移动端操作更加便捷高效,无需手动输入。

  • 智能拍照功能:手机相机应用的前端界面,利用AI计算机视觉技术实现自动场景识别、智能美颜、图像优化等功能。比如自动识别拍摄场景是风景、人物还是夜景等,然后相应地调整拍摄参数以达到最佳效果;拍照时根据人物面部特征进行智能美颜,实时在前端屏幕上呈现出美化后的效果,提升用户拍摄体验。

网页端前端应用:

  • 智能表单填写:在一些需要用户频繁填写表单信息的网页端,如在线申请贷款、报名考试等场景,AI可以根据用户之前填写的类似表单数据或者已有的用户基本信息,自动预填充部分内容,减少用户手动输入的工作量,并且利用自然语言处理技术对用户填写的内容进行格式、语义等方面的检查,提示错误信息,提高表单填写的准确性和效率。

  • 网页内容自适应展示:根据不同用户的设备屏幕尺寸、网络带宽以及浏览习惯等因素,通过AI模型进行分析预测,网页前端动态调整页面布局、内容加载顺序和展示方式等。比如对于网络带宽较低的用户,优先加载关键文字和图片内容,确保基本的浏览体验;针对不同屏幕比例,自适应调整导航栏、图片、文本等元素的位置和大小,提升网页的通用性和用户友好度。

桌面端前端应用:

  • 智能办公助手:在办公软件如文档编辑、表格处理等桌面端应用的前端界面,AI可以辅助用户进行文档排版、语法检查、数据自动分析等工作。例如,根据文档内容自动推荐合适的字体、字号、段落格式等排版方案;在表格中快速分析数据,生成图表或者进行数据预测,帮助办公人员更高效地完成工作任务。

  • 智能文件管理:在桌面操作系统的文件管理前端界面,AI可以根据文件的类型、内容、创建时间等多维度信息进行分类整理,还能通过对用户使用文件习惯的分析,预测用户可能需要查找的文件,将其在前端界面突出显示或者提供快捷访问方式,提高文件管理的便捷性和效率。

AI 概率模型

AI 给出的答案,是推理的答案,是一个概率结果,不是准确的计算或者搜索结果。

可能同一个问题,给不同的 AI,或者多次给同一个 AI,回答的结果都不一样。

实战经验:

  • 对于不精确的场景:使用 AI 并解决问题即可(例如一个网页可以有多种思路实现)

  • 对于精确的场景:多个 AI 多次验证,总结出概率最高的结果

  • 对于特定的问题:国内使用国内的 AI,国外使用国外的 AI,各取所长

AIGC

AIGC: 内容生成式人工智能,包括AI 图像,文本,音频,视频,对话

大模型的不足

第一个不足就是幻觉,不稳定(创造性)。因为大模型是概率模型,只是预测回答。所以回答并非百分百正确,哪怕是模型不知道的问题,比如某个企业内部的信息,并没有投喂给他,它也会按照概率去编造一个信息出来。所以大模型的答案不能百分百全信,但是这也算是大模型的一个优势所在,因此对于创造性的任务,大模型就很擅长,比如写小说。

第二个不足知识欠缺。众所周知,chatgpt的数据截止2021年9月。那在这之后的信息它无从知晓。所以预训练模型所掌握的知识就只能停留在某一刻为止。同样的,一些非公开数据,比如企业内部数据,应用内数据等,也是无法被gpt所知晓的。

Transformer 架构

大语言模型是基于 Transformer 架构,它是一种神经网络架构,是一个专门用于自然语言处理的编码-解码器架构,也是目前最核心的深度学习模型类型

核心能力:将输入的单词,以向量的形式,传递给该神经网络,然后通过该网络的编码解码,以及自注意力机制(self-attention),建立起每个单词之间联系的权重。

宏观上讲,在基于该架构进行训练时,输入的每句话中的每个单词,都会和已经编码在模型中的单词进行相关性的计算,并把相关性又编码叠加在每个单词中。

以下面的文本为例,一旦将以下文本喂给模型,那么前面这些词与it之间的相关性权重就会增加。

The animal didn’t cross the street because it was too tired

所以,大语言模型,其实是一个概率模型。

它只是基于你的输入,预测你的输出。而并不是去数据库检索数据。

包括“1+1=2”这样的数学问题,也是通过投喂数据训练出来的,只是因为1+1接下来出现2的概率最大,所以大模型才会输出答案为2。

如果想要大模型学习到足够多的世界知识,就需要大量的数据训练,从而才能足够全能且回答的足够准确

思维链

任何数学问题也只不过是类似人类的快思考,直接记答案。

大模型并不擅长解决逻辑问题,如果想要大模型更精确的解决逻辑问题,那就可以让大模型解释其推理过程,从而实现更加精准的答案。

可以通过 few shot 的方式引导大模型进行推理(一步一步提示)。

还可以通过提示语就是“请一步步思考下”,这也能让大模型展示自己的推理过程,并输出更精确的答案。

token 上限是什么

在chatgpt 里面 prompts 有效,但是一旦对话过长,prompts会失效,而且gpt会忘了之前在聊啥。

主要是因为chatgpt在请求时有token上限限制,在处理对话的时候,只是将一定数量的上下文对话传递给了模型,所以随着对话越来越长,前面的对话内容就会丢失。

技术层面:每次输入内容后,需要把整个对话列表(例如之前的100条对话)都传递给大模型进行运算。如果列表过多过长,大模型超出 token 上线,就会出现丢失内容(和人类思维类似,如果聊天内容很多,就会忘记了开始说过的话了)。

参考:https://learnprompting.org/zh-Hans/docs/basics/instructions

rag 是什么

RAG 是 Retrieval-Augmented Generation 的缩写,中文一般叫“检索增强生成”。

它是一种让大模型在回答问题前,先去外部资料里“查一查”,再基于查到的内容来生成答案的方法。

它解决什么问题

- 大模型本身不一定知道你的私有知识库、最新文档或公司内部资料。

- 直接让模型“凭记忆回答”容易出现幻觉,也就是编造看起来很对但其实不准确的内容。

- RAG 通过把“检索”接到“生成”前面,能让答案更可靠、更可追溯。

基本流程

1. 用户提问

2. 系统把问题转成检索

3. 去知识库、文档库、向量库或搜索引擎里找相关内容

4. 把检索到的内容连同问题一起喂给大模型

5. 大模型基于这些资料生成回答

Embedding

前面使用大模型的技巧,主要还是基于大模型已有知识能力来解决问题。

但是我们也介绍了大模型的缺陷之一就是知识欠缺,企业内部的信息库,个人的信息库,大模型无从知晓。如果想要大模型学习到这部分的知识,用api把所有文本投喂给大模型不太可能,因为gpt的接口调用有token上限限制。继续投喂这些数据进行训练也不太可能,性价比太低。

如果要解决这个问题,Embedding 就是最佳的解决方案,Embedding 简单理解就是把文本向量化,通过向量化,把文本转换成具备了数学意义的数据,我们也就能利用向量数据来计算文本之间的相关性。

通常本地知识库构建的架构和流程如下:

  1. 将本地知识库文本进行整理分块,并进行向量化,向量数据存储在向量数据库。

  2. 用户输入的文本向量化,并在向量数据库进行相似性匹配,最终匹配出topN的文本块。

  3. 采用合适的prompts加上上一步搜索到的文本一并输入给大模型。

  4. 利用大模型的语义理解能力和知识问答的能力,生成并总结答案。

利用Embedding的能力,我们就可以构建基于大模型的本地知识库检索。

Fine tune

提示工程中介绍了 few-shot 的方式指导大模型的输出。这是一种在大模型之上约束大模型输出的方式之一,但是如果我们对于模型的要求足够垂直,就是要符合特定场景的要求进行回答,比如大模型就是一个翻译模型,我输入中文,它只输出英文。

那我们就可以用 fine_tune 微调。所谓微调,就是以预训练大模型作为基座,再投喂一批少量特定的数据集,就能微调大模型,从而让大模型能以我们提供的数据集的规则或内容回答问题。

比如以下就是 chatgpt 微调接口要求的json数据集,通过投喂这些少量的结构化数据,就能微调出我们自己需要的大模型。

大模型微调有哪些好处 openai 官方文档也罗列了以下几点:

ReAct

ReAct,就是 Reason+Action,翻译过来就是推理+行动。利用COT推理简单逻辑问题基本是没有问题,但是面对复杂的需要依赖更多事实信息的问题,就需要尝试在推理过程中,去获取更多帮助推理的知识和事实信息。

langchain在执行一个任务的时候如果把它传给大模型的第一个prompts打印出来,就会发现它在提示中提供了几个上面这种框架的样本,这个框架基于thought-action-observe一步一步去得到最终的答案,这其实类似人类的思考方式,我们在解决一个问题的时候,如果脑子中没有现成的答案,那就需要先去查资料,然后根据查的资料再去思考整合,然后循环这个过程,最终得到推理出来的答案。而这个提示样本框架也是一样,action就是执行调用对应的工具,seach就是去调用搜索API,并将搜索结果显示为observe,然后循环这三步,直到查询到最终结果。

openai提供的api更新了function_call,它就能够指定模型在对应的场景去调用我们自己定义的方法或者api。从而也就可以实现chatgpt +plugins的效果。

Agent 是什么

Agent 智能体的发展

智能体:广义上是指任何系统中能够思考并与环境交互,独立且具有相互合作功能的实体。智能体不仅仅是指人,蚂蚁,蜜蜂这些,同样可以指代AI系统,而目前基于AI大模型涌现了一些智能体雏形:

  • 个体型智能体,比如 auto-GPT。

  • 群体性智能体,比如 Generative Agent。

个体型智能体:就是能够利用感知、决策、行动这几个基本步骤来解决复杂问题,理论上只要给它一个目标,Agent就能够自动完成它。AutoGPT是一款拥有强大工具集的强大模型,并具有从错误中学习并不断纠正的能力。它采用推理、计划、批判、规划、执行的无限循环逻辑去执行任务最终以达到目标。

社会型Agent(群体型Agent):由不同的社会角色Agent构成,每个角色都专注于一个“职业”,使整体社会成为一个高效的动态稳定体。Generative Agents项目的灵感来自《TheSims 模拟人生》系列游戏, 25个拥有身份设定、模拟人类行为的Agents组成,构建了一个虚拟小镇。每个Agent在感知(Perceiving)和行动(Acting)之外,还有扩展的记忆(Memory)、规划(Planning)和反思(Reflection)三个子模块。 通过结合大语言模型与拟人的功能架构,使它们能够自由活动,真正模拟小镇的运作。

Agent 架构

一个基于AI大模型的Agent架构应该包括以下部分:

  • 规划(Planning)子目标与分解(Subgoal and decomposition):Agent将大型任务分解为更小、更易于 处理的子目标,从而实现对复杂任务的高效处理。

  • 反思与完善(Reflection and refinement):代理可以对过去的行动进行自我批评和自我反思,从错误中吸取教训,并为未来的步骤进行改进,从而提高最终结果的质量。

  • 记忆(Memory)短期记忆(Short-term memory):所有上下文学习都是利用模型的短期记忆来学习。长期记忆(Long-term memory):为Agent提供了在长时间保留和回忆信息的能力, 通常通过利用外部向量存储和快速检索来实现。

  • 工具的使用(Tool use)Agent学会调用外部API获取模型权重中缺失的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、访问专有信息源等。

基于Agent概念和框架,AI大模型未来的发展大概率会出现各种智能Agent以及基于Agent集群的大型Agent。基于这些Agent,系统可以实现自动化,自适应性。而未来的应用及系统架构也可能逐渐发展成AI_based system,也就是基于Agent展开的应用架构,这或许会颠覆现有的传统应用架构。

提示词注意点

提示词注意事项

1、阶段性:需求分成不同阶段,然后每一个阶段进行过程控制,让 AI 严格按照设计思路一步步来。如果一次性全部写出需求,那么不一定满足需求,中间某一步可能不正确(例如:确定产品需求——确定页面效果——数据库表——接口文档——后端代码——前端代码——联合调试)。

2、精确性:严格按照设计文档,不能让自由发挥。避免乱写。能精确的地方就要精确。

3、明确技术栈版本:AI 可能基于早期代码和文档进行训练,所以默认使用较早的技术。建议约定和目前项目相匹配的版本。 例如指定 `React Router v6`、使用 Tailwind CSS v3 实现响应式布局(可以给定 package.json 指定版本)。

4、提供参考示例:给效果图,或者类似 Notion 的页面切换动画。

批量翻译

把选中部分中的 msgid 后面的英文字符串,翻译成希腊语,填入 msgstr "" 中,其他的不要修改,空行不要删除,其他代码不要修改。

按照实际测试,每次选中翻译的部分在100行左右(20句)太多上下文可能造成网络错误等问题,其他用户测试模型不超过1000句上下文。具体还取决于使用什么工具和模型。

进阶:先使用脚本去除无关内容,这样可以减少上下文数量和干扰信息(数据清洗),这样就能支持更多的翻译字符串。

项目预设-预设集成第三方库

将 package.json 中的 核心依赖 + 版本号 告诉 AI

1
请你使用 xxx 这些第三方库实现功能
  • 使用 React Query 处理 API 请求缓存

  • 添加 Tailwind CSS 并配置自定义主题

  • 集成 React Hook Form 实现高性能表单

  • 使用 Framer Motion 添加页面过渡动画

  • 配置 ESLint + Prettier 代码规范

  • 使用 Jest + React Testing Library 进行测试

  • 使用 React Router 配置路由

实际的个人项目提示词:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
请基于 React 18 技术栈进行前端业务开发,项目需引入并使用以下第三方依赖库,严格结合各库核心能力进行功能编码,各库用途说明如下:

1. `react` / `react-dom`:项目核心基础框架,用于组件化开发、页面DOM渲染与视图构建;
2. `react-app-polyfill`:提供浏览器兼容性补丁,兼容低版本浏览器语法与API;
3. `@reduxjs/toolkit`、`react-redux`、`redux`:搭配实现全局状态管理,统一处理跨组件共享数据、全局状态缓存与异步状态逻辑;
4. `antd`:使用React UI组件库,快速搭建后台系统、表单、弹窗、表格等通用业务页面;
5. `classnames`:动态拼接、条件控制CSS类名,简化样式动态控制代码;
6. `axios`:作为全局网络请求工具,处理前后端接口请求、请求响应拦截、接口统一封装;
7. `dayjs`:轻量级日期工具库,处理项目内日期格式化、时间计算、日期对比等逻辑;
8. `prop-types`:对React组件Props进行类型校验,提升代码稳定性与可维护性;
9. `is-hotkey`:监听键盘按键组合,实现页面快捷键触发操作等交互功能;
10. `js-cookie`:浏览器Cookie增删改查操作,用于登录凭证、轻量临时数据存储;
11. `localforage`:封装IndexedDB等本地存储,实现大容量、异步本地数据持久化存储;
12. `@antv/g2`:数据可视化图表库,开发折线图、柱状图、饼图等各类业务图表;
13. `qrcode.react`:快速生成页面二维码组件,满足二维码展示、分享等场景;
14. `react-icons`:统一管理项目图标,快速引入各类矢量图标,优化图标使用效率;
15. `react-color`:提供拾色器组件,用于颜色选择、主题配色、自定义色值配置场景;
16. `react-select`:使用高级定制化下拉选择组件,实现搜索、多选、异步下拉等复杂选择功能;
17. `react-transition-group`:为组件挂载、卸载、切换添加过渡动画,提升页面交互体验;
18. `react-intl-universal`:实现项目国际化多语言能力,支持多语言文本切换、文案国际化展示。

开发时需合理选用对应库能力,代码规范、功能贴合各库原生定位,不重复造轮子,最大化利用现有依赖完成业务开发。

实际的公司项目的提示词:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
请基于 React 18 技术栈进行前端业务开发,项目需引入并使用以下第三方依赖库,严格结合各库核心能力进行功能编码,各库用途说明如下:

1. `react` / `react-dom`:项目核心基础框架,用于组件化开发、页面DOM渲染与视图构建;
2. `@gatsbyjs/reach-router`:轻量级React路由库,负责项目页面路由跳转、路由匹配与导航管理;
3. `@seafile/seafile-calendar`:Seafile定制日历组件,用于实现日程管理、日期选择、日历展示功能;
4. `@seafile/seafile-editor`:Seafile官方富文本编辑器,支持文档编辑、格式化、内容排版等核心编辑能力;
5. `@seafile/sea-email-editor`:Seafile定制邮件编辑器,用于实现邮件内容编辑、模板配置功能;
6. `autoprefixer`:PostCSS插件,自动补全CSS浏览器前缀,解决样式兼容性问题;
7. `axios`:基于Promise的HTTP客户端,统一处理项目网络请求、接口封装、响应拦截;
8. `classnames`:动态条件拼接CSS类名,简化组件样式控制逻辑;
9. `copy-to-clipboard`:轻量级复制工具,实现文本、链接、内容一键复制到剪贴板功能;
10. `d3`:数据可视化库,用于绘制复杂图表、数据图形、自定义可视化交互界面;
11. `dayjs`:轻量级日期处理库,用于日期格式化、时间计算、日期对比;
12. `deep-copy`:深拷贝工具库,安全复制复杂对象/数组,避免引用类型数据污染;
13. `embedding-atlas`:嵌入式图表/地图集成库,用于页面内嵌可视化图表、地图展示;
14. `i18next` / `react-i18next` / `i18next-browser-languagedetector` / `i18next-http-backend`:国际化完整方案,实现多语言切换、自动检测浏览器语言、远程加载翻译资源;
15. `is-hotkey`:键盘快捷键监听工具,实现组合按键检测、快捷键功能开发;
16. `js-cookie`:浏览器Cookie操作库,用于Cookie的读取、设置、删除,存储轻量客户端数据;
17. `jszip`:前端压缩/解压缩库,用于处理ZIP文件的创建、读取、解压操作;
18. `prop-types`:React组件属性类型校验,提升代码健壮性与可维护性;
19. `react-dnd` / `react-dnd-html5-backend`:React拖拽功能库,实现元素拖拽、拖放、排序等交互效果;
20. `react-responsive`:响应式布局工具,根据设备屏幕尺寸动态渲染组件、适配移动端/PC端;
21. `react-select`:高度可定制化下拉选择组件,支持搜索、多选、异步加载等高级下拉功能;
22. `reactstrap`:基于Bootstrap的React UI组件库,提供按钮、表单、弹窗、布局等通用UI组件;
23. `rmc-dialog`:移动端弹窗组件,用于提示框、确认框、模态框等弹窗交互;
24. `rmc-feedback`:移动端触摸反馈组件,优化按钮、元素点击的交互体验;
25. `rmc-tabs`:移动端标签页组件,实现顶部/底部tab切换、页面分类导航功能;
26. `slugid`:生成唯一URL安全ID的工具,用于创建短链接、唯一标识;
27. `unified`:文本处理抽象语法树工具,用于markdown/文本解析、转换、格式化处理。

开发时需合理选用对应库能力,代码规范、功能贴合各库原生定位,不重复造轮子,最大化利用现有依赖完成业务开发。

项目开发-基础组件开发

基础组件:使用 React Hooks 创建一个名为 `TodoList` 的组件

- 包含一个输入框和添加按钮,用于添加待办事项

- 显示待办事项列表,每项可勾选完成状态

- 已完成的事项显示删除线,未完成的正常显示

- 添加事项后自动清空输入框

表单组件:使用 Formik 和 Yup 创建用户注册表单

- 包含用户名(必填,长度 4-20)、邮箱(格式验证)、密码(8 位以上,包含数字和字母)

- 实时表单验证和错误提示

- 提交时显示加载状态

- 成功提交后显示提示并重置表单

复杂组件:创建一个可拖拽的看板组件(类似 Trello)

- 使用 React Beautiful DND 实现卡片拖拽功能

- 包含多个列(待办、进行中、已完成)

- 卡片可在列之间移动

- 拖拽结束后更新状态并显示动画反馈

- 支持添加/删除列和卡片

组件测试:为以下 React 组件编写测试用例

- 测试按钮点击事件

- 测试状态更新

- 测试条件渲染

- 测试异步数据获取

- 添加覆盖率报告配置

项目优化-性能优化

数据获取与处理

写一段 JS 代码,从一个JSON格式的API接口

假设接口地址为 https://example.com/api/data

获取数据,解析数据后,将其中的用户名列表展示在页面的一个无序列表(ul)元素中

如果获取数据失败,要有相应的错误提示。

可视化:使用 React Chart.js 创建数据仪表盘:

- 包含折线图(显示月销售额趋势)

- 柱状图(对比不同产品销量)

- 饼图(显示用户地区分布)

- 添加图表交互(悬停提示、点击钻取)

- 数据使用模拟 JSON 格式

优化以下 React 组件的性能

- 使用 memo 避免不必要的重渲染

- 使用 useCallback 缓存回调函数

- 使用 useMemo 优化计算密集型操作

状态管理:为 React 应用配置 Redux Toolkit

- 创建一个 `authSlice` 管理用户认证状态(isLoggedIn, userData)

- 实现异步登录 thunk(模拟 API 请求)

- 提供登录、登出、更新用户信息的 action

- 在组件中使用 useSelector 和 useDispatch 连接状态

自定义 Hooks

创建一个名为 `useLocalStorage` 的自定义 Hook:

- 实现状态持久化到 localStorage

- 自动同步多个组件间的状态更新

- 示例用法:const [theme, setTheme] = useLocalStorage(’theme’, ’light')

提示词的要点

角色:希望模型扮演的角色(你是一个 python 程序员)

指令:指定您希望语言模型(用 python 写代码)执行的任务或指令(功能是贪吃蛇)

上下文:包含相关信息或额外上下文,以帮助语言模型更好地响应。(例如很多预设的提示词,或者选中的代码,或者图片)

输入数据:您输入的内容或问题。(指定指令的格式)

输出指示:指定您需要的输出类型或格式。(代码,图片,文本,视频等,字数长度格式等)

GPT 是什么?

GPT 全称 Generative Pre-trained Transformer

通过大量数据预训练后的模型

在这已经预训练好的模型上,只需要给少量的case,就很容易学到这几个 case 的特征

下面是不同版本的参数数量

  • GPT‑1:1 亿级

  • GPT‑2:1 亿~15 亿

  • GPT‑3:1750 亿

  • GPT‑3.5:200 亿~1750 亿

  • GPT‑4:1.8 万亿(MoE)​

中国的ChatGPT

https://www.bilibili.com/video/BV1814y1F7Rk/

消息面:微软已经解散元宇宙团队,全面发展 ChatGPT 大模型团队,反映出大企业 AI 研究方向的变化。

传统的互联网是搜索引擎为主导,不同行业有不同的门户网站,搜索引擎检索并做索引,人工输入内容直接搜索网页。

新的 AI 大模型加持下,直接输入问题,返回答案,那么就不需要那么多网站和应用。

或许,未来发展到后期,就不需要这么多网站,而是直接大家在大模型中输入自己的信息,然后大模型进行检索学习,那么产品推广的模式也会发生翻天覆地的变化,前端开发的模式也逐渐变化,因为大家都不需要,也不会直接访问那么多产品的网站了,就像智能手机取代了电话+收音机+手电筒+地图,微信取代了打卡+发红包+短信等等。

ChatGPT整合进Office

微软把 ChatGPT 内置到了 Office,可以根据用户指令,自动生成 Word,生成 PPT,然后对某些细节进行微调,同时也支持会议总结等智能办公体系。

https://www.bilibili.com/video/BV14o4y1z7oq/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

类似智能手机取代传统的钟表,照相机等功能,AI 助手可以取代秘书助理等多个辅助工作。

AI绘画-启动/修复/更新/模型下载管理

一个 AI 绘画的工具(Windows 版本),2026年看看能否搞一个最新版本的工具

https://www.bilibili.com/video/BV1ne4y1V7QU/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

让ChatGPT带我练7天

https://www.bilibili.com/video/BV1wT411e7Bx/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

一个健身博主使用 ChatGPT 给自己规划的健身训练计划,看 AI 能否替代健身教练。

AI 根据已有的很多答案,给出一个概率最高的答案,不一定适合每一个人(例如让普通人锻炼蝶泳等高难度动作)

解决方案:给 AI 预设(你是一个健身教练),给自己预设(我是一个0基础的普通人,年龄,身体素质),然后不断调整细节。AI 可以很好的完成 90% 的重复工作,剩下的 10% 需要专业人员进行微调,短期内无法取代 100% 满足的健身教练,也很难取代健身之外的各种情绪价值。

9 个插件实例自动完成任务

https://www.bilibili.com/video/BV1Sk4y1x7r2/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

介绍了不同类型的 ChatGPT 插件,可以用来完成特定场景的功能(类似现在的智能体)

包括图片创造,文字创作,编写代码。

用户需要能判断 AI 生成的结果是否正确,是否是好的结果。

自己可以尝试使用 chatGPT 的插件。

学会如何把ChatGPT接入Siri

https://www.bilibili.com/video/BV1G24y1n76y/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

chatGPT 和 Siri 进行组合后,可以辅助更好的调用 Siri

王炸级的AI工具

https://www.bilibili.com/video/BV1Bv4y1L79V/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

AI绘画、AI写作、代码、语音生成,现在支持的 AIGC 很多方面

个人实际使用中,AI 调用都需要额外收费,那么这部分收费是否能获得足够的工作回报?这是个值的思考的问题

(例如微软的 Azure AI 可以生成用户配音,那么这些做成短视频,能否获得预期的回报?)

30个AI工具可以让AI帮你干活

https://www.bilibili.com/video/BV1m54y1g7CP/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

介绍了多个 AI 工具用于 AIGC 领域,主要是2023年的,现在已经过时了

4.AI写论文:https://jenni.ai/;https://www.xiaomo.com/home

7.AI画画:https://yige.baidu.com/;https://www.gaoding.com/;

8.AI聊天:https://openai.com/blog/chatgpt/;

9.AI剪辑:https://www.ibm.com/cn-zh/watson;https://aigc.yizhentv.com/;https://zenvideo.qq.com/;http://shanjian.tv/

10.AI配音:https://azure.microsoft.com/zh-cn/free/cognitive-services/

11.AI换脸:https://deepfakesweb.com/;https://faceswap.dev/;

在家训练使用轻量级低成本 chatGPT

https://www.bilibili.com/video/BV1H84y1J79h/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

介绍了一个 github 项目,让大模型简化轻量化,https://github.com/hpcaitech/ColossalAI

可以在性能较弱的电脑,本地部署较好的大模型

目前星标不少

看未来能否在 ollama 上本地部署对应的大模型

AI-绘画

让 AI 生成1张图片,经过100次迭代后,最后就变成了大众脸

https://www.bilibili.com/video/BV1Lg4y1E7nr/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

AI 根据用户的反馈确定回答答案的正确与否,那么最后审美就趋近于大众脸(开源公共的 AI)

AI 绘画

ChatGPT + Midjourney画一幅水墨画

https://www.bilibili.com/video/BV1ms4y157kJ/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

ChatGPT:https://chat.openai.com/

Midjourney:https://www.midjourney.com/

使用 AIGC 关键是精确需求,一步步的引导,避免AI的想法和个人的想法不一致。

目前的情况,还是通过不同的软件分步骤进行描述:使用通用 ChatGPT 把想法转换成具体的实现细节,然后通过专门的 AI,把具体细节文字实现成多媒体,这样就实现了 AIGC 创作效果。

AI-绘画

https://www.bilibili.com/video/BV1kN4y1N7Pf/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

AI 绘画的结果,取决于提示词的准确性(AI 产品经理课程中的描述)

需要写好提示词,然后才能让 AI 充分学习并处理任务(当然也需要一个更高级的模型)

对于热门的关键词比较好画,对于冷门的领域和词汇,AI 发挥的不是很稳定。

AI-绘画

AI 可以完成多种风格的绘画创作,包括进一步的视频

https://www.bilibili.com/video/BV1X24y1n77u/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

ChatGPT 牛X在哪

https://www.bilibili.com/video/BV1rj41137cr/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

30分钟

图灵测试:判断对面是一个人还是机器的测试

早期个人助手的逻辑:模式匹配,就是 if-else 的处理模式,根据用户输入内容,直接匹配,给出答案。

可以总结出来,固定模式的事情,都可以被 AI 取代(如果一个复杂问题,可以分成多个简单重复的步骤,每一步都是逻辑性思考和分析,那么可以说可以被 AI 取代)

1、如何用 AI 去减少人的工作,例如洗衣服?

2、如何去搞懂 AI 不能做的部分,例如晾衣服?或者说洗衣工就被淘汰了?

GPT4为何会颠覆现有工作流

50分钟长视频

https://www.bilibili.com/video/BV1MY4y1R7EN/?vd_source=2d5bdee7ea59486ed4aa4a9b10020224

文案链接:

https://www.modevol.com/episode/clf9d5kni0zo301mm6tkl9t87

这份文档围绕ChatGPT展开全面科普,核心从原理、训练过程、核心能力、社会影响及应对方向等维度展开

具体内容如下:

一、核心工作原理 ChatGPT的本质功能是“单字接龙”(自回归生成),即依据任意长度的上文,通过自身模型生成下一个字,长文本回答则是将生成的字不断融入上文、反复接龙的结果。其生成结果受上文和模型(核心“大脑”)影响,模型需通过训练调整:让模型依照学习材料做单字接龙,不断优化参数,使其能按概率抽样生成符合预期的下一字。

与搜索引擎不同,ChatGPT并非检索已有信息,而是通过学习语言规律“生成”内容,因此具备泛化能力,能应对未见过的提问,但也存在易混淆记忆、胡编乱造、内容无法直接增删改查、高度依赖优质学习材料的短板。

二、三大训练阶段 1. 开卷有益(无监督学习)​:让模型学习海量互联网文本,扩充词汇、语言知识和世界信息,成为“懂王鹦鹉”。GPT系列从GPT-1(1.17亿参数、5GB数据)迭代到GPT-3(1750亿参数、45TB数据),规模跃升使其掌握多领域语言规律,但存在回答不受约束、易输出不当内容的问题。 2. 模板规范(有监督学习)​:用人工编写的优质对话范例训练模型,矫正不规范回答习惯,明确“该说什么、不该说什么”,同时让模型学会理解指令和例子,掌握思维链推理能力,成为“懂规矩的博学鹦鹉”,但也可能导致回答模板化、限制创造力。 3. 创意引导(强化学习)​:通过人类对模型自由回答的评分调整模型,引导其生成符合人类价值取向的创新性回答,最终成为“既懂规矩又有创意的博学鹦鹉”。

三、社会冲击与核心价值 ChatGPT的里程碑意义并非产品本身,而是验证了大语言模型的可行性,推动全球布局该技术。大语言模型的核心价值在于精通语言且存储海量人类知识,能大幅提升群体协作中“创造、继承、应用知识”的语言处理效率,可应用于搜索、办公、教育、开发、客服等全行业场景。它也对现有人才培养模式提出挑战:传统“传授既有知识”的教育模式已难以适应时代,未来需转向培养学习能力和创造能力,以应对技术变革带来的就业市场变化。

向量数据集

向量数据集:全是数字数组向量,专门给 AI 做检索、匹配、聚类

向量数据集的用途:

  1. RAG 知识库:​把文档转成向量 → 构成向量数据集 → 用户提问时检索最相关的

  2. 以图搜图:​所有图片转向量 → 建向量库 → 上传一张图找相似

  3. 推荐系统:​用户、商品都转向量 → 匹配相似兴趣

  4. 语义搜索:​不搜关键词,搜 “意思相近” 的内容

向量数据集是你手里的原始数据(很多向量),Milvus 是专门存、查这些向量的向量数据库。​

Milvus 大模型向量数据库

Milvus 指的是通过 python 操作 Milvus—— 专为 AI 打造的开源高性能向量数据库,​专门用来存和查 “特征向量” 的数据库

PyMilvus 是Milvus 的官方 Python 客户端,​提供全套 API:连接、建库、增删改查、索引、混合搜索。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1.安装
pip install pymilvus

# 2.连接
from pymilvus import connections, Collection, FieldSchema, CollectionSchema, DataType
connections.connect(host='localhost', port='19530')

# 3.建表(Collection)
fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=512)
]
schema = CollectionSchema(fields)
coll = Collection("my_docs", schema)

# 4.建索引
index_params = {"index_type": "HNSW", "metric_type": "L2"}
coll.create_index("embedding", index_params)

# 5.插入/搜索
coll.insert([[1,2], [[...], [...]]])
coll.load()
coll.search(data=[query_vec], anns_field="embedding", limit=5)

和传统数据库的对比:

  • MySQL/PostgreSQL:存结构化数据,精确匹配、范围查询

  • Milvus(向量库)​:存高维向量,做相似性匹配(近似最近邻)​

Skill 是什么?怎么用

Skill(Agent Skill)​:放在特定目录下的指令 + 模板 + 参考资料文件夹,用来教 AI「在什么场景下、按什么规范、用什么模板」来写代码。

Prompt:每次聊天都要重写一遍,临时生效。

Skill:写一次,到处用,AI 会自动匹配场景加载,支持团队共享。

目录结构

1
2
3
4
xxx-skill/
├─ SKILL.md          # 必须:技能说明+触发条件+详细规则
├─ assets/           # 可选:模板、代码片段
└─ references/       # 可选:官方文档、约束、事实清单

放置路径:项目根路径或者设备根路径

1
2
3
你的项目/.github/skills/技能名/

~/.copilot/skills/技能名/

具体使用

GitHub Copilot、Claude Code、Cursor 等,是一个开放标准(agentskills.io)。

  1. 打开 VS Code,安装并登录 GitHub Copilot 扩展

  2. 打开 Copilot Chat 面板(右侧图标或 Ctrl+Shift+I

  3. 点右上角齿轮 ⚙️ → Skills,能看到 skills 已被识别

Copilot 识别到这些关键词 → 自动加载 skills → 按 SKILL.md 里的规则和模板生成代码