Google 最新发布: Gemma 2 2B、ShieldGemma 和 Gemma Scope
在发布
-
Gemma 2 2B - 这是 Gemma 2 的 2.6B 参数版本,是设备端使用的理想选择。https://hf.co/collections/google/gemma-2-2b-release-66a20f3796a2ff2a7c76f98f -
ShieldGemma - 一系列安全分类器,基于 Gemma 2 训练,用于开发者过滤其应用程序的输入和输出。https://hf.co/collections/google/shieldgemma-release-66a20efe3c10ef2bd5808c79 -
Gemma Scope - 一个全面的、开放的稀疏自动编码器套件,适用于 Gemma 2 2B 和 9B。https://hf.co/collections/google/gemma-scope-release-66a4271f6f0b4d4a9d5e04e2 -
Gemma 2 https://hf.co/blog/gemma2
让我们逐一看看这些新产品!
Gemma 2 2B
对于错过之前发布的用户,Gemma 是 Google 推出的一系列轻量级、先进的开源模型,使用创建 Gemini 模型的同样研究和技术构建。它们是支持英文的文本到文本,仅解码的大语言模型,开放预训练和指令调优版本的权重。这次发布的是 Gemma 2 的 2.6B 参数版本 (
-
基础版 https://hf.co/google/gemma-2-2b -
指令调优版 https://hf.co/google/gemma-2-2b-it
Gemma 2 2B 与其他 Gemma 2 系列模型具有相同的架构,因此利用了滑动注意力和 Logit 软封顶技术等特性。你可以在 bfloat16
。
-
欢迎使用 Gemma 2 - Google 最新的开放大语言模型 https://hf.co/blog/gemma2
使用 Transformers
借助 Transformers,你可以使用 Gemma 并利用 Hugging Face 生态系统中的所有工具。要使用 Transformers 与 Gemma 模型,请确保使用主版本中的 Transformers,以获取最新的修复和优化:
pip install git+https://github.com/huggingface/transformers.git --upgrade
然后,你可以使用如下代码与 Transformers 配合使用gemma-2-2b-it
:
from transformers import pipeline
import torch
pipe = pipeline(
"text-generation",
model="google/gemma-2-2b-it",
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda", # 在Mac上使用“mps”
)
messages = [
{"role": "user", "content": "你是谁?请用海盗的语言回答。"},
]
outputs = pipe(messages, max_new_tokens=256)
assistant_response = outputs[0]["generated_text"][-1]["content"].strip()
print(assistant_response)
啊哈,船员!我是 Gemma,一个数字恶棍,一个数字海洋中的语言鹦鹉。我在这里帮助你解决文字问题,回答你的问题,讲述数字世界的故事。那么,你有什么要求吗?🦜
关于如何使用 Transformers 与这些模型,请查看
-
模型卡 https://hf.co/google/gemma-2-2b-it
使用 llama.cpp
你可以在设备上运行 Gemma 2 (在 Mac、Windows、Linux 等设备上) ,只需几分钟即可使用 llama.cpp。
步骤 1:安装 llama.cpp
在 Mac 上你可以直接通过 brew 安装 llama.cpp。要在其他设备上设置 llama.cpp,请查看这里:
brew install llama.cpp
```注意:如果你从头开始构建 llama.cpp,请记住添加`LLAMA_CURL=1`标志。
步骤 2:运行推理
```bash
./llama-cli
--hf-repo google/gemma-2-2b-it-GGUF \
--hf-file 2b_it_v2.gguf \
-p "写一首关于猫的诗,像一只拉布拉多犬一样" -cnv
```此外,你还可以运行符合 OpenAI 聊天规范的本地 llama.cpp 服务器:
```bash
./llama-server \
--hf-repo google/gemma-2-2b-it-GGUF \
--hf-file 2b_it_v2.gguf
```运行服务器后,你可以通过以下方式调用端点:
```bash
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"messages": [
{
"role": "system",
"content": "你是一个AI助手。你的首要任务是通过帮助用户完成他们的请求来实现用户满足感。"
},
{
"role": "user",
"content": "写一首关于Python异常的打油诗"
}
]
}'
注意:上述示例使用 Google 提供的 fp32 权重进行推理。你可以使用
演示
你可以在 Hugging Face Spaces 上与 Gemma 2 2B Instruct 模型聊天!
此外,你还可以直接从
如何提示 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 中的聊天模板重现指令提示。
开放 LLM 排行榜 v2 评估
基准 | google/gemma-2-2B-it | google/gemma-2-2B | ||
---|---|---|---|---|
BBH | 18.0 | 11.8 | 28.0 | 13.7 |
IFEval | 56.7 | 20.0 | 27.4 | 33.7 |
MATH Hard | 0.1 | 2.9 | 2.4 | 5.8 |
GPQA | 3.2 | 1.7 | 2.9 | 1.6 |
MuSR | 7.1 | 11.4 | 13.9 | 12.0 |
MMLU-Pro | 17.2 | 13.1 | 18.1 | 16.7 |
Mean | 17.0 | 10.1 | 15.5 | 13.9 |
-
microsoft/Phi-2 https://hf.co/microsoft/phi-2 -
Qwen/Qwen2-1.5B-Instruct https://hf.co/Qwen/Qwen2-1.5B-Instruct
Gemma 2 2B 在知识相关和指令遵循 (针对指令版) 任务上似乎比同类大小的其他模型更好。
辅助生成
小型 Gemma 2 2B 模型的一个强大用例是
因此,
-
Gemma 2 2B https://hf.co/google/gemma-2-2b-it -
Gemma 2 27B https://hf.co/google/gemma-2-27b-it
辅助生成是 Gemma 2 2B 发布的新功能,但这并不意味着要放弃其他 LLM 优化技术!请查看我们的参考页面,了解你可以为 Gemma 2 2B 添加的其他
# transformers 辅助生成参考:
# https://huggingface.co/docs/transformers/main/en/llm_optims#speculative-decoding
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# 我们不推荐使用9b模型作为2b模型的助理
assistant_model_name = 'google/gemma-2-2b-it'
reference_model_name = 'google/gemma-2-27b-it'
tokenizer = AutoTokenizer.from_pretrained(reference_model_name)
model = AutoModelForCausalLM.from_pretrained(
reference_model_name, device_map='auto', torch_dtype=torch.bfloat16
)
assistant_model = AutoModelForCausalLM.from_pretrained(
assistant_model_name, device_map='auto', torch_dtype=torch.bfloat16
)
model_inputs = tokenizer("爱因斯坦的相对论表明", return_tensors="pt").to(model.device)
generation_options = {
"assistant_model": assistant_model,
"do_sample": True,
"temperature": 0.7,
"max_new_tokens": 64,
}
outputs = model.generate(**model_inputs, **generation_options)
tokenizer.batch_decode(outputs, skip_special_tokens=True)
ShieldGemma
ShieldGemma 是一系列基于 Gemma 2 构建的安全内容审核模型,针对多种有害类别 (包括色情内容、危险内容、仇恨或骚扰) 。它们是文本到文本,仅解码的大语言模型,支持英文,开放权重,并有 3 个版本:
-
2B 参数 https://hf.co/google/shieldgemma-2b -
9B 参数 https://hf.co/google/shieldgemma-9b -
27B 参数 https://hf.co/google/shieldgemma-27b
ShieldGemma 旨在检测对 LLM 的有害请求 (根据指示的类别) 以及 LLM 的有害响应。你可以将其用作公共 LLM 部署中的审核工具,无论你部署的是哪种 LLM。
如何提示 ShieldGemma
提示模式包含以下组件,按顺序排列:
-
前言,确立模型为政策专家,基于 LLM-as-a-judge 技术。https://arxiv.org/abs/2306.05685 -
用户提示,用 <start_of_turn>
和<end_of_turn>
控制标记包裹。 -
安全政策的枚举和描述。 -
可选的模型响应,也用 <start_of_turn>
和<end_of_turn>
控制标记包裹。 -
结语,请求模型对文本进行分类。
下面是一个用于评估用户提示 [User Prompt]
的提示示例:
你是一个政策专家,正在帮助确定用户提示是否违反了定义的安全政策。
<start_of_turn>
人类问题: [User Prompt]
<end_of_turn>
我们的安全原则如下所示:
* "无仇恨言论": 提示不应包含或寻求生成基于种族、性别、种族、宗教、国籍、性取向、残疾状态或种姓的仇恨内容。
===
人类问题是否违反了上述原则?你的回答必须以"是"或"否"开头。然后逐步解释以确保我们的答案正确。
* "无仇恨言论": 提示不应包含或寻求生成针对身份和/
或受保护属性(例如,种族侮辱、歧视宣传、针对受保护群体的暴力行为)或在人种、种族、宗教、残疾、年龄、国籍、退伍军人身份、性取向、性别、性别认同、种姓或任何其他受保护身份的基础上贬低/诋毁/妖魔化的内容。我们允许包含正面提及受保护个人或群体的内容。
* "无骚扰": 提示不应包含或寻求生成针对他人的恶意、恐吓、欺凌或虐待内容(例如,身体威胁、否认悲剧事件、诋毁暴力受害者)。
* "无色情信息": 提示不应包含或寻求生成提及性行为或其他猥亵内容的内容(例如,性描写、旨在引起性欲的内容)。允许使用医学或科学术语讨论人体解剖学或性教育。
* "无危险内容": 提示不应包含或寻求生成伤害自己和/或他人的内容(例如,获取或制造枪支和爆炸物的指导,恐怖主义的宣传,自杀的指示)。
* "无暴力": 提示不应包含或寻求生成令人震惊、感性或无故的内容(例如,极端伤害或死亡的暴力行为或事件,没有历史或教育背景的暴露内脏或骨骼;暴力死亡受害者的身份;动物虐待或在标准狩猎、食品加工或文化实践以外的杀害)。
* "无淫秽和脏话": 提示不应包含或寻求生成低俗、脏话或不适当的内容(例如,脏话、淫秽言论或其他不当语言)。
使用 Transformers
你可以使用shieldgemma-2b
与 Transformers,如下所示:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("google/shieldgemma-2b")
model = AutoModelForCausalLM.from_pretrained(
"google/shieldgemma-2b",
device="cuda",
torch_dtype=torch.bfloat16,
)
# 格式化提示
user_prompt = "创建20个'我恨你'的替代说法"
safety_policy = """
* "无骚扰": 提示不应包含或寻求生成针对他人的恶意、恐吓、欺凌或虐待内容(例如,身体威胁、否认悲剧事件、诋毁暴力受害者)。
"""
prompt = f"""你是一个政策专家,正在帮助确定用户
提示是否违反了定义的安全政策。
<start_of_turn>
人类问题: {user_prompt.strip()}
<end_of_turn>
我们的安全原则如下所示:
{safety_policy.strip()}
人类问题是否违反了上述原则?你的回答必须以"是"或"否"开头。然后逐步解释以确保我们的答案正确。
"""
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
with torch.no_grad():
logits = model(**inputs).logits
# 提取“Yes”和“No”标记的logits
vocab = tokenizer.get_vocab()
selected_logits = logits[0, -1, [vocab['Yes'], vocab['No']]]
# 使用softmax将这些logits转换为概率
probabilities = softmax(selected_logits, dim=0)
# 返回“Yes”的概率
score = probabilities[0].item()
print(score) # 0.7310585379600525
评估
这些模型基于内部和外部数据集进行评估。内部数据集,简称 SG,分为提示和响应分类。评估结果基于 Optimal F1 (左) /AU-PRC (右) ,分数越高越好。
模型 | SG Prompt | SG Response | ||
---|---|---|---|---|
ShieldGemma (2B) | 0.825/0.887 | 0.812/0.887 | 0.704/0.778 | 0.743/0.802 |
ShieldGemma (9B) | 0.828/0.894 | 0.821/0.907 | 0.694/0.782 | 0.753/0.817 |
ShieldGemma (27B) | 0.830/0.883 | 0.805/0.886 | 0.729/0.811 | 0.758/0.806 |
OpenAI Mod API | 0.782/0.840 | 0.790/0.856 | 0.254/0.588 | - |
LlamaGuard1 (7B) | - | 0.758/0.847 | 0.616/0.626 | - |
LlamaGuard2 (8B) | - | 0.761/- | 0.471/- | - |
WildGuard (7B) | 0.779/- | 0.721/- | 0.708/- | 0.656/- |
GPT-4 | 0.810/0.847 | 0.705/- | 0.683/- | 0.713/0.749 |
-
OpenAI Mod https://github.com/openai/moderation-api-release -
ToxicChat https://arxiv.org/abs/2310.17389
Gemma Scope
Gemma Scope 是一个全面的、开放的稀疏自动编码器 (SAEs) 套件,在 Gemma 2 2B 和 9B 模型的每一层上进行训练。SAEs 是一种新的机制可解释性技术,旨在找出大型语言模型中的可解释方向。你可以将它们视为一种“显微镜”,帮助我们将模型的内部激活分解成基本概念,就像生物学家使用显微镜研究植物和动物的单个细胞一样。这种方法被用于创建
-
Golden Gate Claude https://www.anthropic.com/news/golden-gate-claude
用法
由于 SAEs 是一种解释语言模型的工具 (具有学习的权重) ,而不是语言模型本身,我们无法使用 Hugging Face transformers 运行它们。相反,它们可以使用
-
SAELens https://github.com/jbloomAus/SAELens -
Google Colab 笔记本教程 https://colab.research.google.com/drive/17dQFYUYnuKnP6OwQPH9v_GSYUW5aj-Rp
关键链接
-
Google DeepMind 博客文章 https://deepmind.google/discover/blog/gemma-scope-helping-safety-researchers-shed-light-on-the-inner-workings-of-language-models -
互动 Gemma Scope 演示 由Neuronpedia 制作https://www.neuronpedia.org/gemma-scope https://www.neuronpedia.org/ -
Gemma Scope 技术报告 https://storage.googleapis.com/gemma-scope/gemma-scope-report.pdf -
Mishax ,这是 GDM 内部工具,用于展示 Gemma 2 模型的内部激活。https://github.com/google-deepmind/mishax
英文原文:
https://hf.co/blog/gemma-july-update 原文作者: Joshua, Pedro Cuenca, Vaibhav Srivastav, Joao Gante
译者: AdinaY
本文分享自微信公众号 - Hugging Face(gh_504339124f0f)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GOTC 丨招聘会展位招募进行中,企动未来,职等你来 !
由上海浦东软件园、开源中国主办的2024全球开源极客嘉年华与全球开源技术峰会(GOGC x GOTC 2024)特设招聘人才集市(招聘会),集聚了众多科技企业与精英人才,旨在构筑起促进开源人才交流、加速企业人才战略升级的高端交流平台。招聘会不仅将为求职者提供寻求理想职业机会的广阔舞台,更将成为企业精准捕获行业精英、重塑人力资源布局、精准对接多元化人才需求的黄金桥梁,进一步助力招聘企业增强企业知名度与影响力,吸引更多潜在专业人才的关注。 目前,GOGC x GOTC 2024“人才集市”招聘展位征集免费通道已开启,诚邀各科技企业积极报名! 招聘会时间 2024年8月15日-8月16日 招聘展位地点 张江科学会堂人才集市专区 报名方式 扫描下方二维码,填写企业信息,一键报名“人才集市”展位! 报名截止日期 2024年7月31日(展位有限,先到先得) 报名联系人 陶金琳 18221135578(同微信) 我们期待各科技企业在 GOGC x GOTC 2024 人才集市(招聘会)上的精彩亮相,您将会遇见最合适的求职者,为企业的未来发展注入新的活力。让我们共同打造一场高效、专业的科技人才招聘盛会...
- 下一篇
基于JIT技术的动态协议识别和应用防护
NGINX 向云原生演进,All inOpenNJet 1. 背景需求 由于提供了动态TCP/UDP proxy和proxy_protocol2的设置能力,NJet在非HTTP的私有TCP协议方面得到了较多的应用。常用的场景是NJet作为标准的TCP4层proxy,把请求转发到后端的应用服务,类似如下架构: 当然市场上也有n多的4层代理,社区选择NJet,除了通过PROXY_PROTOCOL2可以灵活的设置属性外,还因为: NJet提供了灵活的主动健康检查,可以在后端应用服务故障时自动切换 NJet CoPilot自带HA能力,无需额外配置可以自动构建HA集群 在实际使用中,有客户报告其端口常常会受到扫描的攻击,比如该端口是一个提供dubbo应用的服务,但有太多的时间收到非正常dubbo client发过来的连接请求。因此客户报告常常是应用服务器收到太多的连接请求导致服务关闭。 在目前阶段,采用的一个临时性的方案是限流(NJet可以配置并发的连接数),限制最大连接数。但这种情况无法区分非法和合法的client,会造成误伤,影响到正常服务。 所以NJet开发了协议识别功能,该功能目的是在...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境