文章目录
AI 编程架构刨析和业务应用实战案例
1 AI编程代码生成模型剖析
编程方式的发展
- 从机器语言到人类语言,越来越 简单化、智能化、降本增效、提质
代码自动生成
- 自动代码生成或程序合成(Program Synthesis)是计算机科学领域长久以来的一大难题。
基于大模型的AI编程工具——Github Copilot
- 基于 OpenAI Codex 模型,2021年6月推出,2022年正式收费
- Your AI pair programmer
- 其它的AI编程工具
- Cursor:https://www.cursor.so/
- Bito:https://bito.ai/
- CodeWhisperer:https://aws.amazon.com/codewhisperer/
- CodeGeeX2:https://codegeex.cn/zh-CN
- AI编程工具费用比较
以 CodeGeeX 为例-发展过程
以 CodeGeeX 为例-训练过程
以 CodeGeeX 为例-大规模代码数据处理
以 CodeGeeX 为例-模型结构
以 CodeGeeX 为例-模型训练框架及算力
- 框架:基于华为 Mindspore 1.7
- 计算资源:1536 张昇腾 910 AI 处理器
- 混合精度:FP16(Layernorm,Softmax 使用 FP32 保证稳定性)
- 并行训练:192 路数据并行 + 8 路模型并行
- 全局批大小:3072
- 训练时长:2个月
- 训练量:~8500 亿 tokens
以 CodeGeeX 为例-如何评估代码生成模型的性能?
- 语义相似性 VS 功能正确性
- 代码正确性基准评估
- HumanEval:仅支持Python
- HumanEval-X:支持多语言
2 AI编程应用技术架构
基于大模型的AI编程应用技术架构(1)
- 这是最简单的 AI Native 应用程序,应用程序直接将 Prompt 给到大模型(ChatGPT、文心一言…),然后大模型就返回 Response 给到应用程序。
- 这种架构下,只能利用大模型完成一些简单的事情,对于更为复杂的事(比如:帮我写一个愤怒的小鸟小游戏)就完成不了了。
基于大模型的AI编程应用技术架构(2)
- 加入 AI Agent 做需求的拆解,借助外部的一些能力,比如 Function Calling 让应用程序调用外部的 API。
- 私有知识库进行切片,利用大模型做 Embeddings 向量化,存储到向量数据库。应用程序的Prompt 结合私有向量数据库的检索结果一起给到大模型,这样大模型就有了用户知识库的上下文,最终就给出用户想要的结果。
基于大模型的AI编程应用技术架构(3)
- 进行 Fine-tuning 微调
企业知识库案例三步骤
- 文档 -> Vector Store 表示语义的 Index,可以做语义搜索
- Retrieval 是将 Query Embeding 后,查询近似文档过程
- 大模型做最后的知识理解和 QA 问答
思考:为什么需要 Embeddings?