Latest

AttributeError: module 'torch._dynamo' has no attribute 'mark_static_address' が発生したときの対処法

日々の開発Tips

AttributeError: module 'torch._dynamo' has no attribute 'mark_static_address' が発生したときの対処法

以下のようなエラーが出た場合の対処法 File "/venv/Lib/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/venv/Lib/site-packages/transformers/generation/utils.py", line 1744, in generate model_kwargs["past_key_values"] = self._get_cache( ^^^^^^^^^^^^^^^^ File "/venv/Lib/site-packages/transformers/

By Qualiteg プロダクト開発部
[AI新規事業創出]Qualitegセレクション:アイディア創造編①Qualiteg式オンラインブレストの活用術

AI-Business

[AI新規事業創出]Qualitegセレクション:アイディア創造編①Qualiteg式オンラインブレストの活用術

Qualiteg blogを訪問してくださった皆様、こんにちは。Micheleです。AIを活用した新規事業やマーケティングを手がけている私には、クライアントからよく寄せられる質問があります。AIを用いた事業展開を検討されている方々が共通して直面するであろう課題に対して、このブログを通じて私なりの解答をご提供したいと思います。 今日は私のお気に入りのブレスト方法である「Qualiteg式オンラインブレスト」の活用術についてお話ししたいと思います。 場所を変えて気分を変えても良いアイディアは生まれない!? よく、「金曜日は1日ブレストしよう!」という上司の掛け声とともに、いつもと違う雰囲気なら良いアイディアも出るかもしれないといってホテルの会議室などを予約されて1日缶詰でブレストしたが、期待する結果が出なかったとおっしゃるクライアントが非常に多いです。 ブレインストーミングは複数の参加者が自由にアイデアを出し合うことで、新しい発想や解決策を見つける手法です。 批判や評価を一時的に排除し、量を重視して多くのアイデアを集めることが目的です。1950年代に広告業界で生まれたこの手法は

By Join us, Michele on Qualiteg's adventure to innovation
NVIDIA GPU と Capability Level

日々の開発Tips

NVIDIA GPU と Capability Level

NVIDIA GPU の Capability Level の一覧です。 推論エンジンがサポートする各種アクセラレーション機能は Capability Level により搭載されるハードウェアアクセラレータや専用機能が異なります。 データセンター/プロ向けGPU GeForce GPU Capability Level 世代名 NVIDIA B200 - 100 Blackwell NVIDIA B100 - 100 Blackwell NVIDIA H200 - 90 Hopper NVIDIA H100 - 90 Hopper NVIDIA L4 - 89 Ada Lovelace NVIDIA L40 - 89 Ada Lovelace RTX

By Qualiteg プロダクト開発部
[AI新規事業創出]Qualitegが考える、アイディア創造フレームワークを利活用する理由

AI-Business

[AI新規事業創出]Qualitegが考える、アイディア創造フレームワークを利活用する理由

Qualiteg blogを訪問してくださった皆様、こんにちは。Micheleです。AIを活用した新規事業やマーケティングを手がけている私には、クライアントからよく寄せられる質問があります。AIを用いた事業展開を検討されている方々が共通して直面するであろう課題に対して、このブログを通じて私なりの解答をご提供したいと思います。 アイディア創造を行う際に皆さんどのようなステップで検討されていますか?多くの企業様のコンサルティングをさせていただいている中で、最も多いのが、「突然のブレスト」ですが、どのような事業を行いたいか=誰に何を売っていきたいのかを最初に考えずに思い付きのままに意見を出し合い、結果的に無駄な時間を過ごしてしまい良いアイディアが出なかったとおっしゃる方も多いです。 本日はアイディア創造は思い付きではなく、きちんとフレームワークを利活用すべしと考えるQualitegのメソッドをお伝えしたいと思います。 まず、初めに行うことは 「誰に商品やサービスを提供したいか」を考えることです。 ターゲットユーザーはどのようなことを考えているかを理解し、仮説課題やニーズの確からしさ

By Join us, Michele on Qualiteg's adventure to innovation
推論速度を向上させる Speculative Decoding(投機的デコーディング)とは

IT & AIテクノロジー

推論速度を向上させる Speculative Decoding(投機的デコーディング)とは

こんにちは Qualiteg 研究部です。 投機的デコーディングとは何か? 投機的デコーディングは、大規模言語モデル(LLM)の推論速度を向上させる技術です。 たいていのモデルを1.4~2.0倍程度、高速化できることが報告されています。 このアプローチでは、小さなモデル(ドラフトモデル)を使用して初期の予測を行い、その結果を大きなモデル(ターゲットモデル)が検証することで、全体の推論プロセスを高速化します。 ざっくりいうと、 大きなモデルは計算負荷も高く計算速度も遅いので、まず、小さなモデルで高速に計算したあとで、その計算結果をうまくつかって大きなモデルでの計算負荷をさげ、スピードを向上させようというアイデアです。 基本的に大きなモデルと、小さなモデルはサイズ以外は基本的にまったく同じネットワーク構造をしていることが前提となります。 たとえば 70Bの Llama3 と 8B の Llama3 を組み合わせてつかうイメージです。 当然70B の Llama3 の推論計算のほうが 8B よりも重たくなりますので、小さい8BのLlama3 で先回りして推論計算することで

By Qualiteg 研究部
【GPT4o対応】OpenAI API のPythonサンプルコードと出力例

日々の開発Tips

【GPT4o対応】OpenAI API のPythonサンプルコードと出力例

今回は、OpenAI の API 利用サンプルコードをご紹介します。 OpenAI API は OpenAI純正のAPI のみならず、vLLMなど他の推論エンジンでも OpenAI 準拠のAPIサーバーが公開されており、LLMサービングAPIのデファクトとなりつつありますので、コーディングのお作法をおさえておきましょう。 OpenAI の GPT シリーズのAPIにアクセスするための、シンプルなサンプルコードは以下のようになります。生成結果をストリーミングで逐次受信してみましょう。 サンプルコード:クイックスタート import asyncio import os import traceback from openai import AsyncOpenAI async def main() -> None: try: # モデル名を指定 # model="gpt-4-turbo" # $10.00/MTok for input

By Qualiteg プロダクト開発部
[自作日記20] SW編: コードをGPUで動かす

GPUマシン自作

[自作日記20] SW編: コードをGPUで動かす

早速、GPUで Pythonコードを動かしてみましょう 4.3 Jupyter Notebook で GPUを活用したPytorchコードを記述する STEP1 端末(ターミナル)を開いて、PyTorchプロジェクト用のディレクトリを作る 以下のコマンドを入力します mkdir pytorch_pj cd pytorch_pj STEP2 Jupyter Notebook の起動 ディレクトリに移動したら jupyter notebook でJupyter Notebook(ジュピターノートブック)を起動します Jupyter Notebook はPythonのコード作成と実行、実行結果表示、自由コメント(Markdown)編集の3つの機能をそなえたツールで、気軽に利用できるので、Jupyter Notebook上で試してみましょう Jupyter Notebook が起動しました 右上の 新規 をクリックして Python3 を選択します

By Qualiteg Boot Camp
[AI数理]徹底的に交差エントロピー(7)

AI数理

[AI数理]徹底的に交差エントロピー(7)

おはようございます!(株) Qualiteg 研究部です。 今回は、交差エントロピーの計算をベクトルや行列で表現する方法について説明します! 8章 交差エントロピーとベクトル演算 そもそも、なぜ、交差エントロピーをベクトルや行列で表現したいのでしょうか? それは、実際にニューラルネットワークをコンピュータープログラムとして実装するときに、訓練データや予測値はベクトル(1次元配列)や行列(2次元配列)といったN階テンソル(N次元配列)の形式で取り扱われるからです。 なぜベクトルや行列かといえば、ニューラルネットワークの実用的な計算をするときにはデータを1件とりだしては、1件計算する のではなく、多くのデータをベクトル(1次元配列)や行列(2次元配列)やそれ以上の多次元配列に詰めたのちに、まとめてドカっと計算するからです。 (まとめてドカっと計算するのが得意な GPU があるからこそ、これだけ Deep Learning が進展した、ともいえます) そこで、今までで導出してきた交差エントロピーの計算をコンピュータで実装するときに備えて、 1次元配列 にしてみます。

By Qualiteg 研究部
[AI新規事業創出] Qualitegが考える、アイディア創造で発散が必要な理由

AI-Business

[AI新規事業創出] Qualitegが考える、アイディア創造で発散が必要な理由

新規事業のアイディア創出時には、部署内だけでなく、多様な職種や背景を持つ社内の関係者全員を巻き込むことが推奨されます。これにより、多角的な視点が確保され、実現可能性の高いアイディアが生まれやすくなります。また、プロジェクト初期からの協働はチーム間のコミュニケーションを強化し、各自が専門性を活かしたアイディア提供により、より具体的で効果的な解決策へと繋がるためです。

By Join us, Michele on Qualiteg's adventure to innovation
推論時torch.tensor(sourceTensor)ではなくて、sourceTensor.clone().detach()を使おう

NumPy/PyTorch

推論時torch.tensor(sourceTensor)ではなくて、sourceTensor.clone().detach()を使おう

PyTorchのテンソル操作最適化: 警告メッセージの理解と解決 こんにちは! Qualiteg プロダクト開発部です。 PyTorch 1.13にて、次のような警告メッセージに遭遇しました UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). この記事では、この警告の意味を解説し、修正方針についてかきたいとおもいます。 torch.tensor() よりも .clone().detach() のほうがおすすめなのか それは、PyTorchがテンソルと自動微分(オートグラッド)をどのように扱うかに関係があります。 torch.

By Qualiteg プロダクト開発部
[ChatStream] 同時リクエスト時の推論速度を手軽に計測する

[ChatStream] 同時リクエスト時の推論速度を手軽に計測する

こんにちは、Qualitegプロダクト開発部です。 今回は RakutenAI-7B-Chat に5人同時リクエストしたときのパフォーマンスをお手軽に計測してみました。 実験環境 * GPU: A5000 * LLM: RakutenAI-7B-Chat AWQ-8 * 推論環境: ChatStream v0.7.2 * 同時リクエスト数: 5 動画のほうがわかりやすいとおもいますので、実際の実験の様子はこちらの動画をつくりました。ご覧くださいませ 動画にもありますように、ChatStreamUIのマルチタスク機能を有効にすると、同一画面内に複数のチャットウィンドウを開くことができます。 マルチタスク機能は、複数のLLMを連携させて業務をすすめていく為の機能ですが、今回は、この特長を利用して、同じモデルに対して同時に生成リクエストを投げる用途で使ってみました。以前も、この機能をつかった簡易計測をご紹介したのですが、今回は、入力プロンプトの同期機能を使用したので、より簡単に実施できました。 (1つのテキストボックスに入力プロンプトを入力すると、他のテキストボック

By Qualiteg プロダクト開発部
LLMサンプリングにおける3つのペナルティ

ChatStream Guide

LLMサンプリングにおける3つのペナルティ

[付録]ペナルティの比較 ペナルティタイプ 目的 適用方法 ペナルティの例 Repetition Penalty 特定のトークンやフレーズが繰り返されるのを防ぐ。 過去に生成されたすべてのトークンのログ確率(logits)に対してペナルティを適用する。 例えば、あるトークンがすでに生成された場合、そのトークンのログ確率をペナルティ値で割る(乗算)か、ペナルティ値を引く(減算)。 Frequency Penalty 生成されたトークンの出現頻度に基づいてペナルティを適用し、頻繁に出現するトークンを抑制する。 各トークンが生成された回数に基づいてペナルティを適用する。トークンが出現するたびに、そのトークンの出現確率を低減させる。 トークンが出現するたびに、そのトークンのログ確率をペナルティ値で累積的に割る(乗算)か、ペナルティ値を累積的に引く(減算)。 Presence Penalty すでに生成されたトークンが再度出現するのを防ぐ。 トークンが一度でも生成されたかどうかに基づいてペナルティを適用する。一度生成されたトークンには再出現の際にペナルティが適用さ

By Qualiteg プロダクト開発部
Google Gemini 1.5 API の機能、特徴、価格と使い方

IT & AIテクノロジー

Google Gemini 1.5 API の機能、特徴、価格と使い方

こんにちは!(株)Qualiteg テックブログです! 【2024年7月2日更新版】 本日は Google Gemini 1.5 Pro/ Gemini 1.5 Flash モデルの特徴、価格、Pythonをつかったテキスト生成について解説いたします。 Google Gemini とは Google Geminiは、Googleが提供する生成AIプラットフォームです。高品質なテキスト生成を行うためのAPIを提供し、さまざまなアプリケーションで自然な言語生成を利用できます。Geminiは多くの業界で使用されており、コンテンツ作成、カスタマーサポート、チャットボット、マーケティング、教育など、幅広い用途に対応しています。 APIキーの取得方法 Google Geminiを利用するためには、APIキーが必要です。以下の手順でAPIキーを取得できます。 Google AI Studio にアクセスして、手順にしたがい、Get API key でAPIキーを作成します。 https://aistudio.google.

By Qualiteg 研究部
[AI新規事業創出] Qualitegが考える、アイディア創造でやるべきこと、やってはいけないこと

AI-Business

[AI新規事業創出] Qualitegが考える、アイディア創造でやるべきこと、やってはいけないこと

私たちQualitegは、AI技術を活用したサービス開発を通じて、アイディア創造が新たな価値を生み出す基礎であると考えています。アイディア創造では、多様な視点を受け入れ、オープンマインドを持ち続けることが重要です。また、生成AIを活用しながら、異なる背景を持つチームメンバーからの積極的な参加を促します。早期のプロトタイピングと検証も推奨し、アイディアに固執せず、広い選択肢から最適なものを選び出す柔軟性を持つことが、成功への鍵です。

By Join us, Michele on Qualiteg's adventure to innovation
[自作日記19] SW編: CUDA と Pytorch の導入

GPUマシン自作

[自作日記19] SW編: CUDA と Pytorch の導入

今回は CUDA と Pytorch をインストールします 4.2 CUDA(+cuDNN) と Pytorch の同時インストール Pytorch をインストールすると、CUDA と cuDNN を一緒にインストールしてくれるので、それを活用しましょう STEP1 PyTorchのインストールコマンドを生成する さて、ようやくお膳立てができたので、いよいよ機械学習ライブラリ PyTorch を導入しましょう ■ PyTorchのインストール 以下にあるPyTorchのインストールガイドを開き、 https://pytorch.org/get-started/locally/ 以下のように選択式で Pytorch のインストールコマンドを生成することができます Category Selected Pytorch Build Stable (1.13.1) Your OS Linux Package Conda Language

By Qualiteg Boot Camp
TensorRT-LLM v 0.11.0.dev2024051400 の動作確認

日々の開発Tips

TensorRT-LLM v 0.11.0.dev2024051400 の動作確認

こんにちは、株式会社 Qualiteg プロダクト開発部です! TensorRT-LLM は FasterTransformerの後継ともいえるNVIDIA製 推論エンジンで、当社ChatStreamの推論エンジンとしても選択可能です。 vLLMと同じく新しいモデル対応が早く、既存モデルも豊富にサポートされています。 昨日 大型コミットが入りましたので動作確認をしました。(マルチモーダルモデルNeva,Kosmos2に対応など。) TensorRT-LLM のサポートしている、モデルアーキテクチャは以下のとおりです。 LLM Baichuan, BART, BERT, Blip2, BLOOM, ChatGLM, DBRX, FairSeq NMT, Falcon, Flan-T5, Gemma, GPT, GPT-J, GPT-Nemo, GPT-NeoX, InternLM, LLaMA, LLaMA-v2, Mamba, mBART, Mistral, MPT, mT5, OPT, Phi-1.5/Phi-2, Qwen, Qwen-VL, Replit

By Qualiteg プロダクト開発部