一、Langchain

简介:LangChain 是一个用于构建基于大型语言模型(LLM)应用程序的开源框架,旨在帮助开发者将语言模型与其他数据源、工具和计算资源结合,创建更复杂且实用的应用。

图片

通过 LangChain,开发者可以快速构建从简单问答到复杂企业级应用的 LLM 驱动系统,充分发挥语言模型的潜力。

1.核心目标

LangChain 的核心目标是解决语言模型在实际应用中的局限性,例如:

静态性: 传统 LLM 缺乏动态更新知识的能力

孤立性: 模型难以直接访问外部数据或工具(如数据库、API)

上下文缺失: 无法长期保存对话历史或用户状态。

复杂任务分解: 需要将多步骤任务拆解为模型可执行的子任务。

2.核心模块

LangChain 提供了一套模块化组件,开发者可按需组合:

2.1 Models(模型)

支持多种 LLM 接口(如 OpenAl、Hugging Face、Anthropic 等)。

提供标准化接口,允许轻松切换不同模型。

支持文本生成、嵌入(Embedding)模型等。

学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】

【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!

图片

2.2 Prompts(提示管理)

模板化提示:通过变量动态生成提示词(Prompt Templates)

示例选择器(Example Selectors):根据输入动态选择示例,提升上下文学习(Few-Shot Learning)效果。

输出解析器:结构化模型输出(如 JSON、列表等)。

2.3 Chains(任务链)

将多个模型调用或工具调用组合成工作流。

预定义链(如LLMChain、SequentialChain)和自定义链。

示例:检索-生成链(先搜索外部数据,再生成答案)。

图片

2.4 Memory(记忆)

保存和更新对话历史或应用状态。

支持短期记忆(如单次对话)和长期记忆(如数据库存储)。

内存类型: ConversationBufferMemory、ConversationSummaryMemory等

2.5 Indexes(索引与检索)

集成外部数据源(文档、数据库、API)

文档加载器(Document Loaders):从 PDF、网页、数据库等加载数据

文本分割器(Text Splitters):处理长文本的分块

向量存储(Vector Stores):如 FAISS、Pinecone,用于相似性检索

检索器(Retrievers):结合 LLM 实现 RAG(Retrieval-Augmented Generation)。

图片

2.6 Agents(代理)

允许 LLM 动态调用工具(Tools)完成复杂任务

代理根据输入决定调用哪些工具(如计算器、搜索引擎、API)

支持 ReAct 框架(Reasoning +Action),提升模型推理能力。

预定义工具库(如 WikipediaQueryRun、PythonREPLTool)。

3.典型应用场景

智能问答系统:结合外部数据的 RAG 应用(如客服助手)

对话机器人:支持多轮对话和个性化记忆(如医疗咨询)。

文档分析:总结长文本、跨文档问答。

图片

自动化工作流:自动调用 API处理邮件、生成报告等。

代码生成与分析:结合代码解释器(Code Interpreter)执行代码。

4.核心优势

模块化设计:灵活组合组件,无需从头开发

多模型支持:兼容主流 LLM 和嵌入模型

数据整合能力:轻松接入外部数据源

社区生态:活跃的开源社区和丰富的扩展工具(如 LangSmith 监控、LangServe 部署)。

5.使用示例

图片

6.进阶功能

回调系统:监控模型调用、记录日志

异步支持:提升高并发场景性能。

多模态扩展:结合图像、语音模型(如 GPT-4V)。

二、LLAMA Factory

简介:LLAMA Factory 是一个基于 Hugging Face Transformers 的开源项目,专注于为大型语言模型(Large Language Models,LLMs)提供高效、灵活且用户友好的微调(Fine-tuning)框架。

它旨在简化模型训练流程,支持多种模型架构(如 LLaMA、BART、T5 等)和训练任务(如文本生成、对话系统、指令遵循等),同时优化资源利用效率,适合研究者和开发者快速实验和部署。

图片

1.核心特性

1.1 高效微调(Efficient Fine-tuning)

参数高效方法:支持 LoRA(Low-Rank Adaptation)、QLORA(量化 LORA)、Adapter 等技术,显.著降低显存占用和计算成本,适合在消费级 GPU(如单卡 24GB)上训练超大规模模型(如 70B 参数的 LLaMA)

混合精度训练:集成 FP16/BP16 和梯度裁剪,加速训练并减少显存消耗。

分布式训练:支持多卡并行(如 DeepSpeed、FSDP),扩展至多节点训练。

1.2 模块化设计

数据集与模型解耦:提供统一的数据预处理接口,支持自定义数据集和 Hugging Face 数据集库

灵活的训练配置:通过配置文件或命令行参数调整超参数(学习率、批次大小、优化器等)

可扩展性:支持自定义模型架构、损失函数和评估指标,方便适配新模型或任务。

图片

1.3 多任务支持

生成任务:文本生成、对话生成(如 ChatBot)、代码生成等

指令微调:针对遵循用户指令的任务(如 Alpaca 格式数据集)

持续预训练:支持在领域特定数据上进一步预训练模型

1.4 可视化与监控

集成 TensorBoard 或 WandB 进行训练过程可视化。

提供训练日志、损失曲线和生成样例的实时监控。

2.技术架构

LLAMA Factory 基于以下技术栈构建

1.PyTorch:核心深度学习框架

2.Hugging Face Ecosystem:

Transformers:模型加载与训练

Datasets:数据处理与缓存

Accelerate:分布式训练支持

3.PEFT(Parameter-Efficient Fine-tuning):实现参数高效微调方法

4.量化库(如 bitsandbytes):支持 4/8-bit 量化训练(QLORA)。

代码结构示例:

图片

3.应用场景

1.对话系统:微调 LLaMA 或 ChatGLM 构建领域专属对话助手

2.文本生成:生成高质量文章、故事或营销文案。

3.指令遵循:训练模型遵循复杂指令(如 Alpaca、Vicuna 格式)。

4.代码生成:适配 CodeLLaMA 等模型生成代码片段。

5.领域适应:在医学、法律等专业领域数据上优化模型表现。

4.安装与使用

1.安装依赖

图片

2.快速启动

图片

3.配置文件驱动

通过 YAML 文件定义训练参数:

图片

三、Dify

简介:Dify是一个开源的大语言模型应用开发平台,支持GPT、Mistral、Llama3等数百种模型。平台提供声明式开发环境(通过YAML定义应用)、模块化设计、LLMOps功能(监控和优化应用性能)以及私有化部署能力。

其定位是简化复杂AI应用的开发流程,特别适合需要深度定制化或企业级部署的场景。

图片

1.创新点

Dify 提供安全数据通道、高可靠索引检索、友好提示词开发、多模型切换、推理观测、日志记录、数据标注、模型训练、微调、简化AI研发、定制化Agent自动化、AI工作流编排等优势,实现数据安全、开发高效、模型优化自动化智能及工作流管理,助力开发者构建强大、灵活的AI应用。

2.功能列表

图片

3.构建应用方法

Dify中的“应用”是基于GPT等大语言模型构建的实际场景应用,旨在将智能AI技术融入特定需求。它融合了AI应用开发范式与具体交付物,为开发者提供:

封装友好的API:后端或前端应用可直接调用,通过Token鉴权,简化集成流程。

开箱即用、美观托管的WebApp:提供模版支持二次开发,快速构建用户界面。

易用界面:集成提示词工程、上下文管理、日志分析和标注功能,提升开发效率,开发者可根据需求灵活选择全部或部分功能,助力AI应用高效开发。

图片

4.构建应用类型

Dify 提供五种应用类型:

1.聊天助手:基于 LLM 构建对话式交互的助手。

2.文本生成应用:面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等。

3.Agent:能够分解任务、推理思考、调用工具的对话式智能助手。

4.对话流(Chatflow):适用于设计复杂流程的多轮对话场景,支持记忆功能并能进行动态应用编排。

5.工作流(Workflow):适用于自动化场景的应用编排方式,单向生成结果。

图片

四、FasterTransformer

简介:FasterTransformer 是 NVIDIA 推出的一个用于加速 Transformer 模型推理的库。

该库主要通过使用NVIDIA 的深度学习加速库 cUBLAS、cuDNN 和 TensorRT,以及深度学习框架 TensorFlow 和 PyTorch 的扩展,对 Transformer 模型进行优化和加速。

本系列文章试图对FasterTransformer中的Decoding Model进行详细的分析,主要探究其代码模块设计、性能加速优化方案和CUDA Kernel实现技巧,通过学习源码掌握其实现精髓。

Decoding Model是经典Transformer中的第二部分,也是推理耗时最高的部分,对这个模块的大量优化值得深入学习借鉴。

图片

1.创新点

算子融合。将多层神经网络组合成一个单一的神经网络,将使用一个单一的核(kernel)进行计算。 这种技术减少了数据传输并增加了数学密度,从而加速了推理阶段的计算。

例如,multi-head attention 块中的所有操作都可以合并到一个核(kernel)中。如下图所示,FT将 Swin-Transformer 的INT8计算图中 35 个零碎的算子,融合为了6个kernel和 部分高度优化的GEMM算子,从而实现了极大的提速。

KV-Cache 管理。对于长序列的Transformer模型,将计算过程中的 Key 和 Value 存储起来,并在每个时间步中,只对新的 Query 进行计算,而不需要重新计算已经计算过的 Key 和 Value。

FT 分配了一个缓冲区来在每一步存储它们。虽然需要一些额外的内存使用,但 FT 可以节省重新计算的成本。该过程如下图所示。

图片

模型并行。FT 使用张量并行(TP)和流水线并行(PP)技术将基于Transformer架构的神经网络拆分到多个 GPU和节点上,这是它相比于TensorRT 的最大特点。

低精度推理。FT 实现了对部分网络的高性能 FP16/INT8 计算推理加速,通过低精度数值较少的数据传输量和所需的内存,以及它在对应的INT8 Tensor Core 上的高性能向量化计算能力,实现加速。

除此之外,内存优化、Matmulkernel自动调整,BeamSearch 等技术也被应用在FT的框架之中FlashAttention作为一种针对大模型的Attention计算过程的加速技术,同样在FT中有对应的实现,不过一般更多的应用于大模型的推理中,较小的Transformer结构很少使用该kernel。

图片

2.与tensorRT的关系

TensorRT作为NVIDIA主力推广的通用推理引擎,在CNN模型的部署中被广泛使用。

近些年Transformer网络逐渐盛行,但TensorRT的支持程度相对不够及时(TensorRT需要考虑通用性,因此在开发进度及稳定性等方面有更高要求),因此 NVIDIA 针对Transformer网络的优化部署推出了 FT 库作为临时方案。

伴随今年大模型LLM的爆火,FT 框架被使用及研究的频次极速增长,还有很多类似或基于FT开发的推理引擎被依次提出(但主要面向LLM,对一般Transformer网络的支持不如FT)。

NVIDIA 为保持自身推理引擎的独立性和垄断性,后续将减少对 FT 框架的支持,同时将其能力融合到高版本 TensorRT 中,例如 TRT9 和 TRT-LLM。

3.使用方法

图片

FT库编译完成后,可以直接使用 PyTorch/TensorFlow/Triton 对应接口来实现调用,这里以PyTorch 推理 Swin-Transformer模型为例。

FT对整个 Swin-Transformer模型进行了封装,并实现了torch的接口,直接load 库文件 libth_transformer.so,即可在PyTorch工程中直接使用 Swin-Transformer 的模型算子PyTorch调用的逻辑。

本质上就是通过PyTorch接口传入对应的权重参数来实例化一个C++实现的Swin-Transformer类。

五、TensorRT

简介:TensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C++推理框架。

我们利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速度。速度提升的比例是比较可观的。

图片

1.加速方法

算子融合(层与张量融合):简单来说就是通过融合一些计算op或者去掉一些多余op来减少数据流通次数以及显存的频繁使用来提速

量化:量化即IN8量化或者FP16以及TF32等不同于常规FP32精度的使用,这些精度可以显著提升模型执行速度并且不会保持原先模型的精度

内核自动调整:根据不同的显卡构架、SM数量、内核频率等(例如1080TI和2080TI),选择不同的优化策略以及计算方式,寻找最合适当前构架的计算方式

动态张量显存:我们都知道,显存的开辟和释放是比较耗时的,通过调整一些策略可以减少模型中这些操作的次数,从而可以减少模型运行的时间

多流执行:使用CUDA中的stream技术,最大化实现并行操作

图片

2.加速效果

SSD检测模型,加速3倍(Caffe)

CenterNet检测模型,加速3-5倍(Pytorch)

LSTM、Transformer(细op),加速0.5倍-1倍(TensorFlow)

resnet系列的分类模型,加速3倍左右(Keras)

GAN、分割模型系列比较大的模型,加速7-20倍左右(Pytorch)

图片

六、oLLAMA

简介:Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。

Olama是 Omni-Layer Learning Language Acquisition Model 的简写,这代表一种新颖的机器学习方法,承诺重新定义我们对语言习得和自然语言处理的看法。

图片

1.关键特性

本地执行:0llama 的一个显著特点是其能够本地运行 LLMs,减轻了与基于云的解决方案相关的隐私问题。

通过将A1 模型直接带到用户的设备上,Ollama 确保了对数据的更大控制和安全性,同时提供了更快的处理速度和减少对外部服务器的依赖。

丰富的模型库:Olama 提供了丰富的预训练 LLMs 库,包括流行的模型(如,Llama 3)。用户可以具体的需求,针对不同任务、领域和硬件能力,选择合适的模型,确保了 A1 项目的灵活性和多功能性。

无缝集成:Ollama 可与各种工具、框架和编程语言无缝集成,使开发者能够轻松地将 LLMs 纳入他们的工作流程中。无论是 Python、LangChain 还是 Llamalndex,Ollama 为构建复杂的 AI 应用程序和解决方案提供了强大的集成选项。

定制和微调:有了 Olama,用户有能力定制和微调 LLMs 以满足他们的特定需求和偏好。从提示工程到少样本学习和微调过程,Ollama 赋予用户塑造 LLMs 行为和输出的能力,确保它们与预期目标一致。

图片

2.应用场景

创意写作和内容生成:作家和内容创作者可以利用 0lama 来克服写作障碍,头脑风暴内容创意,并在不同体裁和格式中生成多样化和吸引人的内容。

代码生成和辅助:开发人员可以利用 Olama 的能力进行代码生成、解释、调试和文档编写,简化他们的开发工作流程并提高代码质量。

语言翻译和本地化:Ollama 的语言理解和生成能力使其成为翻译、本地化和多语言沟通的宝贵工具,促进跨文化理解和全球合作。

研究和知识发现:研究人员和知识工作者可以通过使用 0lama,从大量的信息中进行分析、整合和提取洞察、提高知识获取的效率。涵盖文献综述、数据分析、假设生成和知识提取等场景。

客户服务和支持:企业可以部署由 Olama 驱动的智能聊天机器人和虚拟助手,以增强客户服务,自动化常见问题解答,提供个性化的产品推荐,并分析客户反馈以提高满意度和参与度。

医疗保健和医疗应用:在医疗保健行业,Olama 可以协助医疗文档编写、临床决策支持、患者教育、远程医疗和医学研究,提升医疗保健效率。

图片

3.安装

以 windows 系统为例,安装步骤如下

下载

进入官网下载页面(https://ollama.com/download),选择 windows 版本下载

安装

点击安装文件 OllamaSetup.exe,可直接进行安装。默认情况下,会安装在 C 盘上,会占用 C 盘的存储空间。可通过以下方式,变更 ollama 的安装路径:

打开 powershel,进入 OllamaSetup.exe,运行以下命令后(DIR 路径为安装路径,如"E:\developToolkit\olama"),会出现安装弹框,点击 Install,即可将 Ollama 安装到指定的路径。

图片

安装完成后,在 powershell 输入"ollama -v",输出 Olama 的版本信息,说明已安装成功。

4.改变存储位置

要改变 Ollama 存储下载模型的位置(默认是存储在 C 盘的用户目录,会占用 C 盘的大量存储空间),可通过设置环境变量 OLLAMA MODELS 的方式,设置大模型的存储位置。

1.启动设置(Windows 11)或控制面板(Windows 10)应用程序,并搜索环境变量。

2.点击为环境变量。点击新建一个系统变量。

3.编辑或创建一个新的变量 OLLAMA MODELS,指定希望模型存储的位置。

4.点击确定/应用以保存。

5.选择大模型

进入 Ollama 的模型页面,选择要运行的大模型。

图片

七、vLLM

简介:VLLM(VersatileLargeLanguageModel)是一个专门为大规模语言模型(LLM)推理设计的开源加速框架,通过创新的内存管理和并行化技术,显著提高了推理速度和吞吐量。

其中,PagedAttention是VLLM 的核心技术,专门用于解决 LLM 推理中的内存瓶颈问题,尤其是自回归生成任务中的键值(KV)缓存管理。

图片

1.核心技术解析

PageAttention 内存优化

问题:传统 KV 缓存管理存在显存碎片化问题,导致 GPU 利用率低下(通常仅 20-30%)。

方案:引入虚拟内存分页机制,将 KV 缓存划分为固定大小的块(如16 层x16 头x256 tokens),实现动态分配与复用。

效果:在 Qwen2.5-7B 实测中,显存碎片减少 70%,单卡 A100 可处理的并发请求数从 5 提升至20。

2.连续批处理(Continuous Batching)

动态请求合并:将不同序列的请求拼接为统一张量,自动填充和码处理。例如,将用户查询"连衣裙推荐"和"如何退换货?"合并为一批。

逻辑流:

图片

3. 量化支持

支持 AWQ(Activation-aware Weight Quantization)和 GPTQ,Qwen2.5-7B 经 4-bit 量化后显存占用从 14GB 降至 5GB,延迟降低 40%。

4.优缺点

图片

学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】

【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐