尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
DeepSeek实战手册:环境配置、LoRA微调与推理排错全指南
简介本资源是清华大学新媒体研究中心出品的《DeepSeek从入门到精通》专题课件面向AI开发者、算法工程师及大模型应用实践者系统解析国产推理大模型DeepSeek-R1的技术定位、能力边界与工程落地逻辑。课件以PPTX格式呈现共1个文件5.67MB涵盖DeepSeek公司技术路线、推理模型与通用模型的本质差异、CoT链式推理机制、快思/慢想双模能力对比以及文本生成、代码补全、语义分析、多模态文档理解等12类典型场景的提示策略与实操要点。内容预览显示其结构清晰含模型选型决策矩阵、任务-模型匹配指南、三类提示语设计范式指令驱动/需求导向/启发式提问及对应避坑建议直击实际应用中的模型误用痛点。目前已有441人学习下载是少有的将国产推理模型原理、能力图谱与工程提示方法论深度融合的高质量教学材料。1. 这不是又一本“大模型科普读物”104页清华系DeepSeek实战手册专治「看懂了但跑不通」的玄学焦虑你有没有过这种经历花三小时读完一篇LLM原理推导信心满满打开终端准备微调模型结果卡在tokenizer.decode()返回空字符串、flash_attn编译失败、或者ValueError: Expected input batch_size (32) to match target batch_size (16)——而文档里只有一行pip install deepseek这份由某高校实验室整理的《DeepSeek从入门到精通》PDF不是概念图解集也不是API速查表它是一份带完整可复现链路的工程切片从环境隔离、权重加载、LoRA配置、数据格式校验到推理时显存溢出的逐层定位。全书104页72%内容为带注释的代码块、参数表格与错误日志截图覆盖DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE三个主流变体。适合刚跑通HuggingFace示例但不敢改一行config的中级实践者也适合需要快速验证某模块如RoPE位置编码适配性的算法工程师。它不讲transformer有多伟大只告诉你rope_theta1000000在DeepSeek-V2里为什么比默认值更稳。2. 环境构建与模型加载为什么conda比pip install更可靠以及如何绕过hf-mirror的镜像陷阱DeepSeek官方未提供PyPI包所有模型权重均托管于Hugging Face Hub。直接pip install transformers后调用AutoModelForCausalLM.from_pretrained(deepseek-ai/deepseek-coder-1.3b-base)极易失败——原因不在模型本身而在依赖链的隐式冲突。本节基于某高校实验室实测数据给出可复现的环境初始化路径。2.1 创建隔离环境并安装核心依赖提示必须使用conda而非venv因FlashAttention-2需CUDA版本强绑定conda能自动解析cudatoolkit11.8与flash-attn2.5.8的兼容组合而pip会静默安装不匹配版本导致后续import flash_attn报错。# 创建Python 3.10环境DeepSeek-V2官方测试基准 conda create -n deepseek-env python3.10 conda activate deepseek-env # 安装CUDA工具链以NVIDIA驱动版本525为前提 conda install -c conda-forge cudatoolkit11.8 # 安装FlashAttention-2关键必须指定CUDA版本 pip install flash-attn2.5.8 --no-build-isolation # 安装transformers与accelerate注意版本锁 pip install transformers4.41.2 accelerate0.29.3逻辑说明flash-attn2.5.8是DeepSeek-V2论文中验证过的版本新版本如2.6.x在rotary_emb计算中引入了torch.compile兼容性问题transformers4.41.2对应Hugging Face对DeepseekV2ForCausalLM类的首次完整支持早于该版本的from_pretrained会抛出KeyError: deepseek_v2--no-build-isolation避免pip在沙盒中重新编译FlashAttention跳过CUDA检测导致安装CPU-only版本。2.2 模型权重下载与本地加载避开hf-mirror的缓存污染Hugging Face官方Hub在国内访问不稳定多数人会配置HF_ENDPOINThttps://hf-mirror.com。但该镜像存在权重文件哈希值滞后更新问题当DeepSeek发布新权重如deepseek-coder-33b-instruct的v1.1补丁hf-mirror可能仍返回旧版model.safetensors导致load_state_dict时shape mismatch。解决方案是强制校验SHA256并回退到原始Hub。from huggingface_hub import snapshot_download, hf_hub_download import hashlib # 下载前校验远程文件SHA256以deepseek-coder-1.3b-base为例 remote_url https://huggingface.co/deepseek-ai/deepseek-coder-1.3b-base/resolve/main/model.safetensors # 手动获取该URL的SHA256见官方README或HF页面Files and versions标签页 expected_sha a1b2c3d4e5f6... # 实际值需替换为HF页面显示的sha256 # 使用hf_hub_download强制从原始Hub下载单个文件并校验 local_path hf_hub_download( repo_iddeepseek-ai/deepseek-coder-1.3b-base, filenamemodel.safetensors, revisionmain, local_dir./models/deepseek-coder-1.3b-base, local_dir_use_symlinksFalse ) # 校验本地文件 with open(local_path, rb) as f: actual_sha hashlib.sha256(f.read()).hexdigest() if actual_sha ! expected_sha: raise RuntimeError(fSHA256 mismatch! Expected {expected_sha}, got {actual_sha}) print(f✅ Model verified: {local_path})参数说明local_dir_use_symlinksFalse避免Linux系统下符号链接导致os.path.getsize()误判文件大小revisionmain明确指定分支防止HF自动重定向到refs/pr/xx等临时分支校验步骤不可省略——某次实测中hf-mirror缓存的deepseek-v2-16b权重SHA256与官方相差3个字节导致q_proj.weight维度从(1280, 4096)错读为(1280, 4095)引发后续矩阵乘法崩溃。2.3 加载模型时的device_map陷阱为什么auto会把embeddings扔进CPUDeepSeek-V2采用分组查询注意力GQA其embed_tokens层权重较大16B模型约1.2GB。若使用device_mapautoHugging Face的设备分配器会因内存估算偏差将model.embed_tokens分配至CPU而model.layers.0分配至GPU导致forward()时出现RuntimeError: Expected all tensors to be on the same device。正确做法是显式指定device_mapfrom transformers import AutoModelForCausalLM, AutoTokenizer model_name ./models/deepseek-coder-1.3b-base # 方案1全量加载到单卡推荐调试用 model AutoModelForCausalLM.from_pretrained( model_name, torch_dtypetorch.bfloat16, # DeepSeek-V2原生支持bfloat16 device_map{: cuda:0} # 强制所有模块到cuda:0 ) # 方案2量化加载生产环境 from transformers import BitsAndBytesConfig bnb_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_quant_typenf4, bnb_4bit_compute_dtypetorch.bfloat16, bnb_4bit_use_double_quantTrue, ) model AutoModelForCausalLM.from_pretrained( model_name, quantization_configbnb_config, device_mapauto # 量化后auto才安全 )关键区别{: cuda:0}表示根模块即整个model映射到cuda:0无子模块拆分量化后device_mapauto才可靠因4-bit权重大幅降低显存压力设备分配器能准确估算若强行对非量化模型用device_mapbalanced会触发accelerate的跨设备张量搬运推理速度下降40%以上实测RTX 4090。3. 数据预处理与训练脚本改造从Alpaca格式到DeepSeek专用tokenize策略DeepSeek系列模型尤其Coder和MoE对输入token序列有特殊要求必须以begin▁of▁sentence开头非s或[BOS]用户指令需包裹在user与assistant之间代码补全任务中assistant后必须接\n否则模型无法识别生成起始点。直接套用Llama-2的Alpaca数据模板会导致loss震荡、生成乱码。本节给出可复现的预处理管道。3.1 构建DeepSeek专用tokenizer绕过fast tokenizer的padding bugDeepSeek官方发布的tokenizer.json存在一个已知问题当启用paddingTrue且truncationTrue时encode_plus会错误地在input_ids末尾插入多个end▁of▁sentenceID32002而非标准padding tokenID0。这导致训练时label shift模型学习预测padding而非真实token。修复方案禁用fast tokenizer手动实现paddingfrom transformers import AutoTokenizer import torch tokenizer AutoTokenizer.from_pretrained( ./models/deepseek-coder-1.3b-base, use_fastFalse, # 关键禁用fast tokenizer trust_remote_codeTrue ) # 验证特殊token ID assert tokenizer.bos_token_id 32000 assert tokenizer.eos_token_id 32002 assert tokenizer.pad_token_id 0 # 注意pad_token_id0非eos_token_id def preprocess_function(examples): # 构造DeepSeek格式prompt prompts [] for i in range(len(examples[instruction])): prompt ( begin▁of▁sentence fuser{examples[instruction][i]}assistant\n ) prompts.append(prompt) # 分词不padding tokenized tokenizer( prompts, truncationTrue, max_length2048, return_tensorsNone, # 返回list而非tensor便于手动padding add_special_tokensFalse # 避免重复添加bos ) # 手动padding到max_length input_ids [] attention_mask [] for ids in tokenized[input_ids]: pad_len 2048 - len(ids) input_ids.append(ids [0] * pad_len) attention_mask.append([1] * len(ids) [0] * pad_len) return { input_ids: torch.tensor(input_ids, dtypetorch.long), attention_mask: torch.tensor(attention_mask, dtypetorch.long), labels: torch.tensor(input_ids, dtypetorch.long) # labelsinput_ids因果语言建模 } # 应用于datasets from datasets import load_dataset dataset load_dataset(json, data_filesalpaca_data.json) tokenized_dataset dataset.map( preprocess_function, batchedTrue, remove_columnsdataset[train].column_names, num_proc4 )逻辑说明use_fastFalse强制使用Python tokenizer规避C底层padding逻辑缺陷add_special_tokensFalse防止begin▁of▁sentence被重复添加prompt中已显式包含labelsinput_ids是标准因果语言建模设置但需注意DeepSeek-Coder在代码补全场景中assistant\n后的token才是有效label因此实际训练时需在loss计算中mask掉prompt部分见3.3节。3.2 LoRA微调配置为什么r64比r8更适配DeepSeek-MoE的专家路由DeepSeek-MoE模型含16个专家Experts每个专家的FFN层独立。若对全部线性层应用LoRAr8会导致低秩适配器无法捕捉专家间路由差异表现为验证loss下降缓慢、生成代码时频繁切换无关专家。某高校实验室在deepseek-moe-16b上对比实验表明r64时专家激活分布熵提升23%生成代码通过率pass1提高11.7%。LoRA配置参数表参数推荐值说明r64MoE模型需更高秩捕获专家路由动态r8仅适用于纯dense模型如DeepSeek-V2lora_alpha128alpha/r2保持缩放强度避免梯度爆炸target_modules[q_proj, v_proj, k_proj, o_proj, gate_proj, up_proj, down_proj]必须包含gate_proj专家路由层否则路由权重不更新biasnoneDeepSeek权重无bias项设为lora_only会报错from peft import LoraConfig, get_peft_model lora_config LoraConfig( r64, lora_alpha128, target_modules[ q_proj, v_proj, k_proj, o_proj, gate_proj, up_proj, down_proj ], biasnone, lora_dropout0.1, task_typeCAUSAL_LM ) model get_peft_model(model, lora_config) model.print_trainable_parameters() # 输出trainable params: 12,345,678 || all params: 16,000,000,000 || trainable%: 0.077参数说明gate_proj是MoE模型的核心控制token路由到哪个专家必须纳入LoRAtrainable%: 0.077表示仅0.077%参数参与训练符合LoRA设计目标若遗漏gate_projprint_trainable_parameters()会显示0 trainable params因该层无weight属性LoRA自动跳过。3.3 训练循环中的label masking如何让模型只学习生成assistant之后的内容DeepSeek的prompt模板中user及之前均为上下文不应参与loss计算。若直接用labelsinput_ids模型会尝试预测begin▁of▁sentence和user导致收敛困难。必须在DataCollator中动态mask。from transformers import DataCollatorForLanguageModeling class DeepSeekDataCollator(DataCollatorForLanguageModeling): def torch_call(self, examples): batch super().torch_call(examples) # 构造label mask仅保留assistant\n之后的token labels batch[labels].clone() for i in range(len(labels)): # 查找assistant\n的起始位置ID序列32001, 13 assistant_ids [32001, 13] pos -1 for j in range(len(labels[i]) - 1): if (labels[i][j].item() assistant_ids[0] and labels[i][j1].item() assistant_ids[1]): pos j 2 # \n后第一个token break if pos -1: labels[i] torch.full_like(labels[i], -100) # 全mask else: labels[i][:pos] -100 # mask prompt部分 batch[labels] labels return batch # 使用自定义collator data_collator DeepSeekDataCollator( tokenizertokenizer, mlmFalse # 因果语言建模非掩码语言建模 )关键逻辑labels[i][:pos] -100将prompt部分设为-100PyTorch CrossEntropyLoss自动忽略assistant_ids [32001, 13]对应assistantID32001和换行符\nID13这是DeepSeek-Coder的硬编码约定若数据集中存在无assistant的样本pos-1触发全mask避免训练噪声。4. 推理优化与常见问题排查从OOM到生成重复的五层定位法即使成功训练DeepSeek模型在推理时仍高频出现三类问题显存溢出OOM、生成内容重复、输出截断。这些问题往往源于配置参数的隐式耦合而非代码bug。本节基于某高校实验室对127次失败推理的日志分析提炼出可操作的排查路径。4.1 显存溢出OOM的五层定位法当torch.cuda.OutOfMemoryError发生时不要立即增加batch_size或减小max_length。按以下顺序逐层检查层级检查项命令/方法正常值异常现象L1CUDA缓存缓存是否堆积torch.cuda.memory_summary()allocated: 12.3 GBreserved: 14.1 GBreserved远大于allocated说明缓存未释放L2KV Cache是否启用model.generation_config.use_cacheTrueTrueFalse会导致每步重新计算所有KV显存翻倍L3RoPE插值是否启用model.config.rope_scaling{type: linear, factor: 2.0}为空则长文本推理必OOML4FlashAttention是否生效print(hasattr(model.model.layers[0].self_attn, flash_attn))TrueFalse说明FlashAttention未正确注入L5Batch Size实际占用nvidia-smi --query-compute-appspid,used_memory --formatcsv单进程≤22GBA100 40GB24GB且L1-L4均正常需检查数据预处理是否引入超长序列实操命令# L1检查CUDA缓存 python -c import torch; torch.cuda.empty_cache(); print(torch.cuda.memory_summary()); # L4验证FlashAttention注入 python -c from transformers import AutoModelForCausalLM; model AutoModelForCausalLM.from_pretrained(./models/deepseek-v2-16b, device_mapauto); print(hasattr(model.model.layers[0].self_attn, flash_attn)); 4.2 生成重复内容从temperature到repetition_penalty的参数联动DeepSeek模型生成重复如return return return的主因不是temperature过低而是repetition_penalty与max_new_tokens的负向耦合。当max_new_tokens 512时repetition_penalty1.2会导致模型过度惩罚历史token转而重复当前token。解决方案是动态调整from transformers import pipeline pipe pipeline( text-generation, modelmodel, tokenizertokenizer, device_mapauto ) # 动态repetition_penalty长输出时降低惩罚强度 def dynamic_repetition_penalty(max_new_tokens): if max_new_tokens 128: return 1.2 elif max_new_tokens 512: return 1.1 else: return 1.05 # 防止长文本生成冻结 outputs pipe( def fibonacci(n):, max_new_tokens1024, temperature0.7, repetition_penaltydynamic_repetition_penalty(1024), do_sampleTrue, top_p0.95 )参数联动原理repetition_penalty 1.0会降低已生成token的概率但过大会使模型陷入“无路可走”的局部最优max_new_tokens越大历史token集合越庞大固定repetition_penalty导致惩罚累积效应指数级增强实测表明repetition_penalty1.05在max_new_tokens2048时重复token率从38%降至4.2%。4.3 输出截断为什么max_new_tokens不等于实际生成长度调用pipeline(..., max_new_tokens512)后实际输出仅200 tokens且末尾为end▁of▁sentence。根本原因是DeepSeek的eos_token_id32002被提前触发。需检查stopping_criteria是否被意外覆盖from transformers import StoppingCriteria, StoppingCriteriaList class EosTokenStoppingCriteria(StoppingCriteria): def __init__(self, eos_token_id: int): self.eos_token_id eos_token_id def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) - bool: # 仅当eos_token_id出现在新生成token中才停止 return input_ids[0][-1].item() self.eos_token_id # 显式传入stopping_criteria outputs pipe( Write a Python function to sort a list:, max_new_tokens512, stopping_criteriaStoppingCriteriaList([ EosTokenStoppingCriteria(tokenizer.eos_token_id) ]) )避坑 / 常见问题 / 排查 / 注意现象pipeline输出中assistant后立即出现end▁of▁sentence生成内容为空原因tokenizer.encode(assistant)返回[32001]但模型期望[32001, 13]含\n缺少换行符导致模型误判为对话结束解决在prompt末尾强制添加\n即assistant\n现象model.generate()返回generate_kwargs中max_new_tokens未生效始终生成200 tokens原因generation_config中max_length被设为较小值如1024其优先级高于max_new_tokens解决调用前重置model.generation_config.max_length None现象使用device_mapauto加载16B模型后generate()报错Expected all tensors to be on the same device原因past_key_values在多卡间未同步accelerate的dispatch_model未正确处理DeepSeek的DeepseekV2Attention类解决改用device_map{: cuda:0}单卡加载或升级accelerate0.29.3现象flash_attn编译成功但generate()速度无提升原因torch.compile未启用或model.forward()未被JIT编译解决添加model torch.compile(model, modereduce-overhead)且确保torch2.3.0现象LoRA微调后model.merge_and_unload()报错AttributeError: Linear object has no attribute merge_weights原因peft版本过低0.10.0未支持DeepSeek的Qwen2MLP结构解决pip install peft0.11.1并确认get_peft_model返回的model类型为PeftModelForCausalLM5. 模型合并与部署技巧如何把LoRA权重烧录进原模型以及ONNX导出的三个致命陷阱微调完成后业务系统通常需要将LoRA权重合并进基础模型生成单一.bin文件供C或Java服务加载。但DeepSeek的权重合并存在两个隐藏约束一是merge_and_unload()不支持MoE模型的gate_proj层二是ONNX导出时torch.onnx.export会错误折叠RoPE的inv_freq张量。本节给出经某高校实验室验证的端到端方案。5.1 LoRA权重合并MoE模型必须手动遍历专家层peft库的merge_and_unload()对MoE模型如deepseek-moe-16b无效因其gate_proj层是nn.Linear但LoRA适配器被注入到DeepseekMoE容器内merge_and_unload()无法递归访问。必须手动提取并加权合并import torch def merge_lora_moe(model, lora_path./lora-checkpoint): 手动合并MoE模型的LoRA权重 # 加载LoRA权重 lora_state_dict torch.load(f{lora_path}/adapter_model.bin) # 遍历所有模块 for name, module in model.named_modules(): if gate_proj in name and lora_A in name: # 获取原始权重 base_name name.replace(.lora_A.default.weight, ) base_module dict(model.named_modules())[base_name] # 提取LoRA A/B矩阵 lora_a lora_state_dict[f{name}.weight] lora_b lora_state_dict[f{name.replace(lora_A, lora_B)}.weight] # 合并W B A * alpha / r merged_weight base_module.weight.data.clone() merged_weight (lora_b lora_a) * (128 / 64) # alpha128, r64 # 写回 base_module.weight.data merged_weight return model # 使用 merged_model merge_lora_moe(model, ./lora-checkpoint) merged_model.save_pretrained(./merged-model)关键点alpha / r 128 / 64 2.0是LoRA缩放因子必须与训练时一致仅合并gate_proj层其他层如q_proj可用标准merge_and_unload()合并后需调用model.eval()并torch.inference_mode()否则Dropout层影响推理。5.2 ONNX导出绕过RoPE、MoE和动态shape三大陷阱DeepSeek模型ONNX导出失败率超80%主因有三RoPE陷阱rotary_emb的inv_freq被导出为常量但实际需随seq_len动态计算MoE陷阱top_k_gating的torch.topk操作不支持动态batchShape陷阱past_key_values的seq_len维度为NoneONNX要求静态shape。解决方案分阶段导出自定义opimport onnx from onnxruntime import InferenceSession # 步骤1导出without past_key_values仅first token dummy_input tokenizer( Hello, return_tensorspt, paddingTrue, truncationTrue, max_length128 ) torch.onnx.export( model, (dummy_input[input_ids], dummy_input[attention_mask]), deepseek-first.onnx, input_names[input_ids, attention_mask], output_names[logits, present_key_values], dynamic_axes{ input_ids: {0: batch, 1: seq}, attention_mask: {0: batch, 1: seq}, logits: {0: batch, 1: seq}, present_key_values: {0: batch, 2: seq} }, opset_version17 ) # 步骤2导出with past_key_values后续token # 需先运行first推理获取present_key_values再构造dummy_past # 此处省略详见《DeepSeek从入门到精通》P89-92致命陷阱规避表陷阱类型错误表现规避方法验证方式RoPE动态计算ONNX输出logits全为nan不导出rotary_emb改用ONNX Runtime自定义RoPE op加载ONNX后输入seq_len1和seq_len10检查logits差异是否合理MoE top_konnx.checker.check_model()报错Unsupported node type: TopK将top_k2硬编码为常量禁用动态top_k检查ONNX graph中TopK节点输入是否为Constant动态shapeonnxruntime.InferenceSession初始化失败dynamic_axes中present_key_values的seq轴必须设为2非None导出后用netron查看present_key_values维度是否为[batch, num_heads, 2, head_dim]5.3 部署时的显存优化如何用vLLM启动DeepSeek-V2而不炸显存vLLM是当前最高效的LLM服务框架但DeepSeek-V2需额外配置才能启用PagedAttention。默认vllm.LLM会因rope_scaling参数缺失而回退到朴素Attention显存占用增加3.2倍。from vllm import LLM, SamplingParams # 关键配置显式传递rope_scaling llm LLM( model./models/deepseek-v2-16b, tensor_parallel_size2, # 双卡 gpu_memory_utilization0.9, # 显存利用率 rope_scaling{type: linear, factor: 2.0}, # 必须 max_model_len4096, # 与rope_scaling.factor匹配 enforce_eagerFalse # 启用CUDA Graph ) sampling_params SamplingParams( temperature0.7, top_p0.95, max_tokens1024, stop[end▁of▁sentence] # vLLM需显式stop token ) outputs llm.generate(Explain quantum computing:, sampling_params)参数说明rope_scaling必须与模型config中一致否则PagedAttention失效max_model_len4096需是rope_scaling[factor] * original_max_position_embeddingsDeepSeek-V2原生为2048stop[end▁of▁sentence]是vLLM必需否则生成永不停止。从那以后我每次部署DeepSeek模型都强制走一遍torch.cuda.memory_summary()vllm.LLM配置校验 ONNX动态轴验证三步。不是怕出错是怕出错后花三天时间回溯——而其实问题就藏在rope_scaling那个没传的字典里。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

Sobel算子原理与工业级OpenCV实战指南

Sobel算子原理与工业级OpenCV实战指南

1. 项目概述:Sobel算子不是“滤波器”,而是方向敏感的梯度近似工具你打开OpenCV文档查cv2.Sobel,第一眼看到的是“计算图像梯度”——但这句话几乎等于没说。我带过十几期图像处理实训,90%的新手在第一次调用Sobel时都卡在同一个地…

📅 2026/10/12 13:13:52
计算机二级C语言程序修改题:指针与字符串错误定位实战

计算机二级C语言程序修改题:指针与字符串错误定位实战

1. 这道题到底在考什么计算机二级C语言考试里的程序修改题,是很多人的噩梦。我当年第一次做这类题的时候,盯着代码看了十分钟,愣是没找到错在哪。后来刷了几十道题才慢慢摸到门道——出题人的套路其实就那么几种,看多了你甚至能预…

📅 2026/10/12 13:13:52
Spring Boot项目JUnit 4与JUnit 5选型配置与迁移指南

Spring Boot项目JUnit 4与JUnit 5选型配置与迁移指南

1. 为什么Spring Boot项目测试总在“版本”上栽跟头不管你是刚把第一个接口写完的新手,还是已经维护了几年老项目的资深开发者,只要在Spring Boot里写过单元测试,基本都遇到过这么几种情况:依赖照着网上的教程加了一堆&#xff0c…

📅 2026/10/12 13:13:52
MORE NEWS

更多资讯

📰

sim-use 3分钟上手:observe-act-verify循环让AI验证自己写的移动App

【免费下载链接】sim-use Give your AI agent eyes and hands on iOS Simulator and Android emulator/devices. 项目地址: https://gitcode.com/gh_mirrors/si/sim-use 点击查看 免费下载 sim-use 是一个跨平台 CLI 工具,它为 AI Agent 提供在 iOS 模拟…

📰

智谱刚把 GLM-5.3 搬上 Amazon Bedrock,股价应声涨近 5%:国产大模型出海怎么突然就火了

智谱刚把 GLM-5.3 搬上 Amazon Bedrock,股价应声涨近 5%:国产大模型出海怎么突然就火了 【免费下载链接】GLM-5.3 GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升…

📰

C++手写CSV解析器:从状态机到流式处理实战

1. 从一次数据清洗任务说起:为什么CSV值得单独写一篇文章前阵子帮一个做实验数据分析的朋友处理一批传感器日志,对方甩过来一个压缩包,解压后是几十个后缀为.csv的文件,每个文件大概几万行,列数从十几列到三十几列不等…

📰

Pomotroid 土耳其语本地化实践:基于 Paraglide 的 8 语言架构与新增 locale 全流程

【免费下载链接】pomotroid :tomato: Simple and visually-pleasing Pomodoro timer 项目地址: https://gitcode.com/gh_mirrors/po/pomotroid 点击查看 免费下载 本文以 Pomotroid 新增土耳其语(tr)支持这一真实变更为主线,讲解…

📰

openJiuwen DeepSearch 研究规划提示模板(planner/user.md)深度解析:从 Jinja 渲染到计划生成的全链路实现

人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体 【免费下载链接】deepsearch openJiuwen DeepSearch是一款知识增强的深度搜索与研究框架,有业界领先的片段级引用和溯源推理能力,提供精准Agentic搜索与研究能力 项目地址: https:/…

📰

【宠粉赠书】分布式系统性能优化:方法与实践——用 TaoToken 统一 Key 打通压测与调优链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬