タグ

ブックマーク / tadaoyamaoka.hatenablog.com (10)

  • RTX4090とA100のNPSの比較 - TadaoYamaokaの開発日記

    今年の世界コンピュータ将棋選手権で、dlshogiチームはA100x8のサーバを9台使用してMultiPonderによるクラスタ構成を採用していた。 9台使用していても、Ponderにヒットした1台しか実際の指し手には影響せず、多くのケースではMultiPonderなしの通常のPonderと結果は変わらない。 準優勝のやねうら王チームは、vast.aiというサービスを利用して、RTX4090x9のマシンを使用していた。 RTX 4090は、A100よりも新しい世代のチップで推論性能は、dlshogiチームのA100よりも高かった。 参考:第33回世界コンピュータ将棋選手権準優勝記 | やねうら王 公式サイト カタログスペックで比較すると、RTX 4090の方がスペックが上であることがわかる。 CUDAコア数 Tensorコア世代 Tensorコア数 RTX 4090 16384 第4世代

    RTX4090とA100のNPSの比較 - TadaoYamaokaの開発日記
    yuiseki
    yuiseki 2023/11/29
  • WhisperのモデルをONNXにする - TadaoYamaokaの開発日記

    WhisperのモデルをONNXに変換する方法について記述する。 Whisperのモデル WhisperのモデルはPyTorchを使ってPythonで実装されている。 そのため、実行にはPyTorchをインストールしたPython環境が必要になる。 環境構築なしでスタンドアロンで利用できると用途が広がる。 また、アプリへの組み込みも行いやすくなる。 ONNXモデル ONNXは、ニューラルネットワークの標準ファイルフォーマットである。 モデルをONNXにすると、ONNX Runtimeなどの推論用のライブラリを使って推論できる。 推論用のライブラリは、組み込みで使うことを意図しているので、スタンドアロンのアプリに組み込むことができる。 ONNXへの変換 WhisperのモデルからONNXへの変換は、pytorch.onnxを使って行う。 ただし、Whisperは、デコーダのループ処理で、前の

    WhisperのモデルをONNXにする - TadaoYamaokaの開発日記
  • Whisperでリアルタイムに文字起こしするアプリ - TadaoYamaokaの開発日記

    前回の記事で、WhisperのモデルをONNXにして文字起こしができるようになったので、Windowsでスタンドアロンで実行できるアプリを作成した。 C#でWPFを使用して開発したので、実行できるのはWindowsのみである。 GitHubのReleaseからダウンロードできるようにした。 GitHub - TadaoYamaoka/RealtimeTranscribe: real-time transcription application 実行環境 .NET 6の.NET デスクトップ ランタイムが必要である。 実行方法 ReleaseからダウンロードしたRealtimeTranscribe.zipを解凍して、「RealtimeTranscribe.exe」をダブルクリックすると起動できる。 ラジオボタンで、「マイク」を選択すると音声をマイクから入力し、「ループバック」を選択するとPC

    Whisperでリアルタイムに文字起こしするアプリ - TadaoYamaokaの開発日記
  • Whisperとゲームバーで会議議事録作成を自動化する - TadaoYamaokaの開発日記

    先日、OpenAIが公開したオープンソースの音声認識ソフトウェアのWhisperを使って、会議議事録を自動作成する方法について記載する。 昨今、オンライン会議が主流になっているため、会議を録画/録音することが容易になっている。 Windows 10/11には、Xbox Game Barという機能が標準で備わっており、ZoomやGoogle Meets、Teamsなどでの会議が録画が可能である。 ループバック録音も可能で、再生している音声と、マイクからの音声をミックスして録音できる。 Xbox Game Barで録画した音声と、Whisperを組み合わせることで、無料で手軽に会議議事録を自動作成できる。 以下、手順について記載する。 事前準備 Xbox Game Barの設定 Windowsキー+Gで、Xbox Game Barを起動する。 歯車アイコンをクリックして、設定ウィンドウを開く。

    Whisperとゲームバーで会議議事録作成を自動化する - TadaoYamaokaの開発日記
  • PCで再生中の音声をWhisperでリアルタイムに文字起こしする - TadaoYamaokaの開発日記

    PCで再生中の音声をリアルタイムで文字起こしできると、字幕機能がない動画の再生や、外国とのオンライン会議で便利である。 先日、OpenAIが公開したWhisperは、音声ファイルから文字起こしするするツールが提供されているが、リアルタイムで処理するツールは提供されていない。 そこで、Pythonスクリプトで、リアルタイムで文字起こしするツールを作成した。 ループバック録音 SoundCardを使うと、PCで再生されている音声を録音することができる。 pip install SoundCardでインストールする。 import soundcard as sc with sc.get_microphone(id=str(sc.default_speaker().name), include_loopback=True).recorder(samplerate=SAMPLE_RATE, chan

    PCで再生中の音声をWhisperでリアルタイムに文字起こしする - TadaoYamaokaの開発日記
    yuiseki
    yuiseki 2022/10/17
  • 将棋でディープラーニングする その32(転移学習) - TadaoYamaokaの開発日記

    以前の日記で、バリューネットワークを学習した際、SL policy networkからバリューネットワークに転移学習が可能であることに言及した。 転移学習するには、12層まではネットワーク構造が同じであるため、SL policy networkからバリューネットワークにパラメータをそのままコピーすればよい。 モデルのコピー方法 Chainerでモデルを部分的にコピーするには、以下のようにする。 policy_model = PolicyNetwork() value_model = ValueNetwork() serializers.load_npz(args.policy_model, policy_model) value_dict = {} for path, param in value_model.namedparams(): value_dict[path] = param

    将棋でディープラーニングする その32(転移学習) - TadaoYamaokaの開発日記
    yuiseki
    yuiseki 2022/08/30
  • cshogiにWebアプリを追加 - TadaoYamaokaの開発日記

    開発しているPythonの高速な将棋ライブラリcshogiに、ブラウザでUSIエンジン同士の対局が行える機能を追加した。 python -m cshogi.web.app --engine1 E:\game\shogi\gikou2_win\gikou.exe --engine2 E:\game\shogi\apery_wcsc28\bin\apery_wcsc28_bmi2.exe --byoyomi 1000 --port 8000のように実行して、ブラウザから「http://localhost:8000/」にアクセスして、USIエンジン同士の対局を観戦することができる。 これだけだと、将棋所のような便利なネイティブアプリがあるのでわざわざこの機能を使う必要はないが、Google Colab上で実行することができる。 Google Colabで実行 USIエンジン同士の対局 # csh

    cshogiにWebアプリを追加 - TadaoYamaokaの開発日記
  • 【電竜戦】チームdlshogiのGCTが決勝リーグで優勝しました - TadaoYamaokaの開発日記

    日開催されたコンピュータ将棋の大会「電竜戦」で、チームdlshogiのGCTが決勝リーグで優勝しました! コンピュータ将棋の大会でディープラーニングを使用したソフトが優勝するのは初です。 2017年からdlshogiの開発を始めてやっと優勝までたどり着きました。 GCTについて 元々GCTは、加納さんがdlshogiを使用して開発したソフトです。 探索部分はdlshogiで、モデルの学習に使うデータをdlshogiとは別のもので行っています。 今大会では、私とチームで参加して、dlshogiの強化学習のデータや、学習方法、定跡作成方法など共有して、加納さんが主体でモデルの学習・定跡作成をしています。 今回の成果は、私のdlshogi単体では成し遂げたられなかったので、GCTが優勝してくれたことに感謝しています。 チームの経緯 加納さんとは将棋AI開発前からの知り合いで、以前から気楽に情報

    【電竜戦】チームdlshogiのGCTが決勝リーグで優勝しました - TadaoYamaokaの開発日記
    yuiseki
    yuiseki 2020/11/25
  • TF-IDFを使ってFAQに回答する - TadaoYamaokaの開発日記

    とある理由からBotについて調べています。 最近はAIを使ったBotもありますが、古典的な方法として、あらかじめ質問と回答を用意しておき、ユーザが入力した質問と類似度の高い質問を選んで回答する方法があります。 TF-IDFがその代表的なアルゴリズムになります。 ここでは、TF-IDFをPythonで実装する方法を示します。 scikit-learnにあるTfidfVectorizerクラスを利用することで、簡単に実装できます。 日語を扱う場合は、あらかじめ形態素解析を行う必要があります。 形態素解析にはMeCab(mecab-python3)を使用します。 fit_transformで、形態素解析した質問文のセットを使用してモデルを学習します。 モデルを使用して質問文をベクトル化した結果が出力されます。 transformで学習したモデルを使用してユーザの入力文をベクトル化し、sciki

    TF-IDFを使ってFAQに回答する - TadaoYamaokaの開発日記
  • doc2vecでWikipediaを学習する - TadaoYamaokaの開発日記

    先日の日記でTF-IDFでFAQに回答することを試したが、TF-IDFでは質問文の類似度を単語の頻度に重み付けをして測っている。 そのため、単語が完全に一致している必要があり、同じ意味の単語でも異なる単語として認識してしまう。 word2vecを使用すると単語をベクトル化することができ、意味が近ければ近いベクトルを出力することができる。 word2vecを文に適用する場合、単語ベクトルの平均をとる方法もあるが、語順が失われるという欠点がある。 doc2vecを使用すると、文の語順を考慮して、文自体をベクトル化することができる。 doc2vecには、PV-DMとPV-DBOWの2種類があり、PV-DMとPV-DBOWのベクトルを組み合わせて使用することで精度を上げることができる。 PV-DMは、文と単語にユニークな固定次元のベクトルを割り当て、文の単語列をウィンドウサイズ幅ごとに抽出し、文の

    doc2vecでWikipediaを学習する - TadaoYamaokaの開発日記
  • 1