Zephyrnet Logo

Entrevista com Kari Briski, executivo de software da Nvidia

Data:

Interview A Conferência de Tecnologia de GPU da Nvidia foi concluída na semana passada, trazendo a notícia dos chips Blackwell da empresa e das tão alardeadas maravilhas da IA, com todo o hardware de GPU caro que isso implica.

O burburinho em torno da empresa é tal que o preço das suas ações está a flertar com máximos recordes, com base na noção de que muitos esforços criativos podem ser feitos mais rapidamente, se não melhor, com a automatização possibilitada pelos modelos de aprendizagem automática.

Isso ainda está sendo testado no mercado.

George Santayana uma vez escreveu: “Aqueles que não conseguem lembrar o passado estão condenados a repeti-lo.” É uma frase frequentemente repetida. No entanto, a lembrança de coisas passadas não diferenciou realmente os modelos de IA. Eles podem se lembrar do passado, mas ainda estão condenados a repeti-lo quando solicitado, às vezes de forma incorreta.

Mesmo assim, muitos confiam na poderosa IA, especialmente aqueles que vendem hardware de IA ou serviços em nuvem. Nvidia, entre outras, está apostando alto nisso. Assim O registro fez uma breve visita à conferência da GPU para ver o motivo de tanto alarido. Certamente não se tratava das barras de limão servidas no salão de exposições na quinta-feira, muitas das quais encerraram sua oferta pública inicial inacabada em caixas de exposição.

Muito mais envolvente foi uma conversa O registro tive com Kari Briski, vice-presidente de gerenciamento de produtos para kits de desenvolvimento de software de IA e HPC da Nvidia. Ela lidera o gerenciamento de produtos de software para os modelos básicos, bibliotecas, SDKs e agora microsserviços que lidam com treinamento e inferência da empresa, como o recém-anunciado NIM microsserviços e os mais bem estabelecidos nemo estrutura de implantação.

O registro: Como as empresas irão consumir esses microsserviços – na nuvem, no local?

rápido: Essa é realmente a beleza da razão pela qual construímos os NIMs. É meio engraçado dizer “os NIMs”. Mas começamos essa jornada há muito tempo. Trabalhamos com inferência desde que comecei – acho que era o TensorRT 1.0 quando comecei em 2016.

Ao longo dos anos, temos aumentado nossa pilha de inferência, aprendendo mais sobre cada tipo diferente de carga de trabalho, começando com visão computacional e sistemas de recomendação profunda e fala, reconhecimento automático de fala e síntese de fala e agora grandes modelos de linguagem. Tem sido uma pilha realmente focada no desenvolvedor. E agora que as empresas [viram] OpenAI e ChatGPT, elas entendem a necessidade de ter esses grandes modelos de linguagem rodando junto com seus dados corporativos ou em seus aplicativos corporativos.

O provedor médio de serviços em nuvem, para seus serviços gerenciados, tem centenas de engenheiros trabalhando em técnicas de inferência e otimização. As empresas não podem fazer isso. Eles precisam obter o tempo de valorização imediatamente. É por isso que encapsulamos tudo o que aprendemos ao longo dos anos com o TensorRT, grandes modelos de linguagem, nosso servidor de inferência Triton, API padrão e verificações de integridade. [A ideia é ser] capaz de encapsular tudo isso para que você possa ir do zero a um grande endpoint de modelo de linguagem em menos de cinco minutos.

[Com relação ao datacenter local versus datacenter em nuvem], muitos de nossos clientes são de nuvem híbrida. Eles preferiram a computação. Portanto, em vez de enviar os dados para um serviço gerenciado, eles podem executar o microsserviço próximo aos seus dados e onde quiserem.

O registro: Como é a pilha de software da Nvidia para IA em termos de linguagens de programação? Ainda é em grande parte CUDA, Python, C e C++? Você está procurando outro lugar para maior velocidade e eficiência?

rápido: estamos sempre explorando onde quer que os desenvolvedores estejam usando. Essa sempre foi a nossa chave. Desde que comecei na Nvidia, tenho trabalhado em bibliotecas matemáticas aceleradas. Primeiro, era necessário programar em CUDA para obter paralelismo. E então tivemos APIs C. E tínhamos uma API Python. Portanto, trata-se de levar a plataforma onde quer que os desenvolvedores estejam. No momento, os desenvolvedores querem apenas atingir um endpoint de API realmente simples, como um comando curl ou um comando Python ou algo semelhante. Então tem que ser super simples, porque é aí que vamos encontrar os desenvolvedores hoje.

O registro: CUDA obviamente desempenha um papel importante em tornar a computação da GPU eficaz. O que a Nvidia está fazendo para avançar no CUDA?

rápido: CUDA é a base de todas as nossas GPUs. É uma GPU programável e habilitada para CUDA. Há alguns anos, chamávamos isso de CUDA-X, porque havia essas linguagens específicas de domínio. Então, se você tem um [aplicativo] de imagens médicas, você tem cuCIM. Se você tiver reconhecimento automático de fala, terá um decodificador de pesquisa de feixe acelerado CUDA no final dele. E há todas essas coisas específicas para cada tipo diferente de carga de trabalho que foram aceleradas pelo CUDA. Construímos todas essas bibliotecas especializadas ao longo dos anos, como cuDF e cuML, e cu-isso e aquilo. Todas essas bibliotecas CUDA são a base do que construímos ao longo dos anos e agora estamos construindo sobre isso.

O registro: Como a Nvidia analisa as considerações de custo em termos da maneira como projeta seu software e hardware? Com algo como Nvidia AI Enterprise, custa US$ 4,500 por GPU todos os anos, o que é considerável.

rápido: Primeiro, para empresas menores, sempre temos o Começo programa. Estamos sempre trabalhando com os clientes – um teste gratuito de 90 dias, é realmente valioso para você? Isso realmente vale a pena? Então, para reduzir seus custos ao aderir a isso, estamos sempre otimizando nosso software. Então, se você estava comprando US$ 4,500 por CPU por ano por licença, e está rodando em um A100, e amanhã roda em um H100, é o mesmo preço – seu custo caiu [em relação ao seu rendimento]. Portanto, estamos sempre incorporando essas otimizações, o custo total de propriedade e o desempenho ao software.

Quando pensamos em treinamento e inferência, o treinamento demora um pouco mais, mas temos esses configuradores automáticos para poder dizer: “Quantos dados você tem? De quanta computação você precisa? Quanto tempo você quer que demore? Portanto, você pode ocupar menos espaço de computação, mas pode levar mais tempo para treinar seu modelo... Gostaria de treiná-lo em uma semana? Ou você gostaria de treiná-lo em um dia? E então você pode fazer essas compensações.

O registro: Em termos de problemas atuais, há algo específico que você gostaria de resolver ou há algum desafio técnico que gostaria de superar?

rápido: No momento, é orientado por eventos RAGs [que é uma forma de aumentar os modelos de IA com dados obtidos de uma fonte externa]. Muitas empresas estão apenas pensando no prompt clássico para gerar uma resposta. Mas, na verdade, o que queremos fazer é [encadear] todos esses sistemas generativos com recuperação aumentada todos juntos. Porque se você pensar em você e em uma tarefa que talvez queira realizar: “Ah, preciso falar com a equipe de banco de dados. E a equipe do banco de dados precisa conversar com a equipe do Tableau. Eles precisam fazer um painel para mim”, e todas essas coisas precisam acontecer antes que você possa realmente concluir a tarefa. E então é uma espécie de RAG orientado a eventos. Eu não diria RAGs conversando com RAGs, mas é essencialmente isso – agentes saindo e realizando muito trabalho e voltando. E estamos à beira disso. Então, acho que isso é algo que estou muito animado para ver em 2024.

O registro: A Nvidia está alimentando sua própria IA? Você achou a IA útil internamente?

rápido: Na verdade, saímos e no ano passado, já que 2023 foi o ano da exploração, encontrei 150 equipes dentro da Nvidia – poderia ter havido mais – e estávamos tentando dizer, como vocês estão usando nossas ferramentas, que tipo de casos de uso e começamos a combinar todos os aprendizados, como mil flores desabrochando, e combinamos todos os seus aprendizados em práticas recomendadas em um único repositório. Na verdade, foi isso que lançamos como chamamos Exemplos de IA generativa no GitHub, porque queríamos apenas ter todas as práticas recomendadas em um só lugar.

Foi isso que fizemos estruturalmente. Mas, como exemplo explícito, acho que escrevemos um artigo realmente excelente chamado ChipNeMo, e na verdade é tudo sobre nossa EDA, equipe de design VLSI, e como eles pegaram o modelo básico e o treinaram em nossos dados proprietários. Temos nossas próprias linguagens de codificação para VLSI. Então, eles estavam codificando copilotos [modelos de geração de código-fonte aberto] para serem capazes de gerar nossa linguagem proprietária e para ajudar na produtividade de novos engenheiros que surgiam e que não conhecem muito bem nosso código de escrita de chip de design VLSI.

E isso ressoou em todos os clientes. Então, se você falar com a SAP, eles têm BOP [Backorder Processing], que é como um SQL proprietário para seu banco de dados. E conversei com três outros clientes que tinham linguagens proprietárias diferentes – até mesmo o SQL tem centenas de dialetos. Portanto, ser capaz de gerar código não é um caso de uso que possa ser resolvido imediatamente pelo RAG. Sim, o RAG ajuda a recuperar documentação e alguns trechos de código, mas, a menos que seja treinado para gerar tokens nessa linguagem, ele não pode simplesmente criar código.

O registro: Quando você observa grandes modelos de linguagem e a forma como eles estão sendo encadeados com aplicativos, você está pensando na latência que pode introduzir e em como lidar com isso? Há momentos em que simplesmente codificar uma árvore de decisão parece fazer mais sentido?

rápido: Você está certo, quando você faz uma pergunta ou solicitação específica, pode haver, mesmo para uma pergunta, cinco ou sete modelos já iniciados para que você possa obter reescrita imediata e guarda-corpos e recuperador e reclassificação e depois o gerador. É por isso que o NIM é tão importante, porque otimizamos a latência.

É também por isso que oferecemos versões diferentes dos modelos básicos, porque você pode ter um SLM, um modelo de linguagem pequeno que é melhor para um conjunto específico de tarefas, e então você deseja o modelo maior para maior precisão no final. Mas encadear tudo isso para caber na sua janela de latência é um problema que temos resolvido ao longo dos anos para muitos serviços gerenciados ou de hiperescala. Eles têm essas janelas de latência e, muitas vezes, quando você faz uma pergunta ou faz uma pesquisa, eles na verdade disparam e abordam a pergunta várias vezes. Então eles têm muitas condições de corrida de “qual é a minha janela de latência para cada pequena parte da resposta total?” Então sim, estamos sempre olhando para isso.

Quanto ao seu ponto de vista sobre codificação, acabei de conversar com um cliente sobre isso hoje. Estamos muito além da codificação… Você poderia usar um gerenciador de diálogo e ter if-then-else. [Mas] gerenciar milhares de regras é realmente impossível. E é por isso que gostamos de coisas como guarda-corpos, porque os guarda-corpos representam uma espécie de substituto para um gerenciador de diálogo clássico. Em vez de dizer “Não fale sobre beisebol, não fale sobre softball, não fale sobre futebol” e listá-los, você pode simplesmente dizer: “Não fale sobre esportes”. E então o LLM sabe o que é um esporte. A economia de tempo e a capacidade de gerenciar esse código posteriormente são muito melhores. ®

local_img

Inteligência mais recente

local_img