前言
书接上回:快速评测已有的中文llama-3开源模型(4月25日更新)_llama3-chinese-novel-CSDN博客
虽然Llama-3大模型发布以后,中文适配模型也出了一大堆,但效果都不尽人意,参差不齐。近期,Chinese-LLaMA-Alpaca-3项目终于发布了,我也快速的跟进体验了一下。这个项目内容规范,提供了训练和推理脚本,也提供了很多详细的文档,特别适合系统性了解大模型的朋友们。
这次我将以大家常用的ollama模型为例,介绍这个项目中的最新模型Llama-3-Chinese-8B-Instruct-v2的推理部署方法,并且进行效果体验。
项目地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca-3
模型下载
本次Chinese-LLaMA-Alpaca-3项目提供了更多分流,例如Hugging Face、modelscope、wisemodel等。取消了百度云(没会员太慢了)和Google Drive链接。
除了常规的PyTorch版本(完整版、LoRA版)之外,项目还提供了GGUF量化版本(各个量化级别的都有),简直是业界良心。
比如说,本次要体验的Llama-3-Chinese-8B-Instruct-v2,我直接可以去下载Q8_0量化版本的。以下是相关链接,大家也可以访问项目主页获取其他版本模型的地址。
Hugging Face:https://huggingface.co/hfl/llama-3-chinese-8b-instruct-v2-gguf
ModelScope:https://modelscope.cn/models/ChineseAlpacaGroup/llama-3-chinese-8b-instruct-v2-gguf
ollama配置
接下来我就参照官方的ollama配置教程来介绍一下具体步骤。
官方wiki:ollama_zh · ymcui/Chinese-LLaMA-Alpaca-3 Wiki · GitHub
首先,去下载ollama的软件。这里要注意一定要安装0.1.33以上版本,现在最新的是0.1.37,我就安装这个版本了(我的系统是mac)。
第二步,需要创建一个Modelfile文件,用于配置ollama模型,定义了模型路径,聊天模板等信息,如下所示。
FROM /your-path-to-ggml/ggml-model-q8_0.gguf
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>"""
SYSTEM """You are a helpful assistant. 你是一个乐于助人的助手。"""
PARAMETER temperature 0.2
PARAMETER num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>
第三步,创建模型实例,在命令行里键入以下内容创建模型。其中的-f就是指定上一步保存的Modelfile文件。
ollama create llama3-chinese-inst-v2 -f Modelfile
第四步,就可以启动相应模型了。
ollama run llama3-chinese-inst-v2
启动之后会出现">>>"提示符,就可以开始聊天了。
效果体验
接下来我用一些例子来测试一下部署是否成功,顺便看看新一代模型的效果如何。
问题1:我买了一个无线充电器来给手机充电,为什么还需要用线插电?
哈哈,这道题没能难倒他。
问题2:电脑坏了,应该去检查脑电图吗?
这道题也答对了。
问题3:给定两个单词(beginWord 和 endWord)和一个字典(单词列表 wordList),找出所有从 beginWord 到 endWord 的最短转换序列。每次转换只能改变一个字母,且中间的每个转换步骤必须是字典中的单词。要求返回所有从 beginWord 到 endWord 的最短路径。如果不存在这样的路径,返回空列表。
我们利用最新的GPT-4o对该题的回答进行了打分, 结果是10/10满分。
问题4:求过点 \( (1, 2) \) 且与直线 \( y = 3x + 4 \) 平行的直线方程。
以下是模型回复和GPT-4o打分,结果是10/10满分。
问题5:证明:如果 \( n \) 是一个正整数且 \( n \) 不是平方数,那么 \( \sqrt{n} \) 是无理数。
这道题,GPT-4o打出8/10分,整体基本正确,有一些小瑕疵。
总结
总的来说这一代Llama-3相比上一代还是提升了不少的。中文方面,Chinese-LLaMA-Alpaca-3项目也给出了效果不错的模型,并且提供了完整的部署体验流程。
如果大家想进一步在这些模型上进行指令精调,也可以参考项目中的代码和文档,以便在各自关注的任务上获得更好的效果。