Learn more about Search Results documentation - Page 9

「音のシンフォニーを解読する:音楽工学のためのオーディオ信号処理」

異なる種類のデータを処理し分析し、実用的な洞察を得る能力は、情報時代で最も重要なスキルの1つですデータは私たちの周りにあります:私たちが読む本から...

「クロスファンクションの機械学習プロジェクトの20の学び」

「クロスチームのプロジェクトでリーダーシップを取るか、または助けるかに関わらず、それは圧倒的なものとなるかもしれませんそして、締め切りを追い、時には複雑な状況を管理するストレスは、常に「何をすればいいのか」という感覚を持つことがあります...」

推論エンドポイントを使用して、短時間でMusicGenを展開する

MusicGenは、テキストのプロンプトとオプションのメロディを入力として、音楽を出力する強力な音楽生成モデルです。このブログポストでは、MusicGenを使用して音楽を生成する方法をInference Endpointsを使用して説明します。 Inference Endpointsを使用すると、カスタムハンドラと呼ばれるカスタム推論関数を記述することができます。これは、モデルがtransformersの高レベル抽象pipelineで直接サポートされていない場合に特に便利です。 transformersのパイプラインは、transformersベースのモデルを使用して推論を実行するための強力な抽象化を提供しています。Inference Endpointsは、わずか数回のクリックでモデルを簡単にデプロイするために、パイプラインAPIを活用しています。ただし、Inference Endpointsは、パイプラインを持たないモデルや、さらには非トランスフォーマーモデルをデプロイするためにも使用できます。これは、カスタムハンドラと呼ばれるカスタム推論関数を使用して実現されます。 これをMusicGenの例を使用してプロセスをデモンストレーションしましょう。MusicGenのカスタムハンドラ関数を実装してデプロイするためには、以下の手順が必要です: 提供したいMusicGenリポジトリを複製する。 handler.pyとrequirements.txtにカスタムハンドラとその依存関係を記述し、複製したリポジトリに追加する。 そのリポジトリにInference Endpointを作成する。 または、単に最終結果を使用してカスタムのMusicGenモデルリポジトリをデプロイすることもできます。その場合は、上記の手順に従うだけです 🙂 さあ、始めましょう! まず、facebook/musicgen-largeリポジトリを自分のプロフィールに複製します。 次に、handler.pyとrequirements.txtを複製したリポジトリに追加します。まず、MusicGenでの推論の実行方法を見てみましょう。 from transformers import AutoProcessor, MusicgenForConditionalGeneration processor =…

FHEを用いた暗号化された大規模言語モデルに向けて

大規模言語モデル(LLM)は最近、プログラミング、コンテンツ作成、テキスト分析、ウェブ検索、遠隔学習などの多くの分野で生産性を向上させるための信頼性のあるツールとして証明されています。 大規模言語モデルがユーザーのプライバシーに与える影響 LLMの魅力にもかかわらず、これらのモデルによって処理されるユーザークエリに関するプライバシーの懸念が残っています。一方で、LLMの能力を活用することは望ましいですが、他方で、LLMサービスプロバイダーに対して機密情報が漏洩するリスクがあります。医療、金融、法律などの一部の分野では、このプライバシーリスクは問題の原因となります。 この問題への1つの解決策は、オンプレミス展開です。オンプレミス展開では、LLMの所有者がクライアントのマシンにモデルを展開します。これは、LLMの構築に数百万ドル(GPT3の場合は4.6Mドル)かかるため、最適な解決策ではありません。また、オンプレミス展開では、モデルの知的財産(IP)が漏洩するリスクがあります。 Zamaは、ユーザーのプライバシーとモデルのIPの両方を保護できると考えています。このブログでは、Hugging Face transformersライブラリを活用して、モデルの一部を暗号化されたデータ上で実行する方法を紹介します。完全なコードは、このユースケースの例で見つけることができます。 完全同型暗号(FHE)はLLMのプライバシーの課題を解決できます ZamaのLLM展開の課題に対する解決策は、完全同型暗号(FHE)を使用することです。これにより、暗号化されたデータ上で関数の実行が可能となります。モデルの所有者のIPを保護しながら、ユーザーのデータのプライバシーを維持することが可能です。このデモでは、FHEで実装されたLLMモデルが元のモデルの予測の品質を維持していることを示しています。これを行うためには、Hugging Face transformersライブラリのGPT2の実装を適応し、Concrete-Pythonを使用してPython関数をそのFHE相当に変換する必要があります。 図1は、GPT2のアーキテクチャを示しています。これは繰り返し構造を持ち、連続的に適用される複数のマルチヘッドアテンション(MHA)レイヤーから成り立っています。各MHAレイヤーは、モデルの重みを使用して入力をプロジェクションし、アテンションメカニズムを計算し、アテンションの出力を新しいテンソルに再プロジェクションします。 TFHEでは、モデルの重みと活性化は整数で表現されます。非線形関数はプログラマブルブートストラッピング(PBS)演算で実装する必要があります。PBSは、暗号化されたデータ上でのテーブルルックアップ(TLU)演算を実装し、同時に暗号文をリフレッシュして任意の計算を可能にします。一方で、PBSの計算時間は線形演算の計算時間を上回ります。これらの2つの演算を活用することで、FHEでLLMの任意のサブパート、または、全体の計算を表現することができます。 FHEを使用したLLMレイヤーの実装 次に、マルチヘッドアテンション(MHA)ブロックの単一のアテンションヘッドを暗号化する方法を見ていきます。また、このユースケースの例では、完全なMHAブロックの例も見つけることができます。 図2は、基礎となる実装の簡略化された概要を示しています。クライアントは、共有モデルから削除された最初のレイヤーまでの推論をローカルで開始します。ユーザーは中間操作を暗号化してサーバーに送信します。サーバーは一部のアテンションメカニズムを適用し、その結果をクライアントに返します。クライアントはそれらを復号化してローカルの推論を続けることができます。 量子化 まず、暗号化された値上でモデルの推論を実行するために、モデルの重みと活性化を量子化し、整数に変換する必要があります。理想的には、モデルの再トレーニングを必要としない事後トレーニング量子化を使用します。このプロセスでは、FHE互換のアテンションメカニズムを実装し、整数とPBSを使用し、LLMの精度への影響を検証します。 量子化の影響を評価するために、暗号化されたデータ上で1つのLLMヘッドが動作する完全なGPT2モデルを実行します。そして、重みと活性化の量子化ビット数を変化させた場合の精度を評価します。 このグラフは、4ビットの量子化が元の精度の96%を維持していることを示しています。この実験は、約80の文章からなるデータセットを使用して行われます。メトリクスは、元のモデルのロジット予測と量子化されたヘッドモデルを比較して計算されます。 Hugging Face GPT2モデルにFHEを適用する Hugging…

「Huggy Lingo:Hugging Face Hubで言語メタデータを改善するための機械学習の利用」

Huggy Lingo: Hugging Face Hubで言語メタデータを改善するために機械学習を使用する 要約: 私たちは機械学習を使用して、言語メタデータのないHubデータセットの言語を検出し、このメタデータを追加するために司書ボットがプルリクエストを行っています。 Hugging Face Hubは、コミュニティが機械学習モデル、データセット、アプリケーションを共有するリポジトリとなっています。データセットの数が増えるにつれて、メタデータは自分のユースケースに適したリソースを見つけるための重要なツールとなっています。 このブログ投稿では、Hugging Face Hubでホストされるデータセットのメタデータを改善するために機械学習を使用したいくつかの初期実験を共有します。 Hub上のデータセットの言語メタデータ Hugging Face Hubには現在約50,000の公開データセットがあります。データセットで使用される言語に関するメタデータは、データセットカードの先頭にあるYAMLフィールドを使用して指定することができます。 すべての公開データセットは、メタデータ内の言語タグを使用して1,716の一意の言語を指定しています。ただし、指定される言語のいくつかは、異なる方法で指定されることになります。たとえば、IMDBデータセットでは、YAMLメタデータにen(英語を示す)が指定されています。 IMDBデータセットのYAMLメタデータのセクション 英語がHub上のデータセットで遥かに最も一般的な言語であることは驚くべきことではありません。Hub上のデータセットの約19%が言語をenとしてリストしています(enのバリエーションを含めない場合であり、実際の割合はおそらくはるかに高いでしょう)。 Hugging Face Hub上のデータセットの頻度とパーセンテージ頻度 英語を除外した場合、言語の分布はどのようになりますか?いくつかの支配的な言語のグループがあり、その後は言語が出現する頻度が比較的滑らかに減少していることがわかります。…

「SD-Small」と「SD-Tiny」の知識蒸留コードと重みのオープンソース化

近年、AIコミュニティでは、Falcon 40B、LLaMa-2 70B、Falcon 40B、MPT 30Bなど、より大きく、より高性能な言語モデルの開発が著しく進んでいます。また、SD2.1やSDXLなどの画像領域のモデルでも同様です。これらの進歩は、AIが達成できることの境界を押し広げ、高度に多様かつ最先端の画像生成および言語理解の能力を可能にしています。しかし、これらのモデルのパワーと複雑さを驚嘆しながらも、AIモデルをより小さく、効率的に、そしてよりアクセスしやすくするという成長するニーズの認識が不可欠です。特に、オープンソース化によってこれらのモデルを利用可能にすることが求められています。 Segmindでは、生成型AIモデルをより速く、安価にする方法に取り組んできました。昨年、voltaMLという加速されたSD-WebUIライブラリをオープンソース化しました。これはAITemplate/TensorRTベースの推論高速化ライブラリであり、推論速度が4~6倍向上しました。生成モデルをより速く、小さく、安価にする目標に向けて、私たちは圧縮されたSDモデル「SD-Small」と「SD-Tiny」の重みとトレーニングコードをオープンソース化しています。事前学習済みのチェックポイントはHuggingfaceで利用可能です🤗 知識蒸留 私たちの新しい圧縮モデルは、知識蒸留(KD)技術に基づいてトレーニングされており、この論文に大きく依存しています。著者は、いくつかのUNetレイヤーを削除し、学習された生徒モデルの重みを説明したブロック除去知識蒸留法について説明しています。論文で説明されているKDの手法を使用して、圧縮モデル2つをトレーニングしました。🧨 diffusersライブラリを使用してトレーニングした「Small」と「Tiny」は、ベースモデルと比較してそれぞれ35%と55%少ないパラメータを持っており、ベースモデルと同様の画像品質を実現しています。私たちはこのリポジトリで蒸留コードをオープンソース化し、Huggingfaceで事前学習済みのチェックポイントを提供しています🤗 ニューラルネットワークの知識蒸留トレーニングは、先生が生徒をステップバイステップで指導するのと似ています。大きな先生モデルは大量のデータで事前トレーニングされ、その後、より小さなモデルは小規模なデータセットでトレーニングされ、クラシカルなトレーニングと共に、大きなモデルの出力を模倣するようになります。 この特定の種類の知識蒸留では、生徒モデルは通常の拡散タスクである純粋なノイズからの画像の復元を行うようにトレーニングされますが、同時に、モデルは大きな先生モデルの出力と一致するようになります。出力の一致はU-netの各ブロックで行われるため、モデルの品質はほとんど保たれます。したがって、前述のアナロジーを使用すると、このような蒸留中、生徒は質問と回答だけでなく、先生の回答からも学び、回答に至る方法もステップバイステップで学ぼうとします。これを達成するために、損失関数には3つのコンポーネントがあります。まず、ターゲット画像の潜在変数と生成された画像の潜在変数の間の従来の損失です。次に、先生が生成した画像の潜在変数と生徒が生成した画像の潜在変数の間の損失です。そして最後に、最も重要なコンポーネントであるフィーチャーレベルの損失です。これは、先生と生徒の各ブロックの出力の間の損失です。 これらすべてを組み合わせて、知識蒸留トレーニングが成り立ちます。以下は、論文「テキストから画像への拡散モデルのアーキテクチャ圧縮について」(Shinkookら)からのアーキテクチャの例です。 画像はShinkookらによる論文「テキストから画像への拡散モデルのアーキテクチャ圧縮について」から取得 私たちは、ベースとなる先生モデルとしてRealistic-Vision 4.0を選び、高品質な画像の説明を持つLAION Art Aestheticデータセットでトレーニングしました(画像スコアが7.5以上のもの)。論文とは異なり、私たちはSmallモードでは100Kステップ、Tinyモードでは125Kステップで1M枚の画像で2つのモデルをトレーニングしました。蒸留トレーニングのコードはこちらで見つけることができます。 モデルの使用方法 モデルは🧨 diffusersのDiffusionPipelineを使用して利用できます from diffusers import DiffusionPipeline…

実践的な3Dアセット生成:ステップバイステップガイド

イントロダクション 生成AIは、ゲーム開発の芸術的なワークフローの重要な一部となっています。しかし、私の以前の記事で詳しく説明したように、テキストから3Dへの変換は2Dに比べて実用性が劣っています。しかし、これは変わり始めています。今日は、3Dアセット生成の実用的なワークフローを見直し、Generative AIをPS1スタイルの3Dワークフローに統合する方法をステップバイステップで見ていきます。 なぜPS1スタイルなのか?現在のテキストから3Dモデルへの変換の低保真度に対して非常に寛容であり、できるだけ少ない努力でテキストから使用可能な3Dアセットに変換することができるからです。 前提条件 このチュートリアルでは、BlenderとマテリアルやUVマッピングなどの3Dの基本的な知識があることを前提としています。 ステップ1:3Dモデルを生成する まず、ここまたは下にあるShap-E Hugging Face Spaceを訪れてください。このスペースでは、オープンソースのShap-Eモデルを使用して、テキストから3Dモデルを生成します。 プロンプトに「Dilapidated Shack」と入力し、「Generate」をクリックしてください。モデルに満足したら、次のステップのためにダウンロードしてください。 ステップ2:モデルをインポートしてダウンサンプリングする 次に、Blender(バージョン3.1以上)を開いてください。ファイル -> インポート -> GLTF 2.0に移動し、ダウンロードしたファイルをインポートしてください。多くの実用的なアプリケーション(ゲームなど)に推奨されるよりも多くのポリゴンを持っていることに気付くかもしれません。 ポリゴン数を削減するには、モディファイアに移動して、「Decimate」モディファイアを選択します。比率を低い数値(例:0.02)に調整します。これはあまり見栄えがしないかもしれません。しかし、このチュートリアルでは低保真度を受け入れることにします。 ステップ3:Dream Texturesをインストールする モデルにテクスチャを追加するために、Blender用の安定した拡散テクスチャ生成ツールであるDream…

あなたの製品の開発者学習のためのLLM(大規模言語モデル)

「LLM(Large Language Models)とLLMアプリを活用して、効果的かつ効率的な開発者教育を進め、製品の活用を促進する方法を探求してください」

Macでの安定したDiffusion XLと高度なCore ML量子化

Stable Diffusion XLは昨日リリースされ、素晴らしいです。大きな(1024×1024)高品質の画像を生成することができます。新しいトリックにより、プロンプトへの適合性が向上しました。最新のノイズスケジューラの研究により、非常に暗いまたは非常に明るい画像を簡単に生成することができます。さらに、オープンソースです! 一方、モデルはより大きくなり、したがって一般的なハードウェアでの実行が遅くなり、困難になりました。Hugging Faceのdiffusersライブラリの最新リリースを使用すると、16 GBのGPU RAMでCUDAハードウェア上でStable Diffusion XLを実行できるため、Colabの無料層で使用することができます。 過去数か月間、人々がさまざまな理由でローカルでMLモデルを実行することに非常に興味を持っていることが明確になってきました。これにはプライバシー、利便性、簡単な実験、または利用料金がかからないことなどが含まれます。AppleとHugging Faceの両方でこの領域を探索するために、私たちは一生懸命取り組んできました。私たちはApple SiliconでStable Diffusionを実行する方法を示したり、Core MLの最新の進化を利用してサイズとパフォーマンスを改善するための6ビットのパレット化を紹介したりしました。 Stable Diffusion XLでは、次のようなことを行いました: ベースモデルをCore MLにポートし、ネイティブのSwiftアプリで使用できるようにしました。 Appleの変換および推論リポジトリを更新し、興味のあるファインチューニングを含むモデルを自分で変換できるようにしました。 Hugging Faceのデモアプリを更新し、Hubからダウンロードした新しいCore ML Stable…

「Chroma DBガイド | 生成AI LLMのためのベクトルストア」

イントロダクション GPTやPaLMなどの生成型の大規模言語モデルは、大量のデータで訓練されます。これらのモデルはデータセットからそのままのテキストを取得するのではなく、コンピュータはテキストを理解することができないため、数値のみを理解できます。埋め込みは、テキストを数値形式で表現したものです。大規模言語モデルへの情報の出入りは、すべてこれらの埋め込みを介して行われます。これらの埋め込みに直接アクセスすることは時間がかかります。そのため、効率的なストレージと埋め込みの取得のために特別に設計されたベクトルデータベースと呼ばれるものが存在します。このガイドでは、広く使用されているオープンソースのベクトルストア/データベースであるChroma DBに焦点を当てます。 学習目標 ChromaDBと埋め込みモデルを使用した埋め込みの生成 Chromaベクトルストア内でのコレクションの作成 ドキュメント、画像、および埋め込みのコレクションへの保存 データの削除と更新、コレクションの名前変更などのコレクション操作の実行 最後に、関連情報を抽出するためのクエリの実行 この記事はData Science Blogathonの一部として公開されました。 埋め込みの短い紹介 埋め込みまたはベクトル埋め込みは、データ(テキスト、画像、音声、ビデオなど)を数値形式で表現する方法です。正確には、n次元空間(数値ベクトル)内の数値の形式でデータを表現する方法です。この方法により、埋め込みを使用して似たデータをクラスタ化することができます。これらの入力を受け取り、ベクトルに変換するモデルが存在します。その一つの例はWord2Vecです。Googleが開発した人気のある埋め込みモデルで、単語をベクトルに変換します(ベクトルはn次元の点です)。すべての大規模言語モデルは、それぞれの埋め込みモデルを持ち、それらのLLMのための埋め込みを作成します。 これらの埋め込みは何に使用されるのですか? 単語をベクトルに変換することの利点は、それらを比較できることです。コンピュータは単語をそのまま比較することはできませんが、数値の形式で与えれば、つまりベクトル埋め込みとして与えれば比較できます。似たような埋め込みを持つ単語のクラスタを作成することができます。たとえば、”King”、”Queen”、”Prince”、”Princess”という単語は他の単語と関連しているため、同じクラスタに表示されます。 このように、埋め込みを使用することで、与えられた単語に類似した単語を取得することができます。これを文に組み込むこともできます。文を入力し、提供されたデータから関連する文を取得します。これはセマンティックサーチ、文の類似性、異常検出、チャットボットなど、さまざまなユースケースの基盤です。PDFやドキュメントからの質問応答を実行するために構築したチャットボットでは、この埋め込みの概念を利用しています。すべての生成型の大規模言語モデルは、与えられたクエリに類似した内容を取得するためにこのアプローチを使用します。 ベクトルストアとその必要性 先述のように、埋め込みは数値形式で表現されたデータの表現です。通常、非構造化データをn次元空間で表現します。では、これらをどこに保存するのでしょうか?伝統的なRDMS(リレーショナルデータベース管理システム)では、これらのベクトル埋め込みを保存することはできません。ここでベクトルストア/ベクトルデータベースが登場します。ベクトルデータベースは、ベクトル埋め込みを効率的に保存および取得するために設計されています。さまざまなベクトルストアが存在し、それらはサポートする埋め込みモデルや類似ベクトルを取得するために使用する検索アルゴリズムの種類によって異なります。 なぜそれが必要なのでしょうか?それは、必要なデータへの高速なアクセスを提供するためです。PDFに基づいたチャットボットを考えてみましょう。ユーザーがクエリを入力すると、まずはPDFから関連コンテンツを取得し、この情報をチャットボットにフィードする必要があります。そして、チャットボットはこのクエリに関連する情報を取得し、ユーザーに適切な回答を提供するためにこの情報を使用します。では、ユーザーのクエリに関連するPDFから関連コンテンツをどのように取得するのでしょうか?答えは簡単な類似度検索です。 データがベクトル埋め込みで表現されると、データの異なる部分間で類似性を見つけ、特定の埋め込みに類似したデータを抽出することができます。クエリはまず埋め込みモデルによって埋め込みに変換され、その後ベクトルストアはこのベクトル埋め込みを受け取り、データベース内に保存されている他の埋め込みとの類似性検索(検索アルゴリズムを介して)を実行し、関連するデータをすべて取得します。これらの関連するベクトル埋め込みは、最終的な回答を生成するチャットボットで使用される大規模言語モデルに渡されます。 Chroma DBとは何ですか? Chromaは、Chromaという会社が提供するベクトルストア/ベクトルDBです。Chroma…

Find the right Blockchain Investment for you

Web 3.0 is coming, whether buy Coins, NFTs or just Coding, everyone can participate.

Advertising with us