HuggingFace Hub レポジトリ : 設定 / 次のステップ

h1 style=”font-size:12pt;”>HuggingFace Hub レポジトリ : 設定 / 次のステップ (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 01/02/2023

* 本ページは、HuggingFace Hub Repositories の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス

クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :

◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

  • 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
  • sales-info@classcat.com  ;  Web: www.classcat.com  ;   ClassCatJP

 

HuggingFace Hub レポジトリ : 設定

プライベート・レポジトリ

レポジトリを作成するときその可視性を選択することができて、貴方が所有する任意のレポジトリは Settings タブで public と private の間で切り替えられる可視性を持ちます。レポジトリが organization (組織) により所有されない限りは、貴方は repo に変更を行ったり任意のコードをアップロードできる唯一のユーザです。可視性を private に設定すると :

  • 貴方の repo が他のユーザの検索結果に現れないことを保証します。

  • 貴方の private repo の URL にアクセスした他のユーザは 404 – Repo not found エラーを受け取ります。

  • 他のユーザは貴方の repo を複製することができません。

 

repo の名前変更または transfer (移行)

レポジトリを所有する場合、名前と所有権を管理するために Settings タブにアクセスすることができます。ユースケースの点で特定の制限があることに注意してください。

移動 (moving) はこれらのユースケースで使用できます ✅

  • 同じユーザでのレポジトリの名前変更。

  • 同じ組織でのレポジトリの名前変更。ユーザは組織の一員で、その組織で “write” か “admin” 権限を持つ必要があります。

  • ユーザから組織へのレポジトリの移行。ユーザは組織の一員で、その組織で “write” か “admin” 権限を持つ必要があります。

  • 組織から貴方自身へのレポジトリの移行。貴方は組織の一員で、その組織で “write” か “admin” 権限を持つ必要があります。

  • ソース組織から別のターゲット組織へのレポジトリの移行。ユーザはソース組織で “admin” 権限を持ち、ターゲット組織で “write” か “admin” 権限を持つ必要があります。

移動 (moving) は以下に対しては動作しません ❌

  • 組織から貴方自身ではない別のユーザへのレポジトリの移行。

  • ユーザがソース組織で “admin” 権限を、ターゲット組織で “write” か “admin” 権限のいずれも持たない場合、ソース組織から別のターゲット組織へのレポジトリの移行。

  • ユーザ A からユーザ B へのレポジトリの移行。

If these are use cases you need help with, please send us an email at website at huggingface.co.

 

HuggingFace Hub レポジトリ : 次のステップ

これらの次のセクションは Hugging Face Hub の Git レポジトリを最大限に活用するために有用であるかもしれない機能と追加情報をハイライトします。

 

レポジトリをプログラミングで管理する方法

Hugging Face は huggingface_hub ライブラリ を通して Python で repo にアクセスすることをサポートします。レポジトリをダウンロードしたりファイルをアップロードするような、調べた操作は他の有用な関数ともにこのライブラリを通して利用可能です!

git を直接利用したい場合には、以下のセクションを読んでください。

 

Learning more about Git

Git について引き続き学習したい場合にはアクセスすべき良い場所はこの Git チュートリアル です。Git の詳細な背景については、GitHub の Git ガイド を見ることができます。

 

ブランチの使用方法

共同で Git repo を効果的に使用し、時期尚早なコードをリリースをすることなく機能について作業するには、ブランチ が利用できます。ブランチは、貴方の “production-ready” コードから “work in progress” コードを分離することを可能にし、複数の人々を他の人の貢献と頻繁に矛盾することなくプロジェクトで作業させる追加の利点を持ちます。実験をそれら独自のブランチにアイソレートするためにブランチが使用できて、チーム全体がブランチを管理する実践を導入する ことさえできます。

Git ブランチについて学習するには、Learn Git Branching interactive チュートリアル を試すことができます。

 

タグの使用

Git はプロジェクトのマイルストーンを簡単に記録できるように、コミットにタグ付けすることを可能にします。それにより、貴方の Hub repo でコミットをマーキングするためにタグを使用できます!タグの使用について学習するには、この DevConnected 記事 にアクセスできます。

repo の履歴で重要なコミットを識別することを容易にするだけでなく、Git タグの使用はまた A/B テストを行ない、特定のタグでレポジトリを複製 したりする等のことも可能にします!huggingface_hub はまた、特定のタグ付けされたコミットからファイルをダウンロードする ような、タグによる作業もサポートします。

 

repo を複製したりフォークする方法 (LFS ポインタを含む)

レポジトリをコピーしたい場合、Git 履歴を保持したいかどうかに依存して 2 つの選択肢があります。

 

Git 履歴なしに複製する

多くのシナリオでは、特定のコードベースの貴方自身のコピーが欲しい場合、以前の Git 履歴には関心がないかもしれません。この場合には、手軽な Repo Duplicator で repo を素早く複製できます!ユーザアクセストークンを作成する必要があります、これについて セキュリティ・ドキュメント で更に読むことができます。

 

Git 履歴を伴う複製 (フォーク)

コミット履歴を保持したレポジトリの複製はフォークと呼ばれます。貴方は自身の repo の一つをフォークすることを選択できますが、他の人々のプロジェクトを変更したい場合にフォークすることも一般的です。

このプロセスに従うためには Git LFShuggingface_hub CLI をインストールする必要があることに注意してください。LFS ファイルを含むレポジトリをフォークや rebase したいときには馴染みがあるかもしれない通常の Git アプローチは使用できません、LFS ポインタを壊さないように注意する必要があるためです。フォークは貴方の帯域幅に依存して時間がかかる可能性があります、そのフォークですべての LFS ファイルを取得して再アップロードする必要があるからです。

例えば、貴方は上流のレポジトリ, upstream を持ち、Hub に自身のレポジトリを作成したとします、この例では myfork です。

  1. https://huggingface.co に destination レポジトリ (e.g. myfork) を作成します。

  2. 貴方の fork レポジトリを複製します :
    git lfs clone https://huggingface.co/me/myfork.git
    
  3. 非-LFS ファイルを取得します :
    cd myfork
    git lfs install --skip-smudge --local # affects only this clone
    git remote add upstream https://huggingface.co/friend/upstream.git
    git fetch upstream
    
  4. 大きいファイルを取得します。ダウンロード帯域幅に依存してある程度の時間がかかる可能性があります :
    git lfs fetch --all upstream # this can take time depending on your download bandwidth
    

     
    4.a. fork 履歴を完全にオーバーライドしたい場合には (これは初期コミットだけを持つはずです)、次を実行します :

    git reset --hard upstream/main
    

     
    4.b. オーバーライドする代わりに rebase したい場合には、次のコマンドを実行して衝突を解決します :

    git rebase upstream/main
    
  5. Prepare your LFS files to push:
    git lfs install --force --local # this reinstalls the LFS hooks
    huggingface-cli lfs-enable-largefiles . # needed if some files are bigger than 5Gb
    
  6. And finally push:
    git push --force origin main # this can take time depending on your upload bandwidth
    

Now you have your own fork or rebased repo in the Hub!

 

以上