Learn more about Search Results リポジトリ - Page 77

ディフューザーの新着情報は何ですか?🎨

1か月半前に、モダリティを横断する拡散モデルのためのモジュールツールボックスを提供するdiffusersライブラリをリリースしました。数週間後には、高品質なテキストから画像への変換モデルであるStable Diffusionのサポートを追加し、誰でも無料のデモを試すことができるようにしました。最後の3週間では、チームはライブラリに1つまたは2つの新機能を追加することを決定しました。このブログ投稿では、diffusersバージョン0.3の新機能について概説します!GitHubリポジトリに⭐を付けるのを忘れないでください。 画像から画像へのパイプライン テキストの逆転 インペインティング より小さなGPUに最適化 Mac上で実行 ONNXエクスポーター 新しいドキュメント コミュニティ SD潜在空間での動画生成 モデルの説明可能性 日本語のStable Diffusion 高品質なファインチューニングモデル Stable Diffusionによるクロスアテンション制御 再利用可能なシード 画像から画像へのパイプライン 最も要望の多かった機能の1つは、画像から画像の生成を行うことです。このパイプラインでは、画像とプロンプトを入力すると、それに基づいて画像が生成されます! 公式のColabノートブックに基づいたコードを見てみましょう。 from diffusers import…

Megatron-LMを使用して言語モデルをトレーニングする方法

PyTorchで大規模な言語モデルをトレーニングするには、単純なトレーニングループだけでは不十分です。通常、複数のデバイスに分散しており、安定した効率的なトレーニングのための多くの最適化技術があります。Hugging Face 🤗 Accelerateライブラリは、トレーニングループに非常に簡単に統合できるように、GPUとTPUを跨いで分散トレーニングをサポートするために作成されました。🤗 TransformersもTrainer APIを介して分散トレーニングをサポートしており、トレーニングループの実装を必要とせずにPyTorchでの完全なトレーニングを提供します。 大規模なトランスフォーマーモデルを事前トレーニングするための研究者の間でのもう一つの人気ツールはMegatron-LMです。これはNVIDIAのApplied Deep Learning Researchチームによって開発された強力なフレームワークです。🤗 AccelerateとTrainerとは異なり、Megatron-LMの使用は直感的ではなく、初心者には少し抵抗があるかもしれません。しかし、これはGPU上でのトレーニングに最適化されており、いくつかの高速化を提供することができます。このブログ記事では、Megatron-LMを使用してNVIDIAのGPU上で言語モデルをトレーニングし、それをtransformersと一緒に使用する方法を学びます。 このフレームワークでGPT2モデルをトレーニングするためのさまざまなステップを紹介します。これには以下が含まれます。 環境のセットアップ データの前処理 トレーニング モデルの🤗 Transformersへの変換 なぜMegatron-LMを選ぶのか? トレーニングの詳細に入る前に、他のフレームワークよりもこのフレームワークが効率的である理由を理解しましょう。このセクションは、Megatron-DeepSpeedでのBLOOMトレーニングについての素晴らしいブログから着想を得ています。詳細については参照してください。このブログ記事はMegatron-LMへの優しい入門を提供することを目的としています。 データローダー Megatron-LMには、データがトークン化され、トレーニング前にシャッフルされる効率的なデータローダーが付属しています。また、データは番号付きのシーケンスに分割され、それらは計算が必要な場合にのみ計算されるようにインデックスで保存されます。インデックスを作成するために、エポック数はトレーニングパラメータに基づいて計算され、順序が作成され、その後シャッフルされます。これは通常の場合とは異なり、データセット全体を繰り返し処理してから2番目のエポックのために繰り返すというものです。これにより、学習曲線が滑らかになり、トレーニング中の時間が節約されます。 組み込みCUDAカーネル GPU上で計算を実行する場合、必要なデータはメモリから取得され、計算が実行され、結果がメモリに保存されます。簡単に言えば、組み込みカーネルのアイデアは、通常はPyTorchによって別々に実行される類似の操作を、単一のハードウェア操作に統合することです。そのため、複数の個別の計算で行われるメモリ移動の回数を減らします。以下の図は、カーネルフュージョンのアイデアを示しています。これは、詳細について説明しているこの論文からインスピレーションを受けています。 f、g、hが1つのカーネルで結合された場合、fとgの中間結果x’とy’はGPUレジスタに保存され、hによって即座に使用されます。しかし、フュージョンがない場合、x’とy’はメモリにコピーされ、hによって読み込まれる必要があります。したがって、カーネルフュージョンは計算に著しいスピードアップをもたらします。Megatron-LMはまた、PyTorchの実装よりも高速なApexのFused…

DeepSpeedとAccelerateを使用した非常に高速なBLOOM推論

この記事では、176BパラメータのBLOOMモデルを使用してトークンごとのスループットを非常に高速に取得する方法を紹介します。 モデルは352GBのbf16(bfloat16)ウェイト(176*2)を必要とするため、最も効率的なセットアップは8x80GBのA100 GPUです。また、2x8x40GBのA100または2x8x48GBのA6000も使用できます。これらのGPUを使用する主な理由は、この執筆時点ではこれらのGPUが最大のGPUメモリを提供しているためですが、他のGPUも使用できます。たとえば、24x32GBのV100を使用することもできます。 単一のノードを使用すると、通常、最速のスループットが得られます。なぜなら、ほとんどの場合、ノード内のGPUリンクハードウェアの方がノード間のものよりも速いためですが、常にそうとは限りません。 もしハードウェアがそれほど多くない場合でも、CPUやNVMeのオフロードを使用してBLOOM推論を実行することは可能ですが、もちろん、生成時間は遅くなります。 また、GPUメモリの半分の容量を必要とする8ビット量子化ソリューションについても説明します。これにはBitsAndBytesとDeepspeed-Inferenceライブラリが必要です。 ベンチマーク さらなる遅延なしでいくつかの数値を示しましょう。 一貫性を保つために、この記事のベンチマークはすべて同じ8x80GBのA100ノードで実行され、512GBのCPUメモリを持つJean Zay HPCで行われました。JeanZay HPCのユーザーは、約3GB/sの読み取り速度(GPFS)で非常に高速なIOを利用しています。これはチェックポイントの読み込み時間に重要です。遅いディスクは読み込み時間が遅くなります。特に複数のプロセスでIOを同時に行っている場合はさらに重要です。 すべてのベンチマークは、100トークンの出力を貪欲に生成しています: Generate args {'max_length': 100, 'do_sample': False} 入力プロンプトはわずかなトークンで構成されています。以前のトークンのキャッシュもオンになっています。常にそれらを再計算すると非常に遅くなるためです。 まず、生成の準備が完了するまでにかかった時間(つまり、モデルの読み込みと準備にかかった時間)を見てみましょう: Deepspeed-Inferenceには、事前にシャードされたウェイトリポジトリが付属しており、読み込みに約1分かかります。Accelerateの読み込み時間も優れており、わずか2分です。他のソリューションはここでははるかに遅いです。 読み込み時間は重要であるかどうかは、一度読み込んだら追加の読み込みオーバーヘッドなしに繰り返しトークンを生成できるため、場合によります。 次に、トークン生成の最も重要なベンチマークです。ここでのスループット指標は単純であり、100個の新しいトークンを生成するのにかかった時間を100で割り、バッチサイズで割ったものです。…

倫理と社会のニュースレター#1

Hello, world! オープンソース企業として創業したHugging Faceは、技術におけるいくつかの重要な倫理的価値、すなわち協力、責任、透明性に基づいて設立されました。オープンな環境でコードを記述することは、自分のコードとその選択肢が世界に公開され、他の人が批判や追加を行うために利用可能であることを意味します。Hugging Face Hubをホストとしてモデルやデータを提供するようになると、リサーチコミュニティは再現性を直接統合し、それを会社の基本的な価値としました。そして、Hugging Faceに存在するデータセットやモデルの数が増えるにつれ、Hugging Faceのメンバーは、リサーチコミュニティによって定義された新たな価値に対応するために、ドキュメントの要件や無料の指導コースを導入しました。これにより、技術の進歩につながる数学、コード、プロセス、人々の理解を含む、監査可能性の価値が追加されました。 AIにおける倫理をどのように実施するかは、オープンな研究領域です。応用倫理と人工知能に関する学問や理論は数十年前から存在していましたが、AI開発における倫理の実践とテストされた手法は、過去10年間にわずかに現れ始めたに過ぎません。これは、AIシステムの構築ブロックである機械学習モデルが、それらの進歩を測定するために使用されてきた基準を超えたため、機械学習システムが日常生活に影響を与える実用的なアプリケーションの範囲で広範に採用されたためです。倫理に基づくAIの進歩に興味を持つ私たちのうちの何人かは、倫理的な原則に基づいて設立された機械学習企業に参加することは、成長が始まり、世界中の人々が倫理的なAIの問題に取り組み始めるときに、将来のAIがどのようになるかを根本的に形作る機会です。これは、倫理を念頭に置いて最初から設立されたテクノロジー企業がどのように見えるのかという、新しい形の現代のAIの実験です。機械学習に倫理の視点を当てるとは、良い機械学習を民主化するとはどういうことでしょうか。 このため、私たちは新しいHugging Face Ethics and Societyニュースレターで最近の考え方と取り組みを共有しています。このニュースレターは、春分点と夏至点に毎シーズン発行されます。これは、私たちHugging Faceの「倫理と社会の専門家」というオープンなグループが一緒になって機械学習の広範な社会的文脈やHugging Faceの役割に取り組むために作成されました。私たちは、会社全体が価値に基づいた意思決定を行うためには、専門チームではなく、共有の責任とコミットメントが必要であると考えています。私たちの仕事の倫理的なリスクを認識し、学ぶために、すべての関係者が責任を共有することが重要です。 私たちは、現在のところ「良い」機械学習の意味について継続的に研究しており、それを定義するための基準を提供しようとしています。これは進行中のプロセスであり、現在の日常生活に影響を与える機械学習コミュニティの異なる価値観と調和する点に到達するために、現在の日常生活で可能な限り何ができるかを見据えています。私たちは、Hugging Faceの創業の原則に基づいてこのアプローチを展開しています。 私たちはオープンソースコミュニティと協力することを目指しています。これには、ドキュメンテーションと評価のための現代化されたツール、コミュニティディスカッション、Discord、さらには異なる価値観に基づいて自分の作業を共有するための貢献者への個別サポートが含まれます。 私たちは、自分たちの考え方やプロセスを透明にすることを目指しています。プロジェクトの開始時に特定のプロジェクト価値についての執筆を共有し、AIポリシーについての考え方も共有しています。また、この作業に対するコミュニティからのフィードバックも学ぶためのリソースとして得ています。 私たちは、現在と将来の影響に対する責任を負いながら、これらのツールとアーティファクトの作成を基盤としています。この優先順位付けにより、機械学習システムをより監査可能で理解可能にするプロジェクト設計が実現しました。これには、ML以外の専門知識を持つ人々にも適した教育プロジェクトやコーディング不要のMLデータ分析ツールなどが含まれます。 これらの基本から出発し、私たちは、プロジェクトごとの特定の文脈と予測される影響に重点を置いた価値観の実施方法を取っています。したがって、ここではグローバルな価値観や原則の一覧を提供することはありません。その代わり、このニュースレターなど、プロジェクトごとの考え方を引き続き共有し、理解が進むにつれてさらに共有する予定です。異なる価値観と影響を受ける人々を特定するために、コミュニティのディスカッションが重要であると考えているため、Hugging Face Hubにオンラインで接続できる人は誰でも直接モデル、データ、およびスペースに関するフィードバックを提供できる機会を最近提供しました。オープンなディスカッションのツールと並行して、包括的なコミュニティスペースのための行動規範とコンテンツガイドラインを作成しました。セキュアなML開発のためのプライベートHub、モデルを厳密に評価するための評価ライブラリ、スキューとバイアスを分析するためのデータ解析のためのコード、モデルのトレーニング時の炭素排出量を追跡するためのツールを開発しています。また、倫理的および法的な問題について報告するためにモデルとスペースのリポジトリを「フラグ」とすることも可能にしました。…

SetFit プロンプトなしで効率的なフューショット学習

SetFitは、通常のファインチューニングよりもサンプル効率が高く、ノイズに強いです。 事前学習済みの言語モデルを用いたフューショット学習は、データサイエンティストの悪夢であるほとんどラベルのないデータを扱うための有望な解決策として浮上しています 😱。 Intel LabsとUKP Labとの共同研究を通じて、Hugging FaceはSetFitを紹介できることを嬉しく思っています。SetFitは、Sentence Transformersのフューショットファインチューニングの効率的なフレームワークです。SetFitは少量のラベル付きデータで高い精度を達成します – 例えば、顧客レビュー(CR)感情データセットでクラスごとにわずか8つのラベル付きの例を使用すると、SetFitはフルトレーニングセットの3,000の例でRoBERTa Largeのファインチューニングと競争力を持ちます 🤯! 他のフューショット学習手法と比較して、SetFitにはいくつかの特徴があります: 🗣 プロンプトや口述者不要:フューショットファインチューニングの現在の技術は、例を基に言語モデルに適した形式に変換するための手作りのプロンプトや口述者が必要です。SetFitはプロンプトを一切必要とせず、わずかな数のラベル付きテキスト例から直接豊かな埋め込みを生成します。 🏎 高速トレーニング:SetFitは、高い精度を実現するためにT0やGPT-3のような大規模なモデルを必要としません。そのため、トレーニングと推論の速度は通常1桁以上速くなります。 🌎 多言語対応:SetFitはHubの任意のSentence Transformerと組み合わせて使用できるため、マルチリンガルなチェックポイントをファインチューニングするだけで、複数の言語でテキストを分類することができます。 詳細については、私たちの論文、データ、コードをご覧ください。このブログ投稿では、SetFitの動作方法と独自のモデルをトレーニングする方法について説明します。さあ、始めましょう! どのように動作するのか? SetFitは効率とシンプルさを考慮して設計されています。SetFitはまず、少数のラベル付き例(通常はクラスごとに8または16個)でSentence Transformerモデルをファインチューニングします。次に、ファインチューニングされたSentence…

🤗 Accelerateは、PyTorchのおかげで非常に大規模なモデルを実行する方法です

大規模モデルの読み込みと実行 Meta AIとBigScienceは最近、ほとんどの一般的なハードウェアのメモリ(RAMまたはGPU)に収まらない非常に大きな言語モデルをオープンソース化しました。Hugging Faceでは、私たちの使命の一部として、それらの大きなモデルにアクセスできるようにするためのツールを開発しました。そのため、スーパーコンピュータを所有していなくても、これらのモデルを実行できるようにするためのツールを開発しました。このブログ投稿で選ばれたすべての例は、無料のColabインスタンス(制限付きのRAMとディスク容量)で実行されます。ディスク容量に余裕がある場合は、より大きなチェックポイントを選択することもできます。 ここでは、OPT-6.7Bを実行する方法を示します: import torch from transformers import pipeline # これは基本的なColabインスタンスで動作します。 # もし時間がかかっても待つ時間と十分なディスク容量がある場合は、より大きなチェックポイントを選択してください! checkpoint = "facebook/opt-6.7b" generator = pipeline("text-generation", model=checkpoint, device_map="auto", torch_dtype=torch.float16)…

非常に大規模な言語モデルとその評価方法

大規模な言語モデルは、Evaluation on the Hubを使用してゼロショット分類タスクで評価することができます! ゼロショット評価は、大規模な言語モデルの性能を測定するための研究者の人気のある方法であり、明示的にラベル付けされた例を示すことなくトレーニング中に能力を学習することが示されています。Inverse Scaling Prizeは、大規模なゼロショット評価を実施し、より大きなモデルがより小さなモデルよりも性能が低いタスクを発見するための最近のコミュニティの取り組みの一例です。 ハブ上での言語モデルのゼロショット評価の有効化 Evaluation on the Hubは、コードを書かずにHub上の任意のモデルを評価するのに役立ち、AutoTrainによって動作します。今では、Hub上の任意の因果言語モデルをゼロショットで評価することができます。ゼロショット評価は、トレーニングされたモデルが与えられたトークンセットを生成する可能性を測定し、ラベル付けされたトレーニングデータを必要としないため、研究者は高価なラベリング作業を省略することができます。 このプロジェクトのために、AutoTrainのインフラストラクチャをアップグレードし、大規模なモデルを無償で評価することができるようにしました 🤯!ユーザーがカスタムコードを書いてGPU上で大規模なモデルを評価する方法を見つけるのは高価で時間がかかるため、これらの変更により、660億のパラメータを持つ言語モデルを2000の文長のゼロショット分類タスクで評価するのに3.5時間かかり、コミュニティ内の誰でも実行できるようになりました。Evaluation on the Hubでは現在、660億のパラメータまでのモデルの評価をサポートしており、より大きなモデルのサポートも今後提供される予定です。 ゼロショットテキスト分類タスクは、プロンプトと可能な補完を含むデータセットを受け取ります。補完はプロンプトと連結され、各トークンの対数確率が合計され、正しい補完と比較するために正規化され、タスクの正確性が報告されます。 このブログ記事では、WinoBiasという職業に関連するジェンダーバイアスを測定する共参照タスクにおいて、ゼロショットテキスト分類タスクを使用してさまざまなOPTモデルを評価します。WinoBiasは、モデルが職業を言及する文章においてステレオタイプな代名詞を選ぶ可能性が高いかどうかを測定し、結果はモデルのサイズに関して逆のスケーリング傾向を示していることがわかります。 事例研究:WinoBiasタスクへのゼロショット評価 WinoBiasデータセットは、補完の選択肢が分類オプションであるゼロショットタスクとしてフォーマットされています。各補完は代名詞によって異なり、対象は職業に対して反ステレオタイプ的な補完に対応します(例:「開発者」は男性が主導するステレオタイプ的な職業なので、「彼女」が反ステレオタイプ的な代名詞になります)。例はこちらをご覧ください: 次に、Evaluation on the…

データセットとモデルにおけるDOI(デジタルオブジェクト識別子)の紹介

私たちの使命は、良い機械学習を民主化することです。それには、MLモデルやデータセットの再現性を高め、より良くドキュメント化し、使いやすく共有できるようなベストプラクティスが含まれます。 この課題を解決するために、喜んでお知らせしますが、ハブからモデルまたはデータセットのDOIを直接生成できるようになりました! DOIはリポジトリの設定から直接生成することができ、誰でもモデルまたはデータセットのページで「このモデル/データセットを引用する」とクリックすることであなたの作品を引用することができます🔥。 DOIとは何か、なぜ重要なのか? DOI(Digital Object Identifier)は、記事から図表、データセットやモデルなど、デジタルオブジェクトを一意に識別する文字列です。DOIはオブジェクトのメタデータに関連しており、オブジェクトのURL、バージョン、作成日、説明などが含まれます。DOIは研究や学術コミュニティでデジタルリソースを参照するための一般的に受け入れられた手段であり、書籍のISBNに相当します。 DOIを持つことで、モデルやデータセットに関する情報を見つけやすくし、世界と共有するための永続的なリンクを提供します。そのため、DOIを持つデータセットやモデルは永続的に存在し、サポートへの要求を行わない限り削除されることはありません。 Hugging FaceでDOIが割り当てられる方法は? 私たちはDataCiteと提携しており、登録されたハブのユーザーは自分のモデルやデータセットのDOIをリクエストすることができます。必要なメタデータを入力すると、新しい輝かしいDOIがもらえます🌟! モデルやデータセットの新しいバージョンがある場合、DOIは簡単に更新でき、以前のDOIのバージョンは古くなります。これにより、オブジェクトの特定のバージョンを参照するのが簡単になります。 私たちがさらに改善できるアイデアはありますか?このような多くの機能は、コミュニティのフィードバックから直接提供されています。ご意見やご要望があれば、お知らせください。または、huggingface/hub-docsの問題を開いてください🤗 このパートナーシップにはDataCiteチームに感謝します!また、このhub-docsのGitHubの問題に関する議論を開始し、育ててくれたAlix Leroyさん、Bram Vanroyさん、Daniel van Strienさん、Yoshitomo Matsubaraさんにも感謝します。

🧨 JAX / Flax での安定した拡散!

🤗 Hugging Face Diffusersはバージョン0.5.1からFlaxをサポートしています!これにより、Colab、Kaggle、またはGoogle Cloud PlatformなどのGoogle TPU上での超高速な推論が可能になります。 この投稿では、JAX / Flaxを使用して推論を実行する方法を示します。Stable Diffusionの動作詳細やGPUでの実行方法について詳細を知りたい場合は、このColabノートブックを参照してください。 一緒に進める場合は、上のボタンをクリックしてこの投稿をColabノートブックとして開きます。 まず、TPUバックエンドを使用していることを確認してください。このノートブックをColabで実行している場合は、上のメニューでランタイムを選択し、「ランタイムのタイプを変更」オプションを選択し、ハードウェアアクセラレータの設定でTPUを選択します。 JAXはTPUに限定されているわけではありませんが、TPUサーバーごとに8つのTPUアクセラレータが並列に動作するため、そのハードウェア上で輝きます。 セットアップ import jax num_devices = jax.device_count() device_type = jax.devices()[0].device_kind print(f"Found…

MTEB 大規模テキスト埋め込みベンチマーク

MTEBは、さまざまな埋め込みタスクでテキスト埋め込みモデルのパフォーマンスを測定するための大規模ベンチマークです。 🥇リーダーボードは、さまざまなタスクで最高のテキスト埋め込みモデルの包括的なビューを提供します。 📝論文は、MTEBのタスクとデータセットについての背景を説明し、リーダーボードの結果を分析しています! 💻Githubリポジトリには、ベンチマークのためのコードとリーダーボードへの任意のモデルの提出が含まれています。 テキスト埋め込みの重要性 テキスト埋め込みは、意味情報をエンコードするテキストのベクトル表現です。コンピュータは計算を行うために数値の入力を必要とするため、テキスト埋め込みは多くのNLPアプリケーションの重要な要素です。たとえば、Googleはテキスト埋め込みを検索エンジンの動力源として使用しています。テキスト埋め込みは、クラスタリングによる大量のテキストのパターン検出や、最近のSetFitのようなテキスト分類モデルへの入力としても使用できます。ただし、テキスト埋め込みの品質は、使用される埋め込みモデルに大きく依存します。MTEBは、さまざまなタスクに対して最適な埋め込みモデルを見つけるのに役立つように設計されています! MTEB 🐋 Massive:MTEBには8つのタスクにわたる56のデータセットが含まれ、現在リーダーボード上の>2000の結果を要約しています。 🌎 Multilingual:MTEBには最大112の異なる言語が含まれています!Bitext Mining、Classification、STSにおいていくつかの多言語モデルをベンチマークにかけました。 🦚 Extensible:新しいタスク、データセット、メトリクス、またはリーダーボードの追加に関しては、どんな貢献も大歓迎です。リーダーボードへの提出やオープンな課題の解決については、GitHubリポジトリをご覧ください。最高のテキスト埋め込みモデルの発見の旅にご参加いただければ幸いです。 MTEBのタスクとデータセットの概要。多言語データセットは紫の色で表示されます。 モデル MTEBの初期ベンチマークでは、最新の結果を謳うモデルやHubで人気のあるモデルに焦点を当てました。これにより、トランスフォーマーの代表的なモデルが多く含まれています。🤖 平均英語MTEBスコア(y)対速度(x)対埋め込みサイズ(円のサイズ)でモデルをグループ化しました。 次の3つの属性にモデルを分類して、タスクに最適なモデルを簡単に見つけることをお勧めします: 🏎 最大速度 Gloveのようなモデルは高速ですが、文脈の理解が不足しており、平均MTEBスコアが低くなります。 ⚖️ 速度とパフォーマンス…

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