基于LLM构建应用

Emerging Architectures for LLM Applications

一篇文章,聊聊怎么基于LLM构建应用:Emerging Architectures for LLM Applications | Andreessen Horowitz (a16z.com)

一般来讲,有三种方式来基于LLM来构建应用:

  1. 基于api来进行构建,就是类似于传统构建应用的方式
  2. 基于GitHub开源项目来构建
  3. 基于快速构建工具,例如Vercel AI SDK,直接提供一整套,从api、服务器计算资源、基础软件模板资源来进行构建

所以说,想基于LLM api快速构建出一个类似于聊天机器人等应用已经变得非常简单,但这毕竟是玩具应用,并不能支撑正式的消费级的应用场景。

所以说,这篇文章并不是告诉你怎么构建简单的LLM应用,而是如何构建出正式场景中的LLM应用

img

LLM应用中的技术选型
Data pipelinesEmbedding modelVector databasePlaygroundOrchestrationAPIs/pluginsLLM cache
DatabricksOpenAIPineconeOpenAILangchainSerpRedis
AirflowCohereWeaviatenat.devLlamaIndexWolframSQLite
UnstructuredHugging FaceChromaDBHumanloopChatGPTZapierGPTCache
pgvector
Logging / LLMopsValidationApp hostingLLM APIs (proprietary)LLM APIs (open)Cloud providersOpinionated clouds
Weights & BiasesGuardrailsVercelOpenAIHugging FaceAWSDatabricks
MLflowRebuffSteamshipAnthropicReplicateGCPAnyscale
PromptLayerMicrosoft GuidanceStreamlitAzureMosaic
HeliconeLMQLModalCoreWeaveModal
RunPod

设计模式之 In-context learning

该模式的核心是通过prompt和训练数据来控制LLM的输出

例如:设计一个通晓美国法律的聊天机器人,让它能回答与美国法律相关的问题。

我们没办法将好几本书的内容加上prompt输入给LLM,因为这会超过LLM输入限制的Token数,也会导致LLM推理的时间和效率下降,LLM也不需要好几本书的上下文,它只需要能解决你的问题的上下文

就像你有一个问题,你想解决这个问题就去看书,你没必要看完整本书,你只需要翻书到对应的章节,阅读对应章节的部分,就可以解决你的问题,LLM回答某个专业领域的问题的思考逻辑也是这样

为什么使用向量数据库:因为数据相关性搜索其实是向量运算

为什么使用embedding:相比 fine-tuning 最大的优势就是,不用进行训练,并且可以实时添加新的内容,而不用加一次新的内容就训练一次,并且各方面成本要比 fine-tuning 低很多。

LLM回答问题的流程分为三个阶段:

  • data embedding:将专业数据通过嵌入模型转换成向量,存储到向量数据库中
  • 提示构造和检索:当用户提交查询时,应用程序会构造prompt,包括:提示模板、few-shots、从向量数据库中检索到的相关文档等
  • 执行prompt:将prompt提交给LLM api或者自训练模型(这个过程还可以包括日志记录、缓存和验证等部分)
Data embedding

img

  • 数据处理:数据的格式很多,word、pdf、csv、txt等等,目前并没有绝对合适的数据加载和转换方案,但可以参考LangChain等

  • embedding:推荐使用openai的 text-embedding-ada-002模型,因为它易于使用、价格合适且与openAI的其它产品兼容较好

  • 向量数据库

    • 云数据库:推荐Pinecone,功能多且容易上手(仅适用于AWS、Google cloud、Azure)
    • 开源数据库:WeaviateVespaQdrantChromaFaiss

    向量数据库这块的选择,可以看看GitHub开源项目中的数据库选型
    (目前,大部分开源向量数据库都在开发云数据库产品)

提示构造和检索

img

推荐使用LangChain进行提示构造

执行prompt

img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值