IT & AIテクノロジー

【LLMセキュリティ】ハルシネーションの検出方法

LLM セキュリティ

【LLMセキュリティ】ハルシネーションの検出方法

こんにちは、Qualiteg研究部です。 本日は、RAGにおけるハルシネーション検出に関する、こちらの論文について解説をしつつ、ハルシネーション検出をおこなうLLMについて考察をしてみたいと思います。 "Lynx: An Open Source Hallucination Evaluation Model" https://arxiv.org/pdf/2407.08488 概要 LYNXという、RAG(Retrieval Augmented Generation) システムにおいて参照なしで高品質なハルシネーション検出が可能なオープンソースのLLMの構築方法、仕組みに関する論文です。 RAGシーンにおいて、LLMが生成する回答が、質問やコンテキストに対して「忠実」であるかどうかを判定することで、ハルシネーションを検出することができます。 研究の成果である、ハルシネーション判定のために llama3ファインチューニングがほどこされたモデルは 以下に公開されています。 https://huggingface.co/PatronusAI/Llama-3-Patronus-Lynx

By Qualiteg 研究部
Meta社が発表した最新の大規模言語モデル、Llama 3.1シリーズの紹介

LLM

Meta社が発表した最新の大規模言語モデル、Llama 3.1シリーズの紹介

2024年7月23日、Meta社が最新の大規模言語モデル、Llama 3.1シリーズを発表しました。この記事では、Llama 3.1シリーズの特徴と性能、そして実際の使用例を紹介します。 以下、動画にもまとめてありますので、あわせてごらんいただければと思います。 Llama 3.1シリーズの主な特徴 Llama 3.1シリーズは、8B、70B、405Bの3つのモデルサイズで提供されています。主な特徴は以下の通りです: * 一般的な知識、操縦性、数学、道具の使用、多言語翻訳におけるトップAIモデルに匹敵する初のオープンLLM * コンテクストは128Kトークン * 8言語に対応した多言語モデル(ただし日本語は含まれず) * 15兆以上のトークンでトレーニング モデルサイズ別の特徴 * 8Bモデル: モバイルデバイスや小規模なシステムでの使用に適しており、リソースが限られた環境でも高性能を発揮 * 70Bモデル: 多くのタスクで405Bモデルに近い性能を示しながら、より少ないコンピューティングリソースで運用できる優れたバランスを提供 * 405Bモデル: 最高

By Qualiteg プロダクト開発部
革新的なコード生成LLM "Codestral Mamba 7B" を試してみた

LLM

革新的なコード生成LLM "Codestral Mamba 7B" を試してみた

今日は、2024年7月16日にリリースされた新しいコード生成LLM、"mistralai/mamba-codestral-7B-v0.1"(通称:Codestral Mamba 7B)を試してみました。 このモデルは、新しいMambaアーキテクチャを採用しており、Apache2ライセンスで公開されています。 コード生成のSOTAモデルに迫る性能 Mamba アーキテクチャを採用した Codestral 7B ですが、Human Eval で 75% を達成しており、Transformerベースのコード生成 SOTA モデルと同等のパフォーマンスを実現しています。 さらに、シーケンス長に対しての処理劣化がないため、かなり期待のできるモデル&アーキテクチャといえますね。 動画にまとめています "mistralai/mamba-codestral-7B-v0.1" の試用レポートはこちらの動画にもまとめてありますので、よろしければ、こちらもご覧くださいませ Codestral Mamba 7Bの特徴 1. 無限の長さのシーケンスをモデル化する能力 2. 長いシー

By Qualiteg プロダクト開発部
CyberAgentLM3-22B-Chat(cyberagent/calm3-22b-chat) 徹底解説

ChatStream

CyberAgentLM3-22B-Chat(cyberagent/calm3-22b-chat) 徹底解説

こんにちは、(株)Qualiteg プロダクト開発部です。 本日は昨日プレスリリースされた サイバーエージェント社の最新LLM CyberAgentLM3-22B-Chat(cyberagent/calm3-22b-chat) について、ファーストルックレポートを行います。 デモ 実際に、以下サイトで calm3-22b-chat とチャットお試し可能です https://chatstream.net/?ws_name=chat_app&mult=0&ontp=1&isync=1&model_id=calm3_22b_chat オープン・フルスクラッチモデルでリーダーボード最高評価 本モデルは、このモデルは、既存モデルをベースに用いずスクラッチで開発を行なった225億パラメータのモデルで Nejumi LLM リーダーボード3の総合評価で 700億パラメータのMeta-Llama-3-70B-Instructと同等性能となっているようです。 継続事前学習ではなく、フルスクラッチの日本語LLMという点にも注目です。 以下は日本語LLMリーダーボード1

By Qualiteg プロダクト開発部
ChatStream🄬でLlama-3-Elyza-JP-8B を動かす

ChatStream

ChatStream🄬でLlama-3-Elyza-JP-8B を動かす

こんにちは、本日は Llama-3-Elyza-JP-8B を使ってみました。 昨日 2024年6月26日に発表(https://prtimes.jp/main/html/rd/p/000000046.000047565.html)された Llama-3-Elyza-JP-8B は 70B 版では「GPT-4」を上回る性能の日本語LLMといわれています。 今回、当社でも Playground 環境に Llama-3-Elyza-JP-8B を搭載して試してみましたのでご紹介します。 70B(700億パラメータ)版は GPT-4 を上回るとのことですので、8B(80億パラメータ)版はGPT-3.5 と比較してみることにいたしました。 (性能比較は https://note.com/elyza/n/n360b6084fdbd の記事に詳しく書いてあります。) AWQ量子化版を使用してみる 今回は、A4000

By Qualiteg プロダクト開発部
推論速度を向上させる Speculative Decoding(投機的デコーディング)とは

IT & AIテクノロジー

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

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

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 研究部
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 研究部
[自作日記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 プロダクト開発部
【2024/5/14更新】LLM 推論 API 料金と推論速度

IT & AIテクノロジー

【2024/5/14更新】LLM 推論 API 料金と推論速度

LLM を API から利用するときに従量課金される料金と生成速度一覧まとめました。順次更新予定です。 【API 料金】 は 100万トークンあたりのアウトプット側 利用料を表示しています。 【生成速度】 は1秒間に何トークン生成できるかを示す " tokens/s"( tokens per second )で表示します。 (生成速度は入出力プロンプトの量・内容によって変動しますので、あくまで参考情報として表示しています) OpenAI GPT シリーズ * OpenAI GPTシリーズ * gpt-4o、100万トークンあたり $15.00 (約2250円)、 70 tokens/s * gpt-4-turbo-2024-04-09: 100万トークンあたり $30.00 (約4500円)、 45 tokens/s * gpt-3.5-turbo-0125: 100万トークンあたり $1.5

By Qualiteg プロダクト開発部, Qualiteg ビジネス開発本部 | マーケティング部
[AI数理]徹底的に交差エントロピー(6)

AI数理

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

おはようございます!(株) Qualiteg 研究部です。 今回は、二値分類用の交差エントロピーについてみていきましょう! 7章 二値分類用 交差エントロピー 7-1. 二値分類用 交差エントロピー (データ1件対応版) さて、ここから、二値分類用の交差エントロピーを導きたいとおもいます。 二値分類は 入力されたデータが 2 つのうちどちらか、を予測するものです。 まず話をシンプルにするために、バッチ版ではなく、式 \((5.2)\) に示した 1件版の交差エントロピーの式を思い出します。 $$ E = - \sum_{k=1}^{K} t_{k} \log y_{k} \tag{5.2、再掲} $$ $$ \begin{aligned} &K:分類の数, t_{k}

By Qualiteg 研究部
[ChatStream] 入出力プロンプトの予期せぬ変更に備え revision は固定する

日々の開発Tips

[ChatStream] 入出力プロンプトの予期せぬ変更に備え revision は固定する

こんにちは。(株) Qualiteg プロダクト開発部です。 GW中に、microsoft/Phi-3-mini-128k-instruct の tokenizer.json が変更になり、プロンプトのパースに失敗し、チャットのストリーミングができなくなる問題が発生しました。 実際には以下の変更がありました https://huggingface.co/microsoft/Phi-3-mini-128k-instruct/commit/8a362e755d2faf8cec2bf98850ce2216023d178a もともと、Miscrosoft さんが書いていた記事にあるプロンプトフォーマットと実際のモデルのプロンプトフォーマットが異なっていたため、当社では、実際のモデルにあわせるヒューリスティックな対応をしておりましたが、モデル(\w tokenizer) 側がもとの仕様に近い形に修正してきた模様です。 これによって、当初動作していたプロンプト変換器が動作しなくなるという現象が発生しました。 LLM は「スピードが命!」なので、トークナイザー含め完全にテストされた状態

By Qualiteg プロダクト開発部
[自作日記18] SW編: Anacondaのインストール

GPUマシン自作

[自作日記18] SW編: Anacondaのインストール

今回は、 Anaconda を導入します。 Python は一般的にアプリケーションごとに仮想環境を使用して実行しますが、仮想環境を構築できるものに Anaconda または Python純正仮想環境の venv のどちらかがよく使われます。 今回は、 Anaconda を導入してみたいとおもいます。 4.1 Anaconda(Python環境) のインストール STEP1 Anaconda3 をダウンロードする Chromeを開いて、以下を開きます https://www.anaconda.com/distribution/#download-section 自動的に Linux 用を表示してくれるので、それをダウンロードします STEP2 インストール用スクリプトを実行する cd downloads bash Anaconda3-2022.10-Linux-x86_64.sh エンターキーをおすrと、 license agreement をスクロールさせることができます 内容問題なければ yes とタイプします

By Qualiteg Boot Camp