再反复确认lama-cleaner各种安装依赖条件都具备之后,多次安装都会报以下错误:
error: `cargo rustc --lib --message-format=json-render-diagnostics --manifest-path Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib --` failed with code 101
其中具体产生错误的语句是
error: casting `&T` to `&mut T` is undefined behavior, even if the reference is unused, consider instead using an `UnsafeCell`
--> tokenizers-lib/src/models/bpe/trainer.rs:526:47
|
522 | let w = &words[*i] as *const _ as *mut _;
| -------------------------------- casting happend here
...
526 | let word: &mut Word = &mut (*w);
| ^^^^^^^^^
|
= note: for more information, visit <https://doc.rust-lang.org/book/ch15-05-interior-mutability.html>
= note: `#[deny(invalid_reference_casting)]` on by default
在网上搜索,发现了有一个网页介绍了解决问题的办法
https://github.com/huggingface/tokenizers/issues/1359
产生这个问题的因素,有的说是transformers、python等软件的版本匹配问题,有的解释说上文中的错误说明安装包中mutable reference的使用是不安全的,导致了Rust安全检查报错,建议修改代码……最后看起来最简单的处理办法是增加以下环境变量
在Linux系统中,在终端命令行窗口输入
export RUSTFLAGS="-A invalid_reference_casting"
在Windows系统中,可以在PowerShell的窗口中输入
$ENV:RUSTFLAGS="-A invalid_reference_casting"
加入这个环境变量后,Rust的安全检查会把以上的error转变成warning,程序编译得以继续。
在两个操作系统上测试,都管用(lama-cleaner启动时还要在GitHub上下载模型,由于网络问题,可能会下载很慢)。
8174

被折叠的 条评论
为什么被折叠?



