一、大模型是什么
通常是指大规模的机器学习模型,尤其是深度学习模型。这些模型通常由百万到数十亿参数构成,需要大量的数据进行训练。大模型由于其规模大、能力强,因此在各种任务上,如图像识别、自然语言处理、语音识别等领域,都能达到非常高的性能。例如 OpenAI 的 ChatGPT 就是典型的大模型。
一、现有的主流大模型
- ChatGPT:主要用于对话 https://openai.com/
- New bing:基于GPT,主要用于搜索
- 百度文心千帆大模型:应用在很多领域 https://yiyan.baidu.com/
- 腾讯混元大模型:擅长中文创作和逻辑推理 https://hunyuan.tencent.com/
- 智谱清言:中国版对话语言模型,与GLM大模型进行对话。https://chatglm.cn/
- 阿里通义:旨在打造国内首个 AI 统一底座 https://tongyi.aliyun.com/
- 华为盘古:面向行业的大模型 https://www.huaweicloud.com/product/pangu.htm
二、基于现有大模型实现商业化(重点介绍LLM方向)
- 自然语言处理,如 ChatGPT 文心一言。做自然语言文本,对话和回答问题。
- AI 内容生成:根据不同的业务场景进行话术生成,例如创建文章,写广告文案。
- AI 对话:利用语言模型的自然语言理解和生成能力,提供客户服务,技术支持等。
- 翻译服务:可以提供精准的各种语言的翻译。
- 代码生成、优化工具:例如 github copilot 服务。
- 结合给定资料库,构建知识化应用:生成专属知识图谱等。
- 语音助手:ChatGPT-4 已经有语音版了,目前还在测试阶段。
- 医学影像分析,如影像识别,分类,分割,三维重建
- 计算机视觉,如图像识别,目标检测,图像分割等。
- 语音识别,如帮助改善语音转文字精准度,生成不同风格的音乐,声音模仿,换音
- 推荐系统,如对不同的角色进行不同的推荐
- 强化学习,如 AlphaGo
三、目前接触到的应用
- AI 内容生成
- 翻译
- 开发信
- 社交媒体帖子
- 文章大纲
- 产品介绍
- ···
- AI 对话
- 上下文处理
- 模型,参数配置
- 结合给定资料库,构建知识化应用
- 文档等资料分割保存
- 资料数据向量化
- 问题的相似性匹配
- 结合资料库返回答案
四、需要用到的技术
-
Python
- AI 方向推荐使用的语言
-
FastAPI
- 基于ASGI,擅长处理异步请求
-
langchain
- 语言模型工具包,擅长结合多个大模型
- 使模型结合外部数据(prompt-completion)
- 擅长做文本处理,比如文本切割,数据清洗
-
Milvus
- 核心:相似性搜索
- 解决GPT上下文限制、费用高、多文本速度慢的问题(gpt-3.5-turbo 4ktokens≈3k字 最大的100k 75k字)
- 核心思想是将文本转换成向量,然后将向量存储在数据库中,当用户输入问题时,将问题转换成向量,然后在数据库中搜索最相似的向量和上下文,最后将文本返回给用户。
- 通过索引和相似度度量进行搜索
- 在处理大规模数据集的向量搜索时具有高性能。
-
NebulaGraph https://zhuanlan.zhihu.com/p/37057052
- 开源的、分布式的、易扩展的原生图数据库。能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。
- 图数据库是专门存储庞大的图形网络并从中检索信息的数据库。它可以将图中的数据高效存储为点(Vertex)和边(Edge),还可以将属性(Property)附加到点和边上。
- 特性
- 知识图谱就是把不同种类信息连接在一起得到一个关系网(公司A-个体A-个体B-住址A-银行C)
- 由点和边组成,点表示实体,边表示关系
- 知识图谱是关系的最有效的表示方式
- 能做什么
- 通用知识图谱,比如互联网搜索,推荐,问答等业务场景
- 行业知识图谱,比如人脉查询、企业社交、信誉查询等
-
Elasticsearch
- 主要优势是大数据量可以快速准确的进行搜索
五、业务方面
-
OpenAI 微调
- 输入一些微调训练数据,默认加到特定输入里。这是 openai 官方目前有几个模型支持的。比如设定风格,边缘情况处理,错误处理等。微调增加了输入的 token,那还得考虑成本或者输入是否会超出输入 token 限制;超过限制的处理等。
创建微调模型:openai.FineTuningJob,使用官方的资源进行微调,会有训练结果的模型出来,再使用这个模型。 - 二次输入,根据一些参数配置优化
- 根据现有知识库进行向量搜索匹配
- 输入一些微调训练数据,默认加到特定输入里。这是 openai 官方目前有几个模型支持的。比如设定风格,边缘情况处理,错误处理等。微调增加了输入的 token,那还得考虑成本或者输入是否会超出输入 token 限制;超过限制的处理等。
-
文心一言微调
- 创建调优任务,模型训练结束后调用生成的模型
- 二次输入,根据一些参数配置优化
-
如何通过现有的知识库构建知识化应用
- 现有文档上传分割,数据处理(清洗、去重等),向量化后存库
- 根据知识库数据构建知识图谱
- 问题关联知识图谱后进行相似度搜索,搜索结果添加到模型输入的 prompt
- 模型的答案根据需求是否进行二次优化
- 也可以使用聚类归纳相似数据
-
需要注意的问题
-
*红线问题,输出的文本要避免种族歧视,诋毁伟人,扭曲历史等非正常价值观的情况(科大讯飞出现此类问题,社会影响较大,股票跌停)
-
审查敏感问题
-
ChatGPT 官方不可用时,增加异常处理答案
-
文本块分割算法要精准
-
有引用和无引用的回答可能会不一样,初步考虑是语言模型的特点
-
提问的问题和知识库无关,不进行知识库关联
-
关于指定语言让大模型回答,不一定能成功。非 Bug,直接调用 ChatGPT 也会出现该现象。暂没有找到解法。
-
文本块向量写入问题
-
知识图谱传输量大,内存占用大问题
-
注意顺序问题
-
六、拓展
- 聚类
- 通过聚类,抽取部分核心关键词和关键文本块
- 标签传播算法
- 根据核心的关键词进行关键词拓展的算法
- Auto-GPT:一款让最强语言模型GPT-4能够自主完成任务的模型
- 地址:https://github.com/Significant-Gravitas/AutoGPT?ref=jina-ai-gmbh.ghost.io (151K Star)
- 基于 ChatGPT 和其他 API,赋予 AI 更多的自主性(自动化任务),解决了 ChatGPT 需要人类来 prompt 的缺点
- 优点
- 架构:使用强大的GPT-4和GPT-3.5语言模型构建
- 自主迭代:从错误中学习的能力,可以回顾工作,在以前的努力的基础上再接再厉,并利用它的历史来产生更准确的结果
- 内存管理:与向量数据库集成,使 Auto-GPT 能够保留上下文并做出更好的决策。这就像给机器人配备了长时记忆,可以记住过去的经历。
- 多功能性:Auto-GPT拥有文件操作、网页浏览和数据检索等技能。
- 缺点
- 天价的成本:任务需要通过一系列的思维迭代来完成,模型每个step通常都会用尽所有token.Auto-GPT完成一项小任务平均需要50个step,预计$14.4
- 开发与生产:两个小差别任务,都会各自按照相同思维执行一遍
- 陷入循环:陷入到死循环里