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** 内存! ![我们的实现上下文图](./images/graphic.png) **特点:** - 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/)