Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

MoBA: o modelo de linguagem grande de Kimi para processamento de contextos longos

Introdução geral

O MoBA (Mixture of Block Attention) é um mecanismo de atenção inovador desenvolvido pela MoonshotAI, projetado para modelos de linguagem grandes (LLMs) com processamento de contexto longo. O MoBA consegue um processamento eficiente de sequências longas dividindo o contexto completo em vários blocos, e cada token de consulta aprende a se concentrar nos blocos KV mais relevantes. Seu mecanismo exclusivo de top-k gating sem parâmetros garante que o modelo se concentre apenas nos blocos mais informativos, o que melhora significativamente a eficiência computacional. O MoBA é capaz de alternar perfeitamente entre os modos de atenção total e de atenção esparsa, o que garante desempenho e eficiência. A técnica foi aplicada com sucesso às solicitações de contexto longo habilitadas pelo Kimi, demonstrando avanços significativos na computação eficiente da atenção.

MoBA: Kimi推出的支持长上下文处理的大语言模型-1


 

Lista de funções

  • Atenção esparsa em blocosKV: divide o contexto completo em partes e cada token de consulta aprende a se concentrar nas partes de KV mais relevantes.
  • Mecanismo de bloqueio sem parâmetrosIntroduzir um mecanismo de top-k gating sem parâmetros que seleciona o bloco mais relevante para cada token de consulta.
  • Mudança total de atenção esparsaAtenção plena: Alterne perfeitamente entre os modos de atenção plena e esparsa.
  • Computação eficienteMelhoria significativa da eficiência computacional para tarefas de contexto longo.
  • código abertoCódigo-fonte aberto completo: O código-fonte aberto completo é fornecido para facilitar o uso e o desenvolvimento secundário.

 

Usando a Ajuda

Processo de instalação

  1. Crie um ambiente virtual:
   conda create -n moba python=3.10
conda activate moba
  1. Instale a dependência:
   pip install .

Início rápido

Fornecemos uma implementação do MoBA que é compatível com os transformadores. Os usuários podem usar o--attnO parâmetro seleciona o backend de atenção entre moba e moba_naive.

python3 examples/llama.py --model meta-llama/Llama-3.1-8B --attn moba

Fluxo de operação detalhado da função

  1. Atenção esparsa em blocosQuando se trata de contextos longos, o MoBA divide o contexto completo em vários blocos, e cada token de consulta aprende a se concentrar nos blocos de KV mais relevantes, permitindo assim um processamento eficiente de sequências longas.
  2. Mecanismo de bloqueio sem parâmetrosMoBA: o MoBA apresenta um mecanismo de top-k gating sem parâmetros que seleciona o bloco mais relevante para cada token de consulta, garantindo que o modelo se concentre apenas nos blocos mais informativos.
  3. Mudança total de atenção esparsaMoBA: O MoBA foi projetado para ser uma alternativa flexível à atenção plena, permitindo a alternância contínua entre os modos de atenção plena e esparsa, garantindo desempenho e eficiência.
  4. Computação eficientePor meio do mecanismo acima, o MoBA melhora significativamente a eficiência computacional de tarefas de contexto longo para uma variedade de tarefas de raciocínio complexas.

Código de amostra (computação)

Abaixo está um exemplo de código que usa o MoBA:

from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B")
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B", attn="moba")
inputs = tokenizer("长上下文示例文本", return_tensors="pt")
outputs = model(**inputs)
print(outputs)

Descrição de uma frase (breve)

O MoBA é um mecanismo inovador de atenção em bloco projetado para modelos de linguagem grandes com processamento de contexto longo, melhorando significativamente a eficiência computacional e oferecendo suporte à alternância de atenção totalmente esparsa.

Palavras-chave da página

Processamento de contexto longo, mecanismo de atenção em bloco, modelos de linguagem grandes, computação eficiente, MoonshotAI

Introdução geral

O MoBA (Mixture of Block Attention) é um mecanismo de atenção inovador desenvolvido pela MoonshotAI, projetado para modelos de linguagem grandes (LLMs) com processamento de contexto longo. O MoBA consegue um processamento eficiente de sequências longas dividindo o contexto completo em vários blocos, e cada token de consulta aprende a se concentrar nos blocos KV mais relevantes. Seu mecanismo exclusivo de top-k gating sem parâmetros garante que o modelo se concentre apenas nos blocos mais informativos, o que melhora significativamente a eficiência computacional. O MoBA é capaz de alternar perfeitamente entre os modos de atenção total e de atenção esparsa, o que garante desempenho e eficiência. A técnica foi aplicada com sucesso às solicitações de contexto longo habilitadas pelo Kimi, demonstrando avanços significativos na computação eficiente da atenção.

Lista de funções

  • Atenção esparsa em blocosKV: divide o contexto completo em partes e cada token de consulta aprende a se concentrar nas partes de KV mais relevantes.
  • Mecanismo de bloqueio sem parâmetrosIntroduzir um mecanismo de top-k gating sem parâmetros que seleciona o bloco mais relevante para cada token de consulta.
  • Mudança total de atenção esparsaAtenção plena: Alterne perfeitamente entre os modos de atenção plena e esparsa.
  • Computação eficienteMelhoria significativa da eficiência computacional para tarefas de contexto longo.
  • código abertoCódigo-fonte aberto completo: O código-fonte aberto completo é fornecido para facilitar o uso e o desenvolvimento secundário.

Usando a Ajuda

Processo de instalação

  1. Crie um ambiente virtual:
   conda create -n moba python=3.10
conda activate moba
  1. Instale a dependência:
   pip install .

Início rápido

Fornecemos uma implementação do MoBA que é compatível com os transformadores. Os usuários podem usar o--attnO parâmetro seleciona o backend de atenção entre moba e moba_naive.

python3 examples/llama.py --model meta-llama/Llama-3.1-8B --attn moba

Fluxo de operação detalhado da função

  1. Atenção esparsa em blocosQuando se trata de contextos longos, o MoBA divide o contexto completo em vários blocos, e cada token de consulta aprende a se concentrar nos blocos de KV mais relevantes, permitindo assim um processamento eficiente de sequências longas.
  2. Mecanismo de bloqueio sem parâmetrosMoBA: o MoBA apresenta um mecanismo de top-k gating sem parâmetros que seleciona o bloco mais relevante para cada token de consulta, garantindo que o modelo se concentre apenas nos blocos mais informativos.
  3. Mudança total de atenção esparsaMoBA: O MoBA foi projetado para ser uma alternativa flexível à atenção plena, permitindo a alternância contínua entre os modos de atenção plena e esparsa, garantindo desempenho e eficiência.
  4. Computação eficientePor meio do mecanismo acima, o MoBA melhora significativamente a eficiência computacional de tarefas de contexto longo para uma variedade de tarefas de raciocínio complexas.

Código de amostra (computação)

Abaixo está um exemplo de código que usa o MoBA:

from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B")
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B", attn="moba")
inputs = tokenizer("长上下文示例文本", return_tensors="pt")
outputs = model(**inputs)
print(outputs)
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " MoBA: o modelo de linguagem grande de Kimi para processamento de contextos longos
pt_BRPortuguês do Brasil