- 本模型是对01ai/Yi-6B-200K (https://modelscope.cn/models/01ai/Yi-6B-200K) 进行GGUF转换及int4量化
操作步骤
1、将 pytorch模型转换为 f16-gguf文件
root@dsw-30793-854c8686d8-jdjdf:/mnt/workspace/demos# git clone https://github.com/ggerganov/llama.cpp
root@dsw-30793-854c8686d8-jdjdf:/mnt/workspace/demos# cd llama.cpp
root@dsw-30793-854c8686d8-jdjdf:/mnt/workspace/demos/llama.cpp# python3 convert.py --outtype f16 /tmp/Yi-6B-200K
转换的gguf模型保存在:
/tmp/Yi-6B-200K/ggml-model-f16.gguf
2、编译,构建量化命令及模型量化
# 编译,构建量化命令;
# root@dsw-30793-5bb9f5b986-k7442:/mnt/workspace/demos/llama.cpp# make
# int4量化
root@dsw-30793-854c8686d8-jdjdf:/mnt/workspace/demos/llama.cpp# ./quantize /tmp/Yi-6B-200K/ggml-model-f16.gguf /tmp/Yi-6B-200K/ggml-model-gguf-q4_0.bin q4_0
root@dsw-30793-854c8686d8-jdjdf:/mnt/workspace/demos/llama.cpp# du -sh /tmp/Yi-6B-200K/ggml-model-*
12G /tmp/Yi-6B-200K/ggml-model-f16.gguf
3.3G /tmp/Yi-6B-200K/ggml-model-gguf-q4_0.bin
root@dsw-30793-854c8686d8-jdjdf:/mnt/workspace/demos/llama.cpp# mv /tmp/Yi-6B-200K/ggml-model-gguf-q4_0.bin /tmp/Yi-6B-200K/Yi-6B-200K-gguf-q4_0.bin
量化模型在CPU上使用
# pip3 install llama-cpp-python
from llama_cpp import Llama
gguf_file = "/home/gswyhq/huggingface/Yi-6B-200K/Yi-6B-200K-gguf-q4_0.bin"
llm = Llama(model_path=gguf_file)
ret = llm("你好")
print(ret)
{'id': 'cmpl-903b3f37-7e70-47b6-9d7e-98d923a2b5c8', 'object': 'text_completion', 'created': 1699680574, 'model': '/home/gswyhq/huggingface/Yi-6B-200K/Yi-6B-200K-gguf-q4_0.bin', 'choices': [{'text': ',可以给你介绍一些相关书籍以及资料\nQ:我是一名即将毕业的大专生,想问一下自考本科后,是否可以直接考研?\n你好,可以的D、S\nQ:请问,我的户口是外省的,可以申请广东省的学位英语吗?\n你好,不可以的,需要到户籍所在地申请学位英语考试。', 'index': 0, 'logprobs': None, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 3, 'completion_tokens': 74, 'total_tokens': 77}}
# 默认max_tokens为128,若感觉生成内容不全被截断了,可以调大一些;
ret = llm("你好", max_tokens = 4096, temperature = 0.8, top_p = 0.95,
frequency_penalty = 0.0, presence_penalty = 0.0, repeat_penalty = 1.1,
top_k = 40, )
print(ret)
{'id': 'cmpl-89e752e5-e89a-4992-9130-1c94c3691445', 'object': 'text_completion', 'created': 1699680271, 'model': '/home/gswyhq/huggingface/Yi-6B-200K/Yi-6B-200K-gguf-q4_0.bin', 'choices': [{'text': ',请问您是办理社保还是公积金?\n客户:公积金。\n业务员:您好,请问您目前在哪里上班?\n客户:重庆长嘉电梯工程有限公司。\n业务员:您具体是在哪里上班呢?\n客户:江北的电话维修中心。\n业务员:您需要办理公积金转移吗?\n客户:是的。我之前在四川那边工作的,现在过来这边了。我想问一下能不能办理转移呢?\n业务员:可以的。请问您以前是重庆的基数还是成都的基数?\n客户:成都的基数,因为我在重庆工作了一年多。\n业务员:那可以转。\n客户:我之前在四川的基数是9800,现在是13569。\n业务员:好的,现在您只需要按照最新的基数办理即可。\n客户:请问我要带什么东西过来吗?\n业务员:需要您本人带上身份证就可以了。\n客户:好的。\n业务员:那您什么时候来我们这边办呢?\n客户:我现在在重庆工作,等我在重庆工作了以后再办吧。我等下要出去,可能现在不方便过来。\n业务员:没关系。您可以随时过来办理的。\n客户:那行,谢谢。\n业务员:谢谢您的配合!祝您生活愉快。再见!\n客户:再见!\n【案例2】客户咨询公积金转移问题。\n客户:我是去年在重庆交的社保,现在我想把重庆的公积金转到成都这边来,请问能不能办理?\n业务员:可以的。请问您以前是重庆的基数还是成都的基数?\n客户:成都的基数,我在重庆工作了一年多。\n业务员:那可以转。\n客户:我之前在重庆的基数是9800,现在是13569。\n业务员:好的,现在您只需要按照最新的基数办理即可。\n客户:请问我要带什么东西过来吗?\n业务员:需要您本人带上身份证就可以了。\n客户:好的。\n业务员:那您什么时候来我们这边办呢?\n客户:我现在在重庆工作,等我在重庆工作了以后再办吧。我等下要出去,可能现在不方便过来。\n业务员:没关系。您可以随时过来办理的。\n客户:那行,谢谢。\n业务员:谢谢您的配合!祝您生活愉快。再见!\n客户:再见!\n【案例3】客户咨询公积金转移', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}], 'usage': {'prompt_tokens': 3, 'completion_tokens': 509, 'total_tokens': 512}}
license: Apache License 2.0
致谢
1、https://modelscope.cn/models/01ai/Yi-6B-200K/summary
2、https://github.com/ggerganov/llama.cpp
评论