报错
先不说效果好不好,克隆下代码,运行有报错
先是raise ValueError(f'mutable default {type(f.default)} for field ' ValueError: mut - 掘金 (juejin.cn)这个报错,还比较简单
然后缺少mpi4py包,没见requirements里写
接下来在合并lora模型过程中
执行下面代码报错
model = AutoPeftModelForCausalLM.from_pretrained(model_dir, trust_remote_code=trust_remote_code, device_map='auto')
AttributeError: property 'eos_token' of 'ChatGLMTokenizer' object has no setter
类似的报错issue里指向一个未彻底解决的closed的链接
代码结构
所有的prompt构造都集成在模型类里面,下游开发非常不友好,这个我在issue里也见人提过,不止我一个人这么想。
文档
文档前后矛盾
openai_api_demo/open_api_request.py中
tools = [
{
"type": "function",
"function": { 具体的function }
}
]
而tools_using_demo/README.md
tools = [{ 具体的function }]
少了一层包装
finetune_demo/README.md里写
"tools": [
// available tools, format is not restricted
],
而tools_using_demo/READNE.md中写
请确保工具的定义格式与例子中一致以获得最优的性能
到底还是需要一个确认的prompt格式吧
效果
在chatglm3出来之前大模型,我认为chatglm2是最好用的开源模型,结果chatglm3怎么这么令人失望
原生的调用工具能力,在未微调的情况下,完全无法在自己定义的工具上生效。
适配代价
大家都把拼prompt写外面,就你非要写模型里面是吧,为了把角色变为保留字,搞得所有已有框架都很难适配
其他
就这破玩意,有啥试的呢,公司天天说试一下chatglm3,就这代价,试个鸡毛啊。除非全天下都说他好再试啊,就这有什么好用的?