网站搜索优化,西安网站建设设计的好公司,网站设计与建设第一章,网站伪静态怎么设置ChatGLM3介绍
ChatGLM3是由智谱AI和清华大学KEG实验室联合发布的对话预训练模型。作为第三代大型语言模型#xff0c;ChatGLM3不仅理解和生成人类语言#xff0c;还能执行代码、调用工具#xff0c;并以markdown格式进行响应。其目标是打造更智能、更安全的代码解释器和工具…ChatGLM3介绍
ChatGLM3是由智谱AI和清华大学KEG实验室联合发布的对话预训练模型。作为第三代大型语言模型ChatGLM3不仅理解和生成人类语言还能执行代码、调用工具并以markdown格式进行响应。其目标是打造更智能、更安全的代码解释器和工具使用体验。
ChatGLM3在性能上取得了显著的提升。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示ChatGLM3具有在10B以下的基础模型中最强的性能。与ChatGLM二代模型相比在44个中英文公开数据集测试中ChatGLM3在国内同尺寸模型中排名首位其中MMLU提升36%、CEval提升33%、GSM8K提升179%、BBH提升126%。
ChatGLM现在开源的最高版本就是3.0版本发布版最高已经到了4.0版本。 ChatGLM.cpp介绍
ChatGLM.cpp是一个由li-plus开发并托管在GitCode上的开源项目它基于Transformer架构致力于提供高效、灵活且强大的自然语言理解和生成能力。
ChatGLM.cpp的主要亮点包括
基于ggml的纯C实现与llama.cpp的工作方式相同这使得它在性能优化方面具有显著优势。采用了int4/int8量化的内存高效CPU推理加速技术并优化了KV缓存和并行计算进一步提升了模型的推理速度和效率。支持带打字机效果的流生成使得生成的文本更加自然流畅。
编译安装ChatGLM.cpp
下载ChatGLM.cpp
git clone --recursive https://github.com/li-plus/chatglm.cpp.git cd chatglm.cpp
编译ChatGLM.cpp
cmake -B build
cmake --build build -j --config Release
用python 转pytorch模型到ggml格式
安装库
python3 -m pip install -U pip
python3 -m pip install torch tabulate tqdm transformers accelerate sentencepiece
# pip install sentencepiece
下载模型
如果hf不好下载可以去星河社区下载chatglm2-6b_数据集-飞桨AI Studio星河社区
也可以到启智社区下载kmno4/ChatGLM3 - ChatGLM3 - OpenI - 启智AI开源社区提供普惠算力
下载之后放置到~/model/chatglm2 目录然后执行转换
转换模型
# cd chatglm.cpp
python3 chatglm_cpp/convert.py -i ~/model/chatglm2 -t q4_0 -o chatglm-ggml.bin
但是转模型需要torch这点不如llama.cpp好llama.cpp是纯c转换。所以前面的库需要装全。
运行模型
前面已经将ggml模型保存在chatglm.cpp目录现在只需要执行
./build/bin/main -m chatglm-ggml.bin -p 你好
# 你好我是人工智能助手 ChatGLM-6B很高兴见到你欢迎问我任何问题。# 使用-i参数进入交互模式
./build/bin/main -m chatglm-ggml.bin -i
运行结果
Welcome to ChatGLM.cpp! Ask whatever you want. Type clear to clear context. Type stop to exit.Prompt hello
ChatGLM3 Hello! How can I help you today?
Prompt 树上7个鸟打死一只还有几只
ChatGLM3 如果你打死一只鸟其它的鸟很可能会被吓飞。因此在打这样您就可以份树上的鸟的情况下可能一只都不剩。可以看到针对树上7只鸟打死一只这样的脑筋急转弯ChatGLM3回答正确效果非常好。一年时间我们的ChatGLM长大了 调试
转换模型的时候报错 vocab {self._convert_id_to_token(i): i for i in range(self.vocab_size)} File /home/linuxskywalk/.cache/huggingface/modules/transformers_modules/chatglm2/tokenization_chatglm.py, line 108, in vocab_size return self.tokenizer.n_words AttributeError: ChatGLMTokenizer object has no attribute tokenizer. Did you mean: tokenize?
问题解决参见这个issueAttributeError: ChatGLMTokenizer object has no attribute tokenizer · Issue #1835 · chatchat-space/Langchain-Chatchat · GitHub
降低transformer版本即可pip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers4.33.2