Closed guankai closed 10 months ago
模型量化和部署
Chinese-Alpaca-2-16K (7B/13B)
macOS
convert模型以及量化模型的时候都正常通过了。但是在llama.cpp中执行./main的时候报了一下的错误。使用的是chat.sh进行
ggml_metal_init: found device: Apple M2 Pro ggml_metal_init: picking default device: Apple M2 Pro ggml_metal_init: default.metallib not found, loading from source ggml_metal_init: loading '/Users/patrick/gpt/llama.cpp/ggml-metal.metal' ggml_metal_init: error: Error Domain=MTLLibraryErrorDomain Code=3 "program_source:1073:11: error: pointer type must have explicit address space qualifier float * cos_theta, float * sin_theta ^ program_source:1073:30: error: pointer type must have explicit address space qualifier float * cos_theta, float * sin_theta ^ program_source:1079:9: error: use of undeclared identifier 'ramp_mix' ramp_mix = rope_yarn_ramp(corr_dims[0], corr_dims[1], i0) * ext_factor; ^ program_source:1080:37: error: use of undeclared identifier 'ramp_mix' theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; ^ program_source:1080:64: error: use of undeclared identifier 'ramp_mix' theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; ^ program_source:1083:33: error: use of undeclared identifier 'logf' mscale *= 1.0f + 0.1f * logf(1.0f / freq_scale); ^ program_source:1085:18: error: use of undeclared identifier 'cosf' *cos_theta = cosf(theta) * mscale; ^ program_source:1086:18: error: use of undeclared identifier 'sinf' *sin_theta = sinf(theta) * mscale; ^ program_source:1172:33: error: use of undeclared identifier 'n_orig_ctx' rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims); ^ program_source:1223:57: error: explicit instantiation of 'kernel_rope' does not refer to a function template, variable template, member function, member class, or static data member template [[host_name("kernel_rope_f32")]] kernel rope_t kernel_rope<float>; ^ program_source:1133:13: note: candidate template ignored: could not match 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, unsigned int, uint3, uint3)') against 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, unsigned int, uint3, uint3)') kernel void kernel_rope( ^ program_source:1224:57: error: explicit instantiation of 'kernel_rope' does not refer to a function template, variable template, member function, member class, or static data member template [[host_name("kernel_rope_f16")]] kernel rope_t kernel_rope<half>; ^ program_source:1133:13: note: candidate template ignored: could not match 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, unsigned int, uint3, uint3)') against 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, unsigned int, uint3, uint3)') kernel void kernel_rope( ^ " UserInfo={NSLocalizedDescription=program_source:1073:11: error: pointer type must have explicit address space qualifier float * cos_theta, float * sin_theta ^ program_source:1073:30: error: pointer type must have explicit address space qualifier float * cos_theta, float * sin_theta ^ program_source:1079:9: error: use of undeclared identifier 'ramp_mix' ramp_mix = rope_yarn_ramp(corr_dims[0], corr_dims[1], i0) * ext_factor; ^ program_source:1080:37: error: use of undeclared identifier 'ramp_mix' theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; ^ program_source:1080:64: error: use of undeclared identifier 'ramp_mix' theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; ^ program_source:1083:33: error: use of undeclared identifier 'logf' mscale *= 1.0f + 0.1f * logf(1.0f / freq_scale); ^ program_source:1085:18: error: use of undeclared identifier 'cosf' *cos_theta = cosf(theta) * mscale; ^ program_source:1086:18: error: use of undeclared identifier 'sinf' *sin_theta = sinf(theta) * mscale; ^ program_source:1172:33: error: use of undeclared identifier 'n_orig_ctx' rope_yarn_corr_dims(n_dims, n_orig_ctx, freq_base, beta_fast, beta_slow, corr_dims); ^ program_source:1223:57: error: explicit instantiation of 'kernel_rope' does not refer to a function template, variable template, member function, member class, or static data member template [[host_name("kernel_rope_f32")]] kernel rope_t kernel_rope<float>; ^ program_source:1133:13: note: candidate template ignored: could not match 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, unsigned int, uint3, uint3)') against 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, unsigned int, uint3, uint3)') kernel void kernel_rope( ^ program_source:1224:57: error: explicit instantiation of 'kernel_rope' does not refer to a function template, variable template, member function, member class, or static data member template [[host_name("kernel_rope_f16")]] kernel rope_t kernel_rope<half>; ^ program_source:1133:13: note: candidate template ignored: could not match 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, const constant float &, unsigned int, uint3, uint3)') against 'void (const device void *, const device int32_t *, device float *, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant int64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant uint64_t &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, uint, uint3, uint3)' (aka 'void (const device void *, const device int *, device float *, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant long &, const constant long &, const constant long &, const constant long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant unsigned long &, const constant int &, const constant int &, const constant int &, const constant float &, const constant float &, unsigned int, uint3, uint3)') kernel void kernel_rope( ^ } llama_new_context_with_model: ggml_metal_init() failed llama_init_from_gpt_params: error: failed to create context with model '/Users/patrick/gpt/alpaca2/chinese-alpaca-2-13b-16k-hf/ggml-model-q4_0.gguf' main: error: unable to load model
sentencepiece 0.1.98 torch 2.2.0.dev20231029 torchaudio 2.2.0.dev20231029 torchvision 0.17.0.dev20231029 transformers 4.30.2
# 请在此处粘贴运行日志(请粘贴在本代码块里)
llama.cpp那边也有人碰到类似的问题,可能是新的commit里有bug。 建议你checkout之前的commit(比如2-3天前的),然后重新编译。
回退后已经解决。感谢
提交前必须检查以下项目
问题类型
模型量化和部署
基础模型
Chinese-Alpaca-2-16K (7B/13B)
操作系统
macOS
详细描述问题
convert模型以及量化模型的时候都正常通过了。但是在llama.cpp中执行./main的时候报了一下的错误。使用的是chat.sh进行
依赖情况(代码类问题务必提供)
运行日志或截图