O Seed-OSS é uma série de grandes modelos de linguagem de código aberto desenvolvidos pela equipe do Seed na ByteDance, com foco no processamento de contextos longos, recursos de raciocínio e otimização de tarefas de agentes. Os modelos contêm 36 bilhões de parâmetros e usam apenas 12 trilhões de token O Seed-OSS oferece controle flexível do orçamento de inferência, o que permite que os usuários ajustem a duração da inferência de acordo com suas necessidades e aumentem a eficiência dos aplicativos práticos. O Seed-OSS adota a licença Apache-2.0 e é totalmente de código aberto, permitindo que os desenvolvedores o utilizem e modifiquem livremente, sendo amplamente utilizado em pesquisas, tarefas de inferência e cenários multimodais, além de ter dado suporte a mais de 50 aplicações práticas do ByteDance.
Lista de funções
- Processamento de contexto extremamente longoSuporte a janelas de contexto de token de 512K, equivalentes a cerca de 1.600 páginas de texto, adequadas para o processamento de documentos longos ou diálogos complexos.
- Raciocínio flexível para controle orçamentárioOs usuários podem acessar as informações por meio do
thinking_budget
Os parâmetros ajustam dinamicamente o comprimento da inferência para equilibrar velocidade e profundidade. - raciocínio sólidoOtimizado para tarefas complexas, como matemática e geração de código, ele apresenta bom desempenho em benchmarks como o AIME e o LiveCodeBench.
- Internacionalização OtimizaçãoSuporte para tarefas multilíngues, adequado para desenvolvedores de todo o mundo, abrangendo a tradução e a compreensão em vários idiomas.
- Suporte à missão do agenteFuncionalidade integrada de chamada de ferramenta com
enable-auto-tool-choice
O processamento automatizado de tarefas é possível. - Implementação eficienteSuporte a raciocínio multi-GPU, compatível com
bfloat16
tipos de dados para otimizar a eficiência da inferência. - Código aberto e suporte da comunidadeBaseado na licença Apache-2.0, ele fornece pesos e códigos completos do modelo para facilitar a personalização pelos desenvolvedores.
Usando a Ajuda
Processo de instalação
Para usar o modelo Seed-OSS, siga as etapas abaixo para instalá-lo e configurá-lo localmente ou em um servidor. A seguir, um exemplo do modelo Seed-OSS-36B-Instruct, com base no guia oficial fornecido pelo GitHub.
- armazém de clones::
git clone https://github.com/ByteDance-Seed/seed-oss.git cd seed-oss
- Instalação de dependências::
Certifique-se de que o Python 3.8+ e o pip estejam instalados em seu sistema. Execute o seguinte comando para instalar as dependências necessárias:pip3 install -r requirements.txt pip install git+ssh://git@github.com/Fazziekey/transformers.git@seed-oss
- Instalação do vLLM (recomendado)::
Suporte ao Seed-OSS vLLM Estrutura de raciocínio para um raciocínio mais eficiente. Instale o vLLM:VLLM_USE_PRECOMPILED=1 VLLM_TEST_USE_PRECOMPILED_NIGHTLY_WHEEL=1 pip install git+ssh://git@github.com/FoolPlayer/vllm.git@seed-oss
- Download dos pesos do modelo::
Faça o download dos pesos do modelo Seed-OSS-36B-Instruct da Hugging Face:huggingface-cli download ByteDance-Seed/Seed-OSS-36B-Instruct --local-dir ./Seed-OSS-36B-Instruct
- Configuração do ambiente de tempo de execução::
Certifique-se de que seu sistema tenha um ambiente de hardware compatível com várias GPUs (por exemplo, NVIDIA H100). Configurações recomendadastensor-parallel-size=8
responder cantandobfloat16
para otimizar o desempenho. - Iniciar serviço de raciocínio::
Use o vLLM para iniciar um serviço de API compatível com o OpenAI:python3 -m vllm.entrypoints.openai.api_server \ --host localhost \ --port 4321 \ --enable-auto-tool-choice \ --tool-call-parser seed_oss \ --trust-remote-code \ --model ./Seed-OSS-36B-Instruct \ --chat-template ./Seed-OSS-36B-Instruct/chat_template.jinja \ --tensor-parallel-size 8 \ --dtype bfloat16 \ --served-model-name seed_oss
Uso
O Seed-OSS oferece uma variedade de formas de uso, adequadas a diferentes cenários. Abaixo está o fluxo de operação detalhado das principais funções.
1. diálogo e raciocínio básicos
Use scripts Python para interagir com o modelo. Veja o exemplo da geração de um tutorial de culinária:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "ByteDance-Seed/Seed-OSS-36B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
messages = [{"role": "user", "content": "How to make pasta?"}]
tokenized_chat = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
thinking_budget=512
)
outputs = model.generate(tokenized_chat.to(model.device), max_new_tokens=2048)
output_text = tokenizer.decode(outputs[0])
print(output_text)
- Principais parâmetros::
thinking_budget=512
Raciocínio: Controla a profundidade do raciocínio; quanto mais alto o valor, mais profundo o raciocínio, adequado para tarefas complexas.max_new_tokens=2048
Define o número máximo de tokens a serem gerados, o que afeta o comprimento da saída.
2. processamento de contexto longo
O Seed-OSS suporta contextos de token de 512K, o que é adequado para processar documentos longos ou diálogos com várias rodadas. Por exemplo, a análise de relatórios longos:
- Usar o conteúdo de um documento longo como resultado de
messages
Entrada, no formato[{"role": "user", "content": "<长文档内容>"}]
. - Configuração alta
thinking_budget
(por exemplo, 1024) para garantir uma inferência profunda. - Use o script acima para gerar resumos ou responder a perguntas.
3. tarefas de proxy e chamadas de ferramentas
O Seed-OSS oferece suporte à invocação automatizada de ferramentas e precisa ser ativado. enable-auto-tool-choice
Por exemplo, depois de configurar o serviço de API, o modelo pode ser chamado por meio de uma solicitação HTTP. Por exemplo, depois de configurar o serviço de API, você pode invocar o modelo por meio de uma solicitação HTTP:
curl http://localhost:4321/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "seed_oss",
"messages": [{"role": "user", "content": "Calculate 2+2"}]
}'
- O modelo seleciona automaticamente a ferramenta apropriada (por exemplo, uma calculadora matemática) e retorna os resultados.
- seguro
tool-call-parser seed_oss
Ativado para analisar chamadas de ferramentas.
4. raciocínio sobre a otimização do orçamento
O usuário pode ajustar o thinking_budget
Eficiência da inferência de otimização de parâmetros:
- Tarefas simples (por exemplo, tradução): Configuração
thinking_budget=128
. - Tarefas complexas (por exemplo, raciocínio matemático): configurar
thinking_budget=1024
.
Exemplo:
tokenized_chat = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
thinking_budget=1024
)
5. otimização da implantação
- Inferência multi-GPU: através de
tensor-parallel-size
para alocar recursos de GPU. Por exemplo.tensor-parallel-size=8
Adequado para 8 GPUs. - tipo de dados: Uso
bfloat16
Menor consumo de memória gráfica para implementações em grande escala. - Geração de configurações: Recomendações
temperature=1.1
responder cantandotop_p=0.95
para obter resultados diversos. Para tarefas específicas (por exemplo, Taubench), isso pode ser ajustado paratemperature=1
responder cantandotop_p=0.7
.
advertência
- Requisitos de hardwareGPU NVIDIA H100-80G: Recomenda-se pelo menos 1 GPU NVIDIA H100-80G, sendo que 4 suportam tarefas de resolução mais alta.
- Seleção de modelosSeed-OSS está disponível nas versões Base e Instruct, sendo a Instruct mais adequada para tarefas interativas e a Base para pesquisa e ajuste fino.
- Suporte à comunidadeContribua com a comunidade enviando um problema ou uma solicitação pull via GitHub.
cenário do aplicativo
- pesquisa acadêmica
- Descrição da cenaOs pesquisadores podem usar o Seed-OSS para análise de documentos longos, extração de dados ou tarefas de raciocínio complexas. Por exemplo, analisar artigos acadêmicos ou gerar resumos de relatórios de pesquisa.
- aplicativo multilíngue
- Descrição da cenaOs desenvolvedores podem aproveitar o suporte multilíngue do modelo para criar chatbots internacionalizados ou ferramentas de tradução que abrangem cenários de vários idiomas.
- Agente de automação
- Descrição da cenaAs empresas podem implantar o Seed-OSS como um agente inteligente para lidar com atendimento ao cliente, agendamento automatizado de tarefas ou análise de dados.
- geração de código
- Descrição da cenaOs programadores podem usar o modelo para gerar trechos de código ou depurar algoritmos complexos em conjunto com contextos de 512K para processar grandes bases de código.
- Suporte educacional
- Descrição da cenaAs instituições educacionais podem usar os modelos para gerar materiais didáticos, responder às perguntas dos alunos ou fornecer orientação de aprendizado personalizada.
QA
- Quais idiomas são compatíveis com o Seed-OSS?
- O modelo é otimizado para cenários internacionalizados e oferece suporte a vários idiomas, incluindo inglês, chinês, espanhol, etc. O desempenho específico pode ser encontrado no teste de benchmark FLORES-200.
- Como faço para ajustar meu orçamento de raciocínio?
- Configuração no script de geração
thinking_budget
que varia de 128 (para tarefas simples) a 1024 (para tarefas complexas), ajustado de acordo com os requisitos da tarefa.
- Configuração no script de geração
- Qual é a quantidade de memória de vídeo necessária para executar o modelo?
- Uma única GPU H100-80G pode dar suporte à inferência básica, e 4 GPUs podem lidar com tarefas de carga mais alta. Uso recomendado
bfloat16
Redução dos requisitos de memória gráfica.
- Uma única GPU H100-80G pode dar suporte à inferência básica, e 4 GPUs podem lidar com tarefas de carga mais alta. Uso recomendado
- Como posso me envolver no desenvolvimento de modelos?
- O código pode ser enviado ou os problemas podem ser retornados por meio do repositório do GitHub (https://github.com/ByteDance-Seed/seed-oss) sob a licença Apache-2.0.