点蓝色字关注“机器学习算法工程师”
设为星标,干货直达!
(相关资料图)
PyTorch 2.0引入了**torch.compile()**来加速模型,这篇文章我们将介绍如何使用**torch.compile()**来加速Hugging Face和TIMM库的模型。
torch.compile() 使得尝试不同的编译器后端变得容易,从而使用单行装饰器 torch.compile() 使 PyTorch 代码更快。它可以直接在 nn.Module 上工作,作为 torch.jit.script() 的直接替代品,但不需要您进行任何源代码更改。我们希望这一行代码更改能够为您已经运行的绝大多数模型提供 30%-2 倍的训练时间加速。
opt_module=torch.compile(module)
torch.compile 支持任意 PyTorch 代码、控制流、变异,并带有对动态形状的实验性支持。我们对这一发展感到非常兴奋,我们将其称为 PyTorch 2.0。
这个版本对我们来说不同的是,我们已经对一些最流行的开源 PyTorch 模型进行了基准测试,并获得了 30% 到 2 倍的大幅加速(见https://github.com/pytorch/torchdynamo/issues/681) 。
这里没有技巧,我们已经 pip 安装了流行的库,比如https://github.com/huggingface/transformers, https://github.com/huggingface/accelerate 和 https://github.com/rwightman/pytorch-image-models等流行的库,然后对它们运行 torch.compile() 就可以了。
很难同时获得性能和便利性,但这就是核心团队发现 PyTorch 2.0 如此令人兴奋的原因。Hugging Face 团队也很兴奋,用他们的话说:
TIMM 的主要维护者 Ross Wightman:“PT 2.0 开箱即用,适用于推理和训练工作负载的大多数 timm 模型,无需更改代码。”
Sylvain Gugger 是 transformers 和 accelerate 的主要维护者:“只需添加一行代码,PyTorch 2.0 就可以在训练 Transformers 模型时提供 1.5 到 2.x 的加速。这是引入混合精度训练以来最激动人心的事情!”
本教程将向您展示如何使用这些加速,这样您就可以像我们一样对 PyTorch 2.0 感到兴奋。
安装教程对于 GPU(新一代 GPU 的性能会大大提高):
pip3installnumpy--pretorch--force-reinstall--extra-index-urlhttps://download.pytorch.org/whl/nightly/cu117
对于CPU:
pip3install--pretorch--extra-index-urlhttps://download.pytorch.org/whl/nightly/cpu
当安装好后,你可以通过以下方式来进行验证:
gitclonehttps://github.com/pytorch/pytorchcdtools/dynamopythonverify_dynamo.py
另外一种安装方式是采用docker,我们还在 PyTorch nightly 二进制文件中提供了所有必需的依赖项,您可以使用它们下载:
dockerpullghcr.io/pytorch/pytorch-nightly
对于临时实验,只需确保您的容器可以访问所有 GPU:
dockerrun--gpusall-itghcr.io/pytorch/pytorch-nightly:latest/bin/bash使用教程
让我们从一个简单的例子开始,一步步把事情复杂化。请注意,您的 GPU 越新,您可能会看到更显着的加速。
importtorchdeffn(x,y):a=torch.sin(x).cuda()b=torch.sin(y).cuda()returna+bnew_fn=torch.compile(fn,backend="inductor")input_tensor=torch.randn(10000).to(device="cuda:0")a=new_fn()
这个例子实际上不会运行得更快,但它具有教育意义。
以 torch.cos() 和 torch.sin() 为特色的示例,它们是逐点操作的示例,因为它们在向量上逐个元素地进行操作。你可能真正想要使用的一个更著名的逐点运算是类似 torch.relu() 的东西。eager模式下的逐点操作不是最优的,因为每个操作都需要从内存中读取一个张量,进行一些更改,然后写回这些更改。
PyTorch 2.0 为您所做的最重要的优化是融合。
回到我们的示例,我们可以将 2 次读取和 2 次写入变成 1 次读取和 1 次写入,这对于较新的 GPU 来说尤其重要,因为瓶颈是内存带宽(您可以多快地向 GPU 发送数据)而不是计算(您的速度有多快) GPU 可以处理浮点运算)。
PyTorch 2.0 为您做的第二个最重要的优化是 CUDA graphs。CUDA graphs有助于消除从 python 程序启动单个内核的开销。
torch.compile() 支持许多不同的后端,但我们特别兴奋的一个是生成 Triton 内核(https://github.com/openai/triton,用 Python 编写的,但性能优于绝大多数手写的 CUDA 内核)的 Inductor。假设我们上面的示例名为 trig.py,我们实际上可以通过运行来检查代码生成的 triton 内核:
TORCHINDUCTOR_TRACE=1pythontrig.py
@pointwise(size_hints=[16384],filename=__file__,meta={"signature":{0:"*fp32",1:"*fp32",2:"i32"},"device":0,"constants":{},"configs":[instance_descriptor(divisible_by_16=(0,1,2),equal_to_1=())]})@triton.jitdefkernel(in_ptr0,out_ptr0,xnumel,XBLOCK:tl.constexpr):xnumel=10000xoffset=tl.program_id(0)*XBLOCKxindex=xoffset+tl.reshape(tl.arange(0,XBLOCK),[XBLOCK])xmask=xindex你可以验证融合这两个 sins 确实发生了,因为这两个 sin 操作发生在一个单一的 Triton 内核中,并且临时变量保存在寄存器中,可以非常快速地访问。
下一步,让我们尝试一个真实的模型,比如来自 PyTorch hub 的 resnet50。
importtorchmodel=torch.hub.load("pytorch/vision:v0.10.0","resnet18",pretrained=True)opt_model=torch.compile(model,backend="inductor")model(torch.randn(1,3,64,64))如果您实际运行,您可能会惊讶于第一次运行很慢,那是因为正在编译模型。后续运行会更快,因此在开始对模型进行基准测试之前预热模型是常见的做法。
您可能已经注意到我们如何在此处使用“inductor”显式传递编译器的名称,但它不是唯一可用的后端,您可以在 torch._dynamo.list_backends() 中运行以查看可用后端的完整列表。为了好玩,您应该尝试 aot_cudagraphs 或 nvfuser。
现在让我们做一些更有趣的事情,我们的社区经常使用来自 transformers (https://github.com/huggingface/transformers) 或 TIMM (https://github.com/rwightman/pytorch-image-models)的预训练模型和我们的设计之一PyTorch 2.0 的目标是任何新的编译器堆栈都需要开箱即用,可以与人们实际运行的绝大多数模型一起工作。因此,我们将直接从 Hugging Face hub 下载预训练模型并对其进行优化。
importtorchfromtransformersimportBertTokenizer,BertModel#Copypastedfromherehttps://huggingface.co/bert-base-uncasedtokenizer=BertTokenizer.from_pretrained("bert-base-uncased")model=BertModel.from_pretrained("bert-base-uncased").to(device="cuda:0")model=torch.compile(model)#Thisistheonlylineofcodethatwechangedtext="Replacemebyanytextyou"dlike."encoded_input=tokenizer(text,return_tensors="pt").to(device="cuda:0")output=model(**encoded_input)如果您从模型和 encoded_input 中删除 to(device="cuda:0") ,那么 PyTorch 2.0 将生成 C++ 内核,这些内核将针对在您的 CPU 上运行进行优化。你可以检查 Triton 或 C++ 内核的 BERT,它们显然比我们上面的三角函数示例更复杂,但如果你了解 PyTorch,你也可以类似地浏览它并理解。
相同的代码也可以https://github.com/huggingface/accelerate 和 DDP 一起使用。
同样让我们尝试一个 TIMM 示例:
importtimmimporttorchmodel=timm.create_model("resnext101_32x8d",pretrained=True,num_classes=2)opt_model=torch.compile(model,backend="inductor")opt_model(torch.randn(64,3,7,7))我们使用 PyTorch 的目标是构建一个广度优先的编译器,该编译器将加速人们在开源中运行的绝大多数实际模型。Hugging Face Hub 最终成为我们非常有价值的基准测试工具,确保我们所做的任何优化实际上都有助于加速人们想要运行的模型。
本文翻译自https://pytorch.org/blog/Accelerating-Hugging-Face-and-TIMM-models/
X 关闭
推荐内容
- 环球速看:使用PyTorch 2.0 加速Hugging Face和TIMM库的模型
- 两岁的孩子抚养费怎么算|世界微速讯
- 蘑菇根的用途? 世界快看
- 环球观天下!2023浙江卫视美好跨年夜晚会(直播入口+嘉宾名单)
- 世界微动态丨金溢科技: 关于公司股东部分股份解除质押及再质押的公告
- 大白菜如何焯水保存时间长 白菜怎么放保鲜时间长
- 每日消息!辅导机构招生宣传方案范文(推荐20篇)
- 怎样分辨虫草花的好坏 如何分辨虫草花品质的好坏呢|全球观焦点
- 2023广州西关永庆坊元旦系列活动
- 全球最资讯丨汪滨:美国频繁对台售武意在强化对台控制
- 【独家焦点】羊没羊,好像也没那么重要了!
- 视点!超卓航科: 超卓航科独立董事关于第三届董事会第六次会议相关议案的独立意见
- 环球即时:交运股份董秘回复:公司全面落实“疫情要防住、经济要稳住、发展要安全”的要求,加强重点工作落地
- 全球观点:【机会挖掘】国家能源集团集中开工10个电力项目 抽水蓄能产业链或受关注
- 全球时讯:男科热天津市黄河道医院割包皮多少钱医院
- 涨停雷达:ST板块异动 *ST金洲触及涨停 实时焦点
- 环球时讯:3位新冠二次感染者自述:国外多次感染已成常态,再次感染症状看起来更轻
- 中央财办原副主任杨伟民:加大政策力度但要把握好度 财政要可持续、货币不可大水漫灌
- 世界观点:支持开票 | Python实证指标构建与文本分析
- 视讯!真是烦死这些垃圾网站了!
- 【环球热闻】七一二: 天津七一二通信广播股份有限公司关于5%以上股东权益变动的提示性公告
- 满足“千人千面”需求:江苏东台个性化税政为规上企业赋能加速 焦点速递
- RCEP享惠红利持续释放 企业受益多多 全球报道
- 新发地:鲜柠檬供应充足 价格回归合理水平 速看
- 全球今热点:晶澳科技:硅料---原材料,价格下降,有利于公司采购成本下降,组件产品市场价格回落亦会刺激下游装机需求,预计公司出货会随市场需求上涨而增长
- 全球微资讯!多地向居民免费发放退烧药 海口每人限领4粒
- 国轩高科(002074):独立董事提名人声明(三)-世界看点
- 世界看点:E级女主播妙回“解决生理需求”,新欢曝光被拍一起逛超市
- 深圳南山区发放2亿元消费券 推出近百场线上线下促消费活动_环球快资讯
- 快消息!创兴资源(600193)12月20日主力资金净买入215.48万元
- 世界要闻:滨江集团(002244)12月19日主力资金净卖出3168.05万元
- 全球短讯!福莱特: 福莱特玻璃集团股份有限公司特定股东减持股份计划公告
- 绿委主张 练兵若来不及就寻求国际合作
- 全球快播:孕妇吃燕窝的好处有什么?孕妇什么时候吃燕窝最好?
- 信息:信阳市平桥区:“企业无扰日”让企业发展心无旁骛
- 【环球快播报】易借速贷逾期多久
- 全球观天下!黑龙江齐齐哈尔赴穗推介“好粮油” 开拓湾区市场
- 环球速讯:极目时评|火流星坠落浙江,围观也是一次科普机会
- 全球最资讯丨“草原歌手”腾格尔:喝酒败尽家产,妻离女逝,他如今后悔了吗?
- 立华股份:公司黄羽鸡以活禽销售为主,同时正积极布局线上线下的热鲜鸡、冰鲜产品销售渠道
- 热议:商丘市国土资源局睢阳分局全面加强土地利用批后监管工作
- 世界热推荐:平顶山市卫东区:志愿服务进菜田 蔬菜俏销乐农民
- 航锦科技:目前公司化工业务运行平稳
- 世界即时看!中银证券: 关于召开2022年第一次临时股东大会的通知
- 情系老党员 节日送祝福
- 用人单位交社保怎么办理
- acca就业前景如何?薪资怎么样?_全球热文
- 英科医疗(300677)12月12日主力资金净卖出1.93亿元
- 爱旭股份: 监事会关于公司2022年限制性股票与股票期权激励计划预留授予激励对象名单(预留授予日)的核查意见
- 中微半导:拓展海外市场是公司发展的必由之路
- 迎驾贡酒(603198)12月9日主力资金净买入6401.72万元_环球观焦点
- 11月末我国外汇储备规模增至31175亿美元
- 新冠疫苗专利战升级 辉瑞和BioNTech对莫德纳发起反击 速看
- 昨天全球首架涂装北京环球度假区主题班机首度亮相大兴机场
- 最新消息!北京两大机场进出港旅客数量增长近一倍
- 北京轨道交通第三期建设规划公示 规划里程约231.3公里
- “天上一张网”越织越密!北京大兴机场迈入“双枢纽时代”
- 北京经开区首推“一张清单告知”800多个高频事项一键办理
- 全球ICT巨头齐聚服贸会元宇宙生态头部玩家将悉数亮相
- 城市绿心实现首个城市组团级区域绿色低碳能源全覆盖 实现“负碳”状态
- 茅台冰淇淋消息冲上热搜 引来网友热议“下一步是不是茅台奶茶店”
- 中科院青藏高原所建成雅鲁藏布江流域多圈层水文监测网
- 三江源腹地玛沁多措施保障黄河流域生态安全
- 浙江台州天台县集中隔离点发现2例阳性
- 天津中小学今日恢复线下教学
- 北京:社区周边市场供应充足,蔬菜水果十分新鲜
- 31省份累计报告接种新冠病毒疫苗333177.1万剂次
- 北京市昌平区两地实施管控措施
- 一季度北京降尘量同比下降超50% 将加强控制“二次扬尘”
- 疫情之下 研招“云复试”
- 每天两次送饭上门 免费社区团餐让900多位老人“吃好饭”
- 北京房山一褡裢火烧店已至少关联8名感染者 去过请立即报告
- 内蒙古自治区满洲里市所有居民开展第三轮区域核酸检测
- 北京昌平发现1名核酸检测阳性人员 行程轨迹公布
- 上海嘉定一单位厂房发生火灾 火势已被扑灭无人员伤亡
- 广福日记·8户11人丨最终记:10+1
- 北京:凌晨补货,量足价稳!昨晚超市空置的货架又被填满了
- 河南多地取消今年中招体育和理化生实验考试
- 大藤峡水利枢纽通过挡水验收 今年汛期将开启防洪运用
- 4月25日12时起 河南终止省级防汛Ⅳ级应急响应
- 续写春天的故事丨乌兰牧骑续新篇
- 海报丨坚守,在楼宇方舱
- 【挑战365天正能量速写画】第146期:90岁奶奶变“刘畊宏女孩”跟跳毽子操
- 吉林延吉四名外卖小哥一分钟救两命
- 上海市市场监管局:利用社区团购发“疫情财”,露头就打
- 新疆阿克苏地区沙雅县发生3.9级地震 震源深度10千米
- 这个春天,复旦园向阳而生,安然如斯
- 北京朝阳区部分区域提升管控措施 区域内居民足不出区
- 强降雨致严重积水 四川内江紧急转移被困人员
- 山西太原管控区里“蔬菜兄弟”的一天
- 北京家庭教育主题培育实践启动 发布“理想”主题童书书单
- (上海战疫录)一线丨凝“新”聚力 上海新阶层人士同心守“沪”
- 截至2021年底 全国累计报告职业性尘肺病患者91.5万人
- (上海战疫录)抓获34人!上海警方严厉打击伪造买卖涉疫通行证违法犯罪
- (上海战疫录)上海26日对封控、管控和防范区人员进行全员核酸筛查
- 快递小哥手握通行证,却做了志愿者:总有些东西,比钱更重要
- 湖南新增12例新冠肺炎确诊病例
- 外国人在上海:德国女摄影师的核酸日常
- “东北味”核酸检测贴纸“出圈” 网友:太接地气了!
- 烟台病例基因分型为奥密克戎BA.2.3进化分支 目前国内尚未发现
精彩推荐
-
环球速看:使用PyTorch 2.0 加速Hugging Face和TIMM库的模型2022-12-29
-
两岁的孩子抚养费怎么算|世界微速讯2022-12-29
-
蘑菇根的用途? 世界快看2022-12-29
-
环球观天下!2023浙江卫视美好跨年夜晚会(直播入口+嘉宾名单)2022-12-29
-
世界微动态丨金溢科技: 关于公司股东部分股份解除质押及再质押的公告2022-12-29
-
大白菜如何焯水保存时间长 白菜怎么放保鲜时间长2022-12-29
-
每日消息!辅导机构招生宣传方案范文(推荐20篇)2022-12-28
-
怎样分辨虫草花的好坏 如何分辨虫草花品质的好坏呢|全球观焦点2022-12-28
-
2023广州西关永庆坊元旦系列活动2022-12-28
-
全球最资讯丨汪滨:美国频繁对台售武意在强化对台控制2022-12-28
-
【独家焦点】羊没羊,好像也没那么重要了!2022-12-27
-
视点!超卓航科: 超卓航科独立董事关于第三届董事会第六次会议相关议案的独立意见2022-12-27
-
全球观点:【机会挖掘】国家能源集团集中开工10个电力项目 抽水蓄能产业链或受关注2022-12-27
-
全球时讯:男科热天津市黄河道医院割包皮多少钱医院2022-12-26
-
涨停雷达:ST板块异动 *ST金洲触及涨停 实时焦点2022-12-26
-
环球时讯:3位新冠二次感染者自述:国外多次感染已成常态,再次感染症状看起来更轻2022-12-26
-
中央财办原副主任杨伟民:加大政策力度但要把握好度 财政要可持续、货币不可大水漫灌2022-12-25
-
世界观点:支持开票 | Python实证指标构建与文本分析2022-12-24
-
视讯!真是烦死这些垃圾网站了!2022-12-24
-
【环球热闻】七一二: 天津七一二通信广播股份有限公司关于5%以上股东权益变动的提示性公告2022-12-23
-
满足“千人千面”需求:江苏东台个性化税政为规上企业赋能加速 焦点速递2022-12-23
-
RCEP享惠红利持续释放 企业受益多多 全球报道2022-12-23
-
新发地:鲜柠檬供应充足 价格回归合理水平 速看2022-12-22
-
全球微资讯!多地向居民免费发放退烧药 海口每人限领4粒2022-12-22
-
国轩高科(002074):独立董事提名人声明(三)-世界看点2022-12-21
-
世界看点:E级女主播妙回“解决生理需求”,新欢曝光被拍一起逛超市2022-12-21
-
深圳南山区发放2亿元消费券 推出近百场线上线下促消费活动_环球快资讯2022-12-20
-
快消息!创兴资源(600193)12月20日主力资金净买入215.48万元2022-12-20
-
世界要闻:滨江集团(002244)12月19日主力资金净卖出3168.05万元2022-12-20
-
全球短讯!福莱特: 福莱特玻璃集团股份有限公司特定股东减持股份计划公告2022-12-19
-
绿委主张 练兵若来不及就寻求国际合作2022-12-19
-
全球快播:孕妇吃燕窝的好处有什么?孕妇什么时候吃燕窝最好?2022-12-19
-
信息:信阳市平桥区:“企业无扰日”让企业发展心无旁骛2022-12-18
-
【环球快播报】易借速贷逾期多久2022-12-18
-
全球观天下!黑龙江齐齐哈尔赴穗推介“好粮油” 开拓湾区市场2022-12-17
-
环球速讯:极目时评|火流星坠落浙江,围观也是一次科普机会2022-12-16
-
全球最资讯丨“草原歌手”腾格尔:喝酒败尽家产,妻离女逝,他如今后悔了吗?2022-12-16
-
立华股份:公司黄羽鸡以活禽销售为主,同时正积极布局线上线下的热鲜鸡、冰鲜产品销售渠道2022-12-16
-
热议:商丘市国土资源局睢阳分局全面加强土地利用批后监管工作2022-12-15
-
世界热推荐:平顶山市卫东区:志愿服务进菜田 蔬菜俏销乐农民2022-12-15
-
航锦科技:目前公司化工业务运行平稳2022-12-15
-
世界即时看!中银证券: 关于召开2022年第一次临时股东大会的通知2022-12-14
-
情系老党员 节日送祝福2022-12-14
-
用人单位交社保怎么办理2022-12-14
-
acca就业前景如何?薪资怎么样?_全球热文2022-12-13
-
英科医疗(300677)12月12日主力资金净卖出1.93亿元2022-12-13
-
中微半导:拓展海外市场是公司发展的必由之路2022-12-12
-
迎驾贡酒(603198)12月9日主力资金净买入6401.72万元_环球观焦点2022-12-10
-
11月末我国外汇储备规模增至31175亿美元2022-12-07
-
新冠疫苗专利战升级 辉瑞和BioNTech对莫德纳发起反击 速看2022-12-06
-
昨天全球首架涂装北京环球度假区主题班机首度亮相大兴机场2022-07-09
-
最新消息!北京两大机场进出港旅客数量增长近一倍2022-07-09
-
北京轨道交通第三期建设规划公示 规划里程约231.3公里2022-07-09
-
“天上一张网”越织越密!北京大兴机场迈入“双枢纽时代”2022-07-09
-
北京经开区首推“一张清单告知”800多个高频事项一键办理2022-07-09
-
全球ICT巨头齐聚服贸会元宇宙生态头部玩家将悉数亮相2022-07-09
-
城市绿心实现首个城市组团级区域绿色低碳能源全覆盖 实现“负碳”状态2022-07-09
-
茅台冰淇淋消息冲上热搜 引来网友热议“下一步是不是茅台奶茶店”2022-05-20
-
中科院青藏高原所建成雅鲁藏布江流域多圈层水文监测网2022-04-25
-
三江源腹地玛沁多措施保障黄河流域生态安全2022-04-25
-
浙江台州天台县集中隔离点发现2例阳性2022-04-25
-
天津中小学今日恢复线下教学2022-04-25
-
北京:社区周边市场供应充足,蔬菜水果十分新鲜2022-04-25
-
31省份累计报告接种新冠病毒疫苗333177.1万剂次2022-04-25
-
北京市昌平区两地实施管控措施2022-04-25
-
一季度北京降尘量同比下降超50% 将加强控制“二次扬尘”2022-04-25
-
疫情之下 研招“云复试”2022-04-25
-
每天两次送饭上门 免费社区团餐让900多位老人“吃好饭”2022-04-25
-
北京房山一褡裢火烧店已至少关联8名感染者 去过请立即报告2022-04-25
-
内蒙古自治区满洲里市所有居民开展第三轮区域核酸检测2022-04-25
-
北京昌平发现1名核酸检测阳性人员 行程轨迹公布2022-04-25
-
上海嘉定一单位厂房发生火灾 火势已被扑灭无人员伤亡2022-04-25
-
广福日记·8户11人丨最终记:10+12022-04-25
-
北京:凌晨补货,量足价稳!昨晚超市空置的货架又被填满了2022-04-25
-
河南多地取消今年中招体育和理化生实验考试2022-04-25
-
大藤峡水利枢纽通过挡水验收 今年汛期将开启防洪运用2022-04-25
-
4月25日12时起 河南终止省级防汛Ⅳ级应急响应2022-04-25
-
续写春天的故事丨乌兰牧骑续新篇2022-04-25
-
海报丨坚守,在楼宇方舱2022-04-25
-
【挑战365天正能量速写画】第146期:90岁奶奶变“刘畊宏女孩”跟跳毽子操2022-04-25
-
吉林延吉四名外卖小哥一分钟救两命2022-04-25
-
上海市市场监管局:利用社区团购发“疫情财”,露头就打2022-04-25
-
新疆阿克苏地区沙雅县发生3.9级地震 震源深度10千米2022-04-25
-
这个春天,复旦园向阳而生,安然如斯2022-04-25
-
北京朝阳区部分区域提升管控措施 区域内居民足不出区2022-04-25
-
强降雨致严重积水 四川内江紧急转移被困人员2022-04-25
-
山西太原管控区里“蔬菜兄弟”的一天2022-04-25
-
北京家庭教育主题培育实践启动 发布“理想”主题童书书单2022-04-25
-
(上海战疫录)一线丨凝“新”聚力 上海新阶层人士同心守“沪”2022-04-25
-
截至2021年底 全国累计报告职业性尘肺病患者91.5万人2022-04-25
-
(上海战疫录)抓获34人!上海警方严厉打击伪造买卖涉疫通行证违法犯罪2022-04-25
-
(上海战疫录)上海26日对封控、管控和防范区人员进行全员核酸筛查2022-04-25
-
快递小哥手握通行证,却做了志愿者:总有些东西,比钱更重要2022-04-25
-
湖南新增12例新冠肺炎确诊病例2022-04-25
-
外国人在上海:德国女摄影师的核酸日常2022-04-25
-
“东北味”核酸检测贴纸“出圈” 网友:太接地气了!2022-04-25
-
烟台病例基因分型为奥密克戎BA.2.3进化分支 目前国内尚未发现2022-04-25