16 pontos por xguru 2023-07-16 | 4 comentários | Compartilhar no WhatsApp
  • LangChain: biblioteca em Python e JavaScript que faz interface com a API GPT da OpenAI para geração de texto por IA
    • Uma implementação do artigo ReAct, conhecida por melhorar a qualidade do texto gerado pelos LLMs
    • O workflow ReAct era especialmente eficaz no InstructGPT/text-davinci-003, mas era caro e não era fácil de usar em projetos pequenos
  • À medida que o LangChain ganhou popularidade, levantou bastante capital mesmo sem receita própria nem um plano claro de monetização
  • Na prática, tentaram usá-lo para criar um chatbot no BuzzFeed
    • Porque o LangChain era uma ferramenta popular para RAG (Retrieval-Augmented Generation)
    • Mas, mesmo após muita pesquisa, não funcionava bem. Havia muitos bugs e a qualidade também não era boa
    • Ao voltar para um nível mais baixo e desenvolver diretamente, os resultados foram muito melhores do que com o LangChain
    • Ao ver as críticas ao LangChain no Hacker News, incluindo o post "Construindo o LangChain em 100 linhas de código" e seus comentários, percebeu que não era o único a pensar assim
  • O problema do LangChain é que ele adiciona complexidade e viés desnecessários ao ecossistema de IA
    • Iniciantes que querem aprender a fazer interface com o ChatGPT jamais deveriam começar pelo LangChain
    • Os exemplos e o código são mais complexos do que usar a biblioteca oficial em Python da OpenAI
    • A engenharia de prompt do LangChain, na prática, não passa de f-strings com etapas extras
    • Os workflows de agentes e os recursos de memória de conversa não são bem documentados, o que pode tornar seu uso confuso
    • O recurso de prompt de sistema não se integra corretamente aos workflows de agentes
    • A documentação e os exemplos trazem mais problemas do que vantagens, o que dificulta o uso real
  • Os agentes do LangChain usam um método peculiar de seleção de ferramentas por meio de engenharia de prompt e saída em JSON
    • Mudanças na estrutura normal da saída podem fazer o agente parar de funcionar, exigindo tratamento de erros de parsing
    • O chatbot consegue extrair e formatar receitas corretamente, mas a saída é sem graça
    • Há recursos para agentes e chains personalizados, mas isso torna o processo mais complexo
    • Com utilitários como separadores de texto e armazenamento vetorial integrado, o LangChain impõe a limitação de usar apenas código baseado em LangChain
  • O LangChain aumenta a sobrecarga e a complexidade na maioria dos casos de uso populares
    • Parece incorporar a filosofia de “it’s complicated, so it must be better!”
  • O autor desenvolveu, como alternativa ao LangChain, um pacote Python muito mais simples chamado simpleaichat
  • Não se trata de promover o simpleaichat, mas de uma preocupação de que iniciantes acabem indo para o LangChain

4 comentários

 
sungwoo 2023-07-18

Eu também, ao analisar o LangChain, tive bastante a impressão de que ele foi excessivamente engenheirado.
http://swcho.github.io/blogs/2023-07-15-langchainjs-part-3

Acho que o significado do langchain은 llm echosystem을 어떻게 구성할 것인가? deve ser buscado no fato de ter sido o primeiro open source a levantar essa questão.

Mesmo que a usabilidade do LangChain seja baixa, o problema que o LangChain tentou resolver continua existindo.

 
ohyecloudy 2023-07-17

Agora o GN+ também está incluído no RSS. Obrigado. @xguru, vou acompanhar bem.

 
xguru 2023-07-16

LangChain não faz sentido

Acho que este é um texto que dá continuidade à matéria acima.
O autor deste blog, Max Woolf, criticou nos comentários da matéria acima dizendo que o LangChain realmente não serve para muita coisa, e então desenvolveu e lançou a alternativa simpleaichat.
Desta vez, ele até publicou um texto organizando os problemas.

 
GN⁺ 2023-07-16
Opiniões no Hacker News
  • LangChain é avaliado como um software lixo, e há planos de reescrever tudo.
  • A ferramenta de linha de comando LLM ganhou uma API de biblioteca Python, tornando possíveis chamadas leves de modelo.
  • LangChain é criticado por ser desnecessário como camada intermediária e por não melhorar a experiência de programação.
  • Apesar dos problemas, muitos usuários usam o LangChain de forma divertida e o consideram útil para construir com LLMs.
  • LangChain oferece ferramentas interessantes e um seletor de exemplos, mas a qualidade do código deixa a desejar.
  • Este artigo é crítico e é acusado de menosprezar o trabalho do autor original.
  • LangChain é útil para obter ideias e fazer prototipagem, mas muitas vezes é mais fácil implementar tudo diretamente.
  • Fazer prototipagem com LangChain ajuda a validar ideias antes de investir recursos importantes.
  • É proposta uma abordagem alternativa que usa lambda over let over lambda para implementar funcionalidades semelhantes.