Author: Hironori Uchikawa
-
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モデル )…
-
IBM Quantumでの実機実行
# Versionの確認 import qiskit print(f”qiskit=={qiskit.__version__}”) import qiskit_ibm_runtime print(f”qiskit-ibm-runtime=={qiskit_ibm_runtime.__version__}”) qiskit==1.3.2 qiskit-ibm-runtime==0.34.0 IBM Quantumにアカウントを作成後,https://quantum.ibm.com/account にアクセスしてAPIトークンを取得し,以下のYOUR_API_TOKENに入力する. ✳︎IBM Qunanumのアカウント作成方法は省略します. from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token=”YOUR_API_TOKEN”, channel=”ibm_quantum”, overwrite=True ) 上記コードを実行すると,(Macの場合).qiskit/qiskit-ibm.json にアカウント情報が保存され,次からはAPIトークンを指定せずにQiskitRuntimeServiceを使用できるようになる. { “default-ibm-quantum”: { “channel”: “ibm_quantum”, “private_endpoint”: false, “token”: “YOUR_API_TOKEN”, “url”: “https://auth.quantum-computing.ibm.com/api” } }% Bell状態を作る量子回路を実機実行してみる. from qiskit import QuantumCircuit from qiskit.visualization import plot_histogram from qiskit_ibm_runtime import QiskitRuntimeService from qiskit_ibm_runtime import…
-
量子計算その1
計算基底から他の基底を導出する. アダマール基底 $|+\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \cr 1 \end{pmatrix}$ と $|-\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \cr -1 \end{pmatrix}$ は計算基底 $|0\rangle = \begin{pmatrix} 1 \cr 0 \end{pmatrix}$ と $|1\rangle = \begin{pmatrix} 0 \cr 1 \end{pmatrix}$ それぞれにアダマールゲートを作用させることで導出できる. $$ H|0\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \cr 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \cr 0 \end{pmatrix} =…
-
ロジスティック回帰を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…
-
Qiskit はじめました
Qiskit は、IBM が提供する量子計算用のPythonライブラリです.私は IBM Quantum Challenge の時に使用するだけなので,毎回使うたびに以前覚えたことを忘れているので,備忘録として少しブログにまとめておこうと思います. # バージョン確認 import qiskit print(qiskit.__version__) 1.2.4 Bell状態を作る回路を作成してみます. from qiskit import QuantumCircuit qc = QuantumCircuit(2, 2) qc.h(0) qc.cx(0, 1) qc.measure([0,1], [0,1]) qc.draw(output=’mpl’) QuantumRegister と ClassicalRegister を作成し,それぞれのレジスタを使って回路を作成する方法もある. ※この辺表記が複数あるので毎回混乱してる. from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit qr = QuantumRegister(2,’qr’) #量子ビット.名前がつけられる cr = ClassicalRegister(2,’cr’) #古典ビット.名前がつけられる qc = QuantumCircuit(qr, cr) qc.h(0) qc.cx(0, 1) qc.measure(qr,…
-
PyPDF2を使ってPDFを結合する
PyPDF2を使って2つのPDFを結合するスクリプトを作成する. 使用した Python のバージョンは 3.11.3 で,PyPDF2のバージョンは 3.0.1 である. import PyPDF2 # マージする2つのPDFファイルを指定 pdf_file1 = “file1.pdf” pdf_file2 = “file2.pdf” # 新しいPDFファイルを作成してマージするためのPdfFileWriterオブジェクトを作成 output_pdf = PyPDF2.PdfWriter() # 最初のPDFファイルを開いてページを追加 with open(pdf_file1, “rb”) as file1: pdf_reader1 = PyPDF2.PdfReader(file1) for page_num in range(len(pdf_reader1.pages)): page = pdf_reader1.pages[page_num] output_pdf.add_page(page) # 2番目のPDFファイルを開いてページを追加 with open(pdf_file2, “rb”) as file2: pdf_reader2 = PyPDF2.PdfReader(file2) for page_num in range(len(pdf_reader2.pages)):…
-
Raspberry Pi のターミナルで日本語を表示させる
Raspberry Pi OS をインストールした Raspberry Pi で,デフォルトのままだとターミナル上で日本語が表示されなかったので設定した際のメモ. Raspberry Pi のターミナルで日本語を表示させるためには,システムのロケールを日本語(UTF-8)に設定し,日本語フォントをインストールする必要がある.以下がその手順. ロケールの設定 Raspberry Pi OS では,raspi-config ツールを使用してロケールを設定できる. ターミナルを開き,以下のコマンドを実行. sudo raspi-config 「Localisation Options」(ローカリゼーション設定)を選択. 「Locale」を選択し、使用したい日本語ロケール(例:ja_JP.UTF-8)を探して選択する. デフォルトのロケールとして設定. 日本語フォントのインストール ターミナル上で日本語を正しく表示されるには,日本語フォントが必要.以下のコマンドで日本語フォントをインストールする. sudo apt-get install fonts-ipafont 最後にシステムの再起動 設定を有効にするために Raspberry Pi を再起動する. sudo reboot 再起動後,ターミナルを開いて日本語が正しく表示されるか確認する. ちなみに自分の環境では,cat コマンドで日本語表示できたものの,less コマンドで日本語が文字化けしていた. echo $LANG echo $LC_ALL で,ロケールが正しく設定されているか確認すると.LC_ALL が設定されていなかったので,以下のコマンドを .bashrc に追記することで解決した. export LC_ALL=ja_JP.UTF-8
-
arXivの新着をSlackに通知する
★注意★ この記事のスクリプトは下記の古いパッケージで動作確認しており,最新のパッケージでは動作しないことをご留意ください. arxiv==1.4.7 openai==0.27.4 arxiv APIを用いた論文検索 arxivに投稿された論文を自動でSlackへ通知するbotを作成する. 概ね 参考1 を参考にした. arxivのAPIを用いると,以下のように新規投稿された論文を取得できる. import datetime as dt import arxiv # パラメータ MAX_RESULT = 10 N_DAYS = 7 # テンプレートを用意 QUERY_TEMPLATE = ‘%28 ti:%22{}%22 OR abs:%22{}%22 %29 AND submittedDate: [{} TO {}]’ keyword = “Information Theory” today = dt.datetime.today() base_date = today – dt.timedelta(days=N_DAYS) query = QUERY_TEMPLATE.format(keyword, keyword,…