Latest

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

AI数理

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

おはようございます!(株) Qualiteg 研究部です。 今日からは交差エントロピーについて、徹底的に学んでいきたいとおもいます。 交差エントロピー関数の式は2つあるの? 本シリーズではは、機械学習で分類問題の損失関数としてよく使用される交差エントロピー関数をとりあげます。 実はこれまで学んできた 指数関数や対数関数の微分法は、この交差エントロピー関数を深く理解するためのものでした。 交差エントロピーがどのような性質をもっていて、どのように導かれていくのかを理解するのは今後のLLMの仕組み解明でも大いに役立つのでしっかりみていきたいとおもいます! さて、さっそくですが、 下の \((1)\) は 交差エントロピー関数 です $$ \ - \frac{1}{N} \sum_{i}^{N} \sum_{k}^{K} t_{ik} \log y_{ik} \tag{1} $$ 下の \((2)\) も、 交差エントロピー関数 です。 $$ \ - \frac{1}{N} \sum_{i}

By Qualiteg 研究部
逐次生成されるトークンのバッファリング

日々の開発Tips

逐次生成されるトークンのバッファリング

こんにちは! (株)Qualiteg プロダクト開発部 です! 今日は、推論シーンでよくある、トークン細切れ問題に対処する方法をご紹介します。 ストリーミングチャットで使用する逐次生成のとき、文章は1トークンずつ生成されますが、1トークンは”単語単位”でもなければ”1文字”単位でもなく、学習時使われていたトークナイザーの処理に依存します。 一般的には 形態素解析→サブワード→語彙リスト構築 を行いますが、このとき、後で文章生成するときに重要なタグ、たとえば "<NL>" というタグが重要な意味をもつにもかかわらず、細切れにされてトークナイズされてしまうことがあります。たとえば、 "<" "N" "L>" のように粉砕されてしまうようなパターンです。 (これを避ける方法はあるのですが、今回は、学習済のモデルをあからじめ与えられた状態でどうするか、を考えます) こういうパターンが発生してしまったとき逐次生成で "

By Qualiteg プロダクト開発部
[AI新規事業創出]Qualitegオリジナル、事業責任者との合意形成のための新規事業方向性まとめ方

AI-Business

[AI新規事業創出]Qualitegオリジナル、事業責任者との合意形成のための新規事業方向性まとめ方

このブログでは、新規事業の事業責任者とのゴール合意形成方法を解説しています。Step1では事業のビジョンと目標を明確化し、数値目標を設定します。Step2では達成のためのロードマップとKPIを作成し、Step3では定期的なミーティングで進捗を共有し調整します。これにより、新規事業推進の体制を効果的に整えることができます。

By Join us, Michele on Qualiteg's adventure to innovation
[自作日記10] マザーボードにCPU、メモリ、SSDを装着する

GPUマシン自作

[自作日記10] マザーボードにCPU、メモリ、SSDを装着する

マザーボードまわりをセットアップしていきます 1.マザーボード 開封の儀 今回購入したマザーボードは 【ASRock Z690 Steel Legend WiFi 6E/D5】です。 早速開封していきましょう! 箱をあけると、ケーブル類とマニュアル類が上段の小箱にはいっています。 つぎに、中箱をあけます。 おーマザーボードが見えてきました 美しい! ワクワクしてきました~ 写真左側中央部は LGA 1700 ソケットにカバーがかかった状態です。ここにCPUを設置します。 また LGA 1700 ソケットの上側にはメモリモジュールを挿入する DDR5 のメモリスロット4つがみえます。 そして水平中央付近に SSD を設置する M.2 スロットがあります。(写真ではヒートシンクがありますが、その下にスロットがあります) そこからやや右側にグラボを挿す PCI Express x16 スロットがあります。 ざっとこんな感じで主要部品を設置していきましょう。 2.マザーボードの配線図はあらかじめ印刷しておくと便利 付属のマニュアルに配線図がついている

By Qualiteg Boot Camp
MagicAnimate を試す

非LLM生成AI

MagicAnimate を試す

Magic Animate は画像の動画化をしてくれるオープンソースです 今回は、Windows版をつかってやってみます 実験環境は Core i7 + 64GB Ram + RTX 3090 です インストールに約30分、ストレージ容量として32GB 程度消費しますのでご注意ください。 作業ディレクトリの作成 d:/ にai_experiment というディレクトリをつくり、その下で作業してみます PowerShellを開いて、以下実行します d: mkdir ai_experiment 実行結果 Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS D:\> mkdir ai_experiment ディレクトリ: D:\ Mode LastWriteTime Length Name

By Qualiteg プロダクト開発部
[ChatStream] lightblue/karasu-7B-chat-plus 用 ChatPrompt

ChatStream Guide

[ChatStream] lightblue/karasu-7B-chat-plus 用 ChatPrompt

こんにちは! (株)Qualiteg プロダクト開発部 です! 本稿では lightblue/karasu-7B-chat-plus 用の ChatPrompt をご紹介します。 旧バージョンの ChatStream をご利用のお客様は本ChatPromptをインポートすることで利用可能となります。(最新の配信バージョンではバンドルされております) from chatstream import AbstractChatPrompt from chatstream.chat_prompt.role_type import RoleType SYSTEM_PROMPT = """\ あなたはAIアシスタントです。\ """ class ChatPromptLightblueKarasuChatPlus(AbstractChatPrompt): def __init__(self): super().__init__() # Call the initialization of the base

By Qualiteg プロダクト開発部
[AI数理]対数関数の微分法・後編

AI数理

[AI数理]対数関数の微分法・後編

おはようございます!(株) Qualiteg 研究部です。 本日は対数関数の微分法の後編です! 今回で、対数関数の微分法をマスターしましょう! 2. 対数関数の公式 まず、対数関数の公式をおさえておきます。あとで対数関数の微分法の導出で使用します \(a^{0} = 1\) 、つまり \(a\) を \(0\) 乗すると \(1\) となるため $$ \log_a 1 = 0 \tag{2.1} $$ \(a^{1} = a\) 、つまり \(a\) を \(1\) 乗すると \(a\) となるため $$ \log_a a = 1 \tag{2.2} $$ 積の対数 $$ \log_a (X

By Qualiteg 研究部
[AI新規事業創出]Qualitegが考える、自身の成果実証のための定量的ゴール定義とは

AI-Business

[AI新規事業創出]Qualitegが考える、自身の成果実証のための定量的ゴール定義とは

新規事業のゴール設定では、多くのクライアントが数値目標を設定していないため、後に困難を経験することが多いです。定量的ゴール定義は、具体的な数値を用いて目標を設定し、目標達成の進捗を明確に測定する手法です。これにより、モチベーションの向上、効率的なリソース配分、成果の最大化に寄与します。事業初期に数値目標を設定することの重要性を解説しています。

By Join us, Michele on Qualiteg's adventure to innovation
[ChatStream] Llama2 対応の ChatPrompt実装

ChatStream Guide

[ChatStream] Llama2 対応の ChatPrompt実装

こんにちは! (株)Qualiteg プロダクト開発部 です! 本稿では、 ChatStream にLlama2 対応の ChatPrompt を同梱いたしましたのでご紹介いたします! 現在の ChatPrompt は以下とおりとなっております。旧バージョンのChatStreamをご利用の場合も、以下コードにて Llama2対応可能です。(もちろん最新バージョンのChatStreamには同梱済です) from chatstream import AbstractChatPrompt from chatstream.chat_prompt.role_type import RoleType SYSTEM_PROMPT = """\ You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while

By Qualiteg プロダクト開発部
[自作日記9] AI研究用GPUマシンパーツと組み立て開始!

GPUマシン自作

[自作日記9] AI研究用GPUマシンパーツと組み立て開始!

昨日、秋葉原で合計41.5万円分のGPUマシンのパーツを購入してきましたのでご報告します! GPUマシンパーツ * マザーボード: ASRock Z690 Steel Legend 約4万円 * メモリ: Crucial デスクトップ用 DDR5 32G x 2 = 約3万円 * CPU: Intel Core i7 12700 約5万円 * GPU:MSI SUPRIM X GeForce RTX 3090 Ti 約20万円 * SSD:SAMSUNG 980 PRO 2T 約3万円 * 電源:850W OWLTECH PC電源 850W /ATX /Titanium 約4.5万円 * ケース:Fractal

By Qualiteg Boot Camp
[ChatStream] rinna/nekomata-14b-instruction 用の ChatPromptクラス

ChatStream Guide

[ChatStream] rinna/nekomata-14b-instruction 用の ChatPromptクラス

2023/12/21 に発表された rinna/nekomata-14b-instruction 用の ChatPrompt をご紹介します nekomataシリーズは Qwen をベースモデルしているおり、語彙サイズが 15.2万とこれまでより大幅に大きいため、日本語対応にもおおいに期待できそうですね 今回はInstructionチューニングされたモデルをChatStreamのチャットモードで利用するためのChatPromptを作りました。 設計思想としましては、あるタスクとChatPrompt を対応させる、という考え方です。簡単にいうと、1つのChatPromptは1つの仕事に特化させる、というところでしょうか。 たとえば、今回は、「翻訳」というタスクに特化した ChatPrompt の例です。 これにより 翻訳 というタスクに対して、 「入力」と「出力」というをチャットインタフェースを通して行います。 from chatstream import AbstractChatPrompt from chatstream.chat_prompt.prompt_ttl im

By Qualiteg プロダクト開発部
[ChatStream] 時間のかかるモデル読み込みにプログレスバーをつける

ChatStream Guide

[ChatStream] 時間のかかるモデル読み込みにプログレスバーをつける

こんにちは (株)Qualiteg プロダクト開発本部です! HuggingFace の LLMのモデル読み込み時間ってとても長いですよね、そんなときに、便利なツールをご紹介します。 HuggingFace の LLM モデルはダウンロードするときは、進捗がでるのですが、ひとたびダウンロードしたあとは、読み込むまで短くて数分、長くて数十分待たされます。これはディスクからモデルデータ(weights and bias)を処理しながらGPUのVRAMに読み込む処理に時間がかかるのですが、その読み込み状態がいったいいまどのくらいなのか、これがわからず、ヤキモキしたことは無いでしょうか。 そこでは ChatStreamの便利機能として、以下のように、このモデル読み込み時間のプログレス表示をすることができます。 仕掛けはいたってシンプルで、初回の読み込み実行時に処理時間を計測しておき、2回目、また同じ処理が呼ばれたときはプログレスバーを表示します。 使い方も簡単で、モデルの読み込みを LoadTime でラップするだけで、プログレスバーつきで読み込むことができます Before

By Qualiteg プロダクト開発部
[AI新規事業創出]Qualitegが考える、アイディア出しの前にすべき競合サービス概要調査とは

AI-Business

[AI新規事業創出]Qualitegが考える、アイディア出しの前にすべき競合サービス概要調査とは

競合サービス調査はアイディア創出前に重要で、市場ニーズと競合の戦略を理解するために行います。具体的には、サービス内容、価格設定、市場の魅力度や競合のビジネスモデルを詳細に分析し、自社の差別化ポイントを見つけるためです。大手企業は、M&Aの可能性も検討します。

By Join us, Michele on Qualiteg's adventure to innovation
[ChatStream] Transformer応答をモックする Transformer Mock

ChatStream Guide

[ChatStream] Transformer応答をモックする Transformer Mock

こんにちは! (株)Qualiteg プロダクト開発部 です! 本稿では、モックデータの作成方法について説明します! これは正式には「Transformer Mock」と呼ばれている機能のためのもので、実際のLLM出力をレコーディングして再現するためのものです。 なぜこんなことが必要かというと、 LLM アプリのテスト(単体テストなど)で使用します。LLMアプリのテストをするとき、古典的な単体テストでは、入力に対して期待する出力は固定されていることが前提です。 ところがLLMはその特性上、同一の入力に対しても毎回異なる応答を返してきます。そこが生成AIの良いところですが古典的な単体テストをするときには悩んでしまいます。 ここで賢い読者の皆様は、同一の入力に対して、同一の出力を得たいなら、シードを固定すればいいじゃん。とお考えの方もいらっしゃるとおもいますが、シード値を固定して、入力を固定して、各種サンプリングパラメータを固定しても GPUの種類が異なると異なる出力を出してしまう、ということがわかっています。 これでは、GPUを変更したとたんに単体テストが通らなくなって困ってし

By Qualiteg プロダクト開発部
[自作日記8] 電源、SSD、ケースは?

GPUマシン自作

[自作日記8] 電源、SSD、ケースは?

今日は電源、SSD、ケースの購入です! Junです。 残りは電源とSSD、ケースをゲットすれば一通り揃いそうです。 また、置手紙をみてみます。 ⑥ SSD は 1T以上。 ⑦ 電源は 800W 以上、 80Plus Titanium ⑧ ケースはグラボがちゃんと入ることを確認すること! SSDの選定 SSDは、1T以上ということで、 3万円の SAMSUNG 980 PRO 2T を購入。 電源の選定 電源装置は 800W 以上ということで 850W OWLTECH PC電源 850W /ATX /Titanium PRIMETX850S を 4.5万円で購入しました。 ケースの選定 さて、残るはケースです。 ⑧ ケースはグラボがちゃんと入ることを確認すること! この意味がよくわからなかったので、店員さんに相談することにしました。 今回は ATX サイズのケースを購入する予定ですが、 ATX

By Qualiteg Boot Camp
[AI数理]対数関数の微分法・前編

AI数理

[AI数理]対数関数の微分法・前編

おはようございます!(株) Qualiteg 研究部です。 本日から2回にわたって対数関数について学んでいきましょう。 正確にいうと、対数関数の微分法を学びます。 対数関数って何だっけ? まず、対数関数というのは、「ある数 \( x \) が別の数 \( b \) を何回かけると \( x \) になるか」を調べる方法です。例えば、\( b \) が 2 で \( x \) が 8 の場合、2 を 3 回かけると 8 になります。この場合、数学的には「\( b \) の \( x \) に対する対数」と言います。 これを数式で表すと、次のようになります: $$ \log_b(x) = y $$ ここで \( b \) は底(

By Qualiteg 研究部