Google 发布最新开放大语言模型 Gemma 2,现已登陆 Hugging Face Hub
Google 发布了最新的开放大语言模型 Gemma 2,我们非常高兴与 Google 合作,确保其在 Hugging Face 生态系统中的最佳集成。你可以在 Hub 上找到 4 个开源模型 (2 个基础模型和 2 个微调模型) 。发布的功能和集成包括:
Hub 上的模型https://hf.co/collections/google/g-667d6600fd5220e7b967f315
Hugging FaceTransformers 集成https://github.com/huggingface/transformers/releases/tag/v4.42.0
与 Google Cloud 和推理端点的集成
Gemma 2 是什么?
Gemma 2 是 Google 最新的开放大语言模型。它有两种规模:90 亿参数和 270 亿参数,分别具有基础 (预训练) 和指令调优版本。Gemma 基于 Google DeepMind 的 Gemini,拥有 8K Tokens 的上下文长度:
gemma-2-9bhttps://hf.co/google/gemma-2-9b90 亿基础模型。
gemma-2-9b-ithttps://hf.co/google/gemma-2-9b-it90 亿基础模型的指令调优版本。
gemma-2-27bhttps://hf.co/google/gemma-2-27b270 亿基础模型。
gemma-2-27b-ithttps://hf.co/google/gemma-2-27b-it270 亿基础模型的指令调优版本。
Gemma 2 模型的训练数据量约为其第一代的两倍,总计 13 万亿 Tokens (270 亿模型) 和 8 万亿 Tokens (90 亿模型) 的网页数据 (主要是英语) 、代码和数学数据。我们不知道训练数据混合的具体细节,只能猜测更大和更仔细的数据整理是性能提高的重要因素之一。
Gemma 2 与第一代使用相同的许可证,这是一个允许再分发、微调、商业用途和衍生作品的宽松许可证。
立刻在 Hugging Chat 里体验 Gemma2
https://hf.co/chat/models/google/gemma-2-27b-it
Gemma 2 的技术进展
Gemma 2 与第一代有许多相似之处。它有 8192 Tokens 的上下文长度,并使用旋转位置嵌入 (RoPE)。与原始 Gemma 相比,Gemma 2 的主要进展有四点:
滑动窗口注意力: 交替使用滑动窗口和全二次注意力以提高生成质量。
Logit 软上限: 通过将 logits 缩放到固定范围来防止其过度增长,从而改进训练。
知识蒸馏: 利用较大的教师模型来训练较小的模型(适用于 90 亿模型)。
模型合并: 将两个或多个大语言模型合并成一个新的模型。
Gemma 2 使用JAX和ML Pathways在Google Cloud TPU (27B on v5p和9B on TPU v4)上进行训练。Gemma 2 Instruct 已针对对话应用进行了优化,并使用监督微调 (SFT)、大模型蒸馏、人类反馈强化学习 (RLHF) 和模型合并 (WARP) 来提高整体性能。
JAXhttps://jax.readthedocs.io/en/latest/quickstart.html
ML Pathwayshttps://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/
Google Cloud TPU 27B on v5phttps://cloud.google.com/blog/products/ai-machine-learning/introducing-cloud-tpu-v5p-and-ai-hypercomputer?hl=en
9B on TPU v4https://cloud.google.com/tpu/docs/v4
与预训练数据集混合类似,关于微调数据集或与 SFT 和RLHF相关的超参数的细节尚未共享。
RLHFhttps://hf.co/blog/rlhf
滑动窗口注意力
滑动窗口注意力是一种用于减少 Transformer 模型中注意力计算的内存和时间需求的方法,已在Mistral等模型中使用。Gemma 2 的新颖之处在于每隔一层应用滑动窗口 (局部 - 4096 Tokens) ,而中间层仍使用全局二次注意力 (8192 Tokens) 。我们推测这是为了在长上下文情况下提高质量 (半数层仍然关注所有 Tokens) ,同时部分受益于滑动注意力的优势。
滑动窗口注意力https://hf.co/papers/2004.05150
Mistralhttps://hf.co/papers/2310.06825
软上限和注意力实现
软上限是一种防止 logits 过度增长而不截断它们的技术。它通过将 logits 除以最大值阈值 (soft_cap
),然后通过 tanh
层 (确保它们在 (-1, 1)
范围内) ,最后再乘以阈值。这确保了最终值在 (-soft_cap, +soft_cap)
区间内,不会丢失太多信息但稳定了训练。
综合起来,logits 的计算公式为:logits ← soft_cap ∗ tanh(logits/soft_cap)
Gemma 2 对最终层和每个注意力层都采用了软上限。注意力 logits 上限为 50.0,最终 logits 上限为 30.0。
在发布时,软上限与 Flash Attention / SDPA 不兼容,但它们仍可用于推理以实现最高效率。Gemma 2 团队观察到,在推理过程中不使用软上限机制时,差异非常小。
注意:对于稳定的微调运行,仍需启用软上限,因此我们建议使用 eager
注意力进行微调,而不是 SDPA。
知识蒸馏
知识蒸馏是一种常用技术,用于训练较小的 学生 模型以模仿较大但表现更好的 教师 模型的行为。这是通过将大语言模型的下一个 Token 预测任务与教师提供的 Token 概率分布 (例如 GPT-4、Claude 或 Gemini) 结合起来,从而为学生提供更丰富的学习信号。
根据 Gemma 2 技术报告,知识蒸馏用于预训练 90 亿模型,而 270 亿模型则是从头开始预训练的。
在后期训练中,Gemma 2 团队生成了来自教师 (报告中未指定,但可能是 Gemini Ultra) 的多样化补全集,然后使用这些合成数据通过 SFT 训练学生模型。这也是许多开源模型的基础,如Zephyr和OpenHermes,它们完全基于较大大语言模型的合成数据进行训练。
Zephyrhttps://hf.co/HuggingFaceH4/zephyr-7b-beta
OpenHermeshttps://hf.co/teknium/OpenHermes-2.5-Mistral-7B
尽管有效,但这种方法存在缺点,因为学生和教师之间的模型容量不匹配可能导致 训练-推理不匹配,即学生在推理期间生成的文本与训练期间看到的文本不同。
为解决这个问题,Gemma 2 团队采用了“在线蒸馏”,其中学生从 SFT 提示生成补全。这些补全用于计算教师和学生 logits 之间的 KL 散度。通过在整个训练过程中最小化 KL 散度,学生能够准确地模拟教师的行为,同时最小化训练-推理不匹配。
“在线蒸馏”https://arxiv.org/pdf/2306.13649
这种方法非常有趣,正如我们在社区中看到的那样,在线 DPO 等在线方法会产生更强的模型,而在线蒸馏的一个优势在于只需要教师的 logits,因此无需依赖奖励模型或大语言模型作为评审员来改进模型。我们期待看到这种方法在未来几个月中是否会在微调人员中变得更受欢迎!
模型合并
模型合并是一种将两个或多个大语言模型合并成一个新模型的技术。这是相对较新和实验性的,可以不使用加速器进行。Mergekit是一个流行的开源工具包,用于合并大语言模型。它实现了线性、SLERP、TIES、DARE 和其他合并技术。
模型合并https://hf.co/blog/mlabonne/merge-models
Mergekithttps://github.com/arcee-ai/mergekit
根据技术报告,Gemma 2 使用了Warp,这是一种新型合并技术,分三个独特阶段进行合并:
Warphttps://arxiv.org/abs/2406.16768
指数移动平均 (EMA):在强化学习 (RL) 微调过程中应用。
球形线性插值 (SLERP):在多个策略的 RL 微调后应用。
向初始化线性插值 (LITI):在 SLERP 阶段之后应用。
Gemma 2 的评估
Gemma 模型的表现如何?以下是根据技术报告和新版开源 LLM 排行榜对其他开源开放模型的性能比较。
开源 LLM 排行榜https://hf.co/spaces/HuggingFaceH4/open_llm_leaderboard
技术报告结果
Gemma 2 的技术报告比较了不同开源 LLM 在之前开源 LLM 排行榜基准上的性能。
Llama 3 (70B) | Qwen 1.5 (32B) | Gemma 2 (27B) | |
---|---|---|---|
MMLU | 79.2 | 74.3 | 75.2 |
GSM8K | 76.9 | 61.1 | 75.1 |
ARC-c | 68.8 | 63.6 | 71.4 |
HellaSwag | 88.0 | 85.0 | 86.4 |
Winogrande | 85.3 | 81.5 | 83.7 |
该报告还比较了小型语言模型的性能。
Benchmark | Mistral (7B) | Llama 3 (8B) | Gemma (8B) | Gemma 2 (9B) |
---|---|---|---|---|
MMLU | 62.5 | 66.6 | 64.4 | 71.3 |
GSM8K | 34.5 | 45.7 | 50.9 | 62.3 |
ARC-C | 60.5 | 59.2 | 61.1 | 68.4 |
HellaSwag | 83.0 | 82.0 | 82.3 | 81.9 |
Winogrande | 78.5 | 78.5 | 79.0 | 80.6 |
开源 LLM 排行榜结果
注意:我们目前正在新的开源 LLM 排行榜基准上单独评估 Google Gemma 2,并将在今天晚些时候更新此部分。
如何提示 Gemma 2
基础模型没有提示格式。像其他基础模型一样,它们可以用于继续输入序列的合理延续或零样本/少样本推理。指令版本有一个非常简单的对话结构:
<start_of_turn>user
knock knock<end_of_turn>
<start_of_turn>model
who is there<end_of_turn>
<start_of_turn>user
LaMDA<end_of_turn>
<start_of_turn>model
LaMDA who?<end_of_turn><eos>
必须精确地复制此格式才能有效使用。稍后我们将展示如何使用 transformers
中的聊天模板轻松地复制指令提示。
演示
你可以在 Hugging Chat 上与 Gemma 27B 指令模型聊天!查看此链接:
https://hf.co/chat/models/google/gemma-2-27b-it
使用 Hugging Face Transformers
随着 Transformers版本 4.42的发布,你可以使用 Gemma 并利用 Hugging Face 生态系统中的所有工具。要使用 Transformers 使用 Gemma 模型,请确保使用最新的 transformers
版本:
版本 4.42https://github.com/huggingface/transformers/releases/tag/v4.42.0
pip install "transformers==4.42.1" --upgrade
以下代码片段展示了如何使用 transformers
使用 gemma-2-9b-it
。它需要大约 18 GB 的 RAM,适用于许多消费者 GPU。相同的代码片段适用于 gemma-2-27b-it
,需要 56GB 的 RAM,使其非常适合生产用例。通过加载 8-bit 或 4-bit 模式,可以进一步减少内存消耗。
from transformers import pipeline
import torchpipe = pipeline("text-generation",model="google/gemma-2-9b-it",model_kwargs={"torch_dtype": torch.bfloat16},device="cuda",
)messages = [{"role": "user", "content": "Who are you? Please, answer in pirate-speak."},
]
outputs = pipe(messages,max_new_tokens=256,do_sample=False,
)
assistant_response = outputs[0]["generated_text"][-1]["content"]
print(assistant_response)
啊哈,船长!我是数字海洋上的一艘谦卑的词语之船。他们叫我 Gemma,是 Google DeepMind 的杰作。我被训练在一堆文本宝藏上,学习如何像一个真正的海盗一样说话和写作。
问我你的问题吧,我会尽力回答,啊哈!🦜📚
我们使用 bfloat16 因为这是指令调优模型的参考精度。在你的硬件上运行 float16 可能会更快,90 亿模型的结果应该是相似的。然而,使用 float16 时,270 亿指令调优模型会产生不稳定的输出:对于该模型权重,你必须使用 bfloat16。
你还可以自动量化模型,以 8-bit 甚至 4-bit 模式加载。加载 4-bit 模式的 270 亿版本需要大约 18 GB 的内存,使其兼容许多消费者显卡和 Google Colab 中的 GPU。这是你在 4-bit 模式下加载生成管道的方式:
pipeline = pipeline("text-generation",model=model,model_kwargs={"torch_dtype": torch.bfloat16,"quantization_config": {"load_in_4bit": True}},
)
有关使用 Transformers 模型的更多详细信息,请查看模型卡。
模型卡https://hf.co/gg-hf/gemma-2-9b
与 Google Cloud 和推理端点的集成
注意:我们目前正在为 GKE 和 Vertex AI 添加新的容器,以高效运行 Google Gemma 2。我们将在容器可用时更新此部分。
其他资源
Hub 上的模型https://hf.co/collections/google/g-667d6600fd5220e7b967f315
开放 LLM 排行榜https://hf.co/spaces/HuggingFaceH4/open_llm_leaderboard
Hugging Chat 上的聊天演示https://hf.co/chat/models/google/gemma-2-27b-it
Google 博客https://blog.google/technology/developers/google-gemma-2/
Google Notebook 即将推出
Vertex AI 模型花园 即将推出
致谢
在生态系统中发布此类模型及其支持和评估离不开许多社区成员的贡献,包括Clémentine和Nathan对 LLM 的评估;Nicolas对文本生成推理的支持;Arthur、Sanchit、Joao和Lysandre对 Gemma 2 集成到 Transformers 中的支持;Nathan和Victor使 Gemma 2 在 Hugging Chat 中可用。
Clémentinehttps://hf.co/clefourrier
Nathanhttps://hf.co/SaylorTwift
Nicolashttps://hf.co/Narsil
Arthurhttps://hf.co/ArthurZ
Sanchithttps://hf.co/sanchit-gandhi
Joaohttps://hf.co/joaogante
Lysandrehttps://hf.co/lysandre
Nathanhttps://hf.co/nsarrazin
Victorhttps://hf.co/victor
感谢 Google 团队发布 Gemma 2!
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Google 发布最新开放大语言模型 Gemma 2,现已登陆 Hugging Face Hub
Google 发布了最新的开放大语言模型 Gemma 2,我们非常高兴与 Google 合作,确保其在 Hugging Face 生态系统中的最佳集成。你可以在 Hub 上找到 4 个开源模型 (2 个基础模型和 2 个微调模型) 。发布的功能和集成包括: Hub 上的模型https://hf.…...
![](https://www.ngui.cc/images/no-images.jpg)
智能分析赋能等保:大数据技术在安全审计记录中的应用
随着信息技术的飞速发展,大数据技术在各行各业中的应用愈发广泛,特别是在网络安全领域,大数据技术为安全审计记录提供了强有力的支撑。本文将深入探讨智能分析如何赋能等保(等级保护),以及大数据技术在安全…...
![](https://www.ngui.cc/images/no-images.jpg)
Django中,update_or_create()
在Django中,可以使用update_or_create()方法来更新现有记录或创建新记录。该方法接受一个字典作为参数,用于指定要更新或创建的字段和对应的值。 update_or_create()方法的语法如下: 代码语言:python obj, created Model.obje…...
![](https://img-blog.csdnimg.cn/direct/e10fdda6e8be4b74a4496821eabac27a.png)
每日一学(1)
目录 1、ConCurrentHashMap为什么不允许key为null? 2、ThreadLocal会出现内存泄露吗? 3、AQS理解 4、lock 和 synchronized的区别 1、ConCurrentHashMap为什么不允许key为null? 底层 putVal方法 中 如果key || value为空 抛出…...
![](https://img-blog.csdnimg.cn/direct/a340576cfb6e4c8796d2559ac7f9a22f.bmp)
SpringMVC(1)——入门程序+流程分析
MVC都是哪三层?在Spring里面分别对应什么?SpringMVC的架构是什么? 我们使用Spring开发JavaWeb项目,一般都是BS架构,也就是Browser(浏览器)-Server(服务器)架构 这种架构…...
![](https://img-blog.csdnimg.cn/direct/1450513aa3234920a9187fe313966617.jpeg)
成绩发布背后:老师的无奈与痛点
在教育的广阔天地里,教师这一角色承载着无数的期望与责任。他们不仅是知识的传播者,更是学生心灵的引路人。而对于班主任老师来说,他们的角色更加多元,他们不仅是老师,还必须是“妈妈”。除了像其他老师一样备课、上课…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL 索引之外的相关查询优化总结
在这之前先说明几个概念: 1、驱动表和被驱动表:驱动表是主表,被驱动表是从表、非驱动表。驱动表和被驱动表并非根据 from 后面表名的先后顺序而确定,而是根据 explain 语句查询得到的顺序确定;展示在前面的是驱动表&am…...
![](https://img-blog.csdnimg.cn/img_convert/f97a70fc4a2a3aa0088e42b733f50064.png)
EE trade:贵金属投资的优点及缺点
贵金属(如黄金、白银、铂金和钯金)一直以来都是重要的投资和避险工具。它们具有独特的物理和化学特性,广泛应用于各种行业,同时也被视为财富储备。在进行贵金属投资时,了解其优点和缺点对于做出明智的投资决策至关重要。 一、贵金属投资的优…...
![](https://img-blog.csdnimg.cn/direct/ec93484a5627428684d1f525b38cbc1b.png#pic_center)
python工作目录与文件目录
工作目录 文件目录:文件所在的目录 工作目录:执行python命令所在的目录 D:. | main.py | ---data | data.txt | ---model | | model.py | | train.py | | __init__.py | | | ---nlp | | | bert.py | …...
![](https://img-blog.csdnimg.cn/direct/39ec7bbc595547999ce495789d7dea6a.png#pic_center)
可信和可解释的大语言模型推理-RoG
大型语言模型(LLM)在复杂任务中表现出令人印象深刻的推理能力。然而,LLM在推理过程中缺乏最新的知识和经验,这可能导致不正确的推理过程,降低他们的表现和可信度。知识图谱(Knowledge graphs, KGs)以结构化的形式存储了…...
![](https://img-blog.csdnimg.cn/direct/045e929308b1471f81444564019bacdc.png)
秋招季的策略与行动指南:提前布局,高效备战,精准出击
6月即将进入尾声,一年一度的秋季招聘季正在热火进行中。对于即将毕业的学生和寻求职业发展的职场人士来说,秋招是一个不容错过的黄金时期。 秋招的序幕通常在6月至9月间拉开,名企们纷纷开启网申的大门。在此期间,求职备战是一个系…...
![](https://www.ngui.cc/images/no-images.jpg)
Java并发编程-wait与notify详解及案例实战
文章目录 概述wait()notify()作用注意事项用wait与notify手写一个内存队列wait与notify的底层原理:monitor以及wait_setMonitor(监视器)Wait Set(等待集合)Wait() 原理Notify() / NotifyAll() 原理注意事项wait与notify在代码中使用时的注意事项总结案例实战:基于wait与not…...
![](https://img-blog.csdnimg.cn/direct/0d51a39207dd4a67b25358f05383a029.png)
204.贪心算法:分发饼干(力扣)
以下来源于代码随想录 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 对孩子的胃口进行排序sort(g.begin(), g.end());// 对饼干的尺寸进行排序sort(s.begin(), s.end());int index s.size() - 1; // 从最大的饼…...
![](https://img-blog.csdnimg.cn/direct/7f342fbe816b475ba7e16390f9ae886a.png)
AI奥林匹克竞赛:Claude-3.5-Sonnet对决GPT-4o,谁是最聪明的AI?
目录 实验设置 评估对象 评估方法 结果与分析 针对学科的细粒度分析 GPT-4o vs. Claude-3.5-Sonnet GPT-4V vs. Gemini-1.5-Pro 结论 AI技术日新月异,Anthropic公司最新发布的Claude-3.5-Sonnet因在知识型推理、数学推理、编程任务及视觉推理等任务上设立新…...
![](https://www.ngui.cc/images/no-images.jpg)
【C++】const修饰成员函数
const修饰成员函数 常函数: 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 class Animal { public:void fun1(){//这是一个普通的成员函数 }void fun2…...
![](https://img-blog.csdnimg.cn/img_convert/fdd5e6300e775bc994d4da26417f217c.jpeg)
基于模糊神经网络的时间序列预测(以hopkinsirandeath数据集为例,MATLAB)
模糊神经网络从提出发展到今天,主要有三种形式:算术神经网络、逻辑模糊神经网络和混合模糊神经网络。算术神经网络是最基本的,它主要是对输入量进行模糊化,且网络结构中的权重也是模糊权重;逻辑模糊神经网络的主要特点是模糊权值可…...
![](https://img-blog.csdnimg.cn/direct/e0e234cb62304cb28bde2bde329d66f1.png)
Java web应用性能分析之【prometheus监控K8s指标说明】
常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态(正常、不可达、未知)节点的资源使用率(CPU、内存、IO等) 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot中的应用配置文件管理
Spring Boot中的应用配置文件管理 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Spring Boot中的应用配置文件管理。在现代的软件开发中&am…...
![](https://img-blog.csdnimg.cn/direct/5dd376cbe1094541a9aaf666da3d55fb.png)
SCCB协议介绍,以及与IIC协议对比
在之前的文章里已经介绍了IIC协议:iic通信协议 这篇内容主要介绍一下SCCB协议。 文章目录 SCCB协议:SCCB时序图iic时序图SCCB时序 VS IIC时序 总:SCCB协议常用在摄像头配置上面,例如OV5640摄像头,和IIC协议很相似&…...
![](https://img-blog.csdnimg.cn/direct/9f1ec97df2d247c4b9b1bfe8cee56a29.png)
K8S基础简介
用于自动部署,扩展和管理容器化应用程序的开源系统。 功能: 服务发现和负载均衡; 存储编排; 自动部署和回滚; 自动二进制打包; 自我修复; 密钥与配置管理; 1. K8S组件 主从方式架…...
![](https://img-blog.csdnimg.cn/direct/d1ee6ca4198f460d8ac8f2bc80073850.png)
Studying-代码随想录训练营day24| 93.复原IP地址、78.子集、90.子集II
第24天,回溯算法part03,牢记回溯三部曲,掌握树形结构结题方法💪 目录 93.复原IP地址 78.子集 90.子集II 总结 93.复原IP地址 文档讲解:代码随想录复原IP地址 视频讲解:手撕复原IP地址 题目࿱…...
![](https://img-blog.csdnimg.cn/direct/e7d736087372474d8da3a6e8b4893ba7.png)
2024《汽车出海全产业数据安全合规发展白皮书》下载
随着中国制造向中国智造目标的迈进,中国汽车正以前所未有的速度和质量,在全球市场上开疆拓土。不过,在中国汽车加快出海步伐的过程中,数据安全合规风险管理成为车企不容忽视的课题。 6月25日,在中国(上海&…...
![](https://img-blog.csdnimg.cn/direct/255bc94b8bc14195b52174ed9123e0c9.png)
nvm安装以及idea下vue启动项目过程和注意事项
注意1:nvm版本不要太低,1.1.7会出现下面这个问题,建议1.1.10及其以上版本 然后安装这个教程安装nvm和node.js 链接: nvm安装教程(一篇文章所有问题全搞定,非常详细) 注意2:上面的教程有一步骤…...
![](https://www.ngui.cc/images/no-images.jpg)
Java SPI服务发现与扩展的利器
Java中,为了实现模块之间的解耦和可扩展性,我们常常需要一种机制来动态加载和替换实现。Java SPI就是这样一种机制,它允许我们在不修改原有代码的情况下,为接口添加新的实现,并在运行时动态加载它们。 SPI,…...
![](https://www.ngui.cc/images/no-images.jpg)
Ansible的Playbook
Playbook 特点 playbook 剧本是由一个或多个"play"组成的列表play的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的任务角色。Task实际是调用ansible的一个module,将多个play组织在一个playbook中,即可以让…...
![](https://img-blog.csdnimg.cn/img_convert/8fa3f232456d4f18e11b09bb14ddc8c7.png)
多平台自动养号【开心版】偷偷使用就行了!
大家好,今天我无意间发现了一款【多平台自动养号工具】,看了一下里面的功能还是挺全面的,包含了【抖音,快手,小红薯】还有一些截流功能 虽然这款工具功能强大,但美中不足的是需要付费的。但别担心…...
![](https://www.ngui.cc/images/no-images.jpg)
Android与JavaScript的交互,以实现从WebView中打开原生页面并传递参数
在Android应用中,实现Android与JavaScript的交互,以实现从WebView中打开原生页面并传递参数,可以通过以下详细步骤完成: 1. 准备工作 添加WebView至布局:在你的Activity或Fragment的XML布局文件中加入WebView控件。 …...
![](https://www.ngui.cc/images/no-images.jpg)
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的 图片的存储图片的文件格式像素数据的二进制表示存储和处理显示总结 图片的显示4. 像素点控制具体的像素控制过程示例总结 如题,这里以图片为例。 图片的存储 计算机桌面上的一…...
![](https://img-blog.csdnimg.cn/direct/71f1131017a841b3aa3aa53a3c2ee97c.png)
【考研408计算机组成原理】微程序设计重要考点指令流水线考研真题+考点分析
苏泽 “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家 目录 微指令的形成方式 微指令的地址形成方式 对应考题 题目:微指令的地址形成方式 - 断定方式 解题思路: 答题: 分析考点&…...
![](https://www.ngui.cc/images/no-images.jpg)
查看哪个docker环境在占用gpu
前言 有时候发现某些docker占用gpu资源却没有训练,需要查清楚是哪个并且把它stop掉。 方法 在docker里面用nvidia-smi命令,没有pid显示,需要在外面使用。得到pid信息后,使用命令 docker top 15766f6eeaf7(容器ID) | grep 551…...
![](https://img-blog.csdnimg.cn/direct/2c1669cff6b1485d86d3704d5ff58253.png)
JVM相关总结
JVM的些许问题 1.JVM内存区域划分 2.JVM类加载过程 3.JVM的垃圾回收机制 1.JVM的内存区域划分 一个运行起来的Java进程就是一个JVM虚拟机,需要从操作系统申请一大片内存,就会把内存划分成几个区域,每个区域都有不同的作用 常见的面试题 2.JVM类加载过程 熟练背诵 ! ! !…...
![](https://img-blog.csdnimg.cn/direct/2269388ca0b341d6b54899163a10e13c.png)
Python 面试【初级】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
![](https://www.ngui.cc/images/no-images.jpg)
机器学习SVR 随机森林 RBF神经网络做回归预测的MATLAB代码
SVR 参考这篇文章 Libsvm使用笔记【matlab】 close all; clc clear %% 下载数据 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 数据归一化 %输入样本归一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot中配置Swagger用于API文档
Spring Boot中配置Swagger用于API文档 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Spring Boot应用中配置Swagger,以便于快…...
![](https://www.ngui.cc/images/no-images.jpg)
学习java第一百一十六天
Spring Framework有哪些不同的功能? 答: 轻量级-Spring 在代码量和透明度方面都很轻便。 IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。容器-Spring 负责创建和管理对象(Bean)的生命周…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析
🛡️ SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析 在数据驱动的商业世界中,保护敏感信息至关重要。SQL Server提供了一种强大的安全特性——动态数据屏蔽(Dynamic Data Masking,简称DMS),…...
![](https://www.ngui.cc/images/no-images.jpg)
Android中常见的线程池
日常开发中我们常常使用到线程池,其能有效管理线程资源,避免过多线程导致系统资源浪费、又能复用线程资源,避免频繁的创建/销毁线程。在Android中线程池的实现为ThreadPoolExecutor类,本文主要记录该类相关的知识点。 线程池的六…...
![](https://i-blog.csdnimg.cn/direct/353b7fe50ab8448a8060c8cfa317bd68.png)
C# YoloV8 模型效果验证工具(OnnxRuntime+ByteTrack推理)
C# YoloV8 模型效果验证工具(OnnxRuntimeByteTrack推理) 目录 效果 项目 代码 下载 效果 模型效果验证工具 项目 代码 using ByteTrack; using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using Sys…...
![](https://img-blog.csdnimg.cn/direct/ed647bb319ae4566a218f0201b44ed51.jpeg)
什么是Cookie?有什么用?如何清除浏览器中的Cookie?
互联网上的每一次点击和每一个选择都可能被一种名为Cookie的技术记录下来。但Cookie是什么?我们在网站上登录时,为什么经常会被问及是否接受Cookie?接受Cookie登录会不会影响我们的在线隐私? Cookie是什么? Cookie是一…...
![](https://www.ngui.cc/images/no-images.jpg)
数据库基本管理
数据完整性: 实体完整性:每一行必须是唯一的实体域完整性:检查每一列是否有效引用完整性:确保所有表中数据的一致性,不允许引用不存在的值用户定义的完整性:制定特定的业务规则 主键: 用于唯…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
43.三倍游戏
上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/390 题目描述 三倍游戏是一种单人游戏。玩…...
![](https://img-blog.csdnimg.cn/direct/deae88b98f524b389d71251767669e59.png)
LoadBalance 负载均衡
什么是负载均衡 负载均衡(Load Balance,简称 LB),是⾼并发,⾼可⽤系统必不可少的关键组件. 当服务流量增⼤时,通常会采⽤增加机器的⽅式进⾏扩容,负载均衡就是⽤来在多个机器或者其他资源中,按照⼀定的规则合理分配负载. 负载均衡的⼀些实现 服务多机部署时,开发⼈…...
![](https://img-blog.csdnimg.cn/direct/643248eab7bd4a7688905aed98b435bf.png)
Wails 安装初体验
文章目录 Wails 安装说明1. 系统要求2. 安装步骤3. 构建应用 结论 Wails 安装说明 Wails 是一个用于构建桌面应用的 Go 框架,结合了现代前端技术。以下是安装步骤: 1. 系统要求 Go 1.16 或更高版本Node.js 和 npm可选:适用于 Windows、mac…...
![](https://img-blog.csdnimg.cn/direct/fa54e0e6885d40778debfc0c6ce10e26.png)
架构师篇-10、DDD实战篇:通过领域模型落地系统
基于领域模型的设计与开发 数据库设计程序设计微服务设计 在线订餐系统的领域事件通知 微服务拆分 事件风暴会议 梳理领域事件进行领域建模识别聚合关系划分限界上下文 用户下单领域模型 更新后的模型 领域模型的设计实现过程 数据库设计 数据库映射:一对一关系…...
![](https://img-blog.csdnimg.cn/direct/65bda0326994411d8556c12ad0192e13.png)
C++ | Leetcode C++题解之第190题颠倒二进制位
题目: 题解: class Solution { private:const uint32_t M1 0x55555555; // 01010101010101010101010101010101const uint32_t M2 0x33333333; // 00110011001100110011001100110011const uint32_t M4 0x0f0f0f0f; // 000011110000111100001111000011…...
![](https://img-blog.csdnimg.cn/direct/1a8450ef36fe4681aa2184bb226f93b5.png)
Git安装与使用及整合IDEA使用的详细教程
1. 版本控制软件介绍 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理…...
![](https://img-blog.csdnimg.cn/direct/8ab515f27b9a4c449ac5b7826d05db79.png)
高效办公秘诀:使用Excel超级处理器提高工作效率,提升职场竞争力
在现今快节奏的工作环境中,如何高效地完成工作任务,减少加班时间,成为了许多职场人士关注的焦点。其中,Excel作为一款功能强大的电子表格软件,被广泛应用于数据处理、分析以及报表制作等领域。然而,仅仅依赖…...
![](https://www.ngui.cc/images/no-images.jpg)
深入探讨Python中的元编程:装饰器与元类
Python以其简洁明了的语法和强大的标准库,成为许多开发者的首选语言。而在高级开发中,元编程(Metaprogramming)是一个非常强大的工具,可以极大地提升代码的灵活性和可复用性。本文将深入探讨Python中的元编程ÿ…...
![](https://img-blog.csdnimg.cn/direct/e1ac7848e7f34647bf44c6ad81bde59a.png)
MaxKb/open-webui+Ollama运行模型
准备:虚拟机:centos7 安装Docker:首先,需要安装Docker,因为Ollama和MaxKB都是基于Docker的容器。使用以下命令安装Docker: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum…...
![](https://img-blog.csdnimg.cn/direct/4176eb11bb614a7eb7a5af5597683071.png)
2-requests模块(6节课学会爬虫)
2-requests模块(6节课学会爬虫) 1,安装requests2,发送get,post请求,获取响应3,response的方法方法一(Response.text)方法二(response.content.decode()&#…...
![](https://img-blog.csdnimg.cn/direct/1b795d783df342eb931df7e8dc183e6f.png)
小程序下拉刷新,加载更多数据,移动端分页
文章目录 页面结构图WXML页面代码js代码wxss代码总结备注 参考:https://juejin.cn/post/7222855604406796346 页面结构图 一般页面就4个结构:最外滚动层、数据展示层、暂无数据层、没有更多数据层。 如图: WXML页面代码 <scroll-view …...
![](https://img-blog.csdnimg.cn/direct/95f0d59eeb244e81abe8e6ba26265bc5.png)
昇思25天学习打卡营第11天|基于MindSpore通过GPT实现情感分类
学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) 基于MindSpore通过GPT实现情感分类 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号 !pip uninsta…...
![](https://img-blog.csdnimg.cn/direct/e398cea437e64c5d88da9a5ca94ad16c.png)
【C++】map和set
目录 关联式容器 树形结构的关联式容器 set set的使用 map map的使用 multiset和multimap multiset multimap 关联式容器 在以前我们学到的vector/list/deque等容器,它们只是单纯存储数据,存储的数据和数据之间没什么关联,它们都属…...
![](https://www.ngui.cc/images/no-images.jpg)
打卡第二十七天 455分发饼干 376摆动序列
第一题: 原题链接:455. 分发饼干 - 力扣(LeetCode) 思路: 将大的饼干来满足胃口大的孩子。 先将小孩子的胃口和饼干的尺寸进行排序。然后从后往前遍历胃口,饼干的尺寸也从后往前。如果饼干尺寸大于等于…...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序文件结构示例
微信小程序文件结构示例 miniprogram │ ├── app.js // 小程序逻辑 ├── app.json // 全局配置 ├── app.wxss // 全局样式 │ ├── pages // 页面文件夹 │ ├── index // 首页 │ │ ├── index.js // 页面逻辑 │ │ ├── index.json // 页面配置 │ │ ├─…...
![](https://i-blog.csdnimg.cn/direct/b0e50dee7261445192febf49ac28e3f0.png)
小米平板6系列对比
小米平板6系列目前有4款,分别为6、6 Pro、6 Max、6S Pro。具体对比如下表所示。 小米平板型号66 Pro6 Max6S Pro实物图发布时间2023年4月21日2023年4月21日2023年8月14日2024年2月22 日屏幕大小11英寸11英寸14英寸12.4英寸分辨率2.8K2.8K2.8K3K刷新率144Hz144Hz120…...
![](https://www.ngui.cc/images/no-images.jpg)
sdbusplus:通过文件描述符传递数据
有的时候需要传递大量的数据,如果将数据通过dbus传递,会消耗大量的带宽。可以通过传递一个文件描述符替代传递数据: 以下的service通过文件描述符接收数据: //fd_service.cpp #include <sdbusplus/asio/connection.hpp> #include <sdbusplus/asio/object_server…...
![](https://img-blog.csdnimg.cn/direct/fc8c1e06b35249bc90b6f5ccc736f49d.png)
Facebook开户 | 如何检查公共主页的状态
想要了解你的Facebook公共主页的状态吗? Facebook公共主页是让广告主与粉丝互动、传播信息的绝佳平台,但是大家知道如何检查并维护自己的主页状态吗?别担心,Facebook提供了一系列简单易用的工具来帮助大家实现这一目标。 *Page Q…...
![](https://img-blog.csdnimg.cn/direct/12a091285aba4792bcf7530616aef2de.png)
端口扫描利器--nmap
目录 普通扫描 几种指定目标的方法 TCP/UDP扫描 端口服务扫描 综合扫描 普通扫描 基于端口连接并响应(真实) nmap -sn 网段(0/24)-sn 几种指定目标的方法 单个IP扫描 IP范围扫描 扫描文件里的IP 扫描网段,(排除某IP) 扫描网段(排除某清单IP) TCP/UDP扫描 -sS …...
![](https://www.ngui.cc/images/no-images.jpg)
2024-03-23青少年软件编程(Python语言)等考(五级)解析
2024-03-23青少年软件编程(Python语言)等考(五级)解析一、单选题(共25题,共50分) 1.以下代码的输出结果是?( A ) nums = list(range(100, 201)) print(nums[::10]) A.[100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200] B.[100, 101, 102, 103, 104, 105, 106…...
![](https://img-blog.csdnimg.cn/direct/b9a11e0547fa4088bb0f2378c3f32cb4.png)
ModuleNotFoundError: No module named ‘qcloud_cos‘
这个错误表示Python无法找到名为qcloud_cos的模块。qcloud_cos是腾讯云提供的一个Python SDK,用于与腾讯云对象存储(COS)服务进行交互。 使用pip安装qcloud_cos报以下错误 解决办法 pip3 install cos-python-sdk-v5...
![](https://rmrbcmsonline.peopleapp.com/upload/rmh/voice/202405/9b9707c23e00fba98843c1c3f2bcc3c9.jpg?x-oss-process=image/auto-orient,1)
这些趣味科学小故事,让孩子从小爱上数理化,快收藏!
在我们的日常生活中,无论是洗碗时看到的泡沫,还是在公园里看到的彩虹,背后都隐藏着无数的科学奥秘。这些现象虽然看似平常,却都深深扎根于数理化的基本原理中。生活中一些常见的问题,也能通过转化成数理化的问题来解决。那么在现实生活中,数理化是如何帮助我们解决问题的…...