【Windows】ollamaを任意のディレクトリに展開する

掲載日

結論

コマンドプロンプトを起動し、以下のコマンドで展開します。

OllamaSetup.exe /DIR="d:/ollama"
※ OllamaSetup.exeは任意のexeを配置したパス名に変更すること。
※ "d:/ollama"は任意の展開したいパス名に変更すること。

やりたかったこと

WindowsのPCでローカルLLM(ollamaを使用)を試すにあたって、自分のPC環境がCドライブとDドライブがあり、Cはあまり容量が無くDには余裕がありました。
モデルによっては数十GBとかあるので、余裕のあるDドライブに展開して実行やモデルの保存をしたかったのですが、exeを実行しただけだとCドライブに展開されてしまいました。
展開先を指定する場合、結論のように\DIR="[ここに展開したいパス]"オプションを付けて実行する必要があります。

上手くいかない場合

  • コマンドプロンプトは管理者権限で実行しているか確認します。
    (もしくは、管理者権限でログインしているか確認します。)

最終的にやりたかったこと

ollamaを使って画像を読み取り、適切な代替文字を提案して欲しかった。

前提

  • カレントディレクトリ配下にimagesディレクトリが作成してあり、その下に代替文字を生成したい画像が配置されているものとします。
  • modelは画像認識が出来るものを使用します。
    ここではgemma3:27bを使用していますが、同じgemmaであればgemma3:4b以上であれば画像認識可能です。
    (数字が大きいほど認識の精度は上がりますが、その分メモリも食うのでPCのスペックややりたいことに合わせて調整してください。)

スクリプト

以下のようなpythonスクリプトで、画像ごとに代替文字を出力してくれます。(雑に,入れてcsv出力してますが、業務とかで使用する場合はライブラリとか使ってちゃんとやりましょう。)

import os
import ollama

# 現在の作業ディレクトリを取得
current_directory = os.getcwd()
image_directory = current_directory + '/images/'

file_names = os.listdir(image_directory)

for file in file_names:
    res = ollama.chat(
        model="gemma3:27b",
        messages=[{
            'role': 'user',
            'content':'30文字程度のシンプルな画像代替文字を1つ、そのまま出力してください。',
            'images': ['./images/' + file]
        }]
    )

    print(file + ',' + res['message']['content'])

結果

5件画像を使って試した結果は以下のような感じ。
※画像のタイトルから何か意味を見出される可能性を考慮してファイル名は0~9を割り振ってあります。

0.jpg,みかんと猫のイラスト
1.jpg,広大な田園風景と町並みを空から見た景色。
2.jpg,黒ぶどうの房
3.jpg,川と高層ビル、青空の風景
4.jpg,緑の崖と青い海の風景
5.png,おにぎり(梅)

実際の画像との比較は以下の通り。(※画像は圧縮してwebp形式にしていますが、実際はjpg,pngで読んでいます。)

ファイル名画像代替文字
0.jpg
みかんと猫のイラスト
みかんと猫のイラスト
1.jpg
広大な田園風景と町並みを空から見た景色。
広大な田園風景と町並みを空から見た景色。
2.jpg
黒ぶどうの房
黒ぶどうの房
3.jpg
川と高層ビル、青空の風景
川と高層ビル、青空の風景
4.jpg
緑の崖と青い海の風景
緑の崖と青い海の風景
5.png
おにぎり(梅)
おにぎり(梅)

 

かなりいいのではないでしょうか。
画像代替文字は目が不自由な方には重要な設定ですが、割と「画像1」等のように割り振っておしまい(表のタイトルと勘違いされている)部分なので、こうしてAIで補えると良いですね。

画像出典

 

 

記事の作成者のA.W.のアイコン

この記事を書いた人

A.W.
茨城県在住Webエンジニアです。 PHPなどを業務で使用しています。 趣味ではGoやNuxt、Flutterをやってます。

Comment