言語モデル

Gemma 3 を Ollama で動かしてOCRアプリを作る

Pythonスクリプト import ollama import gradio as gr def extract_text(filepath: str): """ 画像からテキストを抽出する関数(ストリーミング対応) """ if not filepath: yield "画像がアップロードされていません。" return try: # Ollamaでテキスト抽出…

Gemma 3 QAT を LM Studio で動かしてOCRアプリを作る(Gradio と LangChain)

はじめにQATとは量子化認識トレーニング(Quantization-Aware Training)の略です。これによって高品質を保ちながらVRAM使用量を大幅に抑えられるようです。今回は「gemma-3-27b-it-qat-q4_0-gguf」をLM Studioから使ってみました。LM Studioから検索すると…

LM Studio で qwen2.5-bakeneko-32b-instruct-v2 を試してみる。VRAM 16GBで実用的に使用できるのかどうか?

使用したモデル「qwen2.5-bakeneko-32b-instruct-v2」はrinnaが公開している日本語言語モデルです。非常に良いとの情報を得たのでLM Studioで動かしてみました。今回使用したのはrinnaが公式に公開している「qwen2.5-bakeneko-32b-instruct-v2-q4_k.gguf」と…

【SmolAgents】汎用性のあるサンドボックス用Dockerイメージを作成する

はじめに今までは「Dockerfile」にuvやnode.jpのインストールとかファイルのコピーとかを記述していました。使い方が変わるたびにDockerイメージを作り直していたのですが面倒くさいことに気づきました。イメージからコンテナを作成するときにインストールと…

【SmolAgents】Google の Gemini 2.0 Flash を使ってみました。

はじめに今までは Google の Gemma-3-12b(4bit量子化)をllama.cppで実行して使っていました。今回は無料枠のなかで Google の Gemini 2.0 Flash を使わせてもらいました。感想言語モデルは大事です。明らかにSmolAgentsの回答が変わりました。変更点前回、…

【SmolAgents】Playwright MCP を使ってみる。

はじめにMicrosoftが開発しているPlaywrightはブラウザ自動化機能を提供するライブラリです。Playwrihgt MCPはそのModel Context Protocol (MCP)サーバになります。これを使うことによって言語モデルとPlaywrightを簡単に結びつけることができるようになるの…

【SmolAgents】エージェントっぽいのを作ってみたけど理想と現実はだいぶ違った

はじめに完全ローカルのAIエージェントをSmolAgentsを使って作ってみました。もちろん簡単なことしかできません。 使用した言語モデル:gemma-3-12b-it-Q4_K_M.gguf(llama.cppで実行)./llama-server -m ~/models/gemma-3-12b-it-Q4_K_M.gguf -c 8192 -ngl …

【SmolAgents】Dockerコンテナをサンドボックスとして使用する時はGradioを使うべし

はじめにSmolAgents(v1.12.0)でDockerコンテナをサンドボックスとして使用した時に出力が段階的にならない問題に直面しました。昨日なんとか解決方法を見つけたのですが、その後Gradioを使えばもっと簡単に解決することがわかりました。 touch-sp.hatenabl…

【SmolAgents】Dockerコンテナをサンドボックスとして使用した場合に各Step毎に結果を出力させる方法

はじめに以前SmolAgentsの記事を書きましたが、いずれもすべてのStepが終了した後にまとめて結果が出力されていました。 touch-sp.hatenablog.com touch-sp.hatenablog.com サンドボックスを使わなければそんなことは起きないのですが、サンドボックスを使っ…

HuggingFaceが開発している「SmolAgents」で LangChain Tools がいとも簡単に使えました。

はじめにLangChainでFunction Callingを試した時の記事はこちらです。 touch-sp.hatenablog.com その時作ったToolがそのままSmolAgentsで使えました。課題 4桁の数字の間に四則演算を加えて10を作る Toolを定義したファイル(langchain_tool.py) from langc…

HuggingFaceが開発している「SmolAgents」でMCPサーバーを使ってみる。

はじめにLLMの実行llama.cppでGemma-3-12b-it-Q4_K_M.ggufを実行しています。 ./llama-server -m /home/hoge/Documents/models/gemma-3-12b-it/gemma-3-12b-it-Q4_K_M.gguf -ngl 40 -c 16384 --host 0.0.0.0詳細はこちらを見て下さい。使用するMCPサーバー「…

4bit量子化した gemma-3-12b-it をWSL2上の llama.cpp で動かす

はじめに画像は扱っていません。ベンチマーク「ngl」の値をいろいろ変えてみました。「ngl=-1」がCPUのみで動いている(?)結果です。それにしては速すぎるような気もするので実はGPUが使われているのかもしれません。 上段がプロンプトの処理速度、下段がテ…

HuggingFaceが開発している「SmolAgents」を使ってみる。

はじめに2025年のトレンドは「AIエージェント」らしいです。時代に取り残されないために「SmolAgents」というのを触ってみました。環境構築にはまりまくりました。今回は導入までの備忘録です。SmolAgentsで何ができるか?もちろんいろいろなことができるら…

LangChainの勉強。vLLMで立ち上げた言語モデルを使って画像からテキストを抽出する。

はじめに画像からテキストを抽出するのにLangChainの必要性はあまりありません。ただ、LangChainを使うとスクリプトが非常にシンプルになります。Pythonスクリプト from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parse…

ローカルで動くOCRアプリがあれば便利なので最近話題の「Mistral-Small-3.1-24B-Instruct-2503」や「gemma-3-27b-it」で作ってみました。ついでに「EasyOCR」でも作って性能比較もしてみました。

注意「Mistral-Small-3.1-24B-Instruct-2503」と「gemma-3-27b-it」は自身のPC環境の制限のため4bit量子化して使用しています。本来はもう少し性能が高いと思いますので今回の結果は参考程度に見て下さい。パラメーターの設定も詰め切れてないと思います。お…

GradioとTransformersで Mistral-Small-3.1-24B-Instruct-2503 を使う

使用したPC プロセッサ Intel(R) Core(TM) i7-12700H 実装 RAM 32.0 GB GPU RTX 3080 Laptop (VRAM 16GB) VRAM 16GBで動かすためにbitsandbytesで4bit量子化を行っています。 画像を扱うとVRAM消費量が増えるため今回はマルチモーダル非対応です。Python環境…

「vLLM」と「ChatUI」を使って Gemma-3-27B-it を実行する

はじめに以前「Gradio」を使いました。今回は「ChatUI」を使います。 touch-sp.hatenablog.com Gemma-3-27B-itの実行は前回同様vLLMを使っています。 vllm serve google/gemma-3-27b-it --quantization bitsandbytes --load-format bitsandbytes --max-model…

【vLLM】bitsandbytesと「--cpu_offload_gb」は一緒に使えないらしい。

このようなエラーが出ました。 AttributeError: 'Tensor' object has no attribute 'bnb_quant_state' ggufを使った場合にも起きるエラーのようです。 こちらにIssueが上がっていますが未解決です。 github.com AutoAWQなど別の量子化方法を使ってエラーを回…

【備忘録】Gradioから llm-jp-3-13b-instruct3 を使おうとしたら ['token_type_ids'] に関するエラーがでたのでその解決策を書きます。

エラー内容 raise ValueError( ValueError: The following `model_kwargs` are not used by the model: ['token_type_ids'] (note: typos in the generate arguments will also show up in this list) 解決策 # token_type_idsを削除 if "token_type_ids" in…

「vLLM」と「Gradio」を使って Gemma-3-27B-it を実行する

マルチモーダルモデルということで画像を扱ってみました。使用したPCVRAM 24GBのRTX 4090を使用しました。さらにbitsandbytesで量子化も行っています。 プロセッサ Intel(R) Core(TM) i7-14700K 実装 RAM 96.0 GB GPU RTX 4090 (VRAM 24GB) vLLMを実行ここは…

「vLLM」と「ChatUI」を使って Qwen2.5-VL-3B-Instruct を実行する

Vision&LanguageモデルをChatUIで使うのは初めてでしたが画像のアップロードなどもうまくいきました。はじめに以前Transformersを使って「Qwen2.5-VL-3B-Instruct」を使いました。 touch-sp.hatenablog.com 今回は「vLLM」と「ChatUI」の組み合わせで使って…

「vLLM」と「ChatUI」を使って QwQ-32B を実行する

画像では思考過程(Reasoning)が閉じられていますが中を見ることが可能です。はじめに話題のQwQ-32BをAutoAWQで量子化してChatUIから使いました。使用したPC プロセッサ Intel(R) Core(TM) i7-14700K 実装 RAM 96.0 GB GPU RTX 4090 (VRAM 24GB) 方法vLLM側…

「vLLM」と「ChatUI」を使って qwen2.5-bakeneko-32b-instruct を実行する

はじめにWSL2上のvLLMで「qwen2.5-bakeneko-32b-instruct」を実行して、Windows上のChatUIでそれを利用してみました。vLLMで「qwen2.5-bakeneko-32b-instruct」を実行する方法はこちらを見て下さい。 touch-sp.hatenablog.com 以前はGradioを使いましたが今…

32B(パラメーター数 320億)の「qwen2.5-bakeneko-32b-instruct」をVRAM 16GBのノートPCで動かす

はじめにvLLMを使ってVRAM 16GBのノートPCで「qwen2.5-bakeneko-32b-instruct」を動かしてみました。当然量子化が必要になってきます。どこまでビット数をさげるかは難しいところですが、あまり下げすぎると推論精度が落ちるリスクがあります。今回はautoawq…

vLLMでrinnaが公開している「qwen2.5-bakeneko-32b-instruct」を使ってみました

使用したPC32Bモデル(パラメーター数320億)なのでVRAM 24GBのRTX 4090を使用しました。 プロセッサ Intel(R) Core(TM) i7-14700K 実装 RAM 96.0 GB GPU RTX 4090 (VRAM 24GB) 実行中の表示 INFO 02-18 22:06:19 model_runner.py:1115] Loading model weigh…

「AXCXEPT」という日本の会社が公開している「phi-4-deepseek-R1K-RL-EZO」というモデルを使ってみました

はじめに以前同じ会社が公開してくれている「phi-4-open-R1-Distill-EZOv1」というモデルを使ったことがあります。 touch-sp.hatenablog.com 日本語の追加学習をした推論モデルとしてはサイバーエージェントが公開してくれている「DeepSeek-R1-Distill-Qwen-…

【bitsandbytesで量子化】vLLMでサイバーエージェントが公開している「DeepSeek-R1-Distill-Qwen-14B-Japanese」のサーバーを立ててPythonから使用する

使用したPC プロセッサ Intel(R) Core(TM) i7-12700H 実装 RAM 32.0 GB GPU RTX 3080 Laptop (VRAM 16GB) はじめに日本語の追加学習が加えられたDeepSeek-R1関連のモデルで現状一番良いと思うのがサイバーエージェントが公開してくれている「DeepSeek-R1-Dis…

【AutoAWQで量子化】vLLMでサイバーエージェントが公開している「DeepSeek-R1-Distill-Qwen-14B-Japanese」のサーバーを立ててPythonから使用する

使用したPC プロセッサ Intel(R) Core(TM) i7-12700H 実装 RAM 32.0 GB GPU RTX 3080 Laptop (VRAM 16GB) はじめに日本語の追加学習が加えられたDeepSeek-R1関連のモデルで現状一番良いと思うのがサイバーエージェントが公開してくれている「DeepSeek-R1-Dis…

Hugging Face の Text Generation Inference を使ってみる

はじめにDockerでの使用が推奨されています。今回はWLS2内にDockerをインストールしてサーバーとしてText Generation Inferenceを使用しました。クライアント側はWindowsのPythonを使用しました。WSL2(サーバー側)の設定 Ubuntu 24.04 on WSL2最初の確認「…

Lightblueが「DeepSeek-R1-Distill-Qwen-7B」の日本語追加学習モデルを公開してくれたのでさっそく使ってみました

はじめにサイバーエージェントが「DeepSeek-R1-Distill-Qwen-14B-Japanese」を公開しています。 huggingface.co 今回はLightblueの「DeepSeek-R1-Distill-Qwen-7B-Japanese」を使ってみます。 huggingface.co 結果プロンプト ある父と子の年齢に関する問題が…