1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Intel CPUでLLM推論高速化(~2.85x)・学習高速化(~2x)&proxy環境下におけるinstall,Linux整備,LLM利用,アプリ開発

Last updated at Posted at 2025-07-27

:blue_heart: :yellow_heart: :green_heart: :purple_heart: :heart: :blue_heart: :yellow_heart: :green_heart: :purple_heart: :heart: :blue_heart: :yellow_heart: :green_heart: :purple_heart: :heart: :blue_heart: :yellow_heart: :green_heart: :purple_heart: :heart: :blue_heart: :yellow_heart: :green_heart: :purple_heart: :heart: :blue_heart: :yellow_heart: :green_heart:

はじめに

大粒の涙が止んだあと、すみれ色の空が波紋のように広がる :sparkles: 今日この頃、皆様いかがお過ごしでしょうか?
六花 牡丹(りっか ぼたん)と申します :heart_exclamation:

本記事では、
1.Intel CPUにおける推論・機械学習の高速化
2.社内環境などのproxy環境において、libraryをinstallする方法やlinuxを導入する方法
3.OSのセキュリティで誤検知されにくいアプリの開発方法
4.社内環境などのproxy環境において、ローカルLLMを使用する方法
について、説明していきます。

proxy.png

拙筆ではございますが、皆様のお役に立つことを心から願っております。
未熟者故、記事中にて誤記・欠落などが見られることがございます。
もし発見しました場合には、コメント等にてご指摘いただきますようお願い申し上げます。

:blue_heart: :yellow_heart: 六花牡丹のX(Twitter)アカウント :green_heart: :purple_heart:

ここで最新の進捗や技術に関する情報(時々近況とかお洋服とか :musical_note: について)を共有していきますので、もしよろしければフォローなどよろしくお願いいたします :heart_exclamation:

執筆動機

企業ではコスト・費用処理の観点から計算能力の高いPCを購入できない場合があります。(特にGPU搭載PCの購入は困難な場合も多い)
このような場合でも学習を効率化し、少しでも性能のいいモデルを作成することが求められます。
また、セキュリティレベルが高い会社さんなどでは、プロキシサーバー(proxy server)を介していることで、問題ないにもかかわらず、通常の方法ではPython libraryがインストールできなかったり、Windows OS上でLinux環境を構築できない場合があります。
本記事では、そうした場合でも環境構築できるような方法について説明するとともに、Intel CPUにおける推論・学習効率化の方法を説明することで、社内におけるDX化推進に役立てることを、目的とします。
また、Linux環境の構築により技術の選択肢も増やせるようにします。

対象読者

  • 規則・環境・人的要因により、通常の方法では環境構築が困難な方
  • 社内におけるDX化推進の契機を生み、業務効率化につなげたいと考える方

DX.png

すべての環境で動作を保証するものではありません。
環境次第ではうまく動かない場合もありますので、
試してみるくらいの感覚で行っていただけると幸いです。

環境

下記のいずれかのプロセッサーを含むPC

Intel® Core™ Processors
Intel® Xeon® processors
Intel® Xeon® Scalable Processors
Intel® Arc™ B-Series Graphics (Intel® Arc™ B580 [Verified], Intel® Arc™ B570)
Intel® Arc™ A-Series Graphics (Intel® Arc™ A770 [Verified], Intel® Arc™ A750, Intel® Arc™ A580, Intel® Arc™ A770M, Intel® Arc™ A730M, Intel® Arc™ A550M)
Intel® Data Center GPU Max Series [Verified]

目次

  1. proxy環境下におけるバージョン管理ツールを用いた環境構築
  2. proxy環境下でのLinux導入
  3. Intel CPU & Pytorchでの機械学習高速化
  4. セキュリティ誤認されにくいPython GUIアプリの構築法
  5. LMStudioをproxy環境下で使用する方法

1. proxy環境下におけるバージョン管理ツールを用いた環境構築

pipを用いたlibraryのinstallにおいて、そのままではSSLErrorとなり、インストールすることが困難です。
下記に示すように、オプションを付けることで、proxy環境下でも問題なくinstallできる可能性があります。

sslerrorを回避するための基本的なインストール手順

git cloneの場合
git clone -c http.sslVerify=false https://github.com/Rikka-Botan/IMoE.git
pip installの場合
pip install torch --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host=files.pythonhosted.org --timeout=600

2. proxy環境下でのLinux(Ubuntu)導入

ターミナルを管理者権限で起動し、下記コマンドを実行します。
--web-downloadにより、SSLErrorを防ぐことができます。

Ubuntuの導入
wsl --set-default-version 2
wsl -l --online
wsl --install -d Ubuntu-22.04 --web-download

この状態だと、pipが導入されていないため、下記を実行します。
なお1行目は、Package 'python3-pip' has no installation candidateというエラーを防止するために実行が必要です。

pipの導入
sudo apt update
sudo apt install python3-pip

3. Intel CPU & Pytorchでの機械学習高速化

Intel® Extension for PyTorch

というライブラリを用いることで、Intel CPUにおいて、推論・機械学習を高速化することが可能です。

Intel® Extension for PyTorch

特徴

  • PyTorch の演算(特に Conv, Linear, BatchNorm など)を OneDNN ベースの高速な実装に置き換え
  • AVX2, AVX-512, BF16, AMX などの Intelアーキテクチャ固有の命令セット を活用
  • 自動的にBF16演算へと切り替えることで 精度を保ちつつ高速化
  • PyTorchモデルをTorchScript形式に変換し、実行グラフを静的に解析
  • 演算の融合(Fusion) を行うことで、複数の演算を一括して最適な命令に変換
  • 内部でスレッド管理やメモリ配置(NUMA)を制御し、コア使用率とキャッシュ利用を最適化

推論高速化率

(M6i: 3rd Intel® Xeon® Processors vs M7i: 4th Intel® Xeon® Processors)

モデル/目的 精度 向上率(スループット)
LLaMA2‑7B FP32/BFloat16 約 2.5〜2.6x
LLaMA2‑13B FP32/BFloat16 約 2.6×
GPT‑J‑6B FP32/BFloat16 約 2.6〜2.85×
上記モデル(INT8 量子化) INT8 約 1.3〜1.4×

Intel® Extension for PyTorch performanceより引用

学習高速化率

モデル/目的 精度 向上率(スループット)
RetinaNet‑ResNeXt50(学習) 約 2×

Deep Learning Models on CPUs: A Methodology for Efficient Trainingより引用

intel-extension-for-pytorchのインストール方法

intel-extension-for-pytorchはLinuxでのみ提供されています。
そのため、Linux環境でのインストール・コード実行が必要です。

Linux起動
bash
Libraryのインストール
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host=files.pythonhosted.org --trusted-host download.pytorch.org --trusted-host pytorch.org --timeout=600
pip install intel-extension-for-pytorch oneccl_bind_pt --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/cpu/us/ --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host=files.pythonhosted.org --trusted-host download.pytorch-extension.intel.com --trusted-host pytorch-extension.intel.com --timeout=600

使い方

機械学習高速化
import torch
import intel_extension_for_pytorch as ipex

# 下記をコードに追加し、学習
# dtypeは学習の精度に応じて適宜選択
model, optimizer = ipex.optimize(
    model=model,
    optimizer=optimizer,
    dtype=torch.float32,
    weights_prepack=False
)
# PCによっては使えないかもしれません
model = torch.compile(model, backend="ipex")
LLMの高速化
import torch
import intel_extension_for_pytorch as ipex

# 下記をコードに追加し、推論
# dtypeは学習の精度に応じて適宜選択
model = ipex.llm.optimize(
    model,
    dtype=amp_dtype,
    inplace=True,
    deployment_mode=True,
)
実行
python3 sample.py

4. セキュリティ誤認されにくいPython GUIアプリ(exeファイル)の構築法

pyinstallerでウイルスブロックを回避する方法
pyenvで仮想環境を構築し、必要なlibraryをインストール。
GUIを記述するコードの最初に、下記のような記載を追加します。
この記載は、アプリがOS上で「トロイの木馬」として誤認されるのを防ぐためのものです。

flet-app-sampleコード

import torch
import torch.jit
import sys
import os
import flet as ft

# ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ
# security errorを防止するための処理

def script_method(fn, _rcb=None):
    return fn

def script(obj, optimize=True, _frames_up=0, _rcb=None):
    return obj

script_method1 = torch.jit.script_method
script1 = torch.jit.script_if_tracing
torch.jit.script_method = script_method
torch.jit.script = script

os.environ["TCL_LIBRARY"] = os.path.join(
    sys.base_prefix, "lib", "tcl8.6"
)
os.environ["TK_LIBRARY"] = os.path.join(
    sys.base_prefix, "lib", "tk8.6"
)

# ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ
# mainアプリの機能を実装
def main(page: ft.Page):
    # 何らかの処理

# ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ・–・ꔫ
# Run the app
ft.app(main)

アプリのコードが記述出来たら、下記を実行します。
GitHubから最新版のpyinstallerを入手し、
アプリがOS上で「トロイの木馬」として誤認されるのを防ぐための処理を行います。
その後、必要なデータを含めてアプリ化します。
--add-dataはアプリに含めたいデータ、
--collect-allはそのままアプリ化すると、うまくlibraryがアプリに含まれない場合に使用します。
--collect-data, --hidden-importunidic-liteなどの辞書にかかわるlibraryを使用する際に用います。

セキュリティに誤認されづらいexeファイル化
git clone -c http.sslVerify=false https://github.com/pyinstaller/pyinstaller.git

cd bootloader    
py ./waf distclean all

pipenv run pyInstaller flet_app.py  --onefile --paths='your pass'  --add-data='./your data;.' --collect-all 'your library' --icon='./your icon' --collect-data 'your dictionary' --hidden-import 'your library'

5. LMStudioをproxy環境下で使用する方法

proxy環境下ではアプリ経由でモデルをダウンロードできません。
(2025年7月現在は、proxy非対応)
そのため、下記のようにしてモデルを使用可能にする必要があります。

LM Studioをインストールし、hugging faceから使用したいモデルのggufファイルをダウンロードします。
(メモリが16GB程度であれば、Qwen3 4B, Gemma3 4B, sarashina2.2 3B
メモリが8GB程度か速度を優先したい場合は、Qwen3 1.7B, LFM2 1.2B
がおすすめ)
その後、下記のコマンドを実行します。
ただし、1行目は一回目のみで大丈夫。
2回目のコマンド実行後に、Interactive importを選択 → 作成者・モデル名空欄で実行します。

LM Studioへのモデルのimport
cmd C:/Users/.cache/lm-studio/bin/lms.exe bootstrap
lms import Downloads/LFM2-1.2B-Q8_0.gguf

LM Studioのアプリを開くとモデルが使用可能になっていることが確認できます。

最新のモデルが使用できない場合はllama.cppのバージョンが古いと考えられます。
最新版のLM Studioを再度ダウンロードすることで反映させることができます。

執筆者:六花 牡丹(りっか ぼたん)

おさげとハーフツイン・可愛いお洋服が好きで、基本的にふわふわしている変わり者。
結構ドジで何もないところで転ぶタイプ。
人工知能に関しては独学のみ。
最近、きゅんってなる恋愛小説がなくて、いい本を探し中...
(なお、恋とかはよくわからない...)

RikkaBotan_Logo.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?