开源推荐
morning
GitHub 热门项目:gemma-2B-10M
2026-06-29
1 阅读
GitHub Trending
GitHub 项目:gemma-2B-10M
仓库地址:https://github.com/mustafaaljadery/gemma-2B-10M
星级:933 | 作者:mustafaaljadery
项目描述:使用 Infini-attention 的具有 10M 上下文长度的 Gemma 2B。
===================================================
自述文件内容:
# Gemma 2B - 10M 上下文
Gemma 2B 具有循环局部注意力,上下文长度高达 10M。我们的实现使用 **<32GB** 内存!

**特点:**
- Gemma 2B 上的序列长度为 10M。
- 运行内存少于 32GB。
- 针对 cuda 优化的本机推理。
- O(N) 记忆的循环局部注意力。
## 快速入门
> **注意:** 这是模型的一个非常早期的检查点。只有200步。我们计划培训更多代币!
安装要求:
````bash
pip install -r 要求.txt
````
从 Huggingface 安装模型 - [Huggingface 模型](https://huggingface.co/mustafaaljadery/gemma-10M-safetensor)。
````bash
蟒蛇主.py
````
将“main.py”推理代码更改为您想要的特定提示。
````蟒蛇
model_path =“./models/gemma-2b-10m”
tokenizer = AutoTokenizer.from_pretrained(model_path)
模型 = GemmaForCausalLM.from_pretrained(
模型路径,
torch_dtype=torch.bfloat16
)
prompt_text = "总结一下这本哈利·波特书..."
使用 torch.no_grad():
生成文本 = 生成(
模型、分词器、prompt_text、max_length=512、温度=0.8
)
打印(生成的文本)
````
## 这是如何工作的?
LLM 的最大瓶颈(就内存而言)是 KV 缓存。它在普通多头注意力中呈二次方增长,从而限制了序列长度的大小。
我们的方法将注意力分割为局部注意力块,如[InfiniAttention](https://arxiv.org/abs/2404.07143)所述。我们采用这些局部注意力块,并将递归应用于局部注意力块,以获得 10M 上下文全局注意力的最终结果。
我们的想法的很多灵感来自于 [Transformer-XL](https://arxiv.org/abs/1901.02860) 论文。
## 更多细节
有关我们的动机、实现细节和工作背后的理论的更多背景信息,请查看我们在 [medium](https://medium.com/@akshgarg_36829/gemma-10m-technical-overview-900adc4fbeeb) 上的技术概述。
## 学分
这是由:
- [穆斯塔法·阿尔贾德里](https://www.maxaljadery.com/)
- [悉达思·夏尔马](https://stanford.edu/~sidshr/)
- [阿克什·加尔格](https://www.linkedin.com/in/aksh-garg/)