IT & AIテクノロジー

[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 研究部
[ChatStream] Rakuten/RakutenAI-7B-chat用の ChatPrompt

ChatStream Guide

[ChatStream] Rakuten/RakutenAI-7B-chat用の ChatPrompt

昨日発表された Rakuten/RakutenAI-7B-chat 用の ChatPrompt をご紹介します from chatstream import AbstractChatPrompt SYSTEM_PROMPT = """\ A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. \ """ class ChatPromptRakutenMistral(AbstractChatPrompt): def __init__(self): super(

By Qualiteg プロダクト開発部
[自作日記15] SW編:Ubuntu インストール手順

GPUマシン自作

[自作日記15] SW編:Ubuntu インストール手順

こんにちは! 前回つくったUSBドライブから、Ubuntu 22.4 をGPUマシンにインストールしていきましょう! 2.0 LANケーブルを接続する インストールする前に、GPUマシンにLANケーブルを接続してインターネットが使える状態にしておきましょう。 2.1 USB メモリからブートする 2.1 で作成した USB メモリ を GPUマシンのUSBポートに挿します USBドライブを挿したら、 PCケースの電源ボタンを押して電源を入れましょう。 するとマザーボードの初期起動画面が表示されるので キーボードで F11 を押しながら待ちます ブートデバイスを選択する画面がでたら、 UEFI: USB を選択してエンターを押します しばらくすると Ubuntuのインストール画面が表示されるので Try or install ubuntu を選択してエンターを押します これでUbuntu のインストールが開始するのをまちます 2.2 Ubuntu OS のインストール Ubuntu OS のインストーラーが開始したら、Ubuntu

By Qualiteg Boot Camp
[自作日記14] SW編:Ubuntu のインストールUSBの作成

GPUマシン自作

[自作日記14] SW編:Ubuntu のインストールUSBの作成

こんにちは! 今回からは、GPUマシンをAIマシンにすべく、ソフトウェア編の開始です! 目標は Ubuntu OS で GPU使用できる状態にし、最終的に LLMをつかった推論をできるところまでもっていきます。 1. Ubuntu のインストールUSBの作成 GPUマシンのメインOSは Ubuntu を導入したいため、これからUbuntuのインストールを行います。 Ubuntuのインストールにはいくつかの方法がありますが、事務用パソコンのWindowsを使用してUbuntuイメージが入ったUSBメモリを作成し、それをもって Ubuntu をまっさらなPCにインストールしていくアプローチをとろうと思います。 1.1 USBメモリ(32GB以下)の準備 まず、Ubuntuのイメージを焼くUSBメモリを準備します。 USBメモリは下に示す理由の為、 32GB 以下のものを準備しましょう。 * USB メモリが 32GB を超えると、FAT32 フォーマットができなくなる * ブートにつかう USB メモリ は FAT32 でフォーマットされている必要がある

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

AI数理

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

おはようございます!(株) Qualiteg 研究部です。 今回は、尤度関数から交差エントロピーを導いていきたいとおもいます! 4章 尤度関数から交差エントロピーを導く さて、今までは 20回ぶんサイコロを投げて、起こった事象(出た目が1なのか、2なのか、・・・、6なのか) を数えた結果を以下の表のようにまとめました。 では、こんどは、1回ぶんサイコロを投げたときどうのようになるかみてみます。 1回サイコロをなげた結果が 1の目 だった場合は、以下のように書くことができます。 (でた目のところに✔マークをいれただけです) さて、?だと計算にもっていきづらいので、出た目のところを \(1\) にして、出なかった目は \(0\) と置き換えることにします。 ( \(1\) が記載されている目は その目にとっては 頻度 = 確率 = \(1\) と考え、 \(0\) が記載されている目は、その試行では出なかったので、 頻度 = 確率 = \(0\) と考えると理解しやすいかもしれません。) すると、結果 列は以下のように

By Qualiteg 研究部
[自作日記13] 電源ケーブルの結線

GPUマシン自作

[自作日記13] 電源ケーブルの結線

さて、そろそろ組み立ても終盤です!がんばりましょう! 1.マザーボード用給電ケーブルを挿す 24ピンATXケーブルというもっともたくさん束ねられているケーブルがありますので、まずはそれを電源側の M/B 表記のところに挿し込みます 次に同ケーブルをマザーボード側に挿します。 しっかりツメがかみ合うように装着します 2.CPUへの給電ケーブルを挿す 次はCPUケーブルです。通常6ピン+2ピンの構成になっており、こちらも電源側とマザーボード側双方に装着します。 まず電源側の CPU/PCI-E と表示のあるところに、片一方を挿します 続いてマザーボード側にも挿しましょう。 しっかりと挿さりました マザーボード表面に CPU PWR1,CPU PWR2 と書いてある場合もあれば、 ATX12V1,ATX12V2 とだけ書いてある場合などがあります。メーカーによって表記が異なります。 3.グラフィックボード用の給電ケーブルを挿す グラボの種類にもよりますが、大型グラボは多くの電力を必要とします。今回のグラフィックボードは 3系統のPCI電源が必要となるため

By Qualiteg Boot Camp
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 プロダクト開発部
[AI数理]徹底的に交差エントロピー(2)

AI数理

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

おはようございます!(株) Qualiteg 研究部です。 早速、前回の続きをやっていきましょう! 2章 分類問題は「確率」の予測として解釈する Deep Learning やロジスティック回帰などで解きたい 分類問題 では、入力データがどのクラスに分類されるのかを予測します。 まず入力データが 何かに 分類される とはどういうことなのかを考えてみます。 たとえば、ある動物の画像を入力データとしたとき、その画像がイヌ、キツネ、オオカミ の3つのうちどれなのかを予測する 分類器 を考えます。 (分類器 は 入力と処理と出力があり、入力は画像データで、処理として ニューラルネットワーク や ロジスティック回帰 などの 計算処理 をおこない、分類結果を出力するプログラムコードと考えます) この 分類器 にたとえば 「イヌ」の画像を入力し、分類させた結果は 「イヌ」 とダイレクトに判定されるわけではありません。 ではどのように 分類するか

By Qualiteg 研究部
[自作日記12] グラボをマザーボードに装着!

GPUマシン自作

[自作日記12] グラボをマザーボードに装着!

今回は、いよいよ、主役のグラフィックボードを装着します! 1.PCI Express スロットのカバーをはずす グラフィックボードを挿入するのは PCI Express gen 5 x16 スロットなので、その部分のカバーをはずします。 また、今回のグラフィックボードは 4 スロット占有なのでそこから4スロット分のカバーをはずしておきます。 2.グラフィックボードを開梱する 今回のパーツでもっとも高価だったグラボをいよいよ開梱しましょう! おおおグラボ本体と、支え用のアームが入っています。 袋からとりだすと、34センチのビッグサイズの MSI SUPRIM X GeForce RTX 3090 Tiがお目見え! ヒートシンクがすごいですね。 こちらら側は、3連装のプロペラファンです。MSIのドラゴンマークがかっこいいです。 コンシューマー用グラボは見た目もかっこいいですね。 さて、さっそく、このグラフィックボードを、PCI Express スロットに装着するんですが、端子部分に実はカバーがかかっていますので、 まず、そのカバーを外します。 端子カバーをは

By Qualiteg Boot Camp
[自作日記11] マザーボードとケースの配線をする

GPUマシン自作

[自作日記11] マザーボードとケースの配線をする

今回は、マザーボードをケースに装着し各種配線を行っていきます! 1. スペーサーネジをはめる ケースにはスペーサーネジというものが付属しています。これをケースにハメていきます。スペーサーはマザーボードを ”浮かせた” 状態で固定するためのものです。 このスペーサーをケースにあいたネジ穴にはめていきます。ケースにはネジ穴があらかじめあいており、ネジ穴にはヒントが書いてあります。 今回のケースには ATX と Mini ATX のフォームファクタのマザーボードに対応しており、ネジ穴は、どのフォームファクタ向けのネジ穴なのかがヒントとして書いてあります。 フォームファクタとは PCケースのサイズや形状の規格を指し、主にマザーボードとの互換性に基づいて定義されます。主なフォームファクタには以下のようなものがあります: 1. ATX: * 標準ATXは、最も一般的なフォームファクタで、多くの拡張スロットと豊富な接続ポートを備えています。サイズはおおよそ30.5cm x 24.4cmです。 * Micro-ATX(マイクロATX)は、標準ATXよりも小さく、サ

By Qualiteg Boot Camp