AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例

文章目录

    • AI 编程架构刨析和业务应用实战案例
      • 1 AI编程代码生成模型剖析
        • 编程方式的发展
        • 代码自动生成
        • 基于大模型的AI编程工具——Github Copilot
        • 以 CodeGeeX 为例-发展过程
        • 以 CodeGeeX 为例-训练过程
        • 以 CodeGeeX 为例-大规模代码数据处理
        • 以 CodeGeeX 为例-模型结构
        • 以 CodeGeeX 为例-模型训练框架及算力
        • 以 CodeGeeX 为例-如何评估代码生成模型的性能?
      • 2 AI编程应用技术架构
        • 基于大模型的AI编程应用技术架构(1)
        • 基于大模型的AI编程应用技术架构(2)
        • 基于大模型的AI编程应用技术架构(3)

AI 编程架构刨析和业务应用实战案例

1 AI编程代码生成模型剖析

编程方式的发展
  • 从机器语言到人类语言,越来越 简单化、智能化、降本增效、提质

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第1张图片

代码自动生成
  • 自动代码生成或程序合成(Program Synthesis)是计算机科学领域长久以来的一大难题。

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第2张图片

基于大模型的AI编程工具——Github Copilot
  • 基于 OpenAI Codex 模型,2021年6月推出,2022年正式收费
  • Your AI pair programmer

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第3张图片

  • 其它的AI编程工具
    • Cursor:https://www.cursor.so/
    • Bito:https://bito.ai/
    • CodeWhisperer:https://aws.amazon.com/codewhisperer/
    • CodeGeeX2:https://codegeex.cn/zh-CN
  • AI编程工具费用比较

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第4张图片

以 CodeGeeX 为例-发展过程

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第5张图片

以 CodeGeeX 为例-训练过程

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第6张图片

以 CodeGeeX 为例-大规模代码数据处理

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第7张图片

以 CodeGeeX 为例-模型结构

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第8张图片

以 CodeGeeX 为例-模型训练框架及算力
  • 框架:基于华为 Mindspore 1.7
  • 计算资源:1536 张昇腾 910 AI 处理器
  • 混合精度:FP16(Layernorm,Softmax 使用 FP32 保证稳定性)
  • 并行训练:192 路数据并行 + 8 路模型并行
  • 全局批大小:3072
  • 训练时长:2个月
  • 训练量:~8500 亿 tokens

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第9张图片

以 CodeGeeX 为例-如何评估代码生成模型的性能?
  • 语义相似性 VS 功能正确性
  • 代码正确性基准评估
    • HumanEval:仅支持Python
    • HumanEval-X:支持多语言

2 AI编程应用技术架构

基于大模型的AI编程应用技术架构(1)

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第10张图片

  • 这是最简单的 AI Native 应用程序,应用程序直接将 Prompt 给到大模型(ChatGPT、文心一言…),然后大模型就返回 Response 给到应用程序。
  • 这种架构下,只能利用大模型完成一些简单的事情,对于更为复杂的事(比如:帮我写一个愤怒的小鸟小游戏)就完成不了了。
基于大模型的AI编程应用技术架构(2)

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第11张图片

  • 加入 AI Agent 做需求的拆解,借助外部的一些能力,比如 Function Calling 让应用程序调用外部的 API。
  • 私有知识库进行切片,利用大模型做 Embeddings 向量化,存储到向量数据库。应用程序的Prompt 结合私有向量数据库的检索结果一起给到大模型,这样大模型就有了用户知识库的上下文,最终就给出用户想要的结果。
基于大模型的AI编程应用技术架构(3)

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第12张图片

  • 进行 Fine-tuning 微调

企业知识库案例三步骤

  • 文档 -> Vector Store 表示语义的 Index,可以做语义搜索
  • Retrieval 是将 Query Embeding 后,查询近似文档过程
  • 大模型做最后的知识理解和 QA 问答

AI大模型开发架构设计(9)——AI 编程架构刨析和业务应用实战案例_第13张图片

思考:为什么需要 Embeddings?

你可能感兴趣的:(AIGC,AI编程,CodeGeex,AI编程应用技术架构)