基本概念
大模型:大模型是指具有大规模参数和复杂计算结构的机器学习模型。
参考资料:什么是大模型?一文读懂大模型的基本概念
微调和知识库:微调是一种让预先训练好的模型适应特定任务或数据集的低成本方案。这种情况下,模型会学习开发者提供的微调数据。 知识库是使用向量数据库(或者其他数据库)存储数据,可以外挂,作为LLM的行业信息提供方。 简单理解, 微调相当于让大模型去学习了新的一门学科,在回答的时候完成闭卷考试。 知识库相当于为大模型提供了新学科的课本,回答的时候为开卷考试。 知识库和微调并不是冲突的,它们是两种相辅相成的行业解决方案。开发者可以同时使用两种方案来优化模型。
Prompt Engineering: 提示工程。提示工程是指导生成式人工智能生成所需输出的过程。尽管生成式人工智能试图模仿人类,但需要详细的说明才能创建高质量和相关的输出。 在提示工程中可以选择最合适的格式、短语、单词和符号,来指导 AI 与用户进行更有意义的交互。
参考资料:
Embedding:向量化的过程。将客观世界中离散的物体或对象(如单词、短语、图片)等映射到特征空间的操作,embedding向量是指映射后 的特征空间中连续且稠密的高维向量。 在机器学习场景中,我们经常使用embedding向量 来描述客观世界的物体。embedding向量 不是对物体进行简单编号的结果,而是在尽量保持相似不变性的前提下 对物体进行特征抽象和编码的产物。通过不断训练,我们能够将客观世界中的物体不失真的映射到高维特征空间中,进而可以使用这些embedding向量 实现分类、回归和预测等操作。
参考资料:
Neural Network Embeddings Explained
Transformer:Transformer是一个完全依赖自注意力的面向sequence to sequence任务的NLP模型,由谷歌在17年的论文《Attention is all you need》中首次提出。 它抛弃了传统的CNN和RNN神经网络,整个网络结构完全由Attention机制以及前馈神经网络组成,它解决了RNN长期依赖和无法并行化以及CNN缺失全局特征等问题。 斯坦福大学的研究人员在2021年8月的一篇论文中称transformer为“基础模型”,因为他们看到它推动了人工智能的范式转变。
参考资料:
向量数据库:向量数据库主要用于图像检索、音频检索、文本检索等领域,其主要特点是能够高效地存储和检索大规模的向量数据。 向量数据库用专门的数据结构和算法来处理向量之间的相似性计算和查询。通过构建索引结构,向量数据库可以快速找到最相似的向量,以满足各种应用场景中的查询需求。
参考资料:向量数据库
AI Agent: AI Agents 是一种软件程序,旨在与其环境交互,感知接收到的数据,并根据该数据采取行动以实现特定目标。AI Agents 能够模拟智能行为,可以像基于规则的系统一样简单,也可以像高级机器学习模型一样复杂。 AI Agents 使用预先确定的规则或经过训练的模型来做出决策,并且可能需要外部控制或监督。
参考资料:一文读懂 AI Agents 技术
模型
ChatGLM3
ChatGLM3 是智谱AI与清华大学KEG实验室联合发布的新一代对话预训练模型。 在第二代ChatGLM 的基础之上,
- 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、 更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。
- 更完整的功能支持: ChatGLM3-6B 采用了全新设计的 Prompt 格式,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
- 更全面的开源序列: 除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base、长文本对话模型 ChatGLM3-6B-32K。以上所有权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。
技术文档:zhipu-ai.feishu.cn/wiki/WvQbwI…
CodeGeex2
CodeGeeX2 是多语言代码生成模型 CodeGeeX 的第二代模型。不同于一代 CodeGeeX ,CodeGeeX2 是基于 ChatGLM2 架构加入代码预训练实现,得益于 ChatGLM2 的更优性能, CodeGeeX2 在多项指标上取得性能提升(+107% > CodeGeeX;仅60亿参数即超过150亿参数的 StarCoder-15B 近10%),更多特性包括:
更强大的代码能力:基于 ChatGLM2-6B 基座语言模型,CodeGeeX2-6B 进一步经过了 600B 代码数据预训练,相比一代模型,在代码能力上全面提升,HumanEval-X 评测集的六种编程语言均大幅提升 (Python +57%, C++ +71%, Java +54%, JavaScript +83%, Go +56%, Rust +321%),在Python上达到 35.9% 的 Pass@1 一次通过率,超越规模更大的 StarCoder-15B。
更优秀的模型特性:继承 ChatGLM2-6B 模型特性,CodeGeeX2-6B 更好支持中英文输入,支持最大 8192 序列长度,推理速度较一代 CodeGeeX-13B 大幅提升,量化后仅需6GB显存即可运行,支持轻量级本地化部署,支持matlab
框架
LangChain
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序,它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。 LangChain是一个语言模型集成框架,其使用案例与语言模型的使用案例大致重叠,包括文档分析和摘要、聊天机器人和代码分析。
简单来说,LangChain提供了灵活的抽象和AI优先的工具,可帮助开发人员将LLM应用程序从原型转化为生产环境。 它还提供了一套工具,可帮助开发人员构建上下文感知、推理应用程序, LangChain的工具包括聊天机器人、文档分析、摘要、代码分析、工作流自动化、自定义搜索等。
官方文档:python.langchain.com/docs/get_st…
中文文档:cookbook.langchain.com.cn/docs/langch…
应用
LangChain-ChatChat
基于 Langchain 与 ChatGLM 等大语言模型的本地知识库问答应用实现.
需要详细了解的技术点
Function Call
在OpenAI的相关文档中,Function Call的主要功能是【可识别并结构化输出】,大语言模型帮助用户找到要调用的函数名,并且从自然语言中提取出调取这个函数需要的参数。(需要注意的是,函数逻辑以及函数调用逻辑仍然需要开发者自己去编写)。
在ChatGLM的相关文档中,Function Call可以等同于【工具调用】,除了【可识别并结构化输出】以外,开发者已完成了相应的函数调用逻辑,用户只需要完成函数的编写即可。ChatGLM会自动识别需要调用的函数并返回其需要的参数,函数接收参数后返回结果给模型,模型进行包装后输出给用户。详情参考:ChatGLM-工具调用