|
炸裂!最强开源模型一夜之间易主。 阿里发布千问2.5模型,72B版本在MMLU、MATH、MBPP等大部分评测指标上都超过了Llama3 405B,甚至一些指标也超过了GPT4o。正式加冕最强开源模型新王!
今天要挑战用我的4GB老显卡不做量化、不做压缩,看看能不能跑起来这个72B模型。 
X上边各个国家也都爆发了关于Qwen模型的讨论: 
01 ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-optical-sizing: inherit;font-kerning: inherit;font-feature-settings: inherit;font-variation-settings: inherit;clear: left;color: rgb(25, 27, 31);letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);visibility: visible;">我的4GB老显卡还能用吗?A100,H100暂时还没有购入,主要的原因是穷。 目前主力显卡是一个4GB的老显卡: 

4GB显卡直接尝试运行时,是这个画风: 
02 ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-optical-sizing: inherit;font-kerning: inherit;font-feature-settings: inherit;font-variation-settings: inherit;clear: left;color: rgb(25, 27, 31);letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);visibility: visible;">72B的千问有多大?72B的千问用18T个token训练而成,有80层。加载这个模型大概需要37块我这样的4GB显卡。差得不多。还差36块。 
因此需要想一个办法。 
03 ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-optical-sizing: inherit;font-kerning: inherit;font-feature-settings: inherit;font-variation-settings: inherit;clear: left;color: rgb(25, 27, 31);letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);visibility: visible;">分层推理解决方案就是分层推理,每次只80层中的一层进显存: 
04 ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-optical-sizing: inherit;font-kerning: inherit;font-feature-settings: inherit;font-variation-settings: inherit;clear: left;color: rgb(25, 27, 31);letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);visibility: visible;">开源代码全部开源到了开源项目AirLLM中,可以在github找到。 除了QWen2.5,AirLLM也支持Llama3 400B,Mixtral等模型。
叠个甲:4GB能跑但是速度肯定不会太快(4GB的卡还要啥自行车啊?)因此不适合chatbot等实时场景,仅适合异步数据处理等场景。
推理过程只需要几行代码: from airllm import AutoModel
MAX_LENGTH = 128model = AutoModel.from_pretrained("Qwen/Qwen2.5-72B-Instruct")
input_text = ['What is the capital of United States?',]
input_tokens = model.tokenizer(input_text,return_tensors="pt", return_attention_mask=False, truncation=True, max_length=MAX_LENGTH, padding=False)
generation_output = model.generate(input_tokens['input_ids'].cuda(), max_new_tokens=20,use_cache=True,return_dict_in_generate=True)
output = model.tokenizer.decode(generation_output.sequences[0])
print(output)
|