Code Llamaの苦労からOllama/ELYZAの活用まで

記事の更新日:2026/09/30 評価を加筆

1.概要

2023年当時、個人環境で大規模言語モデル(LLM)を動かすのは一苦労でした。「Code Llama」を動かすために、Docker、CUDA、PyTorchの複雑な環境構築に頭を悩ませた方も多いのではないでしょうか。
しかし、現在(2026年)は「Ollama」などの画期的なツールの登場により、ローカルAIの敷居は驚くほど下がっています。軽量かつ高性能なモデルが、一般的なPC環境でサクサク動く時代になりました。
この記事では、2023年当時の「Code Llama」環境構築の苦労話(技術ログ)を残しつつ、現在主流となっているOllamaや日本語モデル(ELYZA)をLinuxMInt/Ubuntu環境で超簡単に動かす最新手順までをまとめてご紹介します。
私の評価は以下の通りです。
(1) AIはTensorflowやPytorchを利用してProgram作成する段階から大きく変わりました
(2) 最初は画像処理による手書き文字の認識でしたが、囲碁AI登場で激変しました
(3) chatGPTを始めに大規模言語モデル(LLM)が広がり、ブラウザで利用できます
(4) データのセキュリティを考慮してローカルAIが注目され、Ollamaで活用できます

2.詳細

2023年当時に比べて、現在のローカルAI環境は「驚くほど軽量・シンプル」になりました。まずは、今最もおすすめできる手軽な実行方法から解説します。
(1) 実行環境
今回は、以下の少し型落ちの検証PCでも十分に動作することを確認しました。
  • OS: LinuxMint 22.3
  • CPU: Core i3-7100
  • GPU: NVIDIA GTX 1050Ti(ドライバー: nvidia-driver-580)
(2) 環境構築と実行手順
Ollamaを使えば、かつてのような巨大なコンテナや依存関係の構築は不要です。ターミナルからOllamaでllama3_2(約2GBの軽量モデル)をプルして実行するだけで、すぐにプロンプト画面に入ることができます。
試しに、定番の「フィボナッチ数列(fibonacci)のPythonコード作成」を依頼してみます。

(3) fibonacciにチャレンジ

>>> fibonacciのpythonコード作成
import math

def fibonacci(n):
    if n <= 0:
        return "Input should be positive integer."
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(2, n):
            a, b = b, a + b
        return a

# Test the function
print(fibonacci(10))

(3) 以前の実行環境

  • OS: Ubuntu 20.04
  • CPU: Core AMD 3200G
  • GPU: NVIDIA GTX 1660 super(ドライバー: nvidia-driver-535)
  • CUDA:cuda:11.7.1-runtime
  • pytorch: Stable(2.0.1)
環境構築は複雑で難しく、微妙なバージョン関連を合わせて動かすことで手一杯でした。

3.所見

2003年当時のことは余り記憶にないが、環境構築に大変苦労したことを覚えている。現在の状況は、とても楽にLocalAIを利用することができる。llama3_2の2GBサイズのモデルでプログラム作成を十分実行できるのは驚異でもある。

2023年の記事を元に修正を今回は実施したが、Ollamaを利用したLocalAI検証はGPU版、CPU版を利用して、様々な公開モデルを試験しているので別途整理をしたいと考えています。

4.追加

2003年〜2004年にAI活用で悩んだ履歴を追記します。

(1) AIの最先端モデルのCode LlamaのGPUを使った動作再現試験

前回、AIがCodeを作成するCode Llamaが個人環境で動作するか確認をしました。本当に動作したかを確認するために、別PCで再現試験を実施しました。その内容を記述します。

(a) 再現環境
利用したPCは下記スペックです
CPU: i3-7100
GPU: nvidia 1050Ti
Memory: 16GB
Disk: 500GB(Hard disk)
OS: Ubuntu-20.04.6(desktop)

(b) nvidia + docker + cuda + pytorchの環境構築
前回と同じです
nvidia-driver-535 を利用
dockerはubuntu-20.04.6の標準
docker hubのnvidia/cuda:11.7.1-runtime-ubuntu20.04を利用
pytorchは、Stable(2.0.1)利用

(c) Google Colabで実行された内容の再現
実行はjupyter-notebookで実行しました。
参考資料に従いGoogle Colabで実行された内容をローカル環境で再現。
再現できました。

CodeLlama-7b-hf を利用しているので70億パラメータモデルです。
しかし、モデルは約10GBで巨大です。
Ubuntu-20.04.6の導入完了から時間を測定しました。
(b)(c)の実行に約1.5時間でした。

(2) Code Llamaはpytorch環境でGPU必須でした

知人からCode LlamaはGPUがない環境で動作するのですか? と問合せを受けました。そこで、GPUを利用しないpytorch環境を構築して試験しました。結果は、CUDAがないと動作しないので、nvidaのGPUは必須のようです。この内容を記述します。

(a) 再現環境
利用したPCは下記スペックです
CPU: i3-7100
GPU: nvidia 1050Ti
Memory: 16GB
Disk: 500GB(Hard disk)
OS: Ubuntu-20.04.6(desktop)

(b) docker + pytorchの環境構築
ubuntu-20.04.6環境をBackupからリストアしてクリーン環境にして実行。
nvidiaのドライバーは、nouveauです。
docker hubのcontinuumio/miniconda3:latestを利用
pytorchは、Stable(2.0.1)利用

(c) Google Colabで実行された内容の再現
実行はjupyter-notebookで実行しました。
パッケージのインストールは、実行できました。
モデルとトークナイザーの準備も実行できました。
モデルとトークナイザーの準備の下記部分でエラーとなりました。
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
エラー内容は下記メッセージです。
AssertionError: Torch not compiled with CUDA enabled

(3) Ollamaを利用してLlama-3-ELYZA-JP-8Bを動かしました

Ollamaを利用してLlama-3-ELYZA-JP-8Bを簡単に動かすことができる記事を見つけて試してみました。その内容を記述します。何と言っても日本製品です。安心して利用できることが一番です。

(a) 利用した環境

CPU: Ryzen 3 3200G
Memory: 16GB
SSD: 250GB
OS: Ubuntu-22.04.5
 
(b) 必要なストレージ容量

install作業でOllamaとLlama-3-ELYZA-JP-8Bで約7GB程度です。
コンパクトにできていて、レスポンスもよく、良い感じがします。
参考資料によると、GPT-3.5 Turboより上で、GPT-4より下という感触でしょうか?

(4) Docker環境でOllamaを利用してLlama-3-ELYZA-JP-8Bを動かしました

前回、Ollamaを利用して、Llama-3-ELYZA-JP-8Bを動かしました。今回はより便利なDocker環境で動かすことにチャレンジしました。その内容を記述します。

参考資料を参照して、Ollamaのコンテナをベースに構築をします
利用した環境は前回と同じHWですが、Ubuntu-20.04.6を利用しました

elyzaディレクトリを作成して、そこで作業をします
mkdir elyza
cd elyza
containerの/optディレクトリで作業をすることにします

(a) Modelfileの作成

下記設定をModelfileという名前で作成します

FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"

(b) Dockerfileの作成

下記設定をDockerfileで作成します

from ollama/ollama:latest
#
RUN apt update
RUN apt -y install curl
#
WORKDIR /opt
COPY Modelfile /opt/Modelfile
#
RUN curl -L -o Llama-3-ELYZA-JP-8B-q4_k_m.gguf "https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF/resolve/main/Llama-3-ELYZA-JP-8B-q4_k_m.gguf?download=true"

(c) docker-compose.ymlの作成

下記設定をdocker-compose.ymlで作成します

version: '3.5'
services:
  ollama:
    container_name: ollama
    build:
      context: .
      dockerfile: Dockerfile
      
(d) container起動

$ docker-compose up -d

(e) containerへlogin後、elyza起動

$ docker exec --user root -it ollama /bin/bash

containerにloginすると/optディレクトリに入るので、下記コマンドを実行します

$ ollama create elyza -f Modelfile
$ ollama run elyza

(5) 大規模言語モデルGPT4ALLの記事を見つけて試しました

chatGPTが話題となる中で、GPT-3.5-TurboとMetaの大規模言語モデル「LLaMA」で学習したデータを用いた、ノートPCでも実行可能なチャットボット「GPT4ALL」をNomic AIが発表の記事を見つけました。早速、動作させてみたので、その内容を記述します。

環境はIntel Core i3-7100 Memory 16GBを利用しました。

参考資料のgithubのREADME.mdを参照して、導入できます。

(a) gpt4all-lora-quantized.binをDownload。約4.2GBの巨大なファイルです。
(b) git cloneでモジュールをCopyします。gitallディレクトリができます。
(c) git4all/chatにDownloadしたgpt4all-lora-quantized.binを移動します。

これで準備できました。

動作検証

chatディレクトリに入って、./gpt4all-lora-quantized-linux-x86を実行します。

~/gpt4all/chat$ ./gpt4all-lora-quantized-linux-x86
main: seed = 1680417994
llama_model_load: loading model from 'gpt4all-lora-quantized.bin' - please wait ...
llama_model_load: ggml ctx size = 6065.35 MB
llama_model_load: memory_size =  2048.00 MB, n_mem = 65536
llama_model_load: loading model part 1/1 from 'gpt4all-lora-quantized.bin'
llama_model_load: .................................... done
llama_model_load: model size =  4017.27 MB / num tensors = 291

system_info: n_threads = 4 / 4 | AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | VSX = 0 |
main: interactive mode on.
sampling parameters: temp = 0.100000, top_k = 40, top_p = 0.950000, repeat_last_n = 64, repeat_penalty = 1.300000

== Running in chat mode. ==
 - Press Ctrl+C to interject at any time.
 - Press Return to return control to LLaMA.
 - If you want to submit another line, end your input in '\'.

> do you speak japanese
I do not currently have any knowledge of Japanese language, but I am open to learning it in the future if given proper guidance and resources
>

現状は英語以外ではチャットはできないようです。

注意事項

GTP4ALLは、最初に古いamdのCPUのPCで実行したのですが、Illegal instructionで止まります。参考資料にAVX2サポートが必要と記載されていました。

参考

[本ブログ内参照]
・ChatGPTとGeminiを比較!AIブラウザ「Atlas」から考えるAIの限界とプログラミングの未来
・OpenMythosをLinuxMint/Docker環境で構築方法 ( 1050Ti / 1660 super )

コメント