一、Langchain
LangChain 是一个用于构建基于大型语言模型(LLM)应用程序的开源框架,旨在帮助开发者将语言模型与其他数据源、工具和计算资源结合,创建更复杂且实用的应用。
通过 LangChain,开发者可以快速构建从简单问答到复杂企业级应用的 LLM 驱动系统,充分发挥语言模型的潜力。
1.核心目标
LangChain 的核心目标是解决语言模型在实际应用中的局限性,例如:
静态性: 传统 LLM 缺乏动态更新知识的能力
孤立性: 模型难以直接访问外部数据或工具(如数据库、API)
上下文缺失: 无法长期保存对话历史或用户状态。
复杂任务分解: 需要将多步骤任务拆解为模型可执行的子任务。
2.核心模块
LangChain 提供了一套模块化组件,开发者可按需组合:
2.1 Models(模型)
支持多种 LLM 接口(如 OpenAl、Hugging Face、Anthropic 等)。
提供标准化接口,允许轻松切换不同模型。
支持文本生成、嵌入(Embedding)模型等。
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 ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(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 的正确特征了。