AI工程师生存指南:一文理清大模型全链路名词关系 文章目录AI工程师生存指南这堆名词到底谁是谁的爹一、先吐槽AI圈的名词比我家亲戚还多二、训练框架PyTorch和TensorFlow这俩到底谁赢了2.1 PyTorch2.2 TensorFlow三、微调LoRA穷鬼的福音3.1 为什么要有LoRA3.2 为什么Hugging Face到处都是LoRA四、模型格式为什么有三种文件格式因为世界不和平4.1 Safetensors安全真的安全4.2 GGUFOllama的御用格式4.3 ONNX企业的跨平台救星五、模型加载一句代码跑起来背后藏了多少人5.1 Transformers5.2 Diffusers5.3 sentence-transformers六、推理优化同一个模型为什么有人快十倍6.1 MLX6.2 OpenVINO七、模型部署模型最后怎么变成服务7.1 Ollama7.2 Xinference7.3 Llamafile7.4 vLLM7.5 SGLang八、它们之间到底是什么关系九、最后说两句P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。AI工程师生存指南这堆名词到底谁是谁的爹一、先吐槽AI圈的名词比我家亲戚还多AI圈现在就这样。名词冒出来的速度比你掉头发还快。昨天还在聊PyTorch今天突然蹦出个GGUF明天Ollama又上热搜了。很多人第一反应是把这些当成孤立知识点去死记硬背。结果呢背了很久脑子里还是一盘散沙。遇到新工具依然不知道往哪归类。其实吧这些名词根本不是平级关系。它们是同一条流水线上的不同工位。模型先被训练出来再被微调然后存成某种格式被某个库加载经过推理优化最后被部署成服务喂给真正的应用。把这条链路理清楚所有名词立刻找到自己的工位。就像你进厂打螺丝只要知道自己在第几道工序就不会把扳手往食堂递。二、训练框架PyTorch和TensorFlow这俩到底谁赢了2.1 PyTorchPyTorchMeta原Facebook开源的核心是张量计算加自动微分。说白了你定义好网络结构和损失函数PyTorch自动帮你算梯度、做反向传播。不用手写求导公式。这要是回到我上大学那个年代教授能让你手推三天三夜的梯度推完你眼神都清澈了。PyTorch现在是大模型训练的事实标准。为啥第一动态图。 模型结构运行时才确定调试可以像普通Python代码一样打断点、打印中间张量。这对研究者快速试错极其重要。早期TensorFlow是静态图得先编译计算图再运行调试体验差到你想把电脑扔出窗外。第二生态聚集效应。 Hugging Face Transformers、DeepSpeed、Megatron-LM、vLLM几乎所有主流大模型框架都首选PyTorch。论文代码默认发PyTorch版。这就形成了一个死循环越多人用PyTorch越多工具支持PyTorch然后更多人只能用PyTorch。第三学术界和工业界双线渗透。 从2019年开始顶会论文里PyTorch实现占比反超TensorFlow。形成了新模型先出PyTorch版的惯例。这就好比饭店里大家都用筷子你非要带个叉子进去也不是不行就是显得有点格格不入。优点上手快、调试友好、社区资源最多、和Hugging Face生态无缝衔接。缺点移动端和嵌入式部署不如TensorFlow Lite成熟。想上线到某些硬件得额外转ONNX。2.2 TensorFlowTensorFlowGoogle出品2015年开源。最初是静态计算图设计得先用tf.Graph定义好整个网络再Session.run()执行。性能优化空间大但写法繁琐。繁琐到什么程度呢你写个Hello World级别的神经网络代码量够PyTorch写三个还带注释。2016到2019年TensorFlow是工业界部署的代名词。TensorFlow Serving做生产推理、TensorFlow Lite跑移动端、TensorBoard可视化训练配套设施在当时远比PyTorch完善。大厂尤其依赖Google Cloud的大规模采用。那现在呢TensorFlow 2.x虽然引入了Eager Execution想追上PyTorch的易用性但生态迁移成本太高。加上大模型时代开源社区集体转向PyTorch新项目很少再选TensorFlow。它现在更多出现在已经上线多年、不便重写的存量系统里。比如某些推荐系统、移动端CV模型。就像一个老员工虽然新来的年轻人更受欢迎但公司还得给他交社保。框架定位适用场景PyTorch主流训练框架LLM、CV、科研TensorFlow深度学习框架企业、移动端、历史项目三、微调LoRA穷鬼的福音3.1 为什么要有LoRA一个百亿、千亿参数的大模型如果全参数微调Full Fine-tuning每个参数都要存梯度、存优化器状态。Adam优化器还要为每个参数额外保存一阶矩和二阶矩。显存占用通常是参数量的好几倍。一张消费级显卡根本塞不下。这就好比你买了辆劳斯莱斯想改个车身颜色结果4S店告诉你得把发动机、变速箱、座椅、音响全拆了重新造。LoRALow-Rank Adaptation低秩适应2021年微软提出的。思路是冻结原模型所有参数不动只在网络关键层比如Attention的Q、V矩阵旁边插入两个很小的低秩矩阵A和B。训练时只更新这两个小矩阵。假设原始权重矩阵是d×d的大矩阵LoRA把它分解成d×r和r×d两个小矩阵。r远小于d通常取4、8、16。需要训练和保存梯度的参数量从d²骤降到2dr。往往只占原模型参数量的0.1%到1%。原本需要80GB显存全参数微调的模型用LoRA可能十几GB就能跑。个人用RTX 4090就能微调大模型。这相当于你买不起劳斯莱斯但花两百块贴了个改色膜开出去照样拉风。3.2 为什么Hugging Face到处都是LoRA训练完LoRA产出的是一个很小的增量权重文件。通常几十MB到几百MB。不需要重新分发整个几十GB的底座模型。使用时把LoRA权重叠加merge回原模型即可。这种轻量、可插拔、可叠加多个LoRA的特性使得Hugging Face上出现了海量针对不同任务、不同风格训练的LoRA权重。尤其是Stable Diffusion的风格LoRA、大语言模型的领域微调LoRA。生态因此迅速繁荣。LoRA就像乐高积木的小插件底座模型是那块大底板你想搭什么往上插就行。用peft库给大模型加LoRA微调fromtransformersimportAutoModelForCausalLM,AutoTokenizerfrompeftimportLoraConfig,get_peft_model modelAutoModelForCausalLM.from_pretrained(Qwen/Qwen2.5-7B-Instruct)tokenizerAutoTokenizer.from_pretrained(Qwen/Qwen2.5-7B-Instruct)lora_configLoraConfig(r8,lora_alpha16,target_modules[q_proj,v_proj],lora_dropout0.05,task_typeCAUSAL_LM)modelget_peft_model(model,lora_config)model.print_trainable_parameters()输出trainable params: 4,194,304 || all params: 7,615,616,512 || trainable%: 0.055%看到那个0.055%了吗这就是LoRA的魅力。你只动了千分之0.55的参数却让模型学会了新技能。四、模型格式为什么有三种文件格式因为世界不和平4.1 Safetensors安全真的安全在Safetensors之前模型权重普遍用Python的pickle格式保存。比如PyTorch的.bin、.pt文件。pickle反序列化时会执行文件里嵌入的任意代码。这意味着你下载一个来路不明的模型文件打开它就可能在你的机器上执行恶意代码。相当于你网购了个快递拆开里面蹦出个陌生人二话不说开始翻你家抽屉。Safetensors由Hugging Face设计。文件格式上只存纯数据——张量的形状、类型、字节内容。不包含可执行代码。加载时只是单纯读字节从根本上杜绝了供应链投毒风险。除了安全性Safetensors还支持零拷贝zero-copy和内存映射mmap加载。比pickle反序列化更快。尤其在加载几十GB的大模型时差异明显。Hugging Face Hub从2023年起把Safetensors设为默认推荐格式。新模型基本都会同时提供.safetensors版本。4.2 GGUFOllama的御用格式GGUFGGML Universal Formatllama.cpp项目设计的格式。专门为量化和CPU友好推理而生。它把模型权重从FP16/FP32压缩到4-bit、5-bit、8-bit等更低精度。体积可以缩小到原来的1/4甚至更小。同时把分词器、模型超参数等元数据打包进同一个文件做到一个文件即可运行。Ollama底层依赖llama.cpp做推理自然就以GGUF作为标准模型格式。GGUF本来就是llama.cpp作者Georgi Gerganov团队设计并维护的格式前身是GGML。两者是同一条技术血脉。所有围绕llama.cpp生态衍生出的工具Ollama、LM Studio、text-generation-webui等天然都把GGUF当作一等公民支持。配合llama.cpp的量化推理内核GGUF可以在没有GPU、仅靠CPU甚至手机芯片的情况下跑起十几B参数的模型。这对个人开发者在笔记本电脑本地部署大模型、不依赖云端API极其重要。相当于你把一头大象塞进了行李箱虽然大象瘦了点儿但它确实能跟着你出差。4.3 ONNX企业的跨平台救星ONNXOpen Neural Network Exchange微软和Meta联合发起。定位是模型的中间语言。企业训练时往往用PyTorch但生产环境可能需要在Java后端、移动端、或专用推理芯片上跑模型。直接用PyTorch运行时太重、依赖太多。把模型导出成ONNX之后可以用更轻量、性能更优的ONNX Runtime加载执行。脱离原训练框架的依赖。ONNX定义了一套与具体框架无关的标准算子描述。PyTorch、TensorFlow、scikit-learn等都可以导出为ONNX格式。理论上一处训练到处部署。避免了企业被锁定在单一训练框架上。ONNX Runtime还提供了针对不同硬件后端的执行提供程序Execution Provider。CUDA EP对接NVIDIA GPU、OpenVINO EP对接Intel芯片、CoreML EP对接苹果设备。同一份ONNX模型文件可以在不同硬件上分别用最优的底层加速库执行。这就是它在企业级跨平台部署中长期占有一席之地的原因。格式用途最适合Safetensors保存训练权重Hugging FaceGGUF本地推理Ollama、llama.cppONNX跨平台部署企业推理Safetensors安全加载零拷贝fromsafetensors.torchimportsave_file,load_fileimporttorch tensors{weight:torch.randn(768,768)}save_file(tensors,model.safetensors)loadedload_file(model.safetensors)# 只读字节不执行任何代码GGUF用llama.cpp的转换脚本把Hugging Face模型量化为GGUFpython convert_hf_to_gguf.py ./my-model--outfilemodel.gguf ./llama-quantize model.gguf model-q4_k_m.gguf Q4_K_M# 4-bit量化ONNX把PyTorch模型导出为ONNXimporttorch.onnximportonnxruntimeasort torch.onnx.export(model,x,model.onnx,input_names[input],output_names[output])sessionort.InferenceSession(model.onnx,providers[CPUExecutionProvider])resultsession.run(None,{input:x.numpy()})五、模型加载一句代码跑起来背后藏了多少人5.1 Transformers负责NLP、大语言模型。Hugging Face Transformers库把不同架构BERT、GPT、LLaMA、Qwen等的模型统一封装成一致接口。from_pretrained()加载权重、tokenizer处理文本分词、generate()完成文本生成。开发者不需要了解每个模型内部具体的网络结构差异。换模型基本就是改一行模型名字。这种统一接口、屏蔽底层差异的设计是它成为NLP/大语言模型事实标准库的核心原因。就像你去餐厅吃饭不管后厨是川菜师傅还是粤菜师傅你面前永远是一份菜单。点就行了别管他怎么炒。5.2 Diffusers负责Stable Diffusion、FLUX、各种图片生成模型。Diffusers是Hugging Face专门为扩散模型打造的库。把加噪—去噪这套生成图像以及音频、视频的流程封装成Pipeline。同样提供统一接口去调用不同的文生图模型Stable Diffusion系列、FLUX等。并内置了VAE、UNet、调度器Scheduler等扩散模型特有组件的标准实现。省去开发者从零拼装这套数学流程的麻烦。你要是自己从零写一套扩散模型推理大概需要看完三篇论文、调试两周、然后怀疑人生一个月。5.3 sentence-transformers负责Embedding、RAG、向量数据库、语义搜索。sentence-transformers专注于把一段文本转换成一个固定长度的向量Embedding。这个向量能表达文本的语义。它是RAG检索增强生成系统的关键一环。把知识库文档先用它转成向量存入向量数据库。用户提问时也转成向量再做相似度检索找到最相关的文档片段喂给大模型回答。从而实现语义搜索。不是关键词匹配而是意思相近就能搜到。比如你搜怎么让老板给我加薪向量数据库能给你返回职场沟通技巧和如何优雅地提出涨薪请求而不是返回加薪是什么意思这种百度百科式的结果。库加载什么TransformersLLMDiffusers文生图sentence-transformersEmbeddingTransformers加载并调用大语言模型fromtransformersimportAutoModelForCausalLM,AutoTokenizer tokenizerAutoTokenizer.from_pretrained(Qwen/Qwen2.5-7B-Instruct)modelAutoModelForCausalLM.from_pretrained(Qwen/Qwen2.5-7B-Instruct)inputstokenizer(用一句话介绍LoRA,return_tensorspt)outputsmodel.generate(**inputs,max_new_tokens50)print(tokenizer.decode(outputs[0],skip_special_tokensTrue))Diffusers加载并调用Stable Diffusion文生图fromdiffusersimportStableDiffusionPipeline pipeStableDiffusionPipeline.from_pretrained(stabilityai/stable-diffusion-2-1)imagepipe(一只在月球上弹吉他的猫).images[0]image.save(output.png)sentence-transformers把文本转成Embedding向量fromsentence_transformersimportSentenceTransformer embed_modelSentenceTransformer(BAAI/bge-large-zh-v1.5)vectorsembed_model.encode([LoRA是什么,什么是低秩适应])用余弦相似度比较两个向量相似度高代表语义相近六、推理优化同一个模型为什么有人快十倍6.1 MLXApple Silicon专属。MLX是苹果官方推出的机器学习框架。专门针对M系列芯片M1/M2/M3/M4的统一内存架构做了底层优化。CPU和GPU共享同一块内存不需要像独立显卡那样在CPU内存和GPU显存之间来回拷贝数据。可以更充分利用Mac的算力跑大模型推理甚至轻量训练。Mac用户尤其是大内存的M系列芯片机型天生没有独立NVIDIA显卡。传统基于CUDA的推理/训练框架在Mac上完全用不了。MLX让Mac用户第一次能用接近原生效率的方式在本地跑大模型。语法设计上刻意贴近PyTorch/NumPy上手成本低。因此在Mac开发者和本地大模型爱好者圈子里讨论度很高。这就好比Windows用户有Steam游戏库Mac用户以前只能看着。现在MLX给Mac用户开了个Apple Arcade虽然游戏少点儿但好歹能玩了。6.2 OpenVINOIntel官方推出的推理优化工具套件OpenVINO Open Visual Inference Neural Network Optimization。针对Intel CPU的指令集如AVX-512做计算图算子级别的优化。让模型在没有独立GPU的服务器或PC上也能跑出可用的推理速度。同时支持Intel集成显卡/独立显卡Arc系列加速。还支持新一代Intel酷睿Ultra处理器内置的NPU神经网络处理单元专为AI推理设计功耗更低。开发者只需把模型转换成OpenVINO的中间表示IR格式一次。运行时可以根据当前设备自动选择在CPU、GPU还是NPU上执行。不需要为每种硬件单独写一套推理代码。这种一次转换、多硬件适配的能力是它在Intel生态里的核心价值。MLX在Apple Silicon上跑大模型推理importmlx.coreasmxfrommlx_lmimportload,generate model,tokenizerload(mlx-community/Qwen2.5-7B-Instruct-4bit)responsegenerate(model,tokenizer,prompt用一句话介绍MLX,max_tokens50)print(response)OpenVINO把模型转换成IR格式自动选择CPU/GPU/NPU执行fromoptimum.intelimportOVModelForCausalLMfromtransformersimportAutoTokenizer modelOVModelForCausalLM.from_pretrained(model_id,exportTrue,deviceCPU)tokenizerAutoTokenizer.from_pretrained(model_id)七、模型部署模型最后怎么变成服务7.1 Ollama现在最火。Ollama把下载模型、配置环境、启动推理服务这一整套原本对新手很繁琐的流程简化成一条命令ollama run llama3就能跑起来。背后自动处理模型下载、量化、加载、本地HTTP API暴露。这种开箱即用的体验是它在个人开发者和本地部署爱好者中迅速走红的核心原因。Ollama的推理内核基于llama.cpp因此天然原生支持GGUF格式。模型仓库Ollama Library里的模型也都是预先转换打包好的GGUF文件。用户不需要关心格式转换细节。适合个人电脑本地跑模型做实验、demo、隐私敏感不想调用云端API的场景。或者只是想快速验证某个开源模型效果。但如果是高并发、多用户的生产环境服务它的吞吐和并发能力不是为这种场景设计的。Ollama就像一辆共享单车你自己骑很爽但你要拿它跑滴滴那就是对共享单车的侮辱。Ollama一条命令拉取并运行模型自动暴露本地APIollama run llama3启动后可直接用HTTP调用curlhttp://localhost:11434/api/generate-d{ model: llama3, prompt: 用一句话介绍Ollama }7.2 Xinference企业级统一部署平台。XinferenceXorbits Inference面向企业/团队级场景。一个平台统一管理和部署多种类型的AI模型——不仅是大语言模型LLM还包括Embedding模型、Reranker重排序常用于RAG精排、ASR语音识别等。提供统一的API网关和模型生命周期管理启动、停止、扩缩容。相当于一个私有化的模型即服务MaaS平台。企业内部往往同时需要好几种模型协同工作。比如一个RAG系统需要Embedding模型做检索、Reranker做精排、LLM做最终生成。如果每种模型都用不同工具单独部署管理运维成本很高。Xinference把这些模型类型统一到一套部署和调用体系下。加上支持分布式部署、可以横向扩展应对高并发更贴合企业生产环境的需求。Xinference启动服务统一注册并部署LLM/Embedding/Rerankerxinference-local--host0.0.0.0--port9997通过命令行启动一个LLM模型实例xinference launch --model-name qwen2.5-instruct --model-format pytorch --size-in-billions7通过Python SDK调用fromxinference.clientimportClient clientClient(http://localhost:9997)modelclient.get_model(qwen2.5-instruct)model.chat(messages[{role:user,content:你好}])7.3 Llamafile一个exe就能运行模型。Llamafile由Mozilla旗下团队基于llama.cpp打造。利用了一种叫Cosmopolitan Libc的技术把模型权重和llama.cpp推理引擎打包进同一个可执行文件里。这个可执行文件采用了一种多格式兼容的二进制构造方式使得同一个文件在Windows、macOS、Linux上都能直接双击或命令行运行。不需要用户安装Python环境、不需要pip装一堆依赖包。核心依赖Cosmopolitan Libc项目实现的万能二进制Actually Portable Executable技术。让同一份机器码在不同操作系统的可执行文件加载器看来都是合法格式从而实现跨平台零依赖运行。适合需要把一个能跑大模型的程序分发给完全不懂技术的用户。比如做内部工具、demo演示给非技术同事。对方电脑上不用装任何环境下载一个文件双击就能跑。这种极致分发便利性是Llamafile的核心使用场景。但相应地灵活性和可定制性不如Ollama或直接用llama.cpp。相当于你把整个餐厅塞进了一个外卖盒打开就能吃。但你要是想换个口味、加个菜那就有点为难这个盒子了。Llamafile下载一个文件赋予可执行权限直接运行chmodx llava-v1.5-7b-q4.llamafile ./llava-v1.5-7b-q4.llamafile自动在本地启动一个带Web UI的服务浏览器打开http://localhost:8080即可对话7.4 vLLM生产级高并发推理的首选。vLLM由加州伯克利大学团队提出。核心创新是PagedAttention——把Attention计算中要缓存的KV CacheKey-Value Cache按照操作系统虚拟内存分页的思路管理。不要求每个请求的KV Cache占用连续显存空间大幅减少显存碎片浪费。同时支持Continuous Batching连续批处理新请求可以随时插入正在跑的批次不需要等一批全部处理完。显著提升GPU利用率和吞吐量。适合面向多用户同时请求的在线服务场景。比如对外提供Chat API、企业内部多人共用的大模型网关。相比Ollama、Llamafile这类面向单机本地使用的工具vLLM是真正为高并发生产环境设计的推理引擎。通常部署在带GPU的服务器上。安装并启动一个兼容OpenAI API格式的服务pipinstallvllm python-mvllm.entrypoints.openai.api_server\--modelQwen/Qwen2.5-7B-Instruct\--port8000用OpenAI SDK的方式直接调用接口完全兼容curlhttp://localhost:8000/v1/chat/completions-d{ model: Qwen/Qwen2.5-7B-Instruct, messages: [{role: user, content: 用一句话介绍vLLM}] }7.5 SGLang号称比vLLM更快。SGLang由LMSYS开发了Vicuna、Chatbot Arena的团队推出。除了同样支持PagedAttention、Continuous Batching之外核心亮点是RadixAttention——用基数树Radix Tree结构自动复用不同请求之间公共的前缀KV Cache。比如多个用户用同一个System Prompt或者多轮对话中重复的历史上下文。命中前缀后可以直接复用缓存省去重复计算。在多轮对话、Agent工具调用等存在大量重复前缀的场景下吞吐和延迟优势比vLLM更明显。还提供了专门的前端语言SGLang Language描述这种多步生成逻辑让复杂调用链路写起来更简洁。安装并启动服务同样兼容OpenAI API格式pipinstallsglang[all]python-msglang.launch_server\--model-path Qwen/Qwen2.5-7B-Instruct\--port30000Python调用示例importsglangassglsgl.functiondefmulti_turn_chat(s,question):ssgl.user(question)ssgl.assistant(sgl.gen(answer,max_tokens100))statemulti_turn_chat.run(question用一句话介绍SGLang)print(state[answer])工具定位核心技术最适合场景Ollama本地单机部署基于llama.cppGGUF量化个人开发者本地跑模型、demoLlamafile单文件分发Cosmopolitan Libc万能二进制零依赖分发给非技术用户Xinference企业统一部署平台统一管理LLM/Embedding/Reranker/ASR团队级多模型协同生产环境vLLM高并发生产推理PagedAttention Continuous Batching对外提供API、多用户并发服务SGLang高并发复杂调用链路RadixAttention前缀复用多轮对话、Agent、结构化批量生成八、它们之间到底是什么关系说了这么多如果你还是晕我给你打个比方。PyTorch/TensorFlow是炼钢厂。模型是钢水在这里被炼出来。LoRA是钢厂里的微调车间。不用重新炼一炉钢只需要在成品钢板上贴个膜就能改变花纹。Safetensors/GGUF/ONNX是包装车间。Safetensors是安全包装GGUF是压缩包装适合快递ONNX是通用包装全球通邮。Transformers/Diffusers/sentence-transformers是物流公司。负责把包装好的模型送到正确的地址——Transformers送文本模型Diffusers送图像模型sentence-transformers送向量。MLX/OpenVINO是本地配送优化。MLX给Mac用户开专线OpenVINO给Intel用户开专线。Ollama/Llamafile/vLLM/SGLang/Xinference是终端门店。Ollama是社区便利店Llamafile是自动售货机vLLM是大型超市SGLang是会员制仓储店Xinference是商业综合体。AI Application就是你。你走进这些门店买走模型这个商品做成自己的应用。九、最后说两句22年前我刚入行的时候AI圈还没这么多名词。那时候大家用C手写神经网络调参靠打印日志显卡还是AGP接口。现在呢名词多得像天上的星星。但星星再多也组成星座。你只要找到那条连线就不会迷路。记住这条流水线训练 → 微调 → 保存 → 加载 → 优化 → 部署 → 应用。所有名词都在这条线上的某个位置。下次再遇到新工具先问自己它是炼钢的、贴膜的、包装的、送货的、还是开店的想清楚了你就不怕了。毕竟你可是看过这篇文章的人。P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。