Skip to content

Hugging Face: Listando todos os seus Spaces com ZeroGPU

No Hugging Face, você pode subir aplicações que usam GPU gratuitamente, usando um recurso chamado ZeroGPU (pra quem tem a conta PRO). Assim, você pode criar apps que tem acesso a GPU poderosas. Porém, isso é limitado a 10 spaces apenas. Recentemente, ao tentar criar um novo space com ZeroGPU, eu me deparei com o erro de limite. Porém, pela interface, eu vi que é bem trabalhoso achar os spaces que possuem ZeroGPU, então, lembrei que na API do Hugging Face há diversas informações, e, no PowershAI, é bem fácil usar a API.

Pela interface, a maneira mais próxima que eu achei para fazer isso é indo no menu Spaces , onde você tem acesso a tela de trending spaces, e então filtrando:

  1. Vá em Spaces, no meu superior
  2. Então, clique no ícone de filtrar
  3. Selecione ZeroGPU
  4. E no campo de pesquisa, digite o nome do seu usuário

Enquanto esse método pode funcionar bem para muitos casos, ele tem alguns contras:

  • Note que, no exemplo acima, ele listou apenas 6 spaces. Eu precisava encontrar 10 (pois o Hugging Face não deixou eu criar um outro Space com ZeroGPU devido atingir o limite). Os spaces privados não foram listados, nem os que contém erros.
  • O filtro que você coloca no campo não é exatamente de autor, portanto, se outro space tiver algo que tenha o mesmo nome do seu usuário, então, ele pode ser listado

E é aqui onde entra o PowershAI. Com o PowershAI, eu consigo listar todos os meus spaces que usam zero Gpu com alguns comandos simples.

Se você nunca instalou o powershai, siga os passos abaixo para instalar e configurá-lo para usar o Hugging Face. Você só precisa fazer isso 1x. Caso já tenha feito isso, pode pular as instruções abaixo


Instalando o Powershai e configurando o Hugging Face pela primeira vez

Para instalar o powershai, abra um powershell e execute o seguinte comando:

Install-Module -Scope CurrentUser powershaiCode language: PowerShell (powershell)

Agora, você precisa de um token do hugging face. Para gerar, é bem simples:

  1. Logue com sua conta em Hugging Face – The AI community building the future.
  2. No canto superior direito, clique no seu avatar (um círculo), vai abrir um menu, e depois vá em “Access Tokens”
  3. Então, procure um botão “+ Create Token”
  4. Em Token Type, escolha “Read”, dê um nome (ex.: powershai) e clique em criar
  5. Depois, clique no botão “Create token”
  6. Guarde o token gerado, que você irá usar no passo a seguir

Agora que você tem um token do hugging face, basta adicioná-lo ao powershai. O script abaixo faz isso. Ele irá solicitar o token para você:

# Importe o módulo
import-module powershai

# Ative o provider do Hugging Face
Set-AiProvider HuggingFace

# Insira o seu token do hugging face
Set-AiCredential 

# Teste o token 
Get-HfMe # este comando retorna informacoes do seu usuarioCode language: PowerShell (powershell)

Caso dê erros, então provavelmente é um problema com a permissão, passo incorreto ou até bug do powershai. Se você revisou e o erro persiste, me procure nos comentários que posso te ajudar (sem expor informações pessoais ou tokens)

Por fim, para que você não tenha que fazer todo esse processo novamente, você pode exportar as configurações e proteger com uma senha. Esta senha é usada para gerar chaves para criptografar os tokens e salvar no computador onde está executando. Use uma senha segura e fácil de lembrar:

# o powershai nunca transfere essa senha pela internet ou salva ela
Export-PowershaiSetttings

# Quando você quiser importar novamente, é só usar
Import-PowershaiSettings # e informe a senha usadaCode language: PowerShell (powershell)

Uma vez que você tem o seu powershai pronto para conversar com o Huging Face, vamos aos comandos:

Get-HfSpace -My | %{ Get-HfSpace $_.id -NoGradioSession } | ?{ $_.runtime.hardware.requested -like 'zero-*' } | select id,privateCode language: PowerShell (powershell)

Vamos explicar cada um dos comandos separadores pelo pipe, comecando da esquerda:

  • Get-HfSpace -My
    Este comando retorna todos os seus spaces. Porém, ele retorna apenas algumas informações básicas, como o id do space.
  • %{ Get-HfSpace $_.id -NoGradioSession }
    No powershell, % é um alias para o comando foreach-object, que simplesmente repete o comando entre as chaves para cada resultado do comando anterior e permitindo acessa esse resultado com a variável $_. Ou seja, estamos executando o Get-HfSpace novamente, só que passando id de cada space. Com isso, o comando retorna muito mais detalhes.
    Eu abri uma Issue para melhorar isso e trazer essas infos com uma única chamada apenas do Get-HfSpace -My
    O parâmetro -NoGradioSession evita que o powershai tente abrir uma conexão com o Gradio, o que deixaria um pouco mais lento a execução. Isso não é necessário já que não queremos interagir com o Space, mas apenas obter metadados dele.
  • ?{ $_.runtime.hardware.requested -like ‘zero-*’ }
    ? é um alias para Where-Object, que é um comando que filtra o resultado.
    No caso, estamos acessando a propriedade runtime.hardware de cada um dos spaces.
    Nesse objeto teremos uma outra propriedade, chamada requested, que indica o hardware solicitado. Em observações, notei que ZeroGPU sempre começa com “zero-“
  • select id,private
    Por fim, usando o comando select (que é um alias de Select-Object) para trazer apenas as propriedades id e private, indicando se o space é privado ou não.

Rodando o comando acima com o meu usuário, ele retornou o seguinte:

Se você quiser, pode salvar o resultado completo em uma variável e explorar melhor depois:

$spaces = Get-HfSpace -My | %{ Get-HfSpace $_.id -NoGradioSession } | ?{ $_.runtime.hardware.requested -like 'zero-*' }Code language: PowerShell (powershell)

O PowershAI é um módulo incrível e essa integração com o Hugging Face tem muitos recursos sensacionais para quem precisa obter informações e interagir com o Hugging Face! Neste link está uma doc básica de como usar o Hugging Face com o powershai.

Caso queira saber mais sobre o projeto, sugerir features, correções, etc., confira no git: rrg92/powershai: Powershell + AI

Leave a Reply

Your email address will not be published. Required fields are marked *