尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【AI大模型】EmbeddingGemma实战:Google开源小模型,大能量,隐私保护,必学收藏!

【AI大模型】EmbeddingGemma实战:Google开源小模型,大能量,隐私保护,必学收藏! 1.简介EmbeddingGemma是Google发布的开源小规模多语言文本嵌入模型旨在常见设备如手机、笔记本、台式机上高效运行同时在 MTEB / MMTEB 等评测任务中保持与同类模型竞争的性能。其核心价值在于支持离线运行、保护隐私、内存占用小、兼容多种推理框架并提供灵活的输出维度。2.关键特性模型规模与上下文长度参数量约为 308M支持最长 2K tokens 的上下文窗口默认输出向量维度为 768。多语言支持训练语料涵盖 100 多种语言。MRL嵌套表示学习支持将 768 维的嵌入向量截断为 512/256/128 等更短维度兼顾效率与效果。工程优化支持量化感知训练QAT与设备端优化量化后模型大小可控制在 200MB 以内。3.架构与训练要点基于 Gemma 3 的编码器风格骨干网络EmbeddingGemma 使用 Gemma 3 作为主干网络并将注意力机制改为双向相比传统的解码器结构在大规模检索/嵌入任务中表现更优。池化与映射结构模型先输出 token 级别的向量再通过均值池化聚合成文本向量最后经由两层全连接层映射到 768 维的嵌入空间。训练数据与清洗模型基于大规模多语言语料训练训练过程中实施了严格的质量过滤与安全过滤。4.MRL与Prompt 模板MRL原理和效果EmbeddingGemma 在训练阶段引入了 MRL机制使得推理时可选择不同的嵌入维度768/512/256/128而性能下降控制在可接受范围内。其原理类似“套娃”结构高维嵌入向量的前一部分包含“核心信息”后一部分为“补充信息”。因此既可使用完整 768 维向量也可仅使用前 512/256/128 维而不导致效果显著下降。在资源受限环境中可通过牺牲少量精度换取更低的存储与计算开销。而在分层检索系统中可先用低维嵌入进行粗筛再使用高维嵌入对候选结果进行精排。支持针对特定任务的PromptEmbeddingGemma 在训练时使用了一系列 prompt_name例如 query、document、STS 等。在实际推理或测试中建议沿用这些prompt以获得最佳效果。若使用sentence-transformers库其内置的encode_query/encode_document方法会自动添加相应 prompt。若直接使用 Transformers 或其他底层框架需在输入文本前手动拼接对应的prompt。支持的 Prompt 模板根据不同任务使用可提升效果query:task: search result | query: document:title: none | text: BitextMining:task: search result | query: Clustering:task: clustering | query: Classification:task: classification | query: InstructionRetrieval:task: code retrieval | query: MultilabelClassification:task: classification | query: PairClassification:task: sentence similarity | query: Reranking:task: search result | query: Retrieval-query:task: search result | query: Retrieval-document:title: none | text: STS:task: sentence similarity | query: Summarization:task: summarization | query: 5.实战一个简单的RAG系统示例1 环境依赖pip install sentence-transformers2.2.2transformers huggingface-hub pip install faiss-cpu# 若使用 GPU 可安装 faiss-gpu2加载生成语言模型#加载Gemma3生成模型fromtransformersimportpipeline pipelinepipeline(tasktext-generation,modelgoogle/gemma-3-4b-it,device_mapauto,dtypeauto)3 加载嵌入模型 --------importtorchfromsentence_transformers importSentenceTransformer#设置设备devicecudaiftorch.cuda.is_available()elsecpumodel_idgoogle/embeddinggemma-300MmodelSentenceTransformer(model_id).to(devicedevice)print(f运行设备:{model.device})print(model)print(模型总参数量:,sum([p.numel()for_,pinmodel.named_parameters()]))4 使用 Prompt 模板在 RAG 系统中为查询和文档使用不同的 prompt 模板可提升效果查询编码使用prompt_nameRetrieval-queryquery_embeddingmodel.encode(How do I use prompts with this model?,prompt_nameRetrieval-query)文档编码使用prompt_nameRetrieval-document。为进一步优化可加入标题信息带标题doc_embeddingmodel.encode(文档正文内容...,prompt_nameRetrieval-document,prompttitle: 在 RAG 中使用 Prompt | text: )无标题doc_embeddingmodel.encode(文档正文内容...,prompt_nameRetrieval-document,prompttitle: none | text: )5 构建示例知识库#公司知识库示例corp_knowledge_base[{category:人力资源与请假政策,documents:[{title:非计划缺勤流程,content:如因生病或紧急情况无法工作请于东京时间上午9:30前通过邮件通知直接上级和人力资源部门邮件主题请注明“病假 - [你的姓名]”。若连续缺勤超过两天返岗时需提供医生证明診断書。},{title:年假政策,content:全职员工首年可享受10天带薪年假。年假自入职满六个月后生效并随服务年限增加。例如服务满三年的员工每年可享受14天年假。详细 accrual 表请参阅附件《年假累积表》。},]},{category:IT 与安全,documents:[{title:账户密码管理,content:如忘记密码或账户被锁定请使用自助重置门户https://reset.ourcompany。系统将提示您回答预设的安全问题。出于安全考虑IT帮助台无法通过电话或邮件重置密码。若未设置安全问题请携带员工ID卡至涩谷办公室12楼IT支持台处理。},{title:软件采购流程,content:所有新软件申请须通过‘IT服务台’门户中的‘软件申请’类别提交需包含业务理由。所有软件许可须经部门负责人批准后方可采购。请注意标准办公软件已预批准无需走此流程。},]},{category:财务与报销,documents:[{title:费用报销政策,content:为确保及时处理当月所有费用报销须在次月第5个工作日前提交审批。例如7月产生的所有费用须在8月第5个工作日前提交。逾期提交的费用可能延至下一付款周期处理。},{title:差旅费用指南,content:差旅费用原则上按最合理、最经济路线的实际成本报销。使用新干线或飞机前请提前提交差旅费用申请。仅当公共交通不可用或运输重型设备时允许乘坐出租车。必须保留收据。},]},{category:办公与设施,documents:[{title:会议室预订指南,content:涩谷办公室所有会议室可通过日历应用预订。创建新会议邀请添加参会人后使用‘会议室查找’功能选择可用房间。请确保选择正确的楼层。10人以上会议请预订14楼的‘樱’或‘富士’房间。},{title:邮件与快递政策,content:公司邮件服务仅用于业务相关信函。出于安全与责任考虑请员工避免将私人包裹或邮件寄至涩谷办公室地址。前台无法代收或保管私人快递。},]},]6 设置辅助函数并检索question如何重置密码#可替换为其他问题similarity_threshold0.4#相似度阈值低于此值认为不匹配语义搜索核心逻辑#---语义搜索相关辅助函数---def_calculate_best_match(similarities):print(相似度分数:,similarities)ifsimilaritiesisNoneorsimilarities.nelement()0:returnNone,0.0#找出最高分及其索引best_indexsimilarities.argmax().item()best_scoresimilarities[0,best_index].item()returnbest_index,best_scoredeffind_best_category(model,query,candidates): 从候选类别中找出与查询最相关的类别。 参数: model:SentenceTransformer模型 query:用户查询字符串 candidates:类别名称列表 返回: 最佳类别索引和相似度分数 ifnotcandidates:returnNone,0.0#对查询和候选类别进行编码使用分类任务promptquery_embeddingmodel.encode(query,prompt_nameClassification)candidate_embeddingsmodel.encode(candidates,prompt_nameClassification)print(候选类别:,candidates)return_calculate_best_match(model.similarity(query_embedding,candidate_embeddings))deffind_best_doc(model,query,candidates): 从候选文档中找出与查询最相关的文档。 参数: model:SentenceTransformer模型 query:用户查询字符串 candidates:文档列表每个文档应包含title和content 返回: 最佳文档索引和相似度分数 ifnotcandidates:returnNone,0.0#对查询进行编码使用检索任务promptquery_embeddingmodel.encode(query,prompt_nameRetrieval-query)#构建文档文本并编码doc_texts[ftitle:{doc.get(title,none)}| text:{doc.get(content,)}fordocincandidates]candidate_embeddingsmodel.encode(doc_texts)print(候选文档:,[doc[title]fordocincandidates])#计算余弦相似度return_calculate_best_match(model.similarity(query_embedding,candidate_embeddings))#---主搜索逻辑---best_documentNone#初始化最佳文档#1.寻找最相关类别print(步骤1: 寻找最相关类别...)categories[item[category]foritemincorp_knowledge_base]best_category_index,category_scorefind_best_category(model,question,categories)#检查类别匹配分数是否超过阈值ifcategory_scoresimilarity_threshold:print(f - 未找到相关类别。最高分仅为{category_score:.2f}。)else:best_categorycorp_knowledge_base[best_category_index]print(f - ✅ 找到类别: {best_category[category]} (分数:{category_score:.2f}))#2.仅当找到合适类别后在该类别中寻找最相关文档print(\n步骤2: 在该类别中寻找最相关文档...)best_document_index,document_scorefind_best_doc(model,question,best_category[documents])#检查文档匹配分数是否超过阈值ifdocument_scoresimilarity_threshold:print(f - 未找到相关文档。最高分仅为{document_score:.2f}。)else:best_documentbest_category[documents][best_document_index]print(f - ✅ 找到文档: {best_document[title]} (分数:{document_score:.2f}))7 基于检索结果生成答案qa_prompt_template请仅根据以下CONTEXT回答问题。如果CONTEXT中未包含答案请回答“我不知道”。 --- CONTEXT: {context} --- QUESTION: {question} ifbest_documentandcontentinbest_document:# 如果找到有效文档生成答案contextbest_document[content]promptqa_prompt_template.format(contextcontext,questionquestion)messages[{role:user,content:[{type:text,text:prompt}],},]print(问题‍♂️: question)# 调用生成模型获取答案answerpipeline(messages,max_new_tokens256,disable_compileTrue)[0][generated_text][1][content]print(使用文档: best_document[title])print(回答: answer)else:# 未找到相关文档时的回复print(问题‍♂️: question)print(回答: 抱歉未找到相关文档来回答该问题。)6.一些工程经验统一使用 Prompt模型训练时使用了特定 prompt 名称和内容因此生产环境中应保持使用这些prompt以保证效果一致性。维度选择权衡MRL 支持降维在对吞吐量或存储敏感的场景中可优先尝试512或256维而非直接降至 128 维。量化与精度平衡该模型主打轻量级使用量化可显著减少内存占用但应根据精度需求和应用场景谨慎选择量化策略如QAT 或 PTQ。最后为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表