5/10まで約2週間の休業タイムを取っている。
休業中に次の仕込みでも行ってようと思う。
簡単に盆栽の構築方法を示す。
使用環境はRTX3080(10GB)を実装した環境である。
sudo apt update
sudo apt install -y git cmake build-essential libopenblas-dev pkg-config
git clone https://github.com/PrismML-Eng/llama.cpp && cd llama.cpp
cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
cmake --build build --config Release -j$(nproc)
mkdir models
curl -L -o models/Bonsai-8B.gguf https://huggingface.co/prism-ml/Bonsai-8B-gguf/resolve/main/Bonsai-8B.gguf
./build/bin/llama-cli \
-m models/Bonsai-8B.gguf \
-p "FPGAで1-bit LLMを加速するメリットを説明してください。" \
-n 512 \
-c 32768 \
--temp 0.5
ここまで綺麗に出力されていれば問題ないだろう。
$ ./build/bin/llama-cli \
-m models/Bonsai-8B.gguf \
-p "FPGAで1-bit LLMを加速するメリットを説明してください。" \
-n 512 \
-c 32768 \
--temp 0.5
Loading model...
▄▄ ▄▄
██ ██
██ ██ ▀▀█▄ ███▄███▄ ▀▀█▄ ▄████ ████▄ ████▄
██ ██ ▄█▀██ ██ ██ ██ ▄█▀██ ██ ██ ██ ██ ██
██ ██ ▀█▄██ ██ ██ ██ ▀█▄██ ██ ▀████ ████▀ ████▀
██ ██
▀▀ ▀▀
build : b8846-d104cf1b6
model : Bonsai-8B.gguf
modalities : text
available commands:
/exit or Ctrl+C stop or exit
/regen regenerate the last response
/clear clear the chat history
/read <file> add a text file
/glob <pattern> add text files using globbing pattern
> FPGAで1-bit LLMを加速するメリットを説明してください。
FPGA(フィニッシュ・パッージ・アシスタント)で1-bit LLM(低精度LLM)を加速するメリットは、**エネルギー効率**、**遅延**、**リソース使用量の低減**、および**低遅延の応答**など、いくつかの重要な点があります。以下に詳細を説明します:
---
## ✅ **1-bit LLMのメリット**
### 1. **極めて低い計算負荷**
- **1-bit**のLLMは、**2値**(0または1)を使用します。
- これは、**浮動小数点**(FP)の数値を1ビットに圧縮するため、**計算量を極めて小さく**します。
- **FP**の数値は、1ビットでは**2^16 = 65536**の可能な値を用いる一方で、**1-bit**では**2値**しかありません。
### 2. **極めて低いメモリ使用量**
- 1-bit LLMは、**メモリ使用量を極めて低く**します。
- FPモデルは、**FP32**や**FP16**で数GBのメモリを必要とします。
- **1-bit**は、**数MB**程度です。
### 3. **極めて低のエネルギー消費**
- **1-bit**のモデルは、**非常に低のエネルギー消費**があります。
- 比較して、FP16は100~200倍のエネルギーを必要とします。
- **FPGA**は**低遅延**と**低エネルギー**の設計に最適化されています。
---
## ✅ **FPGAで1-bit LLMを加速するメリット**
### 1. **低遅延実行**
- FPGAは**ハードウェアレベル**で処理を行います。
- **低レイテンシー**が必要な応答が必要な場合(例:リアルタイムアプリケーション、低レイテンシーのAIサービス)。
- **1-bit LLM**は、**非常に低遅延**であるため、FPGAは理想的です。
### 2. **低メモリ使用量と低エネルギー消費**
- FPGAは**メモリとエネルギー**の
[ Prompt: 37.1 t/s | Generation: 15.8 t/s ]
KV260に盆栽を実装してたんだけど、いい線までは行くけど、完全に実装することはできなかった。
ワンセッションで実装できるかチャレンジしてたんだけど、S/WとH/Wが組み合わさるとワンセッションでチューニングは難しいみたいだな。
最近、よく聞く質問なのですが私としてはclaude優勢だね。
codexが追いついてきたらclaudeが離すといった感じかな。
それよりも、コーディングはclaudeやcodexよりも中国勢のほうが優勢のような気がする。
自分用の開発環境を整え始めた。
https://github.com/aquaxis/hestia
先週からKV260に1bitのBonsaiをAIで実装している。
いい感じの所まで来ているんだけど、チューニングがいまいちである。
次週、結果発表かな。
盆栽を育ててます。
これはうまく行ったら、発表します。
今までの原稿をまとめて、AIで校正しなおして次の原稿を作ってみた。
いい感じになって、自分で読んでても「そうだったんだぁ」って思い出す場面もある。
執筆中は頭に残っているのだけど、書き終わって数年経つと「そうだったっけ?」観たいな内容があったりする。
AIが活用し始めると必ず聞くのがビギナーを置いてけぼりにするというところ。
これは元々、教えることが出来ない人が言っていることなので器にすることはないと思っている。
むしろ、「わからないことがわからない」というのがなくなる。
たとえば、「FPGAって何から取り組めばいい?」と打てばいい。
そうすると例えばこんな風に返ってくる。
FPGA(Field Programmable Gate Array)の世界へようこそ!ハードウェアをコード(プログラム)で書き換えるという、エンジニアにとっては非常にエキサイティングな分野です。
まずは「何を作るか」よりも「どういうステップで進めるか」を整理するのがスムーズです。
1. 開発言語を選ぶ
FPGA開発では、C言語のようなプログラミング言語ではなく、**HDL(ハードウェア記述言語)**を使います。
Verilog HDL / SystemVerilog: 現在の主流です。C言語に似た構文で、学習リソースも豊富です。迷ったらSystemVerilogから始めるのがおすすめです。
VHDL: ヨーロッパや防衛・宇宙分野で強いですが、記述が冗長なため初心者には少しハードルが高いかもしれません。
実際の回答はもっと続くけど、そこでわからないものが出てきたらそれをまた聞いていけばいいのである。
たとえば、「SystemVerilogとはどう書くの?」とか。
ただ、問題はそれを追求するだけで物が出来上がってしまうのでものづくりという過程が身に付くかどうかはその人次第になる。