算法打工人小旺 level
获赞
0
粉丝
5
关注
0
看过 TA
12
中山大学
2025
算法工程师
IP属地:山东
阿里高级算法工程师,多模态/大模型/搜广推方向辅导
私信
关注
非科班0基础极限转行算法经验分享✅搜广推方向:①先看《利用python进行数据分析》第二章第三章(不用看文件操作)大概半天就能掌握python的语法。不懂的地方千万不要死磕,直接问大模型。以chatbox举例(图3.4.5)看不懂的概念/代码直接输入进去,chatbox会解释的很详细。②学《李沫的动手学深度学习》只学两个部分:1pytorch基础概念比如张量和广播机制,了解MLP,2看transformer这一章(同时在网上找一下讲解视频多看几遍。其他部分时间不够可以不看~③然后学蓝色的《互联网大厂推荐算法实战》④看王树森的8H推荐网课。⑤看王喆的《深度学习推荐系统2.0》⑥找个天池竞赛看懂代码,魔改不魔改看个人需求。⑦学有余力的可以看看相关论文最好是开源的跑通以后包装一下。✅LLM方向基础①②同理,但是这块我也没太学明白所以没啥路线只能给大家分享一下资料。1.复旦大学的《大语言模型从理论到实践》第二版2.斯坦福的cs33。 这两个我感觉学明白以后别的资料都不用看了,直接看自己感兴趣方向的论文就行。另外0基础的同学,刚开始入门的时候,有不会的问题一定不要自己卡着,我刚开始学的时候经常开三四个大模型的窗口,轮流问。并且不同的模型最强的地方不一样,比如gpt逻辑能力强,可以拿来解释代码、搭框架;claude写代码比较厉害,deepseek擅长搜索。但是买那么多ai不仅贵,网页切来切去还麻烦,chatbox一个窗口就可以用十多个很热的模型,是一个集成式ai工具箱,不用科学上网,用起来相对比较方便。chatbox还有网页版,轻量不下载,即开即用,一个api可以同时支持五个ip登录~💣注意:我上面给出来的学习路线是有先后顺序的,这个顺序是我自己踩出来的坑😭一定要注意。后面有空可以细说一下坑在哪里还有半个月0基础刷lc的经验教训。📳对于想求职算法岗的同学,************,提升面试能力,******。
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
RAG基本是转大模型应用层的必备项目,但是其实优化策略非常多,要体现深度的行业✅如何写一个有深度 RAG 项目经历包含以下内容:1、逻辑框架2、示例描述3、简历模版1️⃣明确项目背景与动机问题陈述:说明当前大模型在特定领域存在的局限(如知识更新滞后、幻觉问题等),以及为何选择 RAG 方法来弥补这些不足。在工业场景中,主要以下3个原因:🌟知识库的即时更新:大模型的训练数据是有时效性的,所以外挂知识库🌟数据的隐私性: tob 场景中,公司的数据是有隐私性要求的🌟业务场景:描述项目的应用场景(例如:智能问答、知识管理、客户支持等),以及采用 RAG 后能为业务带来的改进。2️⃣详细阐述系统架构与核心流程1.数据准备阶段2.数据提取与清洗:说明如何收集多源数据,进行格式统一和预处理。3.文本分割策略:描述如何根据 Embedding 模型的 Token 限制进行智能切分,保证语义完整性。向量化与入库:指出使用哪种预训练 Embedding 模型(如M3E、 BGE 等)以及如何构建向量索引(例如利用 FAISS 、 Milvus 等)。应用阶段4.检索策略:介绍相似性检索、全文检索以及多路召回(例如倒排排序、 RRF 融合)的具体实现。5.Prompt 设计与生成:说明如何构建有效的 Prompt ,将检索到的文本与原问题融合,调用大模型生成答案,并描述如何调优 Prompt 以应对幻觉问题。6.模块化设计:如果有采用模块化或迭代优化的策略,也要重点说明,比如如何分层次、分模块实现不同功能,从而提升系统稳定性和扩展性。参考:这些部分可以参考业内成熟实践,如目 RAG 优化方案:案例+代码+图解文章的思路。3️⃣突出个人贡献与方法论落地1.方法论指导:详细描述你在项目中如何运用理论指导实践,比如数据预处理、向量检索算法的选择、 Prompt 工程调优等。2.创新点与优化措施:列举你提出的关键改进措施,如如何降低幻觉风险、提高召回准确率、优化系统响应速度等。3.量化成果:用具体数据展示优化效果(例如准确率提升20%、响应速度提升30%等)。示例描述:“在项目中,我主导设计了数据分割和向量化流程,通过引入动态文本切分策略,将检索召回准确率提升了15%,同时优化了 Prompt 设计,问答准确率提高20%。”📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
0 点赞 评论 收藏
分享
07-21 17:37
已编辑
中山大学 算法工程师
1️⃣Q1:针对翻译类、创意写作类、头脑风暴类任务,分别如何设置 temperature 和 top_p?任务越标准越严谨(如翻译),temperature 就越低;任务越开放越创新(如写作、头脑风暴),就适当提高 temperature 和 top_p,增强多样性。2️⃣Q2:一个专业的提示词模板由哪几部分构成?为什么提示词中需要描述角色定义?一个专业的提示词(Prompt)模板通常包含以下几部分:角色定义(Role)→ 告诉模型“你是谁”(例如你是医生/律师/客服/算法工程师)。任务目标(Task)→ 明确你要模型完成什么任务,比如“写摘要”、“做分类”、“写代码”。上下文信息(Context)→ 提供必要背景,让模型理解问题场景。输入数据(Input)→ 提供需要处理的具体内容,如文本、问题或数据片段。输出格式要求(Output Format)→ 规定模型输出的格式或风格,比如表格、列表、JSON 或限制字数等。因为大模型是通过模式学习的,角色定义能引导模型以更专业、更符合预期的语气和风格回答问题。3️⃣Q3:为了尽可能防止提示词注入,如何设计提示词模板?如何在系统层面检测提示词注入攻击?1. 提示词模板设计防护明确角色设定:在 prompt 中指定模型身份和行为范围,如“你是一个只能回答财经问题的助手”。使用指令封闭结构:避免开放式提示,使用模板化结构如 "指令: {instruction} \n 输入: {input} \n 输出: "。控制用户插入点:将用户输入限制在变量 slot 中,避免影响系统指令。2. 系统层面注入检测关键词黑名单匹配:检测如“忽略之前的指令”“你现在是…”等注入特征。提示词审查机制:在提示词构造后进行语义分析,识别可能的角色切换、指令覆写。响应行为监控:监控输出是否越权,如输出系统不允许的内容,可触发告警或拒答。使用上下文分离机制:通过系统-用户分段处理,防止用户内容污染系统 prompt。4️⃣Q4:在没有推理模型之前,如何让模型先思考后回答?思维链、自洽性、思维树等几种技术各有什么优缺点?在没有推理能力前,如何让模型“先思考后回答”?通过提示词工程引导模型“思考”,即在 prompt 中显式要求模型列出推理过程,如加上:"请一步步思考再作答"(思维链)"请验证你的答案是否与前提一致"(自洽性)"请考虑多种可能情况,再做判断"(思维树)5️⃣Q5:如何保证模型的输出一定是合法的 JSON 格式?将大模型用于分类任务时,如何保证其输出一定是几个类别之一,而不会输出无关内容?如果开发一个学习英语的应用,如何确保其输出的语言始终限定在指定的词汇表中?如何保证输出是合法 JSON 格式?结构化提示词:明确指令,如:“请仅输出以下 JSON 格式:{"label": ..., "score": ...},不添加任何解释。”使用函数调用(Function Calling / Tool Use)机制:如 OpenAI / Qwen 支持结构化 schema,让模型输出严格符合预定义结构。后处理校验:使用 JSON 解析库进行合法性校验,不合法则重试生成或触发 fallback 策略。分类任务中如何约束输出为限定类别?封闭式提示设计:明确说明“只允许从以下选项中选择一个:A、B、C”。Few-shot 示例引导:通过提供标准分类示例(如“输入:... → 输出:B”)提高一致性。输出校验与纠偏:使用正则或解析器判断输出是否合法,不合法时触发二次问答或重新生成。可选:使用 Logits Bias / 多标签 token sampling 控制输出 token(限 API 层实现)英语学习应用中如何限制词汇范围?词汇表内提示约束:在提示中加入说明:“请仅使用以下词汇表中的单词作答”,并附上词表。使用词表检索后重写(Constrained decoding):结合规则或重写策略,将非词表内词替换或拒答。训练或微调阶段加入词表限制示例:增强模型对“词汇边界”的理解。结合语法校正模块二次过滤:检测并剔除越界词汇。5️⃣Q5:如果我们需要生成小说的标题、角色描述和故事梗概,当单次模型调用生成效果不佳时,如何分步生成?可以采用分步生成策略,分阶段控制质量与连贯性:分步流程设计:Step1:生成小说主题或关键词Step2:基于主题生成小说标题Step3:根据标题设定角色Step4:生成故事梗概优点:更高控制力:每步可加入人工或规则约束,确保输出质量。提升上下文一致性:逐步构建世界观,避免信息混乱。易于纠错与重试:某一步生成不佳时,仅重试该步。6️⃣Q6:如果用户跟模型对话轮次过多,超出了模型的上下文限制,但我们又希望尽可能保留用户的对话信息,该怎么办?信息摘要:对早期对话进行摘要压缩,保留核心内容,如用户目标、偏好、历史提问等。结构化记忆:将对话转为结构化格式存入外部 memory,后续构建 prompt 时引用这些结构化内容,而非逐轮堆叠原始对话。轮次截断:固定保留最近 N 轮对话,加上摘要或记忆,构成上下文窗口。外部记忆+RAG 机制:将历史对话存入向量数据库,用户提问时检索相关历史片段,再拼接进 prompt。7️⃣Q7:如何编写一个智能体,帮助用户规划一次包含机票预订、酒店安排和景点游览的旅行?需要配置哪些工具?如何确保系统在面对不完整或矛盾的信息时仍能提供合理建议?采用基于工具调用的智能体架构用户输入 → 智能体分析任务意图 → 规划任务流程 → 多工具调用 → 整合回复结果📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
0 点赞 评论 收藏
分享
最近遇到一个训练代码,混合精度使用 apex,多卡还是 torch ddp+mp.spawn 子进程启动的方式,性能受限于 python 的 gil 锁。其实对于混合精度训练 pytorch 已经 merge 进了 amp,fsdp 也支持了 mixed precision policy,多卡训练有 torchrun 启动器,还支持多机分布式。pytorch 已经有很多新的 feature,为什么不去用呢?1️⃣起源17 年, 提出了混合精度训练:Mixed Precision Training。用 fp16 去表示 fp32 计算,在训练中会有一些数值问题:🌟精度下溢/上溢🌟fp16 数值范围和分布不匹配,导致梯度归零首先第一个问题,fp16 的表示范围小于 fp32,因此会产生 underflow、overflow第二个问题,对于 activation gradient 的分布,很大一部分较小的值在 fp16 下是不可表示的,会发生下溢 underflow 被置为 0,导致反向传播中梯度就丢失了。混合精度训练中的数值问题和模型量化中遇到的数值问题其实很类似,都是从高精度表示范围映射到低精度表示范围,在量化中是通过 calibration 校准进行不同精度范围的线性映射。在混合精度训练中是引入了 loss scaling 梯度缩放,防止非常小的梯度值在使用 fp16 进行表示时 underflow 下溢变成 0。在前向传播计算得到损失值 loss,开始反向传播 backward 之前,对 loss 进行缩放,乘以一个大于 1 的常数,称为缩放因子 S,例如 1024、4096 等。然后用缩放后的 loss 再去进行 backward,又由于求导是基于链式法则,反向传播过程中所有的梯度值都会被进行同等缩放。但放大的梯度导致后续所有依赖梯度大小进行计算的操作都会失真,权重更新时 w=w-lr*grad,导致权重更新量也会被放大 S 倍,相当于变相增大了学习率 lr,导致训练过程不稳定,且与 fp32 训练的行为不一致。因此在 backward 之后,更新模型权重之前,包括所有需要依赖梯度大小进行计算的操作之前。要在 fp32 精度下对权重梯度进行反缩放 unscaling,除以之前放大的缩放因子 S,unscaling 之后的权重梯度也可以应用梯度裁剪和权重衰减等依赖于梯度大小值的操作。然后 optimizer 里面会 copy 一份 fp32 的主权重 master weights 进行参数更新,更新之后的 master weights 再 cast 到 fp16 同步给模型参数。整个混合精度训练的流程可以表示为:✴️model fp16 weights+fp16 activations✴️fp16 forward✴️fp16 activations✴️fp32 loss scaling✴️weight&activation fp16 backward✴️fp32 grad unscaling✴️fp32 grad clip&decay✴️fp32 master weights update✴️cast to fp16 model weights2️⃣amp18 年 nv 以 pytorch 三方扩展的形式推出了 apex,以支持混合精度,20 年 pytorch1.6 merge 进了 torch.cuda.amp,配合 autocast 实现混合精度训练autocast 是混合精度的上下文管理器,在 context 里面会自动选择 op 对应的计算精度,主要基于白名单机制进行自动类型转换。3️⃣fsdpfsdp 是 21 年 pytorch1.11 的引入的新特性,核心思想来源于 deepspeed zero,在其上又扩展了对混合精度的支持。与 amp 相比,fsdp 灵活度更高,可以通过 FSDPModule warp 设置不同的混合精度策略。以及为了更高精度的数值结果,在 fp16 activation 计算和模型参数 all-gather 的基础上,可以使用 fp32 进行 gradient 的 reduce-scatter 和 optimizer 的参数更新。QA:这个时候再思考下,数值计算在什么情况下会发生 nan,迁移到混合精度训练流程里面哪些地方可能会产生 nan,怎么检测 nan,怎么避免 nan,哪些是框架已经做的,哪些还需要自己处理的,问问自己是否有了答案?📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
阿里巴巴二面195人在聊
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务