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

python单例模式、大模型一次加载多次复用

文章目录

        • 代码

类似于java的单例模式,python中也有。

例如大模型加载起来很慢,如果每次都加载,那不用干活了,光加载吧。

代码
importtimeclassQwenModelSingleton:""" 单例模式:保证全局只加载一次模型 """_instance=None_model=None# 用来存放真正的模型对象def__new__(cls):# __new__ 是创建实例的第一步,在这里控制“只创建一次”ifcls._instanceisNone:cls._instance=super().__new__(cls)# 只有第一次创建实例时,才执行加载逻辑cls._instance._load_model()returncls._instancedef_load_model(self):"""真正的加载逻辑只在这里执行一次"""print("🚀 [系统] 正在初始化并加载千问模型到内存... (耗时操作)")time.sleep(2)# 模拟加载耗时# 【在这里替换你的真实加载代码】# self._model = AutoModel.from_pretrained("Qwen/Qwen-7B")self._model="Qwen_Model_Obj_Loaded"print("✅ [系统] 模型加载完成!")defgenerate(self,prompt):"""对外提供推理接口"""ifnotself._model:raiseRuntimeError("模型尚未加载")# 【在这里替换你的真实推理代码】# return self._model.generate(prompt)returnf"这是千问模型对 '{prompt}' 的回复..."# ==========================================# 下面是演示:模拟在两个不同的业务类中使用# ==========================================classChatService:"""业务类 A:聊天服务"""def__init__(self):# 注入单例self.model=QwenModelSingleton()defchat(self,text):returnself.model.generate(text)classSearchService:"""业务类 B:搜索服务"""def__init__(self):# 注入单例self.model=QwenModelSingleton()defsearch_and_summarize(self,text):# 比如先搜索,再用模型总结returnself.model.generate(f"总结搜索结果关于:{text}")# ==========================================# 运行测试# ==========================================if__name__=="__main__":print("--- 启动服务 A ---")service_a=ChatService()print(service_a.chat("你好"))print("\n--- 启动服务 B ---")service_b=SearchService()print(service_b.search_and_summarize("人工智能"))print("\n--- 再次使用服务 A ---")# 此时不会再加载模型,直接复用内存中的对象print(service_a.chat("再见"))
http://www.jsqmd.com/news/542803/

相关文章:

  • Alice-Tools:游戏资源处理的全能解决方案
  • OpenClaw自动化边界:GLM-4.7-Flash在GUI操作中的10大限制与应对
  • Wan2.2-I2V-A14B镜像优势:预编译CUDA算子,避免JIT编译导致的首次延迟
  • SmolVLA开源可部署价值:对比传统强化学习机器人训练周期大幅压缩
  • 2026年评测:高压锅炉管领域口碑钢管批发商有哪些,钢管厂商建盛钢管市场认可度高 - 品牌推荐师
  • Chainlit前端定制化|通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程
  • Jetson AGX Orin开发者必看:编译时遇到`-lnvidia-ml`链接错误?别慌,先检查这个L4T源文件
  • Qt桌面应用开发:打造跨平台的Qwen3-ASR-0.6B语音记事本
  • SEO_从零开始,手把手教你制定SEO执行方案
  • 基于@mediapipe/tasks-vision与Vue 3的手势交互应用开发实战
  • s2-pro效果展示:长文本分段合成与无缝拼接语音作品集
  • CHORD-X生成报告的真实用户评价:来自分析师、投资人的反馈汇总
  • ChatGLM3-6B-128K多场景落地:汽车维修手册生成、故障码解释与维修步骤推荐
  • Spring+SpringBoot+SpringCloudAIibaba高级笔记分享!
  • MedGemma与HuggingFace生态集成:医疗NLP流水线搭建
  • GitHub汉化插件终极指南:深入解析技术实现与高效应用
  • Word自动编号全攻略:从甲乙丙丁到多级列表的实战技巧
  • Flux.1-Dev深海幻境人像生成效果测评:真实感、多样性与可控性深度分析
  • 美团二面挂了?全因没答好Agent记忆模块!这篇深度解析,帮你拿下年薪百万Offer!
  • 2026年知名的贵金属废渣回收/东莞银焊粉回收厂家口碑推荐汇总 - 行业平台推荐
  • 测序技术小白必看:Illumina、PacBio和Sanger测序到底怎么选?
  • GitLab自定义域名配置全攻略:从Nginx反向代理到安全防护(附避坑指南)
  • AI Agent驱动:从需求到用例的智能生成闭环实践
  • 3大痛点彻底解决:Scarab让空洞骑士模组管理效率提升10倍的核心秘诀
  • Python闭包原理与nonlocal关键字:从概念到实战
  • 新手必看:AI写作大师Qwen3-4B-Instruct的WebUI界面使用详解
  • 别只盯着报名!2026美赛开赛前这3个月,你和队友该做的5件关键准备
  • 哔哩下载姬DownKyi实用指南:从问题解决到效率提升的全流程攻略
  • 2026年质量好的银焊片回收/金丝回收/东莞银浆布回收行业内知名厂家推荐 - 行业平台推荐
  • 2026年质量好的车床工作灯/苏州自动化设备工作灯新厂实力推荐(更新) - 行业平台推荐