Gemma
Gemma是由Google DeepMind基于Gemini研究和技术开发的一系列开放权重大型语言模型(LLM)。
本仓库包含基于Flax和JAX的推理实现和示例。
了解更多关于Gemma的信息
- Gemma技术报告(v1和v2)详细介绍了模型的能力。
- 访问https://ai.google.dev/gemma获取教程、其他机器学习框架的参考实现等更多信息。
快速开始
安装
-
安装Gemma需要使用Python 3.10或更高版本。
-
为CPU、GPU或TPU安装JAX。按照JAX网站上的说明进行操作。
-
运行以下命令:
python -m venv gemma-demo
. gemma-demo/bin/activate
pip install git+https://github.com/google-deepmind/gemma.git
下载模型
模型检查点可在Kaggle上获取,网址为http://kaggle.com/models/google/gemma。选择一个Flax模型变体,点击⤓按钮下载模型存档,然后将内容解压到本地目录。
或者,访问Hugging Face Hub上的gemma模型。如果安装了huggingface_hub,可以运行以下代码下载模型:
from huggingface_hub import snapshot_download
local_dir = snapshot_download(repo_id="google/gemma-2b-flax")
snapshot_download(repo_id="google/gemma-2b-flax", local_dir=local_dir)
在这两种情况下,存档都包含模型权重和分词器,例如2b Flax变体包含:
2b/ # 包含模型权重的目录
tokenizer.model # 分词器
运行单元测试
要运行单元测试,请安装可选的[test]依赖项(例如,在源代码树的根目录使用pip install -e .[test]),然后运行:
pytest .
注意,默认情况下会跳过sampler_test.py中的测试,因为Gemma源代码中没有分发分词器。要运行这些测试,请按照上述说明下载分词器,并使用tokenizer.model的路径更新sampler_test.py中的_VOCAB常量。
示例
要运行示例采样脚本,请传入权重目录和分词器的路径:
python examples/sampling.py \
--path_checkpoint=/path/to/archive/contents/2b/ \
--path_tokenizer=/path/to/archive/contents/tokenizer.model
还有几个Colab笔记本教程:
-
colabs/sampling_tutorial.ipynb包含一个采样示例的Colab笔记本。
-
colabs/fine_tuning_tutorial.ipynb包含一个基本教程,介绍如何针对特定任务(如英语到法语翻译)微调Gemma。
-
colabs/gsm8k_eval.ipynb是一个包含GSM8K评估参考实现的Colab。
要运行这些笔记本,您需要下载权重和分词器的本地副本(见上文),并使用相应的路径更新ckpt_path和vocab_path变量。
系统要求
Gemma可以在CPU、GPU和TPU上运行。对于GPU,我们建议2B检查点使用8GB+的GPU内存,7B检查点使用24GB+的GPU内存。
贡献
我们欢迎错误报告、拉取请求(PR)和其他贡献。有关PR的详细信息,请参阅CONTRIBUTING.md。
许可证
版权所有 2024 DeepMind Technologies Limited
本代码根据Apache许可证2.0版("许可证")授权;除非符合许可证,否则您不得使用此文件。您可以在http://www.apache.org/licenses/LICENSE-2.0获取许可证副本。
除非适用法律要求或书面同意,根据许可证分发的软件是基于"按原样"的基础分发的,不附带任何明示或暗示的担保或条件。有关许可证下特定语言的权限和限制,请参阅许可证。
免责声明
这不是官方的Google产品。