---
title: はじめての生成AIローカルLLM、llama.cppとllamafile。練習演習あり初心者向け講座
tags: 
author: [Kapper@Linuxガジェヲタ＆異世界小説家＆電子工作大好き](https://convert.docswell.com/user/kapper1224)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4EZGXG94J3.jpg?width=480
description: OSC名古屋2024発表資料です。初心者向け生成AI資料です。
published: May 26, 24
canonical: https://convert.docswell.com/s/kapper1224/K98J8L-2024-05-26-115454
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4EZGXG94J3.jpg)

はじめての生成AIローカルLLM、llama.cppとllamafile。練
習演習あり初心者向け講座
１．準備
２．ローカルLLMと生成AI
３． llamafile演習
４．llama.cpp,Ollama他
５．その他
メインテーマ「ガジェット＆生成AI」
OSC名古屋2024 2024年5月25日
Place: 中小企業振興会館 15:00〜15:45
発表者：Kapper
ガジェットハッキング
ユーザーグループ
This Presentation:
Slideshare &amp; PDF files
publication of my HP
http://kapper1224.sakura.ne.jp
Gadget Hacking User Group
Speaker:Kapper


# Page. 2

![Page Image](https://bcdn.docswell.com/page/Y76Y4YKGEV.jpg)

自己紹介 Self Introduction
• My name: Kapper
• Twitter account：＠kapper1224
• HP：http://kapper1224.sakura.ne.jp
• Slideshare: http://www.slideshare.net/kapper1224
• Mastodon:https://pawoo.net/@kapper1224/
• Facebook：https://www.facebook.com/kapper1224/
• My nobels：https://ncode.syosetu.com/n7491fi/
• My Togetter：https://togetter.com/id/kapper1224
• My Youtube：http://kapper1224.sakura.ne.jp/Youtube.html
• My Hobby：Linux、*BSD、and Mobile Devices
• My favorite words：The records are the more important than the experiment.
• Test Model：Netwalker、Nokia N900、DynabookAZ、RaspberryPi、Nexus7、Nexus5、Chromebook、GPD-WIN、GPDPocket、Macbook、NANOTE、Windows Tablet、SailfishOS、UBPorts、postmarketOS、NetBSD and The others...
• Recent my Activity：
• Hacking Generative AI (Images and LLM) in a lot of devices.
• Hacking Linux on Windows10 Tablet (Intel Atom) and Android Smartphone.
• Hacking NetBSD and OpenBSD on UEFI and Windows Tablet.
• I have over 200 Windows Tablet and 120 ARM Android, and test it now.
• 後、最近小説家になろうで異世界で製造業と産業革命の小説書いていますなう。


# Page. 3

![Page Image](https://bcdn.docswell.com/page/G75GQGPX74.jpg)

Recently my activities
Ollama,llama.cpp
Stable-diffuson
Windows Tablet
Book8088,Pocket386
UMPC
OSC,KOF参加


# Page. 4

![Page Image](https://bcdn.docswell.com/page/9J2YPY6QJR.jpg)

事前ご連絡
• 今回は生成AIの使い方練習講座です
• 演習にllamafileを使用します
• Githubからダウンロードお願いします
Win,Linux,*BSD,Mac,Android対応
https://github.com/Mozilla-Ocho/llamafile
• 1部Windowsでは1ファイル4GB以下の
データを使用おねがいします
• iOSの方はLLMFarmご使用ください
（ただし制限あり）
• x86の場合はSSE3が必須。あとはメモリ次第
• Phi-3, LLaMA3モデル推奨


# Page. 5

![Page Image](https://bcdn.docswell.com/page/DEYG5G9YEM.jpg)

llamafileの使い方
• Windowsの場合。名前を変更し.exeを付けて実行
• Unix系の場合。chmod +x ファイル名で実行形式にして
• ./llama〜 で実行。ブラウザで チャットモード
• モデルを指定する時は -m モデル名 でサーバ版起動
• コマンド実行 ./llamafile -m モデル名 -p &quot;### (質問) ### Response.&quot;
後でもう一度ご説明致しますが、気が向いたら練習をお願いします


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJNGNGLR78.jpg)

事前アンケートお願い
（挙手にてお願いします）
• ①ChatGPTやStable-Diffusionなど生成AIを時々使っている人？
• ②仕事もしくは商売で生成AIを使いたい人？
• ③ローカルLLM(大規模言語モデル）を使った事がある人？
• ④やっぱりLLMより画像生成AIの方が興味がある人？
今日のセミナーのペース時間配分と今後の参考とさせて下さい


# Page. 7

![Page Image](https://bcdn.docswell.com/page/YE9WRW4ZE3.jpg)

生成AIとは?
• テキストなど 小さい情報から画像、動画、文章などを生成
• 短時間で複雑なデータを生成可能で生産性が良い
• 複雑な計算が必要なので高性能なCPU、GPUが必要
• 大規模言語モデル（Large Language models）が最近有名
• 他にも画像生成AIなど
定番モデルpony diffusion、Animagine XL他
参考としあき wiki https://wikiwiki.jp/sd_toshiaki/SDXLモデル


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GE8NWNVY7D.jpg)

最近のLLMとは？(Large Language Models大規模言語モデル)
• LLMとはChatGPT類似品の総称でText to Textの生成AI
• ChatGPTが最大手。1万個のNVIDIA A100 GPUを使いAI学習。
• 出力される情報を他のAIと組み合わせ活用範囲が拡大
• 計算するGPUコストかかりすぎるので、低コストのコンパクトLLM必要
• 英語圏中心で日本語はイマイチ。特に専門用語に弱い
• 本質的に何でも出来るAIの必要は無い。高コスト
• 自由に改変出来て、自由に使えるライセンスのLLMに注目
• CPUで動かすならWebサーバ、ブラウザも重し。Xさえ不要


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LELPNP597R.jpg)

LLMの動作原理
• 日本で-一番-人気の-Linux-ディストリビューション-は？
A
B: 30%
C: 20%
D: 25%
E:10%
F:15%
最も確率が高い次の単語（トークン）を計算して文章を作る
→学習データに大きく依存する
注意） 上は筆者のイメージです
実際の発生確率とは異なります


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JM4X43V7W.jpg)

エクセルでGPT-2。勉強用
「Spreadsheets-are-all-you-need」
• 勉強用にGPT-2をExcelで再現した
シートが公開されている


# Page. 11

![Page Image](https://bcdn.docswell.com/page/PJRWNWQW79.jpg)

その他生成AI
• 最近生成AI増えたね
• ガジェットハッキングLLM作りたい
マニアックなファインチューニング
エモいキャラクター生成してw
• ローカルコミュニティ用LLM必要
• 東海道らぐLLM作りませんか？
他所に真似できない凄いコアなのを


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PEXPNP5V7X.jpg)

お仕事で生成AI
• プログラムレスで色々
• 翻訳、メール作成
• 対話型業務をAIチャットで
• 画像、資料を作成
• いつのまにかRPAはどこにいった？
今後のビジネスの中心
• 賢さ ≠ 語彙力、情報量


# Page. 13

![Page Image](https://bcdn.docswell.com/page/3EKDND65JD.jpg)

マルチモーダル化
• 画像を読み取ったり、出力したり
• オープンソースではLLAVAモデルが有名
• 複数のAIを組み合わせてさらに色々な事をさせる事ができる


# Page. 14

![Page Image](https://bcdn.docswell.com/page/L73RVR61J5.jpg)

無料APIサーバ
• OpenAI社のAPI機能は優秀だがコストが高い
• llama.cppとLocalAI,FastAPI,llama-cpp-pythonなどで無料APIサーバを
作れる
• ローカルLLMなら自社アプリにライセンス的に組み込める


# Page. 15

![Page Image](https://bcdn.docswell.com/page/87DY8YVK7G.jpg)

プロンプトエンジニアリング
• そもそも プロンプトとは？システム操作などに使う文字列
• LLMに回答を引き出すための良い文字列の並べ方
• Zero-Shot：事前情報入力なし。一般的な回答
• Few-Shot：具体例追加。より細かい精度UP
• CoT：手順を箇条書きで追加。段階的に考え、間違い視覚化
• ToT：回答を自己評価させる
• ReAct：Thought、Action、Observationから考えさせる
• 深津式：あなたは〜です。＃条件〜


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VJP686V3E8.jpg)

プロンプトエンジニアリング参考図書
1冊目（安価）
2冊目（参考書)


# Page. 17

![Page Image](https://bcdn.docswell.com/page/2EV3N3ZN7Q.jpg)

有名キャラクターの模倣
• LLMなら色々なモノマネをしてくれます
• ChatGPTくらい賢ければ色々な事が出来ます
• さらに音声合成で出力させると
ヲタクの皆様御用達w


# Page. 18

![Page Image](https://bcdn.docswell.com/page/57G3K345JL.jpg)

生成AIでこんな使い方も
②生成AI文章作成
ChtGPT
llama.cpp
など
①音声入力
Whisper.cpp
Windowsキー＋H
など
③音声合成
Voicevoxなど


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4EQ5N5GLJP.jpg)

IPhone,iPadの場合
• 画像生成AIはDraw Things
• LLMはLLMFarmがあります
• 2020年世代以降推奨
• iPhoneSE第2世代が安い
LLMFarm
Draw Things


# Page. 20

![Page Image](https://bcdn.docswell.com/page/KJ49G95571.jpg)

NetBSDの場合(⚹BSD含む)
• llamafileがNetBSD＋9.2(amd64)に正式対応(要SSE3:エミュレータ注意）
• llama.cppはcmakeでNetBSD環境でもビルド可能
• Stable-diffusion.cppもcmakeでビルド可能。画像生成AIも完璧。
GUIもXもCPU負荷とメモリ負荷になるからストイックに不要。
llama.cpp,llamafile
Stable-diffusuion.cpp


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LE1KDKW2JG.jpg)

Termux＋Androidなど
Ollama
llama.cpp
Fastsd cpu
Stable-Diffusion.cpp


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GEWDYD62J2.jpg)

しかし何故今更ローカルLLM？
• 手元の機種で 学習し自由に動かせるというロマン
• ライセンスを侵害しない範囲で自由に学習・改造出来る
• 今後 厳しくなるであろう規制が無い。API無料。有料化対策。
• UNIXなどのマニアックな情報を沢山学習させたい
• オリジナルアプリへライセンスフリーで組み込みたいパクりたい
• エロいのを作りたい人向け
• アンダーグラウンドで危険なLLMを作りたい人向け
• キャラクターを模倣させたい人向け
• ギャンブル関係のLLMを作りたい人向け
• ベンチマークの代わりw
しかしChatGPTは
規制用語が入ると・・・


# Page. 23

![Page Image](https://bcdn.docswell.com/page/47ZGXGY4E3.jpg)

ChatGPT VS ローカルLLM
・ここが凄いここが厳しいChatGPT
とにかく賢い。Web検索可能。画像や動画なども？
一部無料。多分赤字経営。MicroSoftが助けてくれる？
Wikipediaや論文など校正済み文を利用しているため、マニアックな知識に弱い
どんどん規制が厳しくなる。将来どうなることか？
・ここが凄いここが厳しいローカルLLM
安価。オープンソース。API無料
独自辞書、独自知識を学習可能（日本語はまだ弱い）
規制は自由。付けるも無くすも学習済モデル次第。
サーバの経済的理由よりそのうち全てのパソコン、スマホに入るだろう
実はCPU、GPUベンチマークの代替え手段として重宝しているw


# Page. 24

![Page Image](https://bcdn.docswell.com/page/YJ6Y4YDG7V.jpg)

ローカルLLM llama.cppとllamafile
• LLM禁止職場ではローカルLLM頼み。LLM推論用ライブラリがllama.cpp。MetaのLLaMa2フォーク
• ARM Macbookで使えるローカルLLM、だったが機能が爆増。CPU量子化。オープンソース恐るべし
• Cosmoporitan Libcと組み合わせたllamafileが1ファイルでインストール不要
Linux、*BSD、Mac、Windowsサポート （MITライセンス）


# Page. 25

![Page Image](https://bcdn.docswell.com/page/GJ5GQG3XJ4.jpg)

Cosmoporitan Libc
• GCC,Clang対応したマルチOS Cライブラリ。llamafileで使用
• これを使いビルドすると各OSでそのまま動く優れもの
• BIOS、Linux、*BSD、Mac、Windowsサポート


# Page. 26

![Page Image](https://bcdn.docswell.com/page/9E2YPYZQER.jpg)

llamafileの使い方
• Windowsの場合。名前を変更し.exeを付けて実行
• Unix系の場合。chmod +x ファイル名で実行形式にして
chmod +x llama
• ./llama〜 で実行。ブラウザで チャットモード
• モデルを指定する時は -m モデル名 でサーバ版起動
• コマンド実行 ./llamafile -m モデル名 -p &quot;### (質問) ### Response.&quot;


# Page. 27

![Page Image](https://bcdn.docswell.com/page/D7YG5GRY7M.jpg)

llamafileで練習してみましょう
①ダウンロード後は実行形式に変換
Windowsでは右クリックでファイル名を変更、.exe
UNIXではchmod +x llama〜
②ダウンロードしたら普通に実行 ./llama〜
GPUを使う時は ./llama〜 -ngl 999
実行したらWebブラウザで http://127.0.0.1:8080
を開く
を 付ける


# Page. 28

![Page Image](https://bcdn.docswell.com/page/VENGNGDRJ8.jpg)

llamafileで練習
③こんな画面が出てくるので一番下の
入力欄に英語で質問
例）
Please write sourcecode [Hello World!]
in Python and TKinter.
注）Phi-3,LLaMA3なら日本語もOK
PythonとTKinterで[Hello World!]の
ソースコードを書いて下さい


# Page. 29

![Page Image](https://bcdn.docswell.com/page/Y79WRWGZ73.jpg)

llamafileで練習
お題：Hello Worldのプログラム作成
日本語(Phi-3)
英語


# Page. 30

![Page Image](https://bcdn.docswell.com/page/G78NWN8YJD.jpg)

llamafileで練習
お題：SWOT分析で企業分析
日本語(Phi-3)


# Page. 31

![Page Image](https://bcdn.docswell.com/page/L7LPNPR9JR.jpg)

llamafileで練習
お題：メール作成、翻訳、文章訂正
日本語(Phi-3)


# Page. 32

![Page Image](https://bcdn.docswell.com/page/4EM4X4RVJW.jpg)

llamafileで練習
お題：Excel、PowerPointを作成するVBAマクロ
日本語(Phi-3)
日本語(Phi-3)


# Page. 33

![Page Image](https://bcdn.docswell.com/page/PERWNWRWJ9.jpg)

llamafileで練習
お題：LLMに質問プロンプトを改良させる
Stable-Diffusion用のプロンプトを改良
日本語(Phi-3)


# Page. 34

![Page Image](https://bcdn.docswell.com/page/P7XPNPRVJX.jpg)

llama派生ソフトウェア
• Ollama：対話型コマンドラインTUIアプリ、軽量簡単。MITライセンス
• PowerInfer：GPU-CPU高速ハイブリッドアプリ。MITライセンス
• Distributed-llama：分散型サーバ。RaspberryPiでも動く様設計。
MITライセンス
• OnnxStream：RapsberryPi zero2で動く様に設計した省メモリ。重い。
MITライセンス
• llama-cpp-python他：各種プログラムで動くllama.cpp


# Page. 35

![Page Image](https://bcdn.docswell.com/page/37KDNDR5ED.jpg)

学習済AIモデル
• 生成AIは学習済のデータ（モデル）を使用して出力
• 速度と賢さはAIモデルで決まる。有名なのは
• Microsoft Phi-3：超高性能小型モデル MITライセンス
• Meta LLama3：Meta製オープンソースの走り。Meta llama3 ライセンス
• Mistral：高性能対抗馬モデル。Apache-2.0ライセンス
• Tinyllama：超小型LLMモデル。Apache-2.0ライセンス
• ELYAZA：日本語対応国産LLMモデル。llama2ライセンス
• LLaVa：マルチモーダル対応。llama2ライセンス
Huggingfaceダウンロード方法：一例 wgetは使えないので注意
curl –LOC - https://huggingface.co/MoMonir/Phi-3-medium-128k-instruct-GGUF/resolve/main/phi-3medium-128k-instruct.Q4_K_M.gguf


# Page. 36

![Page Image](https://bcdn.docswell.com/page/LJ3RVR81E5.jpg)

LLMモデルと混迷するオレオレライセンス
• LLMモデルはオープンソース化したMetaのLLaMaを中心に派生型が多数
• LLMモデルはHuggingFaceでGGUFと検索してダウンロード出来ます
• 最近のオススメはPhi-3とllama3。LLMモデル戦国時代。


# Page. 37

![Page Image](https://bcdn.docswell.com/page/8JDY8YMKJG.jpg)

LLM動作イメージ
• 一旦モデルをメモリの中に入れる
（大量のメモリが必要）
• CPU・GPUで計算
マルチGPU対応
モデル
データ
CPU,GPU
oメモリ
メモリ
• LoRaがあれば追加
モデル
データ
LoRa
• 結果出力


# Page. 38

![Page Image](https://bcdn.docswell.com/page/VEP686R378.jpg)

量子化
• 確率分布の小数点桁数を削って計算
• メモリと負荷低減。数字程精度が落ちない
• 画像生成AIは16bit、LLMは3〜16bit
• モデルサイズ1GBを切ると回答が難しくなる
• BitNet 1.58bitが出たがまだ普及していない


# Page. 39

![Page Image](https://bcdn.docswell.com/page/27V3N3RNJQ.jpg)

ファインチューニング・LoRa
• LLMに追加学習。入れたい不足する情報を追加
• メモリ不足でまだ試していないけどLLaMA-Factory、Deepspeedなど
• 要求スペックが高いので次世代機かGoogle Colabを借りる


# Page. 40

![Page Image](https://bcdn.docswell.com/page/5JG3K3M5EL.jpg)

CPU VS GPU
• 現在高速化としてGPUを使うのが主流
• CPU VS GPUの速度は1:20〜100くらいの速度差
• WebサーバとブラウザはCPU、計算はGPUで分担している
• CPUで計算するとWebサーバとブラウザの分だけ負担が増える
OllamaなどCUIで使うのも良い（Xも不要）
• AI 学習は完全にGPU優位。GPUはメモリ確保が大変高価


# Page. 41

![Page Image](https://bcdn.docswell.com/page/47Q5N5RLEP.jpg)

GPUクラウドを格安でレンタルしたい
• 実験やAIモデル学習時にはできればGPUサーバをレンタルしたい
• Vast.AI：個人サーバから間借りレンタル。格安
• NovelAI：数少ない限定的月額式。小説は無料、 画像は有料
• Google Colab
• Runpod：サーバレスモード
• Replicate：モデルが設置済
• Hostkey：色々なGPU


# Page. 42

![Page Image](https://bcdn.docswell.com/page/KE49G985J1.jpg)

llama.cpp をcmakeでビルド
• 本家本体のllama.cppはCで書かれており、cmakeでビルド可能
• NetBSDもビルドOK。類似構造のStable-diffusion.cppも同様
• git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build
cmake -B build
• cmake --build build --config Release
• NVIDIA,AMD,Intel,MacのGPUにも対応済（BLAS）
• Vulkanに対応したのでROCm無いAMDGPUでも動作可能


# Page. 43

![Page Image](https://bcdn.docswell.com/page/L71KDK22EG.jpg)

llama.cppを実行
• 対応しているモデルデータをダウンロードして実行
./build/bin/server -m (モデルデータ) -c 0
webブラウザで http://127.0.0.1:8080/ を開く
• コマンドラインで起動する場合、
./build/bin/main -m (モデルデータ) -c 0 -p &quot;### 質問 ###
RESPONSE.&quot;


# Page. 44

![Page Image](https://bcdn.docswell.com/page/G7WDYDR2E2.jpg)

llama.cppのアップデート(git)
• rm –rf build
git reset –hard
git pull
cmake -B build
cmake --build build --config Release


# Page. 45

![Page Image](https://bcdn.docswell.com/page/4JZGXGR473.jpg)

Ollamaのインストール（注：Linuxのみ）
• Linux版インストール
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3
• Mac版、Windows版は公式GitHubからインストラーダウンロー
ド


# Page. 46

![Page Image](https://bcdn.docswell.com/page/YE6Y4YRGJV.jpg)

よくある質問・疑問点
• CPUではだめなんですか？ --- 遅いだけです。CPUメモリは安い。
• 日本語が賢くないのですが --- 今はPhi-3,llama3が良いです
• NVIDIA以外のGPUは動くのですか？ --- vulkan,Metalでも動きます
• ノートパソコンの内蔵GPUは使えますか？ ---メモリ500MBなのできつい
• GPUは借りた方が安いですか？ --- 学習させるなら時間に応じて
• 思ったような回答が出てきません --- プロンプトを工夫
• そもそもローカルでLLMを使う意味は？ ---ロマン、商売用、独自規格


# Page. 47

![Page Image](https://bcdn.docswell.com/page/GE5GQG8XE4.jpg)

まとめ
• 簡単な生成AIの使い方と説明
• ローカルLLMを実例に各OSで動作
• Windows,Linux,MacOS,*BSDで生成AI動作確認
• 量子化、ファインチューニング、LoRaを説明
• llama.cppのビルド方法を説明


