日々の開発Tips

WSL-Ubuntu で bitsandbytes のインストールに失敗するとき

日々の開発Tips

WSL-Ubuntu で bitsandbytes のインストールに失敗するとき

bitsandbytes を pip install しようとしたときに、以下のようなエラーがでたときの対処方法です Could not load bitsandbytes native library: libcusparse.so.11: cannot open shared object file: No such file or directory Traceback (most recent call last): File "/home/mlu/.virtualenvs/ChatStream/lib/python3.10/site-packages/bitsandbytes/cextension.py", line 109, in <module>

By Qualiteg プロダクト開発部

日々の開発Tips

"triu_tril_cuda_template" not implemented for 'BFloat16' が発生する現象と対処法

モデル読み込みで torch_dtype=torch.bfloat16 を指定したとき "triu_tril_cuda_template" not implemented for 'BFloat16' が発生する場合の対処法です 以下は llama3 で発生したときのログです。 File "/home/mlu/.virtualenvs/ChatStream/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(*args, **kwargs) File "

By Qualiteg プロダクト開発部

日々の開発Tips

Python 3.12 で PyTorch のインストールに失敗するときの対処法

こんにちは。Qualiteg プロダクト開発部です。 概要 * ChatStream に必要な PyTorch のインストールですが、 Python 3.12 だとうまくいかないという報告があります * Python 3.11 までならインストールはうまくいきました エラーメッセージ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 とすると、以下のようなエラーがでる ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found

By Qualiteg プロダクト開発部
LLMのデータファイルを無圧縮ZIPにする

日々の開発Tips

LLMのデータファイルを無圧縮ZIPにする

LLMサービスをつくっていると、1回ダウンロードしたLLMを別のサーバーに移動するということをよくやります。 (同一構成のサーバーで同じLLMモデルつかいたいときは、たとえば、HuggingFaceから再度ダウンロードするより早いので) このときフォルダのままだと移動しづらいとき ZIP に圧縮します。 無圧縮だと、GB単位でも結構高速に圧縮できます。 ZIP のインストール sudo apt install zip -y 無圧縮ZIPの作成 対象の LLM ディレクトリを指定して、以下のコマンドを実行 たとえば、LLMディレクトリが /mnt/d/RakutenAI-7B-chat-awq のとき、 cd /mnt/c/RakutenAI-7B-chat-awq zip -r -0 /mnt/c/RakutenAI-7B-chat-awq.zip . コマンド詳細 * cd /mnt/c/RakutenAI-7B-chat-awq: 圧縮するフォルダに移動します。 * zip: zipコマンドの実行 * -r: フォルダ内のファイルやサブフォルダを再帰的

By Qualiteg プロダクト開発部
逐次生成されるトークンのバッファリング

日々の開発Tips

逐次生成されるトークンのバッファリング

こんにちは! (株)Qualiteg プロダクト開発部 です! 今日は、推論シーンでよくある、トークン細切れ問題に対処する方法をご紹介します。 ストリーミングチャットで使用する逐次生成のとき、文章は1トークンずつ生成されますが、1トークンは”単語単位”でもなければ”1文字”単位でもなく、学習時使われていたトークナイザーの処理に依存します。 一般的には 形態素解析→サブワード→語彙リスト構築 を行いますが、このとき、後で文章生成するときに重要なタグ、たとえば "<NL>" というタグが重要な意味をもつにもかかわらず、細切れにされてトークナイズされてしまうことがあります。たとえば、 "<" "N" "L>" のように粉砕されてしまうようなパターンです。 (これを避ける方法はあるのですが、今回は、学習済のモデルをあからじめ与えられた状態でどうするか、を考えます) こういうパターンが発生してしまったとき逐次生成で "

By Qualiteg プロダクト開発部