IT & AIテクノロジー

[自作日記19] SW編: CUDA と Pytorch の導入

GPUマシン自作

[自作日記19] SW編: CUDA と Pytorch の導入

今回は CUDA と Pytorch をインストールします 4.2 CUDA(+cuDNN) と Pytorch の同時インストール Pytorch をインストールすると、CUDA と cuDNN を一緒にインストールしてくれるので、それを活用しましょう STEP1 PyTorchのインストールコマンドを生成する さて、ようやくお膳立てができたので、いよいよ機械学習ライブラリ PyTorch を導入しましょう ■ PyTorchのインストール 以下にあるPyTorchのインストールガイドを開き、 https://pytorch.org/get-started/locally/ 以下のように選択式で Pytorch のインストールコマンドを生成することができます Category Selected Pytorch Build Stable (1.13.1) Your OS Linux Package Conda Language

By Qualiteg Boot Camp
TensorRT-LLM v 0.11.0.dev2024051400 の動作確認

日々の開発Tips

TensorRT-LLM v 0.11.0.dev2024051400 の動作確認

こんにちは、株式会社 Qualiteg プロダクト開発部です! TensorRT-LLM は FasterTransformerの後継ともいえるNVIDIA製 推論エンジンで、当社ChatStreamの推論エンジンとしても選択可能です。 vLLMと同じく新しいモデル対応が早く、既存モデルも豊富にサポートされています。 昨日 大型コミットが入りましたので動作確認をしました。(マルチモーダルモデルNeva,Kosmos2に対応など。) TensorRT-LLM のサポートしている、モデルアーキテクチャは以下のとおりです。 LLM Baichuan, BART, BERT, Blip2, BLOOM, ChatGLM, DBRX, FairSeq NMT, Falcon, Flan-T5, Gemma, GPT, GPT-J, GPT-Nemo, GPT-NeoX, InternLM, LLaMA, LLaMA-v2, Mamba, mBART, Mistral, MPT, mT5, OPT, Phi-1.5/Phi-2, Qwen, Qwen-VL, Replit

By Qualiteg プロダクト開発部
【2024/5/14更新】LLM 推論 API 料金と推論速度

IT & AIテクノロジー

【2024/5/14更新】LLM 推論 API 料金と推論速度

LLM を API から利用するときに従量課金される料金と生成速度一覧まとめました。順次更新予定です。 【API 料金】 は 100万トークンあたりのアウトプット側 利用料を表示しています。 【生成速度】 は1秒間に何トークン生成できるかを示す " tokens/s"( tokens per second )で表示します。 (生成速度は入出力プロンプトの量・内容によって変動しますので、あくまで参考情報として表示しています) OpenAI GPT シリーズ * OpenAI GPTシリーズ * gpt-4o、100万トークンあたり $15.00 (約2250円)、 70 tokens/s * gpt-4-turbo-2024-04-09: 100万トークンあたり $30.00 (約4500円)、 45 tokens/s * gpt-3.5-turbo-0125: 100万トークンあたり $1.5

By Qualiteg プロダクト開発部, Qualiteg ビジネス開発本部 | マーケティング部
[AI数理]徹底的に交差エントロピー(6)

AI数理

[AI数理]徹底的に交差エントロピー(6)

おはようございます!(株) Qualiteg 研究部です。 今回は、二値分類用の交差エントロピーについてみていきましょう! 7章 二値分類用 交差エントロピー 7-1. 二値分類用 交差エントロピー (データ1件対応版) さて、ここから、二値分類用の交差エントロピーを導きたいとおもいます。 二値分類は 入力されたデータが 2 つのうちどちらか、を予測するものです。 まず話をシンプルにするために、バッチ版ではなく、式 \((5.2)\) に示した 1件版の交差エントロピーの式を思い出します。 $$ E = - \sum_{k=1}^{K} t_{k} \log y_{k} \tag{5.2、再掲} $$ $$ \begin{aligned} &K:分類の数, t_{k}

By Qualiteg 研究部
[ChatStream] 入出力プロンプトの予期せぬ変更に備え revision は固定する

日々の開発Tips

[ChatStream] 入出力プロンプトの予期せぬ変更に備え revision は固定する

こんにちは。(株) Qualiteg プロダクト開発部です。 GW中に、microsoft/Phi-3-mini-128k-instruct の tokenizer.json が変更になり、プロンプトのパースに失敗し、チャットのストリーミングができなくなる問題が発生しました。 実際には以下の変更がありました https://huggingface.co/microsoft/Phi-3-mini-128k-instruct/commit/8a362e755d2faf8cec2bf98850ce2216023d178a もともと、Miscrosoft さんが書いていた記事にあるプロンプトフォーマットと実際のモデルのプロンプトフォーマットが異なっていたため、当社では、実際のモデルにあわせるヒューリスティックな対応をしておりましたが、モデル(\w tokenizer) 側がもとの仕様に近い形に修正してきた模様です。 これによって、当初動作していたプロンプト変換器が動作しなくなるという現象が発生しました。 LLM は「スピードが命!」なので、トークナイザー含め完全にテストされた状態

By Qualiteg プロダクト開発部
[自作日記18] SW編: Anacondaのインストール

GPUマシン自作

[自作日記18] SW編: Anacondaのインストール

今回は、 Anaconda を導入します。 Python は一般的にアプリケーションごとに仮想環境を使用して実行しますが、仮想環境を構築できるものに Anaconda または Python純正仮想環境の venv のどちらかがよく使われます。 今回は、 Anaconda を導入してみたいとおもいます。 4.1 Anaconda(Python環境) のインストール STEP1 Anaconda3 をダウンロードする Chromeを開いて、以下を開きます https://www.anaconda.com/distribution/#download-section 自動的に Linux 用を表示してくれるので、それをダウンロードします STEP2 インストール用スクリプトを実行する cd downloads bash Anaconda3-2022.10-Linux-x86_64.sh エンターキーをおすrと、 license agreement をスクロールさせることができます 内容問題なければ yes とタイプします

By Qualiteg Boot Camp
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 プロダクト開発部
LLM サービング効率化の為のPagedAttention

ChatStream Guide

LLM サービング効率化の為のPagedAttention

こんにちは、株式会社Qualitegプロダクト開発部です。 今日は 商用LLM サービングに欠かせない PagedAttention 技術をご紹介します はじめに PagedAttention は当社にとって非常に重要な技術です PagedAttentionを活用するとLLMでの文章生成において GPUメモリの利用効率をあげ 、そのぶん単位GPUあたりの同時に捌けるリクエストを増やすことができます。 当社は「ChatStream」という商用のLLMサービングプラットフォームを開発・提供しているため、多ユーザーからの同時リクエストによる高負荷環境でのLLMサービング(文章生成の提供)は、ドドド真ん中の課題ということになります。 PagedAttention登場以前の従来の並列生成はKVキャッシュとよばれる”リクエストごとに発生する大きなGPUメモリ消費”との戦いでした。 (KVキャッシュは transfomerのmodelを生で叩くときに past_key_values として登場します) つまりモデルのパラメータとは別に発生する推論時のメモリ消費です。 これが同時に

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 プロダクト開発部
[ChatStream] meta-llama/Meta-Llama-3-8B-Instruct 用の ChatPromptクラス

ChatStream Guide

[ChatStream] meta-llama/Meta-Llama-3-8B-Instruct 用の ChatPromptクラス

昨日(2024/4/19) に発表になった Llama3 用の ChatPrompt クラス※をご紹介します。 from chatstream import AbstractChatPrompt SYSTEM_PROMPT = """\ You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal

By Qualiteg プロダクト開発部
[自作日記17] SW編: NVIDIA Display Driver を GPUマシンの Ubuntu にインストールする

GPUマシン自作

[自作日記17] SW編: NVIDIA Display Driver を GPUマシンの Ubuntu にインストールする

こんにちは! 今回は Ubuntu で GPU を使用できるようにするため、 NVIDIA Display Drive をインストールしていきます 3.2 Nvidia Display Driverのインストール 今回購入した GPU NVIDIA RTX 3090 Ti 24G に対応したディスプレイドライバーをインストールしていきます! 3.2.1 ドライバーのダウンロード 以下のサイトにアクセスして RTX 3090 Ti 用のドライバをさがします https://www.nvidia.co.jp/Download/index.aspx?lang=jp 自分の環境(RTX 3090 Ti,Linux)を選択して、 探す をクリックするとドライバをさがしてくれるので便利です

By Qualiteg Boot Camp
[AI数理]徹底的に交差エントロピー(5)

AI数理

[AI数理]徹底的に交差エントロピー(5)

おはようございます!(株) Qualiteg 研究部です。 今回は、前回から拡張して データN件対応版の多値分類用 交差エントロピー を実際のデータをみながら導いていきたいとおもいます! 6章 多値分類用 交差エントロピー (データN件対応版) 実際の学習では、いちどに複数件の訓練データを入力して得られた複数の結果をまとめて評価するバッチ学習を行うため、複数の訓練データから得られた結果を同時に計算できるバージョンの交差エントロピーも考えておきます。 以下のような複数の訓練データの場合を考えます。 複数の訓練データなので、1件ずつの訓練データを見分けられるように番号をふった データ番号 列を導入しました。みやすくするため正解のデータに背景色をつけています。 この4件のデータを順番にモデルに入れたときの出力を計算すると以下のようになりました。予測値 列を右に追加しています。 さて、この4件の交差エントロピーを求めてみます。 これらのデータから1つずつ交差エントロピーを計算して、その値を合計すれば、4件ぶんの交差エントロピーの合計値を求めることができるので、特に

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 プロダクト開発部
[自作日記16] SW編: GPUマシンの Ubuntu を構成する

GPUマシン自作

[自作日記16] SW編: GPUマシンの Ubuntu を構成する

こんにちは!今回は Ubuntu OS インストール後の構成をします 3.1 Ubuntu の構成 3.1.1 初回起動時の各種アップデート 現在、Ubuntu OS のインストールが終了した状態となってますが、Ubuntu OSアップデートや言語パックのアップデートなどが表示されていた場合、それをまず実行します 初回に表示されるアップデートが終了したときに以下のようなダイアログが表示されるのですぐに再起動をクリックしていったんリブートします 3.1.2 日本語 IME の設定 画面右上にある日本語IMEを選択します 3.1.3 ”downloads” ディレクトリの作成 ダウンロードファイルの保存先用に "downloads" ディレクトリを作成します。 日本語の「ダウンロード」ディレクトリがもともとあるが、端末(shell)から扱いにくいですし、日本語フォルダ名は何かと不便なためです。 画面左バーからファイルを起動します ホームディレクトリ以下にdownloadsというディレクトリを作成します 3.1.4

By Qualiteg Boot Camp
RakutenAI-7B-chat を使用したチャットアプリケーションを5分で作る

ChatStream Guide

RakutenAI-7B-chat を使用したチャットアプリケーションを5分で作る

こんにちは、株式会社 Qualiteg プロダクト開発部です。 今日は、 RakutenAI-7B-chat と ChatStream 0.7.0 を使用して本格的なチャットアプリケーションを作っていきましょう。 RakutenAI-7B-chat は Mistral 7B を日本語継続学習させたモデルで、チャットチューニングが行われており、 日本語LLM リーダーボード https://wandb.ai/wandb-japan/llm-leaderboard/reports/Nejumi-LLM-Neo--Vmlldzo2MTkyMTU0でも上位にランクされている期待大のモデルです。 ソースコード 早速ですが、以下がソースコードとなります。 4bit 量子化をしているため、使用する GPU は A4000 (16GB) 程度で快適に動作します。 import logging import torch import uvicorn from fastapi import FastAPI from transformers

By Qualiteg プロダクト開発部
[AI数理]徹底的に交差エントロピー(4)

AI数理

[AI数理]徹底的に交差エントロピー(4)

おはようございます!(株) Qualiteg 研究部です。 今回は、多値分類用の交差エントロピーを計算していきたいと思います! 5章 多値分類用 交差エントロピーの計算 (データ1件対応版) まず 交差エントロピー関数(標本データ1件ぶんバージョン) を再掲します。 $$ \ - \log L=\sum_{k=1}^{K} t_{k} \log y_{k} \tag{4.3、再掲} $$ $$ t_{k} :頻度, y_{k}:確率 $$ 式 \((4.3)\) の 交差エントロピー は 1件の標本データ に \(K\) 個の事象(が起こったか、起こらなかったか)が含まれていました。

By Qualiteg 研究部