当前位置: 首页 > article >正文

ms-swift:一站式大模型开发框架,从推理到LoRA微调实战

1. 项目概述当开源大模型遇见“瑞士军刀”如果你最近在折腾大语言模型LLM无论是想在公司内部部署一个智能客服还是想自己动手微调一个能写代码的助手大概率都绕不开一个核心问题如何高效、低成本地把一个动辄几十GB的“庞然大物”跑起来并且让它听话地完成你指定的任务从模型下载、环境配置、推理部署到后续的微调、评估、服务化每一步都像在走钢丝稍有不慎就是满屏的报错和数小时的调试。就在这个背景下我发现了ModelScope社区推出的ms-swift。这名字起得挺有意思Swift是“迅速”的意思也让人联想到苹果那个高效的编程语言。实际用下来我感觉它更像是一把为AI应用开发者量身定制的“瑞士军刀”目标很明确让大模型应用的开发变得像调用一个普通函数那样简单、快速。ms-swift不是一个独立的模型而是一个大模型开发框架与工具链。它深度集成在ModelScope这个国内领先的模型开源社区中。你可以把它理解为大模型时代的“Spring Boot”或者“Django”只不过它服务的对象不是Web应用而是各种预训练的大语言模型、多模态模型。它的核心价值在于提供了一套统一的、高层的API和命令行工具把底层那些繁琐、复杂且容易出错的步骤全部封装起来。无论是千问、ChatGLM、Baichuan还是Llama、Qwen等国际主流模型在ms-swift的视角里它们都可以用相似的方式进行加载、对话、微调和部署。我最初接触它是因为需要快速对比几个不同模型在特定任务上的效果。按照传统做法我得为每个模型准备一套独立的环境写不同的加载和推理脚本光是统一输入输出格式就够头疼的。而ms-swift通过一个简单的配置文件就能让我用几乎相同的代码切换不同的模型进行测试效率提升了不止一个量级。对于算法工程师、全栈开发者甚至是具有一定技术背景的产品经理来说ms-swift极大地降低了AI应用的原型验证和工程化门槛。它解决的正是从“模型好玩”到“模型好用”之间那条鸿沟。2. 核心设计理念与架构拆解2.1 为什么需要ms-swift—— 解决大模型应用的“碎片化”之痛在ms-swift出现之前大模型的应用开发处于一种“碎片化”的状态。每个模型家族比如Qwen系列、GLM系列往往都有自己的代码仓库、自己的加载方式、自己的微调方案如LoRA、QLoRA的实现和自己的对话模板。这种碎片化带来了几个显著的痛点学习成本高昂开发者需要为每一个想尝试的模型去学习其特定的代码库和API无法形成统一的开发心智。工程效率低下构建一个支持多模型的后端服务需要为每个模型编写适配层代码冗余且难以维护。微调门槛高虽然LoRA等参数高效微调技术理论上通用但不同框架的实现细节、数据格式要求千差万别调试过程异常痛苦。部署复杂将训练好的模型转化为可提供API服务的在线应用涉及模型转换、服务框架封装、资源管理等诸多环节每一步都容易踩坑。ms-swift的设计目标就是标准化。它试图定义一套“公约”让不同的模型都能在这套公约下被操作。它的架构可以粗略分为三层最上层开发者接口CLI Python SDK。这是开发者直接接触的部分提供了swift命令行工具和丰富的Python API。你可以通过一条命令完成模型下载、推理、微调、评估等全流程操作无需关心底层实现。中间层核心框架层。这是ms-swift的“大脑”包含了模型加载器Model、处理器Processor负责文本的tokenize和detokenize、训练器Trainer、评估器Evaluator等核心组件。它抽象了各类模型的共性操作并通过插件化机制兼容差异。最下层模型与后端适配层。这一层直接与Hugging Face的transformers库、peft参数高效微调库、deepspeed、vllm等底层引擎对接。ms-swift为每个支持的模型编写了适配器Adapter确保上层的统一调用能正确映射到底层模型的具体实现上。这种架构带来的最大好处是解耦。作为开发者你只需要和ms-swift的API打交道而ms-swift团队负责维护与日新月异的底层模型和训练框架的兼容性。当有新的优秀模型或训练技术出现时你通常只需要更新ms-swift而无需重写自己的业务代码。2.2 核心功能全景图不止于推理很多人第一次使用ms-swift可能只是用它来快速体验一下模型的对话能力。这确实是其最基础的功能但它的能力远不止于此。我们可以将其核心功能归纳为四个主要板块极简推理与对话支持通过命令行或几行Python代码启动与任意已支持模型的交互式对话。这对于快速验证模型的基础能力、进行效果对比或者单纯地“玩一玩”模型都非常方便。全流程微调支持这是ms-swift的强项。它集成了当前主流的参数高效微调PEFT方法特别是LoRA及其变种如QLoRA。你只需要准备好数据支持JSON、JSONL、CSV等格式写一个简单的配置文件就可以启动微调。它自动处理了梯度检查点、混合精度训练、学习率调度等复杂细节甚至支持在消费级显卡如单卡24G的3090/4090上微调70B级别的大模型。模型评估与量化训练完模型效果怎么样ms-swift内置了与主流评测集如C-Eval, MMLU的对接能力可以方便地对模型进行能力评估。同时它也支持模型量化如GPTQ, AWQ帮助你将庞大的模型“瘦身”从而在资源受限的环境如边缘设备、低成本云服务器中部署。一键部署与服务化模型微调好了量化完了最终要上线提供服务。ms-swift可以与vllm、TGIText Generation Inference等高性能推理引擎集成或者导出为标准的Hugging Face格式方便你集成到FastAPI、Gradio等Web框架中快速构建演示界面或API服务。注意ms-swift虽然功能强大但它并非要取代transformers或peft这样的底层库。相反它建立在它们之上提供了一个更友好、更集成化的“开箱即用”体验。当你需要极度定制化的训练逻辑或模型结构修改时可能仍需深入底层库。3. 从零开始环境配置与第一个对话3.1 环境搭建避坑指南理论说了这么多我们直接上手。第一步永远是环境配置。ms-swift强烈推荐使用Python 3.8及以上版本并通过pip安装。但这里有几个关键点直接关系到你后续能否顺利运行# 1. 创建并激活一个独立的虚拟环境强烈建议避免包冲突 conda create -n swift python3.10 conda activate swift # 2. 安装ms-swift核心包 pip install ms-swift -U看起来很简单对吧但坑往往就在这里。ms-swift依赖的底层库如torch,transformers,peft对版本非常敏感。特别是PyTorch的版本需要与你的CUDA驱动版本匹配。如果你在安装后遇到类似“CUDA version mismatch”的错误需要先明确你的显卡驱动支持的CUDA最高版本。一个更稳妥的安装顺序是# 步骤一根据你的CUDA版本从PyTorch官网获取正确的安装命令 # 例如对于CUDA 11.8 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 步骤二安装ms-swift它会自动安装兼容版本的transformers和peft pip install ms-swift -U # 步骤三如果需要使用vllm进行高性能推理单独安装注意vllm对torch版本也有要求 # pip install vllm实操心得我建议在安装ms-swift之前先单独安装好正确版本的PyTorch。很多环境问题都是由于PyTorch版本不对引起的。可以使用nvidia-smi查看驱动版本然后去PyTorch官网查找对应的安装命令。如果网络环境导致从官方源下载慢可以考虑配置镜像源。3.2 第一个对话与Qwen2.5-7B-Instruct聊天环境搞定后我们来跑通第一个对话。ms-swift的CLI工具设计得非常直观。假设我们想和最新的Qwen2.5-7B-Instruct模型聊聊天只需要一行命令swift chat --model_id_or_path Qwen/Qwen2.5-7B-Instruct当你第一次执行这条命令时会发生以下几件事模型下载ms-swift会自动从ModelScope Hub默认或Hugging Face Hub如果指定下载Qwen/Qwen2.5-7B-Instruct模型的所有文件包括模型权重、配置文件、tokenizer。这会消耗一定时间和磁盘空间本例约15GB。加载与准备下载完成后框架会自动识别模型类型加载对应的transformers模型和tokenizer并做好对话准备。启动交互界面完成后会进入一个命令行交互界面。你输入问题模型生成回答循环往复。在交互界面里你可以进行多轮对话。ms-swift会自动维护对话历史。输入/clear可以清空历史输入/exit退出。但是如果你没有一张足够大的显卡比如显存小于8GB直接运行上述命令很可能会爆显存。这时我们就需要用到ms-swift的量化或设备映射功能。# 使用4位精度加载QLoRA风格的量化大幅降低显存占用 swift chat --model_id_or_path Qwen/Qwen2.5-7B-Instruct --load_4bit # 或者如果显存实在太小可以使用--device_map auto让transformers自动将模型层分配到CPU和GPU上 # 这种方式推理速度会慢很多但能让你在低显存机器上跑起来 swift chat --model_id_or_path Qwen/Qwen2.5-7B-Instruct --device_map auto一个更真实的场景我们通常不只是聊天而是希望模型按照特定指令格式回答。比如很多Instruct模型遵循|im_start|system\n...|im_end|\n|im_start|user\n...|im_end|\n|im_start|assistant\n...这样的模板。ms-swift的Processor组件会自动处理这些模板你无需手动拼接。这也是框架价值的一个体现——它帮你屏蔽了不同模型在对话格式上的差异。4. 核心实战使用LoRA微调你的专属模型对话只是开始真正的威力在于让模型适应你的专属任务。比如我想让Qwen模型学会用我们公司内部的风格写周报或者根据特定的产品描述生成广告文案。这就需要用到微调。ms-swift让这个曾经复杂的过程变得异常清晰。4.1 数据准备格式是关键微调的第一步是准备数据。ms-swift支持多种格式但最推荐的是JSONL格式即每行一个JSON对象。对于指令微调SFT通常需要包含instruction指令、input可选输入、output期望输出这几个字段。假设我们要做一个“礼貌客服话术生成器”数据文件data.jsonl内容如下{instruction: 用户投诉快递延误了三天非常生气。请生成一段安抚用户的客服回复。, input: , output: 尊敬的客户非常抱歉给您带来了不好的体验。关于您反馈的快递延误问题我们已高度重视并紧急联系物流方核查。我们理解您的焦急心情在此真诚致歉。为表歉意我们将为您申请一张10元无门槛优惠券预计24小时内到账。我们会持续跟进此单物流并第一时间向您同步进展。感谢您的监督与反馈} {instruction: 用户询问订单为什么还没发货。请生成一段解释原因的客服回复。, input: 订单号ORD20231027001 原因商品缺货预计明天补货后发出。, output: 您好查询到您的订单ORD20231027001因部分商品暂时缺货正在紧急调拨中预计明天补货完成后会立即为您安排发出。让您久等了非常抱歉发货后我们会第一时间更新物流信息请您留意。感谢您的耐心等待} // ... 更多数据注意事项数据质量大于数量对于SFT几百条高质量、多样化的数据远胜于几万条重复、低质的数据。确保你的output是精心编写的、符合目标的范例。字段名可自定义ms-swift的配置文件可以指定数据中对应的字段名不一定非要叫instruction和output。文本清洗确保数据中没有多余的空格、换行符或特殊字符这些可能会干扰tokenizer。4.2 配置文件微调的“总指挥”ms-swift采用配置文件驱动的方式这是其设计的一大亮点。所有关于模型、数据、训练超参数、LoRA设置的选项都集中在一个YAML文件中。这带来了极好的可复现性和可管理性。我们创建一个名为lora_train.yaml的配置文件# 模型配置 model_type: qwen2.5-7b-instruct # 指定模型类型swift会根据这个自动选择正确的tokenizer和模板 model_id_or_path: Qwen/Qwen2.5-7B-Instruct # 模型ID或本地路径 # 数据配置 dataset: - custom: # 自定义数据集 data_files: # 数据文件路径 - path/to/your/data.jsonl format: json # 文件格式 columns: # 映射字段 instruction: instruction input: input output: output # 训练参数配置 output_dir: ./output # 输出目录 num_train_epochs: 3 # 训练轮数 per_device_train_batch_size: 2 # 每设备训练批大小根据显存调整 gradient_accumulation_steps: 4 # 梯度累积步数用于模拟更大batch size learning_rate: 1e-4 # 学习率 lr_scheduler_type: cosine # 学习率调度器 warmup_ratio: 0.05 # 预热比例 logging_steps: 10 # 每多少步打印一次日志 save_steps: 200 # 每多少步保存一次检查点 # LoRA 配置 (核心) lora: r: 8 # LoRA的秩rank影响参数量和能力通常8、16、32 target_modules: [ q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj ] # 要对哪些模块应用LoRA通常是注意力层和FFN层 lora_alpha: 32 # LoRA缩放因子通常设置为r的2-4倍 lora_dropout: 0.1 # Dropout率防止过拟合 # 量化配置可选用于在消费级显卡上微调大模型 quantization: quant_method: bitsandbytes # 量化方法 load_in_4bit: true # 使用4位量化加载基础模型 bnb_4bit_compute_dtype: float16 # 计算数据类型 bnb_4bit_quant_type: nf4 # 量化类型这个配置文件几乎涵盖了微调的所有关键决策。其中lora部分的target_modules选择至关重要它决定了LoRA适配器将附着在模型的哪些线性层上。对于大多数Decoder-only的LLM选择注意力机制中的Q、K、V、O投影层以及前馈网络FFN中的门控、上、下投影层是一个通用且有效的策略。4.3 启动训练一行命令的事有了数据和配置启动训练只需要一行命令swift sft \ --config lora_train.yaml \ --gradient_checkpointing true \ # 启用梯度检查点用时间换显存 --deepspeed default_zero2 \ # 可选使用DeepSpeed ZeRO-2优化显存多卡训练时尤其有用训练开始后你会在终端看到损失loss下降的日志。所有的输出包括最终的LoRA权重通常是一个safetensors文件、训练日志、配置文件副本都会保存在./output目录下。实操心得在开始长时间训练前强烈建议先跑一个“试运行”。可以通过在配置文件中设置max_train_samples: 50只取50条数据和num_train_epochs: 1快速验证整个数据流和训练循环是否能正确跑通避免因数据格式错误或配置问题浪费几个小时甚至几天时间。5. 模型评估、合并与部署5.1 评估微调效果不只是看Loss训练完成后损失曲线看起来不错但模型真的学会新任务了吗我们需要评估。方法一人工交互测试。使用训练好的LoRA权重进行对话这是最直接的方法。swift chat \ --model_id_or_path Qwen/Qwen2.5-7B-Instruct \ --lora_model_path ./output/checkpoint-xxx \ # 指定LoRA权重路径 --load_4bit # 如果训练时用了量化推理时也需要然后输入你在训练数据中准备过的指令观察输出是否接近你期望的output。再输入一些训练数据之外的、但属于同一任务的指令测试模型的泛化能力。方法二使用内置评估脚本。ms-swift支持在标准评测集上评估模型。例如评估微调后模型在中文理解任务上的表现注意这需要额外下载评测数据集swift eval --model_id_or_path Qwen/Qwen2.5-7B-Instruct \ --lora_model_path ./output/checkpoint-xxx \ --eval_dataset ceval \ --load_4bit方法三构建自己的评估集。准备一个eval.jsonl文件格式与训练数据类似但不包含output字段。然后写一个简单的脚本用微调后的模型为每个instruction生成回答再与你预先准备好的标准答案或通过人工进行对比计算BLEU、ROUGE或基于GPT-4的评分。5.2 模型权重合并从LoRA到完整模型LoRA训练产生的是一组小的适配器权重adapter_model.bin或.safetensors它需要和原始的基础模型一起加载才能工作。但在某些部署场景下我们可能希望得到一个独立的、融合了LoRA权重的完整模型文件以简化服务加载流程。ms-swift提供了便捷的合并功能swift merge-lora \ --model_id_or_path Qwen/Qwen2.5-7B-Instruct \ --lora_model_path ./output/checkpoint-xxx \ --save_path ./merged_model \ --save_safetensors true # 保存为更安全的safetensors格式执行后./merged_model目录下就是一个完整的、可以直接用transformers库加载的模型了。合并后的模型体积与原始基础模型相同但具备了微调学到的能力。5.3 服务化部署让模型提供API模型最终要投入使用。ms-swift可以与多种推理引擎和Web框架结合实现服务化。方案A使用vllm进行高性能推理服务化vllm以其高效的PagedAttention和连续批处理闻名非常适合高并发API服务。首先你需要将模型合并如上一步或者直接使用基础模型LoRAvllm最新版本已支持LoRA动态加载。# 1. 安装vllm pip install vllm # 2. 启动一个OpenAI兼容的API服务器使用合并后的模型 python -m vllm.entrypoints.openai.api_server \ --model ./merged_model \ --served-model-name my-polished-qwen \ --port 8000 \ --api-key your-api-key-here启动后你就可以通过http://localhost:8000/v1/completions或/v1/chat/completions接口以与OpenAI API完全兼容的格式调用你的模型了。方案B集成到FastAPI或Gradio如果你需要更灵活的控制或者想快速构建一个演示界面可以将ms-swift加载的模型包装到Web框架中。# 示例使用FastAPI创建一个简单的聊天接口 from fastapi import FastAPI, HTTPException from pydantic import BaseModel from transformers import AutoTokenizer, AutoModelForCausalLM from peft import PeftModel import torch app FastAPI() # 加载模型和tokenizer (基础模型 LoRA) model_path Qwen/Qwen2.5-7B-Instruct lora_path ./output/checkpoint-xxx tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) base_model AutoModelForCausalLM.from_pretrained( model_path, torch_dtypetorch.float16, device_mapauto, trust_remote_codeTrue ) model PeftModel.from_pretrained(base_model, lora_path) model.eval() class ChatRequest(BaseModel): message: str history: list [] app.post(/chat) async def chat(request: ChatRequest): try: # 使用ms-swift推荐的模板构造输入此处简化实际应使用对应模型的processor inputs tokenizer(request.message, return_tensorspt).to(model.device) with torch.no_grad(): outputs model.generate(**inputs, max_new_tokens512) response tokenizer.decode(outputs[0], skip_special_tokensTrue) return {response: response} except Exception as e: raise HTTPException(status_code500, detailstr(e))方案C使用ms-swift内置的Web UIms-swift也提供了一个基于Gradio的快速Web UI非常适合内部演示或轻量级应用。swift web-ui --model_id_or_path Qwen/Qwen2.5-7B-Instruct --lora_model_path ./output/checkpoint-xxx6. 避坑实录与进阶技巧在实际使用ms-swift的过程中我踩过不少坑也总结出一些能提升效率和效果的经验。6.1 常见问题与排查表问题现象可能原因排查步骤与解决方案OutOfMemoryError(OOM)1. 模型太大显存不足。2.batch_size或max_length设置过大。3. 未使用量化或梯度检查点。1. 使用--load_4bit或--load_8bit量化加载模型。2. 减小per_device_train_batch_size增大gradient_accumulation_steps。3. 在配置中启用gradient_checkpointing: true。4. 使用--device_map auto或--device_map balanced进行CPU/GPU混合加载。训练Loss不下降或为NaN1. 学习率 (learning_rate) 设置过高。2. 数据格式错误模型无法学到有效信号。3. 梯度爆炸。1. 尝试降低学习率如从1e-4降到5e-5或1e-5。2. 检查数据文件确保instruction和output字段内容正确没有乱码或空值。用swift chat快速验证几条数据。3. 启用梯度裁剪 (max_grad_norm: 1.0)。模型生成无关或胡言乱语1. 微调数据量太少或质量差。2. 过拟合。3. 推理时温度 (temperature) 参数过高。1. 增加高质量训练数据。2. 减少训练轮数 (num_train_epochs)或增加LoRA的dropout。3. 在推理时设置temperature: 0.1或top_p: 0.9来降低随机性使输出更确定。swift命令找不到或报错1. 虚拟环境未激活。2.ms-swift未正确安装或版本冲突。1. 确认已使用conda activate swift激活环境。2. 尝试重新安装pip uninstall ms-swift -y pip install ms-swift -U。3. 检查Python和pip版本。加载LoRA权重后模型行为无变化1. LoRA权重路径错误或文件损坏。2. 推理时未正确加载LoRA权重。3.target_modules配置与模型结构不匹配。1. 确认--lora_model_path指向正确的目录包含adapter_config.json和adapter_model.safetensors。2. 确保推理命令中包含了--lora_model_path参数。3. 对于非常见模型可能需要查看其结构来调整target_modules。可以尝试设置为ALL谨慎参数量会大增。6.2 进阶技巧与心得数据才是王道微调的效果70%取决于数据质量。指令要清晰多样输出要精准、符合预期风格。必要时可以先用GPT-4等更强模型来辅助生成或润色你的训练数据。LoRA超参数调优r秩和alpha是关键。通常r8或16是一个不错的起点alpha可以设为2*r。更大的r和alpha意味着更强的适应能力但也更容易过拟合。如果数据量很少1000条可以尝试更小的r如4和更高的dropout如0.2。使用--gradient_checkpointing和--deepspeed它们是微调大模型的“救命稻草”。梯度检查点会稍微增加训练时间但能显著减少显存占用。DeepSpeed ZeRO-2/3则能实现更极致的显存优化支持微调更大的模型。保存与版本控制每次实验的配置文件、训练日志和最终权重都应该妥善保存。可以在output_dir中使用包含日期、模型名、超参数的子目录名例如./output/qwen7b-lora-r8-lr1e4-epoch3-20240527。这有助于你回溯和比较不同实验的结果。从社区获取帮助遇到棘手的问题可以去ModelScope社区的GitHub仓库或论坛搜索Issues和Discussions。你遇到的问题很可能别人已经遇到并解决了。ms-swift这套工具链真正让我感受到了大模型应用开发的“工业化”味道。它把那些脏活累活封装起来让开发者能更专注于数据、任务定义和效果迭代本身。从最初的手忙脚乱到现在的得心应手这个过程也印证了一个道理在AI工程化落地的路上好的工具和标准化的流程和算法创新一样重要。如果你正准备将大模型的能力集成到你的产品中或者只是想高效地探索不同模型的可能性花点时间熟悉ms-swift很可能会让你事半功倍。

相关文章:

ms-swift:一站式大模型开发框架,从推理到LoRA微调实战

1. 项目概述:当开源大模型遇见“瑞士军刀”如果你最近在折腾大语言模型(LLM),无论是想在公司内部部署一个智能客服,还是想自己动手微调一个能写代码的助手,大概率都绕不开一个核心问题:如何高效…...

AI编程助手配置同步工具:一次配置,多端生效

1. 项目概述与核心痛点如果你和我一样,日常开发中会同时使用多个AI编程助手——比如主力用Claude Code,但偶尔也会切换到Gemini CLI、Cursor、Codex CLI或者Kimi CLI去蹭一下免费额度,或者体验一下不同模型的能力——那你一定深有体会&#x…...

港口全真孪生多模态融合穿透视觉智能技术白皮书 】

港口全真孪生多模态融合穿透视觉智能技术白皮书前言港口作为国际陆海联运核心枢纽,其复杂工况下的全域感知、实时孪生与智能决策,长期受制于传统技术体系的固有瓶颈。镜像视界(浙江)科技有限公司深耕空间智能前沿领域,…...

基于MCP协议构建Cursor团队数据AI助手:从原理到实战部署

1. 项目概述:为你的AI助手装上团队管理的“X光机” 如果你和我一样,是Cursor的深度用户,并且管理着一个开发团队,那你肯定有过这样的时刻:想知道过去一周团队里谁写代码最勤快,谁用的AI Credits最多&#x…...

无标无感定位,重构超级港口感知体系

无标无感定位,重构超级港口感知体系副标题:云边空间协同,赋能港口全场景自治在全球超级枢纽港口向全自主、全智能、高效率高阶形态演进的进程中,传统感知与定位模式依赖硬件挂载、终端布设、标签加持的固有逻辑,已成为…...

空间智能筑基,领航世界级智慧强港

空间智能筑基,领航世界级智慧强港导语:纯视觉全域孪生,定义港口智治新高度在全球港口产业迈向数字化、智能化、绿色化高阶变革的时代浪潮中,世界级枢纽港口的核心竞争力,已从传统规模吞吐优势,转向空间感知…...

2026最权威的十大降AI率方案解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 从语言风格以及逻辑结构着手,来降低AI生成文本的检测概率,要避免运用…...

百度用6%成本碾压硅谷?中国AI把性价比玩明白了

今天,AI圈又炸了。 当硅谷巨头们还在为一张算力账单争得面红耳赤时,中国AI力量用一连串重磅消息给出了自己的答案——烧最多的钱早已不是唯一的出路,聪明地省钱才是真本事。 百度用一纸新闻告诉全世界,大模型训练的性价比天花板被…...

RAG系统评估实战:从原理到应用,Ragas工具全解析

1. 项目概述:RAG评估的“瑞士军刀”如果你正在构建或优化一个基于检索增强生成(RAG)的系统,那么你一定遇到过这个灵魂拷问:“我的RAG应用效果到底怎么样?” 是检索的文档不够准,还是大模型回答得…...

你还在手动敲命令部署?GitHub Actions 让你 push 即上线,摸鱼时间翻倍

你改完代码,打开终端,输入 npm run build,然后 FTP 上传,或者登录服务器 git pull。这一套操作每天重复 N 次,不累吗?今天我们来把“部署”这件事自动化——用 GitHub Actions,只要你 git push&…...

思维导图+实验报告册

思维导图:实验报告册实验拓扑及要求实验思路1、配置IP地址 2、私网通,公网通---配置静态路由协议,测试公网通 3、配置R1-R5的ppp的pap认证,R5为主认证方 4、R2与R5之间使用ppp的CHAP认证,R5为主认证方; 5、…...

CANN/asc-devkit算子属性设置API

AddAttr 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/ca…...

国际AI治理新规:算力阈值与全球暂停机制如何重塑AI研发格局

1. 项目概述:为什么我们需要一个“全球AI红绿灯”? 最近和几个做AI安全研究的朋友聊天,大家不约而同地提到了同一个词:失控感。这种感觉,不是来自某个具体的模型漏洞,而是源于整个行业正在以指数级速度狂奔…...

Flutter+开源鸿蒙实战|城市共享驿站智能存取系统 Day3 扫码模块集成+智能寄存表单+时长计费算法+驿站详情页+本地缓存持久化

Flutter开源鸿蒙实战&#xff5c;城市共享驿站智能存取系统 Day3 扫码模块集成智能寄存表单时长计费算法驿站详情页本地缓存持久化 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net <!-- Schema.org 结构化数据 --> <script type…...

基于Tauri与Vue ue 3的轻量级Markdown编辑器inkdown技术解析

1. 项目概述&#xff1a;一个为创作者而生的轻量级写作工具最近在折腾个人知识库和内容创作流程时&#xff0c;我又一次陷入了工具选择的困境。市面上主流的Markdown编辑器功能强大&#xff0c;但往往伴随着臃肿的界面、复杂的配置&#xff0c;或是需要联网的云服务。对于我这种…...

AI智能体技能库:模块化工具集如何赋能Agent开发与自动化

1. 项目概述&#xff1a;一个为AI智能体赋能的技能库最近在折腾AI智能体&#xff08;Agent&#xff09;开发的朋友&#xff0c;估计都绕不开一个核心问题&#xff1a;如何让一个“大脑”&#xff08;通常是大型语言模型&#xff09;具备执行具体任务的能力&#xff1f;光会“思…...

Agent Input Compiler:本地AI编程助手上下文优化工具详解

1. 项目概述&#xff1a;一个为AI编码工具“编译”上下文的本地优先工具如果你用过Cursor、Claude Code这类AI编程助手&#xff0c;肯定遇到过这样的场景&#xff1a;你想让它帮你修改一个函数&#xff0c;结果它一股脑地把整个项目&#xff0c;甚至node_modules里的package.js…...

AI赋能马术:Gemini3.1Pro打造智能护理知识库

在 2026 年&#xff0c;AI 的应用已经不再局限于写代码、做图文或回答通用问题&#xff0c;而是逐渐进入更细分、更专业的知识管理场景。对于马术教练来说&#xff0c;马匹护理并不是一个单点技能&#xff0c;而是一套需要长期积累的系统知识&#xff0c;包括饲养管理、日常观察…...

终极指南:如何在Windows上使用com0com虚拟串口驱动实现零成本串口通信

终极指南&#xff1a;如何在Windows上使用com0com虚拟串口驱动实现零成本串口通信 【免费下载链接】com0com Null-modem emulator - The virtual serial port driver for Windows. Brought to you by: vfrolov [Vyacheslav Frolov](http://sourceforge.net/u/vfrolov/profile/)…...

谷歌Gmail客户端升级:新增AI Inbox入口,‘Help me write’功能深度进化

谷歌Gmail客户端&#xff1a;新增AI Inbox快捷入口品玩5月9日消息&#xff0c;据9to5google报道&#xff0c;谷歌在Gmail安卓及iOS客户端底部导航栏新增了“AI Inbox”快捷入口。此入口位于“Gmail”与“Chat”之间&#xff0c;用户点击后可进入以任务为核心的邮件视图。该视图…...

半导体光刻中SRAF与逆光刻技术的应用与优化

1. 半导体光刻中的分辨率增强技术演进在32nm及更先进工艺节点中&#xff0c;光刻工艺面临着前所未有的挑战。当k1因子降至0.25左右时&#xff0c;传统的光学系统改进&#xff08;如提高数值孔径NA&#xff09;已接近物理极限。这种情况下&#xff0c;计算光刻技术成为突破分辨率…...

年轻人用 AI 完成情绪自救:从发疯吐槽到平行宇宙重养自己

五一节后&#xff0c;年轻人情绪宣泄新方式五一假期结束&#xff0c;打工人的“节后综合症”未消。面对工作群消息和改不完的 PPT&#xff0c;打工人蝈蝈在摸鱼时打开灵光 APP 里的小游戏“老板被我 fire 了”&#xff0c;体验痛扁老板、原地暴富的爽感。而这个应用是网友二旬老…...

39《树莓派CAN总线通信实战:从入门到精通》

树莓派CAN总线通信实战:从入门到精通(001)CAN总线基础与树莓派硬件选型 一、一个让我熬夜到凌晨三点的CAN总线问题 去年做车载OBD数据采集项目,树莓派4B接MCP2515模块,波特率设成500kbps,结果一上电就疯狂丢帧。用逻辑分析仪抓波形,发现CAN_H和CAN_L之间的差分电压只有…...

DeepSeek-Reasonix:只绑 DeepSeek,缓存命中率 99.82% 砍 80% 成本的 AI 编程助手

【导语&#xff1a;AI 编程助手赛道迎来新成员 DeepSeek-Reasonix&#xff0c;它只绑定 DeepSeek&#xff0c;将前缀缓存稳定性发挥到极致&#xff0c;成本效率表现出色&#xff0c;还具备多种工作模式。】偏执路线&#xff1a;只绑 DeepSeek 压榨缓存稳定性开发者在 GitHub 上…...

Helm-GCS:构建高并发安全的私有Helm仓库实战指南

1. 为什么需要 helm-gcs&#xff1a;一个云原生时代的务实选择在 Kubernetes 生态里&#xff0c;Helm 是事实上的包管理标准&#xff0c;它让部署复杂的应用从“写一堆 YAML 文件”变成了“一个helm install命令”。但随之而来的一个现实问题是&#xff1a;我们打包好的这些 He…...

1.6.5 掌握Scala数据结构 - 集合

深入探讨了 Scala 数据结构中的集合体系&#xff0c;核心在于理解不可变与可变集合的本质区别。不可变集合是函数式编程的基石&#xff0c;强调数据的安全性与持久化&#xff0c;任何增删改操作均不改变原集合&#xff0c;而是返回包含更新内容的新集合&#xff0c;天然具备线程…...

计算机毕业设计 | SpringBoot+vue流浪宠物管理 小动物救助领养平台(附源码+论文)

1&#xff0c;绪论 1.1 研究背景 近年来&#xff0c;第三产业发展非常迅速&#xff0c;诸如计算机服务、旅游、娱乐、体育等服务行业&#xff0c;对整个社会的经济建设起到了极大地促进作用&#xff0c;这一点是毋庸置疑的。现下&#xff0c;国家也出台了一些列的政策来支持和…...

taotoken的api key管理与访问控制功能实际使用感受分享

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken 的 API Key 管理与访问控制功能实际使用感受分享 作为团队中负责大模型应用接入与成本治理的管理员&#xff0c;我的一项…...

【学习篇】第18期 C++模板

【你奶奶都能听懂的C】第18期 C模板 目录【你奶奶都能听懂的C】第18期 C模板开头&#xff1a;一.模板1.概念2.用法分类&#xff08;1&#xff09;函数模板&#xff08;2&#xff09;类模板二.非类型模板参数三.模板的特化1.概念&#xff08;1&#xff09;函数模板特化&#xff…...

Python自动化Yandex.Metrika数据采集:从API封装到ETL管道实战

1. 项目概述&#xff1a;一个被低估的Yandex.Metrika数据助手 如果你正在运营一个面向俄语区或东欧市场的网站&#xff0c;或者你的产品在这些地区有用户&#xff0c;那么你一定对Yandex.Metrika不陌生。它就像是俄罗斯的Google Analytics&#xff0c;是洞察用户行为、分析流量…...