Instructions to use prefeitura-rio/Rio-3.5-Open-397B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use prefeitura-rio/Rio-3.5-Open-397B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="prefeitura-rio/Rio-3.5-Open-397B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("prefeitura-rio/Rio-3.5-Open-397B") model = AutoModelForMultimodalLM.from_pretrained("prefeitura-rio/Rio-3.5-Open-397B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use prefeitura-rio/Rio-3.5-Open-397B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "prefeitura-rio/Rio-3.5-Open-397B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prefeitura-rio/Rio-3.5-Open-397B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/prefeitura-rio/Rio-3.5-Open-397B
- SGLang
How to use prefeitura-rio/Rio-3.5-Open-397B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "prefeitura-rio/Rio-3.5-Open-397B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prefeitura-rio/Rio-3.5-Open-397B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "prefeitura-rio/Rio-3.5-Open-397B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prefeitura-rio/Rio-3.5-Open-397B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use prefeitura-rio/Rio-3.5-Open-397B with Docker Model Runner:
docker model run hf.co/prefeitura-rio/Rio-3.5-Open-397B
TUTORIAL
Alguém sabe como faz Para funcionar ?
Algum tutorial ??
Normalmente é as mesmas etapas de carregar qualquer modelo, e se você quiser ver algum tutorial preciso, é só ver como os modelos da Qwen são carregados (porque o Rio-3.5 é uma copia do Qwen). O problema é que o Rio-3.5 não existe (fazem dias que eles ainda tão enrolando a publicação das weights do modelo, tá tendo todo um escandalo agora, veja o porque), então ninguém pode fazer nada já que não dá pra rodar atualmente.
Não é algo que tu consiga rodar na sua máquina local...
Qwen 3.5 de 397b precisa tipo de uns 300 GB de VRAM, vai gastar no minimo uns 150 mil reais só em GPU
Se não sabe instalar provavelmente você não tem o hardware, busque tutoriais em modelos menores
corrigindo o mad da pra rodar sim em local com quantizações baixas em 256gb de ram com uma boa cpu / multythread, não desista de modelos grandes locais! Mas, god ta certo, o modelo não existe, aconcelho que rode o gemma4 se quiser algo com boas capacidades em portugues, a própria google quantizou com uma boa capacidade de audio e texto em portugues (quantizações gringas muitas vezes quebram linguas latinas).
Não é algo que tu consiga rodar na sua máquina local...
Qwen 3.5 de 397b precisa tipo de uns 300 GB de VRAM, vai gastar no minimo uns 150 mil reais só em GPUSe não sabe instalar provavelmente você não tem o hardware, busque tutoriais em modelos menores
Não precisa de 300 GB de VRAM, pode fazer CPU offload e carregar parcialmente para a memória RAM
Não é algo que tu consiga rodar na sua máquina local...
Qwen 3.5 de 397b precisa tipo de uns 300 GB de VRAM, vai gastar no minimo uns 150 mil reais só em GPUSe não sabe instalar provavelmente você não tem o hardware, busque tutoriais em modelos menores
Não precisa de 300 GB de VRAM, pode fazer CPU offload e carregar parcialmente para a memória RAM
precisa se tu quiser rodar numa velocidade aceitável pra uso, se tu quiser um brinquedo de enfeite rodando a 1-9 tokens por segundo pode fazer isso sim
Tecnicamente tu não precisa nem de muita ram... faz disk offloading e grava no HD... 0,1 a 0,5 tokens por segundo num modelo desse
precisa se tu quiser rodar numa velocidade aceitável pra uso, se tu quiser um brinquedo de enfeite rodando a 1-9 tokens por segundo pode fazer isso sim
Tecnicamente tu não precisa nem de muita ram... faz disk offloading e grava no HD... 0,1 a 0,5 tokens por segundo num modelo desse
Você tá exagerando e generalizando todos os casos. Isso é uma questão que depende muito do hardware envolvido, mas eu posso dar um monte de exemplos onde você vai sim ter uma quantidade aceitavel de tokens por segundo ao usar offloading. A velocidade e desempenho não só involve a GPU, mas também a CPU (se você fizer offloading padrão) ou até mesmo o tamanho de bandwith do seu SSD (se você fizer disk offloading). Se você tiver uma GPU cagada mas uma bandwith de disco grande/rapida, você vai ter desempenho muito mais rapido sim.
Olha, exatamente por isso que eu fiz estimativas extremamentes lenientes @amarosnithe , estimei faixas e não valores certos:
- entre 1 e 9 tokens por segundo para CPU offloading;
- entre 0,1 e 0,5 tokens por segundo usando disk offloading
As faixas foram justamente já para acomodar variações de hardware diversas.
Estou sendo realista, muito difícil tu rodar o modelo cheio com 397b parâmetros, numa velocidade aceitável, mesmo com um hardware ótimo
O principal para tu rodar de verdade, com uso prático, é usando VRAM, ou simplesmente desiste do modelo cheio e rode uma versão menor do modelo... quantizada, com menos bits, etc... mas aí já não é exatamente mais o mesmo modelo, é um derivado dele extremamente próximo
Minha experiência pessoal, melhores modelos para rodar localmente em um computador normal é a série Gemma 4, em questão de desempenho por RAM/GB/etc... desempenho por hardware
Olha, exatamente por isso que eu fiz estimativas extremamentes lenientes @amarosnithe , estimei faixas e não valores certos:
- entre 1 e 9 tokens por segundo para CPU offloading;
- entre 0,1 e 0,5 tokens por segundo usando disk offloading
As faixas foram justamente já para acomodar variações de hardware diversas.
Cujo o problema, suas faixas são bem exageradas. E se eu te falar que se eu for por experiencia pessoal (como você), as minhas faixas seriam assim?:
- Entre 0.4 a 1 tokens por segundo para CPU offloading
- Entre 14 a 42 tokens por segundo usando disk offloading
Ai já tem uma diferença enorme você não acha? Mas exatamente, a CPU do meu PC é PESSIMA, mas eu tenho um SSD e uma bandwith extremamente "generosa" (o que permitiu que eu rodasse o Gemma4-24B a Q4 com mais de 40 tokens por segundo usando o disk offloading no Llama.cpp.. agora o mesmo modelo com offloading normal deu menos de 1 por segundo).
Mais uma vez, depende 100% do hardware e de como o cara vai rodar um modelo, não é automaticamente pessimo ou indesejavel. O Qwen3.5-397B-A17B tem ~397B parametros mas apenas 17B de ativação, se você botar a maioria de suas camadas no disco e deixar os experts na GPU você vai sim rodar rapido dependendo do seu PC.
- Não existe modelo Gemma4-24B (vou concluir que quis dizer 4-26b?), é um mar de diferença rodar ele contra um modelo 15x maior... a pergunta dele e esse tópico é sobre o Qwen 3.5 397bi não entendi porque você está comparando com um modelo bem menor. Inclusive foi a minha sugestão! Busque modelos menores, é o que estou falando desde o início. Modelos menores = mais token/s
- Qwen 3.5 397b são 17b parametros de ativação mas ele precisa dos 397b parametros, do mesmo jeito.. mesmo usando uma estratégia gpu e disk offloading você não tem como saber de antemão quais parâmetros vai estar usando! O roteador decide quais experts usar token a token. Você não sabe antecipadamente, de forma fixa, quais 17B vão ser usados! Cada TOKEN gerado o roteador escolhe os "experts", e isso quer dizer que vc fizer você vai precisar carregar/descarregar os 17bi parametros específicos na GPU, a sua estratégia é melhor do que usar MMAP mas é normal pro caso de MOE...
- Na média CPU offloading é MUITO mais rápido que disk offloading, no seu caso específico é super estranho os números que você apresentou, talvez haja algum gargalo forte na sua CPU por algum motivo?
Apesar de eu estar sempre me referindo nesta discussão a versão FULL do modelo, e não uma versão menor quantizada... olha esse relato de um usuário tentando rodar versão QUANTIZADA do modelo:
https://github.com/ggml-org/llama.cpp/discussions/24037
RPC Server
AMD 5950X
128GB RAM
2x R9700 AI Pro (64 GB VRAM)
Ubuntu 24.04 Server
RPC Client
AMD 9900x
128GB RAM
RTX 3090 Ti (24 GB VRAM)
Ubuntu 24.04 Server
Ele conseguiu dividindo a carga entre 2 PCs, rodar a 11 tokens/s.. uma versão quantizada Qwen 3.5 397b - Unsloth - UD Q4 K XL (228.4 GB)
O orçamento dele já passou muito de um computador normal e ainda assim precisou rodar um modelo menor quantizado, e 11 tokens/s é ainda assim... lento. Ele carregou o modelo inteiro na memória, melhor cenário possível.
Usando disk offloading através de MMAP a performance caia pra 1 token/s
- Não existe modelo Gemma4-24B (vou concluir que quis dizer 4-26b?)
Oops, sim é erro meu. Eu tô me referindo ao gemma-4-26B-A4B-it.
é um mar de diferença rodar ele contra um modelo 15x maior... a pergunta dele e esse tópico é sobre o Qwen 3.5 397bi não entendi porque você está comparando com um modelo bem menor. Inclusive foi a minha sugestão! Busque modelos menores, é o que estou falando desde o início. Modelos menores = mais token/s
2. Qwen 3.5 397b são 17b parametros de ativação mas ele precisa dos 397b parametros, do mesmo jeito.. mesmo usando disk offloading você não tem como saber de antemão quais parâmetros vai estar usando! O roteador decide quais experts usar token a token. Você não sabe antecipadamente, de forma fixa, quais 17B vão ser usados! Cada query que vc fizer você vai precisar carregar/descarregar os 17bi parametros específicos na GPU, a sua estratégia não tem nada de especial, é o disk offloading normal para MOE...
3. Na média CPU offloading é MUITO mais rápido que disk offloading, no seu caso específico é super estranho os números que você apresentou, talvez haja algum gargalo forte na sua CPU por algum motivo?
Porque você tá falando de faixas baseadas em "experiencia pessoal" e eu dei a minha. Eu comparar o Qwen 3.5 com o Gemma-4 é uma analogia perfeita pelo seguinte motivo: Não importa o que eu fizer, eu não vou conseguir rodar o Qwen 3.5 no meu PC, mas eu consigo rodar alguns Gemma-4 com quantização e disk offloading. Se o cara fazendo a pergunta não conseguir rodar um Deepseek (mais de 700B), mas poder conseguir rodar o Qwen 3.5 com quantização e disk offloading, você não acha que é uma situação similar? (ou seja, pode ser que a minha experiencia de 40+ tokens/s com o Gemma-4 no meu PC, vai ser a mesma pra esse cara se ele tiver um PC que vai ter uma performance similar com que eu tenho com o Gemma-4, não acha?).
Vamos usar um pouco de matematica só pra comprovar esse ponto.. uma formula bem popular que consegue estimar bem quantos GB que um modelo vai precisar é essa:
- [parametros do modelo em B] x ([quantização especifica] / 8) x [overhead]
Ou seja, se você quiser rodar um modelo de 8B em 32-bit (fp32/full-precision), a formula então vai ser assim: "8x(32/8)x1.5" (o valor do overhead depende do quão eficiente seu programa e hardware são, mas eu uso 1.5 porque é uma boa media), ou seja, pra "8x(32/8)x1.5", o resultado vai ser "48". Então você vai precisar de 48GB pra rodar um 8B em 32-bit.
Agora vamos aplicar o exemplo/analogia que eu fiz:
O gemma-4-26B-A4B-it tem 26B de parametros e eu quero rodar ele em 4-bit, se ele fosse um modelo denso então a formula seria "26x(4/8)x1.5 = 19.5", então eu precisaria de 19.5GB de GPU pra rodar isso (impossivel pra mim). Só que o Gemma-4 é um MoE com 4B de ativação, então a formula é "4x(4/8)x1.5 = 3", ou seja, nesse caso eu preciso de apenas 3GB.
AI SIM, olha que diferença. É por isso que eu consegui rodar o gemma-4-26B-A4B-it tão bem. Eu tenho apenas 4GB de RAM na minha GPU, mas como suas ativações são apenas 3GB, eu facilmente encaixei essa camada de ativação (os experts relevantes) na minha GPU, e o resto eu botei no SSD (por isso que eu fiquei com 40+ tokens/s, porque meu SSD se comunica bem com minha GPU, então dá pra encaixar o resto do modelo ali enquanto a GPU fica com as ativações).
Agora imagina se esse cara tem uma GPU de 16GB de RAM e ele quer rodar o Qwen-3.5 em 4-bit também.. já que o Qwen-3.5 tem 17B de ativação, a formula vai ser "17x(4/8)x1.5 = 12.75". Ou seja, ele consegue facilmente encaixar a camada de ativação na GPU dele (já que 17B de ativação em 4-bit precisaria só de ~13GB), e ele pode botar todo o resto do modelo no SSD dele. Se o cara tiver um SSD bom com uma bandwith boa (como no meu caso), ele vai rodar o Qwen-3.5 de uma forma comparavel com a do meu caso, você não acha? (mesma situação, só que obviamente ele teria um hardware melhor pra poder aguentar o Qwen, mas é uma situação totalmente comparavel).
É por isso que sua faixa é exagerada, porque o hardware pode dar uma diferença absurda assim como esse exemplo^ demonstrou.
Agora imagina se esse cara tem uma GPU de 16GB de RAM e ele quer rodar o Qwen-3.5 em 4-bit também.. já que o Qwen-3.5 tem 17B de ativação, a formula vai ser "17x(4/8)x1.5 = 12.75". Ou seja, ele consegue facilmente encaixar a camada de ativação na GPU dele (já que 17B de ativação em 4-bit precisaria só de ~13GB), e ele pode botar todo o resto do modelo no SSD dele. Se o cara tiver um SSD bom com uma bandwith boa (como no meu caso), ele vai rodar o Qwen-3.5 de uma forma comparavel com a do meu caso, você não acha? (mesma situação, só que obviamente ele teria um hardware melhor pra poder aguentar o Qwen, mas é uma situação totalmente comparavel).
Não é assim que funciona ativação dos 17bi do Qwen cara... é um modelo MOE, ele escolhe a cada token 17 bi dos 397bi parâmetros, esses 17bi ele precisa carregar pra inferência daquele token específico, agora imagina, a cada token ele precisa rodar o roteador e carregar/descarregar os 17bi parâmetros do disco pra memória.
Eu já mostrei ali no meu post anterior os números reais de uma pessoa rodando o Qwen 3.5 397b quantizado pra 4bits... com DOIS SUPER PCs somados pra rodar o modelo ele tava conseguindo 11 tokens/s, tudo na memória, e com disk offloading (usando MMAP) 1 token/s.. leia o link do post anterior que coloquei
Não é assim que funciona ativação dos 17bi do Qwen cara... é um modelo MOE, ele escolhe a cada token 17 bi dos 397bi parâmetros, esses 17bi ele precisa carregar pra inferência daquele token específico, agora imagina, a cada token ele precisa rodar o roteador e carregar/descarregar os 17bi parâmetros do disco pra memória.
Você tá tratando o Qwen como se ele fosse algum MoE diferente de todos que existem. Ativação = o numero de parametros necessarios para um expert processar 1 token (e então a IA funcionar de forma normal). Um modelo denso precisa de todas as camadas e todos os parametros pra processar 1 token a cada turno, mas o MoE só precisa dos parametros definidos por expert.
..como que isso é diferente com o Qwen? Não é um modelo denso (então não precisa de todos os 397B de parametros o tempo todo pra processar cada token individual), então apenas 17B são usados para processar 1 token por turno.. O QUE é diferente do que eu falei? O que é controverso nisso? Onde tá o erro? A contradição? A falha logica?
Eu já mostrei ali no meu post anterior os números reais de uma pessoa rodando o Qwen 3.5 397b quantizado pra 4bits... com DOIS SUPER PCs somados pra rodar o modelo ele tava conseguindo 11 tokens/s, tudo na memória, e com disk offloading (usando MMAP) 1 token/s.. leia o link do post anterior que coloquei
Cara.. você sabe que MMAP é diferente de Disk Offloading né?
Você achou que era a mesma coisa porque você tá jogando dados fora da GPU? Um caso usa o System Paging do PC (o que é ridiculo, ele não foi feito pra IAs então OBVIAMENTE vai ser lerdo), e no outro caso você tá usando o SSD (cujo o uso é bem comum na industria quando se trata de modelos muito grandes).
Então esse exemplo que você tá dando é completamente irrelevante do que eu estive falando desde o começo dessa conversa. Se você tiver uma GPU que consegue aguentar a camada de ativação, e você tiver uma SSD boa (que se comunica bem com a GPU), você vai sim ter uma performance boa (e não essa faixa ridicula que você tinha dado). Ponto final.
Não é assim que funciona ativação dos 17bi do Qwen cara... é um modelo MOE, ele escolhe a cada token 17 bi dos 397bi parâmetros, esses 17bi ele precisa carregar pra inferência daquele token específico, agora imagina, a cada token ele precisa rodar o roteador e carregar/descarregar os 17bi parâmetros do disco pra memória.
Você tá tratando o Qwen como se ele fosse algum MoE diferente de todos que existem. Ativação = o numero de parametros necessarios para um expert processar 1 token (e então a IA funcionar de forma normal). Um modelo denso precisa de todas as camadas e todos os parametros pra processar 1 token a cada turno, mas o MoE só precisa dos parametros definidos por expert.
..como que isso é diferente com o Qwen? Não é um modelo denso (então não precisa de todos os 397B de parametros o tempo todo pra processar cada token individual), então apenas 17B são usados para processar 1 token por turno.. O QUE é diferente do que eu falei? O que é controverso nisso? Onde tá o erro? A contradição? A falha logica?
Eu já mostrei ali no meu post anterior os números reais de uma pessoa rodando o Qwen 3.5 397b quantizado pra 4bits... com DOIS SUPER PCs somados pra rodar o modelo ele tava conseguindo 11 tokens/s, tudo na memória, e com disk offloading (usando MMAP) 1 token/s.. leia o link do post anterior que coloquei
Cara.. você sabe que MMAP é diferente de Disk Offloading né?
Você achou que era a mesma coisa porque você tá jogando dados fora da GPU? Um caso usa o System Paging do PC (o que é ridiculo, ele não foi feito pra IAs então OBVIAMENTE vai ser lerdo), e no outro caso você tá usando o SSD (cujo o uso é bem comum na industria quando se trata de modelos muito grandes).Então esse exemplo que você tá dando é completamente irrelevante do que eu estive falando desde o começo dessa conversa. Se você tiver uma GPU que consegue aguentar a camada de ativação, e você tiver uma SSD boa (que se comunica bem com a GPU), você vai sim ter uma performance boa (e não essa faixa ridicula que você tinha dado). Ponto final.
A sua Ucraniazinha continuará sendo estuprada ;) xoxo
A sua Ucraniazinha continuará sendo estuprada ;) xoxo
Continua pensando em mim, carioca macaco vira-lata ;)
A sua Ucraniazinha continuará sendo estuprada ;) xoxo
Continua pensando em mim, carioca macaco vira-lata ;)
Coitado, o súdito se revira contra a divindade da capital do Império. Em breve as coisas voltarão à sua ordem devida e os cariocas conquistarão vocês minhocas para botá-los de volta em suas algemas de escravidão.
