大模型实践笔记(1)——GLM-6B实践

21 篇文章 1 订阅
5 篇文章 0 订阅

目录

在Ubuntu上的配置Git Large File Storage

安装Git LFS:

设置Git LFS:

使用Git LFS:

安装GLM-6B 

环境依赖

 ChatGLM2-6B介绍

配置GLM

下载代码

 构建环境

安装依赖 

本地部署 

网页UI 


很多模型在hugging face上面,我们一般采用远程的文件指针形式

在Ubuntu上的配置Git Large File Storage

  1. 安装Git LFS

    • 在大多数Linux发行版上,您可以使用包管理器来安装Git LFS。例如,在基于Debian的系统上(如Ubuntu),您可以使用以下命令:
      sudo apt-get update sudo apt-get install git-lfs
    • 对于其他操作系统或者如果您希望使用不同的安装方法,可以访问Git LFS的官方网站获取更详细的安装指南:Git LFS 官方网站。
  2. 设置Git LFS

    • 安装完成后,您需要设置Git LFS。在您的仓库目录中运行以下命令来初始化Git LFS:
      git lfs install
    • 这个命令会设置必要的Git钩子(hooks),以便Git LFS可以管理大文件。
  3. 使用Git LFS

    • 您可以开始使用Git LFS来追踪大文件了。例如,如果您想追踪所有的 .bin 文件,您可以使用以下命令:
      git lfs track "*.bin"
    • 然后,您可以像平常一样使用 git addgit commit 命令提交您的更改。
    • 当您克隆一个使用Git LFS的仓库时,您可能需要使用 git lfs pull 命令来拉取存储在LFS中的大文件。

安装GLM-6B 

在主要评估LLM模型中文能力的 C-Eval 榜单中,截至6月25日 ChatGLM2 模型以 71.1 的分数位居 Rank 0 ,ChatGLM2-6B 模型以 51.7 的分数位居 Rank 6,是榜单上排名最高的开源模型。

环境依赖

  • CUDA 11.7

  • Python 3.10

  • pytorch 1.13.1+cu117

 ChatGLM2-6B介绍

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

  • 更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。

  • 更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。

  • 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。

  • 更开放的协议:ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。如果您发现我们的开源模型对您的业务有用,我们欢迎您对下一代模型 ChatGLM3 研发的捐赠。

配置GLM

下载代码

 $ git clone https://github.com/THUDM/ChatGLM2-6B

 构建环境

$ conda create -n GLM python=3.10       # 创建新环境
$ conda activate GLM                    # 激活环境

安装依赖 

 $ cd ChatGLM2-6B
 $ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

本地部署 

$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm2-6b

模型的实现仍然处在变动中。如果希望固定使用的模型实现以保证兼容性,可以在 from_pretrained 的调用中增加 revision="v1.0" 参数。v1.0 是当前最新的版本号,完整的版本列表参见 Change Log。

Cli测试

修改cli_demo.py

$ python cli_demo.py

首先,你需要下载 Chat-GLM-6B-Int4 模型文件和相应的配置文件。然后,你需要在你的 Linux 系统上安装 PyTorch 和 Transformers 库。你可以使用以下命令安装这两个库: ``` pip install torch pip install transformers ``` 接下来,你需要编写一个 Python 脚本来部署 Chat-GLM-6B-Int4 模型。你可以使用以下代码作为脚本的基础: ```python import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel # 加载模型和分词器 tokenizer = GPT2Tokenizer.from_pretrained('chat-glm-6b-int4/config') model = GPT2LMHeadModel.from_pretrained('chat-glm-6b-int4/model') # 指定设备 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) # 对话循环 while True: # 获取用户输入 user_input = input("You: ") # 把用户输入转换成模型的输入格式 input_ids = tokenizer.encode(user_input, return_tensors='pt').to(device) # 在模型上生成回复 output = model.generate(input_ids, max_length=1000, do_sample=True, temperature=0.7) response = tokenizer.decode(output[0], skip_special_tokens=True) # 输出回复 print("Chat-GLM-6B-Int4: " + response) ``` 在这个脚本中,我们首先加载 Chat-GLM-6B-Int4 模型和相应的分词器。然后,我们检查可用的设备并将模型移动到相应的设备上。最后,我们开始一个对话循环,其中用户输入被转换为模型的输入格式,并在模型上生成回复。回复被解码并输出给用户。 注意,这个脚本只是一个基础示例,你需要根据你的具体需求进行修改。例如,你可能需要添加一个 Web 接口来允许用户通过浏览器与 Chat-GLM-6B-Int4 进行交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值