告诉老板,AI大模型应该这样部署!

2024-05-25 16:12

本文主要是介绍告诉老板,AI大模型应该这样部署!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导语

随着大语言模型创新的快速步伐,企业正在积极探索用例并将其第一个生成式人工智能应用程序部署到生产中。

随着今年LLM或LLMOps的部署正式开始,企业根据自己的人才、工具和资本投资结合了四种类型的LLM部署方法。请记住,随着新的 LLM 优化和工具的定期推出,这些部署方法将不断发展。

这篇文章的目标是介绍这些方法并讨论这些设计选择背后的决策。

01.
结合实际情况进行快速工程

许多企业将通过这种方法开始他们的大语言模型之旅,因为它最具成本效益和时间效率。这涉及到直接调用 OpenAI、Cohere 或 Anthropic 等第三方 AI 提供商并进行提示。

然而,鉴于这些是广义的大语言模型,他们可能不会回答问题,除非它以特定的方式提出,或者除非得到更多方向的指导,否则不会引起正确的回答。构建这些提示,也称为“提示工程”,涉及创造性的写作技巧和多次迭代以获得最佳响应。

图片

图1-1 提示工程输入示例

提示还可以包括帮助指导大语言模型的示例。这些示例包含在提示本身之前,称为“上下文”。“One shot”和“Few shot”提示是用户在上下文中介绍示例时的提示。

这是一个例子:

图片

图1-2 提示工程输入示例

由于它就像调用 API 一样简单,因此这是企业快速启动 LLM 旅程的最常见方法,对于许多缺乏人工智能专业知识和资源的人来说可能就足够了。

这种方法适用于广义自然语言用例,但如果第三方专有人工智能提供商的流量很大,则可能会变得昂贵。

02.
检索增强生成(RAG)

基础模型是使用通用领域语料库进行训练的,这使得它们在生成特定领域响应方面效果较差

因此,企业将希望在自己的数据上部署 LLM,以解锁其领域中的用例(例如,文档和支持方面的客户聊天机器人、IT 指令方面的内部聊天机器人等),或者生成最新的响应或使用非公开信息。

然而,很多时候可能没有足够的指令(数百或数千)来证明微调模型的合理性,更不用说训练新模型了。

图片

图2-1 LLM通常不会提供及时或针对特定领域的回应

在这种情况下,企业可以使用 RAG 来增强提示,方法是使用一个或多个文档或文档块形式的外部数据,然后将其作为提示中的上下文传递,以便 LLM 可以正确地响应该信息。

在数据作为上下文传递之前,需要从内部存储中检索数据。为了确定为提示检索哪些数据,提示和文档(通常被分块以满足标记要求并使其更易于搜索)都被转换为嵌入,并确定相似性分数。最后,组装提示查询并发送给大语言模型。

Pinecone 等矢量数据库和 LlamaIndex 等 LLM 元数据工具是支持 RAG 方法的新兴工具。

图片

图2-2 针对内部 IT 聊天机器人向大语言模型发出的 RAG 提示

除了节省微调时间之外,这种知识检索技术还减少了产生幻觉的机会,因为数据是在提示本身中传递的,而不是依赖于大语言模型的内部知识

然而,企业需要注意,知识检索并不是万无一失的,因为大语言模型生成的正确性将在很大程度上依赖于所传递信息的质量和所使用的检索技术。

另一个需要注意的考虑因素是,在调用中发送数据(尤其是专有数据)会增加数据隐私风险,因为据报道基础模型可以记住通过的数据,并增加令牌窗口,从而增加每次调用的成本和延迟。

图片

图2-3 RAG 架构示例

03.

微调模型

虽然即时工程和 RAG 对于某些企业用例来说可能是一个不错的选择,但我们也回顾了它们的缺点。随着企业数据量和用例重要性的增加,微调大语言模型可提供更好的投资回报率。

图片

图3-1 典型的微调工作流程

当您进行微调时,LLM 会将您的微调数据集知识吸收到模型本身中,从而更新其权重。因此,一旦 LLM 得到微调,您就不再需要在提示上下文中发送示例或其他信息。这种方法降低了成本,降低了隐私风险,避免了代币大小限制,并提供了更好的延迟。由于模型吸收了微调数据的整个上下文,因此响应的质量也更高,泛化程度更高。

如果您有大量指令(通常为数万条),微调可以提供很好的价值,但它可能会占用大量资源且耗时。除了微调之外,您还需要花时间以正确的格式编译微调数据集以进行调整。AWS Bedrock 等服务使 LLM 的微调变得容易。

04.

训练模型

如果您有特定领域的用例和大量以领域为中心的数据,那么从头开始训练大语言模型可以提供最高质量的大语言模型

这种方法是迄今为止采用起来最困难和最昂贵的。下图来自 Microsoft Build 的 Andrej Karpathy,很好地解释了从头开始构建 LLM 的复杂性。

例如,BloombergGPT是第一个金融模型 LLM。它接受了 40 年金融语言数据的训练,总数据集包含 7000 亿个Token。

图片

图4-1 LLM 培训工作流程示例

企业需要了解与从头开始训练大语言模型相关的成本,因为它们需要大量计算,这会很快增加成本。根据所需的训练量,计算成本可能从几十万到几百万美元不等。

例如,Meta 的第一个65B LLaMa 模型训练在 2048 个 NVidia A100-80GB 上花费了 1,022,362 小时(在云平台上约为 4 美元/小时),成本约为 400 万美元。不过,训练成本正在迅速下降,像Replit 的代码 LLM和 MosaicML 的基础模型只需要几十万。

随着 LLMOps 基础设施随着更先进的工具(如 Fiddler 的AI Observability平台和方法)的发展,我们将看到更多的企业采用 LLM 部署选项,以更经济的成本和更快的上市时间产生更高质量的 LLM。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

这篇关于告诉老板,AI大模型应该这样部署!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001993

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2