Category: MachineLearning
-
SWE-agent-LM-32B でsmolagentsしてみる
Qwen2.5 Coderよりもエージェントベンチマークで良いスコアとのXで話題が出ていた SWE-agent-LM-32B を使ってみる. モデルがhugging faceにアップロードされたばかりで,MLX量子化版がなかったので,以下のコマンドで量子化してみた. mlx_lm.awq –model SWE-bench/SWE-agent-LM-32B –bits 4 AWQ (activation-aware weight quantization) は v0.24.0 で使える量子化モードで,通常の量子化よりも性能が良いらしい. DWQ (Distilled weight quantization) という量子化もあるらしいが,pipでインストールした mlx_lm v0.24.0 には含まれていないので,今回はAWQで量子化した. import os from smolagents import CodeAgent, DuckDuckGoSearchTool, MLXModel model = MLXModel( model_id=os.path.join(os.environ.get(“MLX_MODELS_PATH”), “SWE-bench/SWE-agent-LM-32B-4bit-AWQ”), max_tokens=4096 ) agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model) agent.run(“Search for the best music recommendations for a party at…
-
APIモデルとローカルモデルの差異
Hugging Faceのagents courseのノートブックノートブックでモデル動作をAPIではなくローカル動作に変更した際に,APIモデルの出力とローカルモデルの出力に差異があった.差異をなくすために試行錯誤した中で気づいた点をまとめておく. まず,TransformersModelを使用してローカルで動かした結果を見てみる. from smolagents import CodeAgent, DuckDuckGoSearchTool, TransformersModel agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=TransformersModel(model_id=”Qwen/Qwen2.5-Coder-32B-Instruct”, device_map=”auto”, torch_dtype=”auto”)) agent.run(“Search for the best music recommendations for a party at the Wayne’s mansion.”) `max_new_tokens` not provided, using this default value for `max_new_tokens`: 5000 Loading checkpoint shards: 0%| | 0/14 [00:00<?, ?it/s] New run Search for the best music recommendations…
-
mlx-lmを試してみる
Apple silicon用の推論ライブラリmlx-lmを試したみたのでその備忘録. (検索すればいくらでも出てくる内容) 準備 mlxとmlx-lmのインストール pip install mlx mlx-lm インストールされたバージョンは以下の通り Python 3.11.11 mlx 0.25.1 mlx_lm 0.24.0 コマンドラインからの実行 mlx_lm.generate –model mlx-community/Qwen3-8B-4bit \ –prompt “機械学習フレームワークのMLXについて教えて” \ –max-tokens 1024 Qwen3は思考テキストが長く,max-tokensが512だと出力されなかった. 以下は出力が長いので,速度だけ記しておく.なおM2 Ultraのmacstudio上で実行した. Prompt: 20 tokens, 130.271 tokens-per-sec Generation: 1024 tokens, 104.712 tokens-per-sec Peak memory: 4.898 GB /no_thinkをプロンプトに追加した場合は以下の通り. Prompt: 24 tokens, 147.129 tokens-per-sec Generation: 1024 tokens, 104.482 tokens-per-sec Peak…
-
Hugging Face APIの導通確認
Hugging face APIを使用して,LLMの応答試験を行います. ドラフトのコードをChatGPTで生成し,動作するように修正しました. from huggingface_hub import InferenceClient import os from dotenv import load_dotenv # .envファイルから環境変数を読み込む(HF_TOKENを保存) load_dotenv() client = InferenceClient(token=os.getenv(“HF_TOKEN”)) # 1. 英語のテキストでテスト print(“=== 英語テキストのテスト ===”) try: response = client.text_generation(“Hello, world!”, model=”gpt2″) print(“レスポンスの内容:”, repr(response)) except Exception as e: print(“エラーが発生しました:”, str(e)) # 2. 日本語対応モデルでテスト print(“\n=== 日本語対応モデルのテスト ===”) try: response = client.text_generation( “こんにちは、世界!”, model=”rinna/japanese-gpt2-medium” # 日本語対応GPT-2モデル )…
-
ロジスティック回帰をJuliaで実装してみる
Coursera の Deep Learning Specialization の Logistic Regression with a Neural Network の演習内容(演習はPythonで実装)をJulia で実装してみる. # dataset loading using HDF5 function load_dataset() train_set_x_orig = nothing train_set_y_orig = nothing test_set_x_orig = nothing test_set_y_orig = nothing classes = nothing train_dataset = h5open(“datasets/train_catvnoncat.h5”, “r”) do file train_set_x_orig = read(file[“train_set_x”]) train_set_y_orig = read(file[“train_set_y”]) train_set_y_orig = reshape(train_set_y_orig, :, 1) end test_dataset…
-
Fluxを使用した勾配法のデモ
和田山先生の「モデルベース深層学習と深層展開」 の第2章に記載のあった勾配法のFluxによる実装を試す.実行環境は以下の通り Julia Version 1.11.1 Commit 8f5b7ca12ad (2024-10-16 10:53 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: macOS (arm64-apple-darwin22.4.0) CPU: 8 × Apple M1 WORD_SIZE: 64 LLVM: libLLVM-16.0.6 (ORCJIT, apple-m1) ここでは2次式の最小化問題 $$ \underset{(x_1, x_2) \in \mathbb{R}^2}{\text{minimize}} \quad 4x_1^2 + x_2^2 $$ を勾配法で解くことを考える.$x_1 = x_2 = 0$ が最小値を与えることは明らかであるが,この関数の勾配は $$ \frac{\partial f}{\partial x_1} = 8x_1, \quad…