Entenda o treinamento de modelos grandes, inferência e estratégias de implantação de vários fabricantes em um artigo

Em 20 de abril, a 102ª Conferência Yuanchuang foi realizada com sucesso em Wuhan. Esta edição convida especialistas em inteligência artificial do Instituto de Pesquisa de Inteligência Artificial de Wuhan, Huawei, MindSpore, JD Cloud e Gitee AI para fazer palestras sobre o tema [Competição de Grandes Modelos e Otimização de Desempenho]. A seguir, vamos dar uma olhada nos momentos maravilhosos deste evento!
Obtenha uma foto de grupo ✅
Pizza e presentes são obrigatórios!
Em seguida vem a revisão do discurso principal. Você pode escanear o código QR abaixo, seguir a conta de vídeo "OSC Open Source Community" e entrar na página "Live Replay" para ver a análise completa do vídeo:

Liu Hao: Análise de grandes modelos e perspectivas de tendências

Liu Hao, Diretor do Departamento de Transformação de Capital de Risco do Instituto de Pesquisa de Inteligência Artificial de Wuhan, compartilhou o tema "Análise de Grandes Modelos e Perspectiva de Tendências". O Instituto de Inteligência Artificial de Wuhan, onde Liu Hao trabalha, começou a pesquisar tecnologia de grandes modelos já em 2020. Em julho de 2021, lançou o primeiro grande modelo trimodal do mundo com 100 bilhões de parâmetros, abrangendo imagens, texto e voz.
 
Liu Hao destacou que nas primeiras pesquisas sobre tecnologia de inteligência artificial, havia três problemas principais: primeiro, a capacidade de generalização era muito fraca e só conseguia resolver problemas semelhantes; segundo, a capacidade do modelo era única e não conseguia resolver rich text; vários modelos precisavam ser integrados; Terceiro, no passado, a demanda por anotação de dados foi um pouco grande. Modelos grandes podem resolver problemas nesses três aspectos, principalmente após o surgimento do ChatGPT. O sucesso do ChatGPT significa que muitas tarefas downstream ou modelos downstream de inteligência artificial podem entrar na linha de produção, abrindo uma era de produtização de inteligência artificial, permitindo que os técnicos se concentrem na criação de modelos básicos, permitindo que mais pessoas se envolvam na indústria de inteligência artificial .
 
Além disso, o grande modelo estimulou o estímulo ao armazenamento, ao poder de computação, à capacidade de transporte e a outras ligações, e conectou muitas indústrias a montante e a jusante através do grande modelo.
 
Tecnicamente falando, muitos modelos grandes no país e no exterior ainda usam essencialmente a arquitetura anterior do MoE, mas os grandes modelos passaram por uma boa engenharia e transformação de produto. Depois que os parâmetros do modelo ultrapassaram 66 bilhões, a inexplicabilidade na inteligência artificial tornou-se mais forte, incluindo o surgimento de capacidades que pareciam inexplicáveis. Liu Hao acredita que o método usado pela OpenAI para tornar o ChatGPT tão eficaz ainda é uma caixa preta, mas explorou um caminho para representação e raciocínio unificados do conhecimento, cognição e modelagem mundial e outras questões.
 
Os grandes modelos mudaram não apenas o modelo de pesquisa, mas também o modelo de serviço e desenvolvimento. Por exemplo, muitas empresas começaram a cancelar assinaturas de placas gráficas de modelos grandes e interromperam o desenvolvimento de modelos grandes. No final, pode haver apenas algumas grandes empresas modelo no setor que fabricam grandes modelos de base, enquanto a maioria são profissionais do setor. Isso também significa que grandes modelos entraram na fase de produção industrial e muitas ferramentas serão formadas em grandes modelos.
 
Atualmente, o Zidong Taichu 2.0 foi atualizado para um modelo grande totalmente modal, adicionando modalidades de informação como nuvens de pontos tridimensionais. Ao mesmo tempo, o Instituto de Pesquisa de Inteligência Artificial de Wuhan também construiu uma plataforma de serviço aberto de inteligência artificial doméstica full-stack. Ele usa modelos grandes como base para implantar uma plataforma completa e adota um novo modelo de poder de computação + plataforma. por um lado, utiliza a base para ajustar os dados e, por outro lado, utiliza Em termos de aspectos, a plataforma e o poder de computação podem ser perfeitamente combinados. Atualmente, vários AICCs foram implementados em todo o país, completando a adaptação de localização full-stack, utilizando poder computacional inclusivo de alto desempenho, integrando profundamente cenários industriais e acelerando a aplicação de grandes modelos para capacitar milhares de indústrias.
 
Finalmente, Liu Hao também deu seus quatro julgamentos principais sobre as tendências de desenvolvimento de grandes modelos:
  • Tendência 1: As aplicações de tecnologia da informação e a ecologia da inovação passaram por mudanças tremendas, como a alimentação contínua de dados para completar várias atividades inteligentes, o desenvolvimento de aplicações entrando no modo de programação em linguagem natural, etc.;
  • Tendência 2: Remodelar o paradigma da inteligência na tomada de decisões, como o alinhamento homem-máquina para auxiliar na tomada de decisões;
  • Tendência 3: Desenvolvimento na direção da miniaturização e domínio, avançando em direção à inteligência artificial profissional baseada na IA cognitiva geral;
  • Tendência 4: Avançar em direção a uma inteligência artificial mais geral, como grandes modelos interagindo com robôs humanóides.
Digitalize o código QR para assistir ao replay da palestra "Análise de Grandes Modelos e Perspectiva de Tendências" ⬇️

Li Shuqiao: Aplicação e implementação de tecnologia de otimização de grandes modelos em Shengteng

O engenheiro de software da Huawei, Li Shuqiao, fez um discurso sobre "Aplicação e implementação de tecnologia de otimização de modelos grandes no Ascend". Ele apresentou os recursos de poder de computação de modelos grandes do Ascend em três aspectos, incluindo o suporte nativo do Ascend para a biblioteca de aceleração de código aberto e o auto-desenvolvimento do Ascend. desenvolveu grandes modelos de tecnologia de otimização e implementação de produção baseada em nuvem nativa.
 
Em primeiro lugar, suporta várias bibliotecas de código aberto, cobrindo quatro aspectos principais: modelos de terceiros, estruturas de IA de terceiros, bibliotecas de aceleração de terceiros e serviços de raciocínio de terceiros. Por exemplo, em relação ao suporte de Pytorch & Torch NPU, Pytorch é uma estrutura de IA que pode ser dividida em duas partes. A camada superior é a parte Pytorch e a camada inferior é a Torch NPU. Na camada superior, o Ascend registra operadores nativos e operadores personalizados no PyTorch por meio de registro, para que o PyTorch possa ser executado no Ascend. Para o NPU inferior do Torch, por meio de contribuições de código aberto, muitos módulos, como checkpoint, FSDP e Dataloader, são otimizados. recursos de suporte, permitindo suporte nativo para NPU.
 
Além disso, o Ascend também oferece suporte à estrutura de modelo universal onnxRuntime. Diferentes estruturas, incluindo Pytorch, TensorFlow, MindSpore, etc. podem ser salvas no formato onnx, e onnxRuntime pode executar e chamar o formato unificado. O suporte nativo do Ascend já suporta a biblioteca onnxRuntime, o que torna muito conveniente conectar vários frameworks e facilidade de uso.
 
Em termos de compactação de modelo, DeepSpeed ​​​​pode compactar modelos grandes para que possam ser implantados e executados melhor. Atualmente, ele também oferece suporte ao suporte nativo do Shengteng.
 
Para biblioteca de visão computacional OpenCV que fornece processamento de imagem, aprendizado de máquina, análise de vídeo e muito mais. Ascend implementa suporte back-end, fornecendo estrutura de dados Ascend NPU AscendMat e 18 interfaces de alta frequência, e melhora o desempenho da maioria das operadoras em 30%.
 
Migração de código. Baseado em Pytorch e TorchNPU, o suporte nativo do OpenCLIP para Shengteng é implementado. 3 linhas de código podem ser implementadas para migrar o modelo para o dispositivo Shengteng.
 
Em segundo lugar, a Shengteng desenvolveu tecnologia de otimização de grandes modelos. Biblioteca de aceleração de modelo grande AscendSpeed ​​​​desenvolvida pela Ascend. O treinamento de modelos grandes é um processo muito complexo que envolve muitas tecnologias e desafios. O treinamento de modelos grandes requer uma grande quantidade de recursos de memória de vídeo, o que é um problema difícil e representa um desafio considerável para placas de computação. Para realizar cálculos através de múltiplas placas de computação quando os recursos de memória de vídeo de uma única placa de computação são insuficientes, grandes bibliotecas de aceleração de modelos de terceiros, como Megatron e DeepSpeed, surgiram na indústria para segmentar modelos, inserir dados, etc. e distribuí-los para diferentes placas de computação. Finalmente, os resultados são resumidos através de comunicação coletiva. A Ascend fornece a biblioteca de aceleração AscendSpeed ​​para permitir que os clientes migrem rapidamente serviços de modelos grandes para dispositivos Ascend e oferece suporte aos algoritmos proprietários da Ascend para garantir a usabilidade imediata.
 
Ascend também fornece uma cadeia de ferramentas AIT (Ascend Inference Tools) relativamente completa, que serve como entrada para a cadeia de ferramentas de inferência unificada, fornece aos clientes ferramentas de desenvolvimento integradas e suporta depuração e ajuste completos.
 
Finalmente, em termos de implementação de produção baseada em nuvem nativa. O agendador de vulcão K8S oferece suporte ao agendamento de afinidade de dispositivos Ascend. Além disso, o plug-in de dispositivo Kubernetes Ascend pode relatar o número de dispositivos que descobre para o sistema Kubernetes. Quando um dispositivo está em estado não íntegro, ele é relatado ao sistema Kubernetes e excluído. automaticamente puxado e um dispositivo saudável será montado e reconstruirá a missão de treinamento. Atualmente, o backend do Space com suporte nativo do Vicuna já utiliza o Kubernetes Device Plugin.
 
Digitalize o código QR para assistir ao replay da palestra "Aplicação e Implementação de Tecnologia de Otimização de Grandes Modelos em Shengteng" ⬇️

Yuan Lijiang: A sabedoria inspira o futuro - plataforma de modelo grande Yanxi

Yuan Lijiang, diretor de produto da JD Cloud, fez um discurso sobre "Inspirando o Futuro com Inteligência - Yanxi Large Model Platform". Yuan Lijiang apresentou que existem cinco desafios principais na implementação de grandes modelos em nível empresarial: tempo real, explicabilidade, segurança e controlabilidade, tomada de decisões complexas e profissionalismo. e em um ambiente incerto e em mudança dinâmica.
 
Yuan Lijiang introduziu que existem duas maneiras principais de implementar modelos grandes. Uma é o modelo Copilot. A IA de relacionamento é liderada apenas por humanos. Em alguns cenários, a IA completa o trabalho. processamento, Vincent Tu, etc. Na verdade, as empresas precisam liberar mão de obra tanto quanto possível. O outro é o modo Agente, mais adequado para cenários complexos em empresas. Neste modo, o ser humano se posiciona em uma perspectiva de dimensão superior e atua como “mentor” ou “treinador” da inteligência artificial, estabelecendo metas e supervisionando os resultados. . O modelo grande pode exercer sua capacidade de raciocínio, usar ferramentas e desculpas apropriadas e, finalmente, fornecer feedback de resultados correspondente.
 
As principais tecnologias utilizadas para a implementação de grandes modelos nas empresas também mudaram. O pré-treinamento inicial tem o custo mais elevado e o enorme investimento posterior, o custo do modo SFT diminuiu, mas o efeito de implementação não foi bom; modo RAG aprimorado do banco de dados vetorial, mas o efeito foi melhorado. No final, ele só pode ser limitado a cenários de perguntas e respostas de conhecimento, equipes técnicas proficientes prestam mais atenção ao modo Agente e podem obter suporte multicenário;
 
Nos negócios financeiros da JD.com, é difícil melhorar a capacidade de grandes modelos para resolver problemas práticos simplesmente contando com SFT ou LoRA de grandes modelos. Em vez disso, é baseado na tecnologia de agente para permitir que as máquinas usem ferramentas para resolver problemas de negócios. Especificamente, ele usa o Agente para entender os objetivos do usuário, desmontar cada subtarefa e selecionar ferramentas apropriadas para cada subtarefa. Essas ferramentas são algumas interfaces do negócio original da JD.com e, finalmente, combinadas com grandes recursos de modelo para fornecer feedback. . Desta forma, as respostas às perguntas complexas de alguns usuários serão mais precisas.
 
Atualmente, a plataforma de modelo completo da JD Yanxi construiu uma matriz de produtos multicamadas. A camada mais baixa é o suporte de recursos, incluindo recursos de computação, recursos de armazenamento, rede de alta velocidade e agendamento de recursos. Na camada de recursos do modelo, ele fornece recursos como gerenciamento e treinamento de modelos, processamento de conjuntos de dados e avaliação e implantação de modelos. Acima da camada de recursos do modelo está a construção de agentes inteligentes, com foco na integração de diversas ferramentas. A camada superior é a camada de serviço de aplicação, que se adapta a vários cenários empresariais.
 
A plataforma de modelo grande da JD Yanxi tem 6 funções principais: colaboração de agendamento de recursos, que pode realizar gerenciamento e agendamento eficientes de recursos de computação, garantindo otimização de desempenho e controle de custos de desenvolvimento e gerenciamento de dados de grandes modelos, que fornece gerenciamento e suporte para treinamento de modelos grandes; Pré-treinamento, ajuste fino, aprendizagem por reforço, avaliação, etc. são realizados de forma eficiente. O treinamento, o treinamento e o ajuste fino de modelos por meio de grandes modelos permitem que as empresas tenham modelos personalizados para melhorar a precisão e a relevância da construção de agentes inteligentes; implantar agentes inteligentes, combinados com os sistemas de TI existentes da empresa para executar tarefas complexas, a conformidade de segurança garante que todos os aplicativos de modelos grandes cumpram os padrões de segurança e os requisitos legais e regulamentares. O mercado de aplicativos inteligentes fornece uma série de aplicativos de modelos grandes pré-construídos; que as empresas podem implantar diretamente ou fornecer plug-ins Acesso rápido ao sistema.
 
Digitalize o código QR para assistir à repetição do discurso "Inspirando o Futuro - Yanxi Large Model Platform" ⬇️

Lin Jiazhen: sistema de inferência sem servidor de modelo grande

Atualmente, algumas partes ou plataformas modelo fornecerão aos usuários individuais algum poder de computação gratuito para usar tecnologia de modelo grande. Gitee.AI, como uma grande plataforma de agregação de modelos, também fornece poder de computação gratuito para usuários individuais. Lin Jiazhen, consultor especialista da Gitee AI e do Instituto de Computação de Alto Desempenho da Universidade de Tsinghua, fez um discurso sobre "Sistema de Inferência sem Servidor de Grandes Modelos".
 
Lin Jiazhen destacou que Gitee.AI atualmente agrega mais de 2.000 modelos, mas os recursos computacionais gratuitos são limitados. Portanto, é necessário alocar de forma mais eficiente esses recursos computacionais gratuitos para desenvolvedores sob demanda, o que é um grande desafio no momento. problemas. Por exemplo, quando a tecnologia de contêineres era usada para desenvolvimento externo no passado, a troca, a troca e a ativação de um único contêiner eram muito rápidas. No entanto, isso se tornou difícil na era dos grandes modelos. A ativação e a suspensão do modelo dificultam o gerenciamento de troca e troca de contêineres no passado. O cenário é igualmente eficiente.
 
A IA sem servidor tem quatro vantagens principais, incluindo implantação simples, uso pronto para uso, custos reduzidos de uso de energia de computação, cobertura de modelos convencionais e suporte para uma variedade de hardware de computação. Há um problema com o mecanismo do modelo atual, ou com a forma de adquirir e utilizar o poder computacional, ou seja, programas de usuário, modelos e chips de inferência estão todos vinculados a um contêiner, ocupando o chip de hardware e utilizando serviços de poder computacional. O mecanismo de inferência sem servidor integra e otimiza recursos de poder de computação, reduz o acoplamento entre aplicativos, modelos e poder de computação por meio de vários níveis de desagregação, aloca poder de computação sob demanda e melhora a utilização de recursos.
 
A arquitetura do sistema sem servidor é dividida em três camadas. A camada mais baixa é a camada do compilador. O carregamento do modelo no contêiner é alterado para o modo de chamada rpc para o serviço remoto. inferência de back-end para realizar o modelo e a despolimerização. rpc é fornecido ao mecanismo de inferência no nível superior. O mecanismo de inferência é o cluster onde os cálculos realmente ocorrem. Por exemplo, suponha um cenário de tarefa onde dez cartões satisfazem a solicitação de agendamento de 3.000 modelos. Neste momento, não há como carregar um modelo grande fixamente em um cartão. É necessário carregar temporária e dinamicamente o modelo desejado de acordo com o modelo desejado. solicitação Portanto, os pesos calculados do chip e do modelo são desagregados e o modelo é colocado no TanserGraph, que é um sistema de memória heterogêneo que pode suportar a desagregação de chips e modelos de poder de computação. Na camada superior, são realizadas a camada Serverless, aplicação, inferência e agregação.
 
A principal capacidade da arquitetura do sistema sem servidor é a memória interconectada heterogênea para resolver o problema de peso do modelo. A arquitetura geral do data center tem algumas limitações, como baixa utilização de recursos e escalabilidade de hardware limitada. A tecnologia de desagregação pode separar fisicamente cada componente da arquitetura geral e usar uma certa interconexão para vincular a interface de controle (Plano de Controle) de cada componente e dados. interface (Data Plane) para realizar a alocação e expansão sob demanda de vários recursos. Além disso, a desagregação de memória também traz vantagens de aplicação em cenários de nuvem, incluindo a melhoria da utilização de recursos do ambiente de nuvem e a facilitação do atendimento à crescente demanda por recursos de memória.
 
No entanto, o sistema de memória hierárquica existente não é adequado para a elevada flexibilidade de hardware sob a arquitectura de desagregação, e a escalabilidade do sistema também é limitada. Além disso, devido às limitações da estrutura interna do sistema, as capacidades da interface de gestão de memória existente são limitadas. A memória interconectada heterogênea pode resolver esses problemas por meio de três links: estatísticas de acesso ao hardware, estratégias programáveis ​​e migração de páginas. Tomando a CPU como exemplo, para estatísticas de acesso baseadas em PEBs, o hardware é suportado para coletar o status de acesso à memória do programa em execução, registrar as instruções, TID, endereço de destino, etc., e então carregar os pesos do modelo sob demanda.
 
Além disso, a arquitetura do sistema sem servidor também possui vários outros recursos, como tecnologia de otimização de compilação de rede neural multinível baseada em MLIR e mecanismo leve de serviço de sistema baseado na tecnologia de isolamento do espaço do usuário. O mecanismo de inferência sem servidor é construído com base em duas tecnologias principais de propriedade intelectual. Além disso, ele também integra várias tecnologias atuais de otimização do sistema de inferência.
 
Atualmente, o Llama 3 foi lançado no Gitee AI. Copie o link abaixo para o seu navegador e entre na plataforma para experimentá-lo (código de convite: llama3):
https://ai.gitee.com/hf-models/shenzhi-wang/Llama3-8B-Chinese-Chat
 
Digitalize o código QR para assistir ao replay da palestra "Large Model Serverless Inference System" ⬇️

Chen Ziheng: Principais tecnologias e planejamento do grande modelo MindSpore

O engenheiro de pesquisa da MindSpore, Chen Ziheng, fez um discurso sobre "Tecnologias-chave e planejamento do modelo grande da MindSpore". Chen Ziheng disse que, na indústria, o MindSpore está entre o hardware de chip subjacente e os aplicativos industriais de nível superior. Em termos de tecnologia de modelos grandes, o MindSpore primeiro constrói uma camada básica, cobrindo vários modelos grandes subjacentes. Na camada superior, ele constrói modelos industriais com parceiros industriais. Além disso, o MindSpore também é compatível com uma variedade de grandes modelos de código aberto convencionais no país e no exterior. Para todos os modelos grandes, o MindSpore usa três pacotes básicos: MindFormers, MindPET e MindRLHF para unificar todo o processo de desenvolvimento, ajuste fino e implantação de modelos grandes, permitindo o uso pronto para uso.
 
Para treinamento de modelos grandes. MindSpore usa um compilador baseado em gráfico de computação para implementar estratégias paralelas. Insira um gráfico de cálculo e o processo de compilação de gráficos do MindSpore segmentará o gráfico de acordo com a estratégia paralela e inserirá automaticamente operadores de reorganização de dados nele para garantir que a lógica de computação paralela de múltiplas máquinas seja consistente com a de uma única máquina. Dessa forma, o MindSpore atinge vários níveis de otimização, incluindo geração automática de políticas de alto nível, paralelismo híbrido multidimensional e otimização que suporta armazenamento multidimensional e heterogeneidade em tempo de execução.
 
Desde o ano passado, a equipe da MindSpore também vem realizando treinamentos paralelos de grandes modelos. Em circunstâncias normais, o treinamento típico de grandes modelos usa uma mistura de cinco estratégias paralelas, incluindo paralelismo de dados, paralelismo de otimizador, paralelismo de modelo, paralelismo de pipeline e recálculo. A equipe MindSpore analisou a situação demorada dos modelos típicos nesses modos paralelos e descobriu que os principais custos aqui estão em três aspectos, incluindo o custo do paralelismo do modelo no nível do operador, bolhas geradas pelo paralelismo do pipeline e o tempo de cauda dos dados paralelismo. E quando a escala do cluster continuar a aumentar, esses problemas de sobrecarga se tornarão mais óbvios ao atingir o cluster Wanka. Por exemplo, devido à limitação do tamanho global do lote, o problema da bolha do pipeline se tornará mais sério e devido ao. aumento no domínio de comunicação, o desempenho da comunicação irá deteriorar-se, a taxa de paralelismo de dados aumentará.
 
Em relação a esses problemas, Chen Ziheng também introduziu algumas soluções, como a comunicação de modelo oculto em modo paralelo multicópia, que divide os dados em dois. Cada dado pode ser calculado e comunicado de forma independente, enquanto o cálculo e a comunicação entre múltiplas cópias de dados são possíveis. ocultam-se, otimizando assim o paralelismo do modelo no nível do operador. Para otimização paralela do PipeLine, reduza o Bubble para menos de 10% por meio do PipeLine Interleave.
 
Além disso, o problema de especialistas quentes e frios será encontrado durante o treinamento do MoE. Para a migração a quente de especialistas, o volume de comunicação AlltoAll é reduzido e o desempenho do treinamento do modelo MoE é melhorado. Além do treinamento de alto desempenho, outro problema para modelos grandes é como implementar o paralelismo estratégico. O MindSpore adota o paralelismo automático, e o tempo de ajuste da estratégia paralela para modelos grandes pode ser reduzido de meses para horas.
 
Em termos de implantação, o MindSpore é equivalente ao backend do serverless, e o que precisa ser resolvido são os problemas de desempenho. MindSpore usa raciocínio paralelo distribuído, cache KV, sequência dinâmica, lote contínuo e operadores de fusão de raciocínio de alto desempenho para construir uma estrutura de raciocínio unificada com baixa latência, alto rendimento e suporte para longas sequências de modelos grandes. O treinamento integrado e a arquitetura push permitem uma conexão perfeita do treinamento à inferência.
 
Em seguida, os planos da MindSpore para treinamento de modelos grandes abrangem otimização de desempenho de treinamento de grandes clusters Wanka, otimização densa de desempenho de modelos grandes, otimização de desempenho de modelos grandes MoE esparsos, etc. treinamento de modelos grandes e arquitetura push, aceleração densa de inferência de modelos grandes, aceleração esparsa de inferência de modelos grandes, etc.
 
Digitalize o código QR para assistir ao replay da palestra "Tecnologias Chave e Planejamento do Modelo Grande MindSpore"⬇️

É isso para a revisão do evento. As inscrições para a 103ª Feira Yuanchuang já estão abertas, clique para ver⬇️.
[Tecnologia de modelo grande no terminal] OSC Source Innovation Conference·Shenzhen Station·Edição 103 https://www.oschina.net/event/2332004
Estudantes do ensino médio criam sua própria linguagem de programação de código aberto como uma cerimônia de maioridade - comentários contundentes de internautas: Contando com a defesa, a Apple lançou o chip M4 RustDesk Os serviços domésticos foram suspensos devido a fraude desenfreada. No futuro, ele planeja produzir um jogo independente na plataforma Windows Taobao (taobao.com) Reiniciar o trabalho de otimização da versão web, destino dos programadores, Visual Studio Code 1.89 lança Java 17, a versão Java LTS mais comumente usada, Windows 10 tem um participação de mercado de 70%, o Windows 11 continua diminuindo Open Source Daily | Google apoia Hongmeng para assumir o controle do Rabbit R1 de código aberto; a ansiedade e as ambições da Microsoft encerraram a plataforma aberta;
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/4489239/blog/11105657
Recomendado
Clasificación