宁波汽车网站建设江苏省城市建设信用手册网站
2026/1/16 18:12:38 网站建设 项目流程
宁波汽车网站建设,江苏省城市建设信用手册网站,波莱网站开发,百度推广销售员好做吗SGL社区中推出一款轻量的推理框架#xff1a;miniSGLang[1]#xff0c;支持完整的LLM推理。用约5千行Python代码和少量c代码实现#xff0c;麻雀虽小五脏俱全。相比SGLang上十万行的代码#xff0c;miniSGLang简单易读#xff0c;非常适合用于相关概念的理解。 本文结合miniSGLang[1]支持完整的LLM推理。用约5千行Python代码和少量c代码实现麻雀虽小五脏俱全。相比SGLang上十万行的代码miniSGLang简单易读非常适合用于相关概念的理解。本文结合vLLM框架引导[2]中提到的例子对miniSGLang稍作展开介绍。1 框架结构miniSGLang的框架可以展开成三层在其说明文档[3]的架构图中分了两个部分笔者在此基础上再打开Forward内容。如下图所示后面分别介绍。1.1主要元素顶层框架主要包括了4个关键元素每个元素运行在不同的进程中。1 前端服务(API Server): The entry point for users. It provides an OpenAI-compatible API (e.g., /v1/chat/completions) to receive prompts and return generated text.2 文字转token(Tokenizer Worker): Converts input text into numbers (tokens) that the model can understand.3 调度执行器(Scheduler Worker): The core worker process. In a multi-GPU setup, there is one Scheduler Worker for each GPU (referred to as a TP Rank). It manages the computation and resource allocation for that specific GPU.4 Token转文字(Detokenizer Worker): Converts the numbers (tokens) generated by the model back into human-readable text.数据计算流步骤1用户发送请求给API Server处理。如下图所示OpenAI格式的curl。步骤2 在tokenizer中将prompt转换成token_id。并把ids发给Scheduler 0(Rank 0)。步骤3Scheduler触发engine的forward计算过程最后采样得到新的token Ids。如果是多GPU模式Scheduler 0(Rank 0)会将请求广播到其他Scheduler(Rank 1~N)forward完成后再将数据收集回来。步骤4接收到Scheduler(Rank 0)发送过来的ids后Detokenizer将其转换成文字。最后AI Server将结果流式输出呈现给用户。1.2调度引擎顶层中的Scheduler模块展开后其内部主要有三部分调度器(sceduler)为请求任务分配计算资源和存储资源并下发任务同时协调engine与kv cache模块工作。引擎(engine)完成forward计算。负责管理模型、上下文、物理KV缓存、注意力backend以及CUDA图。多个GPU模式下每个TP worker运行一个engine实例。KV cache模块基于radix cache原理管理KV cache承载功能的两个类KVCache pool、KVCache manager。其中KVCache pool是一个统一的cache池所有请求的KV cache都要从中申请。Scheduler应用的关键技术1、分块预填充(Chunked Prefill)[4]将大的prefill请求分块成更小的块切分序列执行降低峰值显存。Chunked Prefill示意图2、掩盖调度(Overlap Scheduling)[5]为了降低CPU的调度开销让CPU侧调度与GPU侧运算进行掩盖。KV cache管理应用的关键技术Radix Cache[6]Radix Cache是SGLang设计之初的一个关键技术通过高效地利用KV cache的历史数据降低重复计算具体原理参看论文 [7]。1.3前向运算前向运算位于engine内部包括模型的前向运算(Attention、FFN等)和采样(sampling)过程。Attention运算模块有三个关键要素QKV数据。其中KV值由KV cache Pool中的历史数据、以及新计算的KV值组成。计算后端(Backend)。后端根据用户要求执行特定的注意力算子目前支持flash attention3和flash infer两种。元数据(Metadata)。元数据中包括page table、positions等内容让attention算子能正确地读取相关请求的QKV数据。Sampler采样器目前仅支持温度调节其它方法如TopK/TopP/Penalty等暂不支持原理参考[8]。**Forward中应用的关键技术CUDA Graph[**9]通过CUDA Graph的捕获与重放(capturing and replaying)能够降低decode阶段的CPU下发开销。调用在GraphRunner(/python/minisgl/engine/graph.py)中。2 代码结构与使用2.1代码的模块组织结构除了第1节中提到关键模块还有比较重要的部分minisgl.distributed: 实现分布式的函数如用于TP并行的all-reduce、all-gather操作。minisgl.llm: 一个统一的python接口能够用于offline模式。minisgl.kernel: 执行自定义的CUDA kernels。minisgl.benchmark: 提供了一些测试方法测试模型性能。其中LLM模块的offline方式示例如下import time from random import randint, seed from minisgl.core import SamplingParams from minisgl.llm import LLM def main(): seed(0) num_seqs 256 max_input_len 1024 max_output_len 1024 # align the hyperparameters llm LLM( Qwen/Qwen3-0.6B, max_seq_len_override4096, max_extend_tokens16384, cuda_graph_max_bs256 ) prompt_token_ids [ [randint(0, 10000) for _ in range(randint(100, max_input_len))] for _ in range(num_seqs) ] sampling_params [ SamplingParams(temperature0.6, ignore_eosTrue, max_tokensrandint(100, max_output_len)) for _ in range(num_seqs) ] llm.generate([Benchmark: ], SamplingParams()) t time.time() llm.generate(prompt_token_ids, sampling_params) t time.time() - t total_tokens sum(sp.max_tokens for sp in sampling_params) throughput total_tokens / t print(fTotal: {total_tokens}tok, Time: {t:.2f}s, Throughput: {throughput:.2f}tok/s) main()2.2安装与使用在代码库的readme[10]中提供了安装方式、两种使用方式API请求调用Shell互动。如果要debug代码考虑用2.1的offline模式。# 环境准备ABAP # Create a virtual environment (Python 3.10 recommended) uv venv --python3.12 source .venv/bin/activate # 安装包 git clone https://github.com/sgl-project/mini-sglang.git cd mini-sglang uv venv --python3.12 source .venv/bin/activate uv pip install -e . # 使用方式1(OpenAI-compatible API): # Deploy Qwen/Qwen3-0.6B on a single GPU python -m minisgl --model Qwen/Qwen3-0.6B # Deploy meta-llama/Llama-3.1-70B-Instruct on 4 GPUs with Tensor Parallelism, on port 30000 python -m minisgl --model meta-llama/Llama-3.1-70B-Instruct --tp 4 --port 30000 # 使用方式2(Interactive Shell): python -m minisgl --model Qwen/Qwen3-0.6B --shell测试效果在官方公开数据中提供了mini-SGLang 与nano-vLLM的对比数据以及与全量版SGLang的对比测试。笔者认为与nano-vLLM对比的意义不大毕竟都是裁剪版谁后发布谁更有优势。所以单看mini-SGLang与SGLang的对比测试条件Hardware: 4xH200 GPU, connected by NVLink.Model: Qwen3-32BDataset: Qwen trace[11], replaying first 1000 requests.指标TTFT(Time To First Token):首token生成的时间用于衡量prefill性能的指标。TBT(Time Between Tokens): 生成token之间的时间差衡量decode性能具体解释参看 [12]。单从测试结果来看mini-SGLang在该条件下效果与SGLang相当。总结mini-SGLang作为SGLang的裁剪版仅实现了一些关键的模块结构简单清晰能够帮助初学者快速了解其相关概念降低了框架学习的入门难度。因为mini-SGLang许多特性暂未实现若要进一步学习SGLang还是要回归全量版本[13]。在大模型时代我们如何有效的去学习大模型现如今大模型岗位需求越来越大但是相关岗位人才难求薪资持续走高AI运营薪资平均值约18457元AI工程师薪资平均值约37336元大模型算法薪资平均值约39607元。掌握大模型技术你还能拥有更多可能性• 成为一名全栈大模型工程师包括PromptLangChainLoRA等技术开发、运营、产品等方向全栈工程• 能够拥有模型二次训练和微调能力带领大家完成智能对话、文生图等热门应用• 薪资上浮10%-20%覆盖更多高薪岗位这是一个高需求、高待遇的热门方向和领域• 更优质的项目可以为未来创新创业提供基石。一直在更新更多的大模型学习和面试资料已经上传带到CSDN的官方了有需要的朋友可以扫描下方二维码免费领取【保证100%免费】一、AGI大模型系统学习路线很多人学习大模型的时候没有方向东学一点西学一点像只无头苍蝇乱撞下面是我整理好的一套完整的学习路线希望能够帮助到你们学习AI大模型。第一阶段 从大模型系统设计入手讲解大模型的主要方法第二阶段 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段 大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段 以SD多模态大模型为主搭建了文生图小程序案例第七阶段 以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。三、AI大模型经典PDF书籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。四、AI大模型各大场景实战案例结语【一一AGI大模型学习 所有资源获取处无偿领取一一】所有资料 ⚡️ 朋友们如果有需要全套 《LLM大模型入门进阶学习资源包》扫码获取~

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询