Billede af redaktør
Store sprogmodeller (LLM'er) som OpenAI's GPT-3, Google's BERT og Metas LLaMA revolutionerer forskellige sektorer med deres evne til at generere en bred vifte af tekst? - lige fra markedsføringstekster og datavidenskabelige scripts til poesi.
Selvom ChatGPTs intuitive grænseflade har formået at være i de fleste menneskers enheder i dag, er der stadig et stort landskab af uudnyttet potentiale for at bruge LLM'er i forskellige softwareintegrationer.
Hovedproblemet?
De fleste applikationer kræver mere flydende og indbygget kommunikation med LLM'er.
Og det er netop her, LangChain starter!
Hvis du er interesseret i Generative AI og LLM'er, er denne tutorial skræddersyet til dig.
Så... lad os starte!
Bare hvis du har boet i en hule og ikke har fået nogen nyheder på det seneste, vil jeg kort forklare store sprogmodeller eller LLM'er.
En LLM er et sofistikeret kunstig intelligenssystem bygget til at efterligne menneskelignende tekstforståelse og generering. Ved at træne på enorme datasæt skelner disse modeller indviklede mønstre, forstår sproglige finesser og producerer sammenhængende output.
Hvis du undrer dig over, hvordan du interagerer med disse AI-drevne modeller, er der to hovedmåder at gøre det på:
- Den mest almindelige og direkte måde er at tale eller chatte med modellen. Det involverer at lave en prompt, sende den til den AI-drevne model og få et tekstbaseret output som svar.
- En anden metode er at konvertere tekst til numeriske arrays. Denne proces involverer at komponere en prompt til AI og modtage et numerisk array til gengæld. Hvad der almindeligvis er kendt som en "indlejring". Det har oplevet en nylig stigning i vektordatabaser og semantisk søgning.
Og det er netop disse to hovedproblemer, som LangChain forsøger at løse. Hvis du er interesseret i de vigtigste problemer med at interagere med LLM'er, kan du tjekke denne artikel link..
LangChain er en open source-ramme bygget op omkring LLM'er. Det bringer til bordet et arsenal af værktøjer, komponenter og grænseflader, der strømliner arkitekturen i LLM-drevne applikationer.
Med LangChain bliver det en leg at engagere sig i sprogmodeller, sammenkæde forskellige komponenter og inkorporere aktiver som API'er og databaser. Denne intuitive ramme forenkler LLM-applikationsudviklingsrejsen væsentligt.
Kernen i Long Chain er, at vi kan forbinde forskellige komponenter eller moduler, også kendt som kæder, for at skabe mere sofistikerede LLM-drevne løsninger.
Her er nogle iøjnefaldende funktioner i LangChain:
- Tilpasselige promptskabeloner til at standardisere vores interaktioner.
- Kædeledskomponenter skræddersyet til sofistikerede anvendelsestilfælde.
- Sømløs integration med førende sprogmodeller, herunder OpenAI's GPT'er og dem på HuggingFace Hub.
- Modulære komponenter til en mix-and-match tilgang til at vurdere ethvert specifikt problem eller opgave.
Billede af forfatter
LangChain udmærker sig ved sit fokus på tilpasningsevne og modulopbygget design.
Hovedideen bag LangChain er at nedbryde den naturlige sprogbehandlingssekvens i individuelle dele, hvilket giver udviklere mulighed for at tilpasse arbejdsgange baseret på deres krav.
En sådan alsidighed positionerer LangChain som et førsteklasses valg til at bygge AI-løsninger i forskellige situationer og brancher.
Nogle af dens vigtigste komponenter er...
Billede af forfatter
1. LLM'er
LLM'er er grundlæggende komponenter, der udnytter enorme mængder træningsdata til at forstå og generere menneskelignende tekst. De er kernen i mange operationer inden for LangChain og giver de nødvendige sprogbehandlingsmuligheder til at analysere, fortolke og reagere på tekstinput.
Anvendelse: At drive chatbots, generere menneskelignende tekst til forskellige applikationer, hjælpe med informationssøgning og udføre anden sprogbehandling
2. Spørgskabeloner
Spørgsmål er grundlæggende for at interagere med LLM, og når du arbejder med specifikke opgaver, har deres struktur en tendens til at være ens. Promptskabeloner, som er forudindstillede prompter, der kan bruges på tværs af kæder, tillader standardisering af "prompter" ved at tilføje specifikke værdier. Dette forbedrer tilpasningsevnen og tilpasningen af enhver LLM.
Anvendelse: Standardisering af processen med at interagere med LLM'er.
3. Output-parsere
Outputparsere er komponenter, der tager det rå output fra et foregående trin i kæden og konverterer det til et struktureret format. Disse strukturerede data kan derefter bruges mere effektivt i efterfølgende faser eller leveres som et svar til slutbrugeren.
Anvendelse: For eksempel i en chatbot kan en outputparser tage råtekstsvaret fra en sprogmodel, udtrække vigtige oplysninger og formatere dem til et struktureret svar.
4. Komponenter og kæder
I LangChain fungerer hver komponent som et modul, der er ansvarlig for en bestemt opgave i sprogbehandlingssekvensen. Disse komponenter kan forbindes til form kæder til tilpassede arbejdsgange.
Anvendelse: Generering af sentimentdetektion og svargeneratorkæder i en specifik chatbot.
5. Hukommelse
Hukommelse i LangChain refererer til en komponent, der giver en lagrings- og genfindingsmekanisme for information i en arbejdsgang. Denne komponent giver mulighed for midlertidig eller vedvarende lagring af data, der kan tilgås og manipuleres af andre komponenter under interaktionen med LLM.
Anvendelse: Dette er nyttigt i scenarier, hvor data skal opbevares på tværs af forskellige stadier af behandlingen, for eksempel lagring af samtalehistorik i en chatbot for at give kontekstbevidste svar.
6. Agenter
Agenter er autonome komponenter, der er i stand til at foretage handlinger baseret på de data, de behandler. De kan interagere med andre komponenter, eksterne systemer eller brugere for at udføre specifikke opgaver inden for en LangChain arbejdsgang.
Anvendelse: For eksempel kan en agent håndtere brugerinteraktioner, behandle indgående anmodninger og koordinere datastrømmen gennem kæden for at generere passende svar.
7. Indekser og retrievere
Indekser og retrievere spiller en afgørende rolle i at administrere og få adgang til data effektivt. Indekser er datastrukturer, der indeholder information og metadata fra modellens træningsdata. På den anden side er retrievere mekanismer, der interagerer med disse indekser for at hente relevante data baseret på specificerede kriterier og tillade modellen at svare bedre ved at levere relevant kontekst.
Anvendelse: De er medvirkende til hurtigt at hente relevante data eller dokumenter fra et stort datasæt, hvilket er afgørende for opgaver som informationssøgning eller besvarelse af spørgsmål.
8. Dokumenttransformere
I LangChain er Document Transformers specialiserede komponenter designet til at behandle og transformere dokumenter på en måde, der gør dem egnede til yderligere analyse eller behandling. Disse transformationer kan omfatte opgaver såsom tekstnormalisering, funktionsudtrækning eller konvertering af tekst til et andet format.
Anvendelse: Forberedelse af tekstdata til efterfølgende behandlingsfaser, såsom analyse ved hjælp af maskinlæringsmodeller eller indeksering for effektiv hentning.
9. Indlejring af modeller
De bruges til at konvertere tekstdata til numeriske vektorer i et højdimensionelt rum. Disse modeller fanger semantiske relationer mellem ord og sætninger, hvilket muliggør en maskinlæsbar repræsentation. De danner grundlaget for forskellige downstream Natural Language Processing (NLP) opgaver inden for LangChain økosystemet.
Anvendelse: Facilitering af semantiske søgninger, lighedssammenligninger og andre maskinlæringsopgaver ved at give en numerisk repræsentation af tekst.
10. Vektorbutikker
Type databasesystem, der er specialiseret i at gemme og søge information via indlejringer, i det væsentlige analyserer numeriske repræsentationer af tekstlignende data. VectorStore fungerer som en opbevaringsfacilitet for disse indlejringer.
Anvendelse: Tillader effektiv søgning baseret på semantisk lighed.
Installerer det ved hjælp af PIP
Det første, vi skal gøre, er at sikre, at vi har LangChain installeret i vores miljø.
pip install langchain
Miljøopsætning
Brug af LangChain betyder typisk integration med forskellige modeludbydere, datalagre, API'er, blandt andre komponenter. Og som du allerede ved, som enhver integration, er levering af de relevante og korrekte API-nøgler afgørende for LangChains drift.
Forestil dig, at vi vil bruge vores OpenAI API. Vi kan nemt opnå dette på to måder:
- Opsætning af nøgle som en miljøvariabel
OPENAI_API_KEY="..."
or
import os
os.environ['OPENAI_API_KEY'] = “...”
Hvis du vælger ikke at etablere en miljøvariabel, har du mulighed for at angive nøglen direkte gennem parameteren openai_api_key named, når du starter OpenAI LLM-klassen:
- Indstil nøglen direkte i den relevante klasse.
from langchain.llms import OpenAI
llm = OpenAI(openai_api_key="...")
Skift mellem LLM'er bliver ligetil
LangChain leverer en LLM-klasse, der giver os mulighed for at interagere med forskellige sprogmodeludbydere, såsom OpenAI og Hugging Face.
Det er ret nemt at komme i gang med enhver LLM, da den mest basale og lettest at implementere funktionalitet af enhver LLM blot er at generere tekst.
Det er dog ikke så let at spørge den samme prompt til forskellige LLM'er på én gang.
Det er her, LangChain starter...
For at komme tilbage til den nemmeste funktionalitet af enhver LLM, kan vi nemt bygge en applikation med LangChain, der får en streng-prompt og returnerer output fra vores udpegede LLM.
Kode efter forfatter
Vi kan simpelthen bruge den samme prompt og få svaret fra to forskellige modeller inden for få linjer kode!
Kode efter forfatter
Imponerende... ikke?
Giver struktur til vores prompter med promptskabeloner
Et almindeligt problem med sprogmodeller (LLM'er) er deres manglende evne til at eskalere komplekse applikationer. LangChain løser dette ved at tilbyde en løsning til at strømline processen med at skabe prompter, hvilket ofte er mere indviklet end blot at definere en opgave, da det kræver at skitsere AI'ens persona og sikre faktuel nøjagtighed. En væsentlig del af dette involverer gentagne boilerplate-tekster. LangChain afhjælper dette ved at tilbyde promptskabeloner, som automatisk inkluderer boilerplate-tekst i nye prompter, og dermed forenkle prompt-oprettelse og sikre konsistens på tværs af forskellige opgaver.
Kode efter forfatter
Få strukturerede svar med output-parsere
I chat-baserede interaktioner er modellens output kun tekst. Inden for softwareapplikationer er det dog at foretrække at have et struktureret output, da det giver mulighed for yderligere programmeringshandlinger. For eksempel, når du genererer et datasæt, ønskes modtagelse af svaret i et specifikt format såsom CSV eller JSON. Forudsat at en prompt kan udformes for at fremkalde et konsistent og passende formateret svar fra AI, er der behov for værktøjer til at styre dette output. LangChain imødekommer dette krav ved at tilbyde output-parserværktøjer til at håndtere og udnytte det strukturerede output effektivt.
Kode efter forfatter
Du kan gå og tjekke hele koden på min GitHub.
For ikke længe siden efterlod de avancerede funktioner i ChatGPT os i ærefrygt. Alligevel er det teknologiske miljø i konstant forandring, og nu er værktøjer som LangChain lige ved hånden, hvilket giver os mulighed for at lave fremragende prototyper fra vores personlige computere på blot et par timer.
LangChain, en frit tilgængelig Python-platform, giver brugerne mulighed for at udvikle applikationer forankret af LLM'er (Language Model Models). Denne platform leverer en fleksibel grænseflade til en række grundlæggende modeller, strømliner hurtig håndtering og fungerer som en forbindelse for elementer som promptskabeloner, flere LLM'er, ekstern information og andre ressourcer via agenter, som i den aktuelle dokumentation.
Forestil dig chatbots, digitale assistenter, sprogoversættelsesværktøjer og sentimentanalyseværktøjer; alle disse LLM-aktiverede applikationer kommer til live med LangChain. Udviklere bruger denne platform til at lave skræddersyede sprogmodelløsninger, der imødekommer forskellige krav.
Efterhånden som horisonten for naturlig sprogbehandling udvides, og dens vedtagelse bliver dybere, virker området for dets anvendelser grænseløst.
Josep Ferrer er en analyseingeniør fra Barcelona. Han er uddannet i fysikingeniør og arbejder i øjeblikket inden for datavidenskab, der anvendes på menneskelig mobilitet. Han er en deltidsindholdsskaber med fokus på datavidenskab og teknologi. Du kan kontakte ham på LinkedIn, Twitter or Medium.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://www.kdnuggets.com/how-to-make-large-language-models-play-nice-with-your-software-using-langchain?utm_source=rss&utm_medium=rss&utm_campaign=how-to-make-large-language-models-play-nice-with-your-software-using-langchain
- :har
- :er
- :ikke
- :hvor
- $OP
- 7
- a
- evne
- af udleverede
- Adgang
- udrette
- nøjagtighed
- tværs
- handler
- aktioner
- handlinger
- tilføje
- adresse
- adresser
- adressering
- Vedtagelse
- fremskreden
- Agent
- midler
- siden
- AI
- AI-drevne
- Alle
- tillade
- tillade
- tillader
- allerede
- også
- blandt
- beløb
- an
- analyse
- analytics
- analysere
- analysere
- forankret
- ,
- enhver
- api
- API'er
- Anvendelse
- Application Development
- applikationer
- anvendt
- tilgang
- passende
- arkitektur
- ER
- omkring
- Array
- Arsenal
- artikel
- kunstig
- kunstig intelligens
- AS
- spørge
- vurdere
- Aktiver
- assistenter
- At
- autonom
- til rådighed
- AWE
- tilbage
- Barcelona
- baseret
- grundlæggende
- BE
- bliver
- bliver
- været
- bag
- Bedre
- mellem
- Grænseløs
- Breaking
- kortvarigt
- Bringer
- bygge
- Bygning
- bygget
- by
- CAN
- kapaciteter
- stand
- fange
- tilfælde
- tilfælde
- gearet
- Cave
- kæde
- kæder
- chatbot
- chatbots
- ChatGPT
- chatter
- kontrollere
- valg
- Vælg
- klasse
- kode
- SAMMENHÆNGENDE
- Kom
- Fælles
- almindeligt
- Kommunikation
- sammenligninger
- komplekse
- komponent
- komponenter
- computere
- Tilslut
- tilsluttet
- konsekvent
- kontakt
- indhold
- sammenhæng
- Samtale
- Konvertering
- konvertere
- konvertering af
- koordinere
- Core
- korrigere
- håndværk
- udformet
- skabe
- Oprettelse af
- skabelse
- skaberen
- kriterier
- afgørende
- Nuværende
- For øjeblikket
- tilpasning
- tilpasse
- tilpassede
- data
- datalogi
- datasæt
- Database
- databaser
- tydeligere viser
- definere
- leveret
- leverer
- Design
- udpeget
- konstrueret
- ønskes
- Detektion
- udvikle
- udviklere
- Udvikling
- Enheder
- forskellige
- digital
- direkte
- direkte
- skelne
- distinkt
- Distinguished
- forskelligartede
- do
- dokumentet
- dokumentation
- dokumenter
- ned
- i løbet af
- hver
- nemmeste
- nemt
- let
- økosystem
- effektivt
- effektiv
- effektivt
- elementer
- indlejring
- muliggør
- ende
- engagerende
- ingeniør
- Engineering
- Forbedrer
- enorm
- sikring
- Miljø
- eskalere
- væsentlig
- væsentlige
- etablere
- Ether (ETH)
- evigt skiftende
- eksempel
- udvider
- erfarne
- Forklar
- ekstern
- ekstrakt
- udvinding
- Ansigtet
- Facility
- Faktuel
- Feature
- Funktionalitet
- få
- felt
- fingerspidser
- Fornavn
- fleksibel
- flow
- væske
- Fokus
- fokuserede
- Til
- formular
- format
- Foundation
- foundational
- Framework
- frit
- fra
- funktionalitet
- fundamental
- yderligere
- generere
- generere
- generation
- generative
- Generativ AI
- generator
- få
- få
- Go
- Googles
- forståelse
- hånd
- håndtere
- Håndtering
- Have
- have
- he
- ham
- historie
- bedrift
- horisont
- HOURS
- Hvordan
- How To
- HTTPS
- Hub
- KrammerFace
- menneskelig
- SYG
- idé
- if
- importere
- vigtigt
- in
- manglende evne
- omfatter
- Herunder
- Indgående
- inkorporering
- indekser
- individuel
- industrier
- oplysninger
- initiere
- indgang
- installere
- instans
- medvirkende
- Integration
- integration
- integrationer
- Intelligens
- interagere
- interaktion
- interaktion
- interaktioner
- interesseret
- grænseflade
- grænseflader
- sammenkobling
- ind
- indviklet
- intuitiv
- involverer
- spørgsmål
- IT
- ITS
- rejse
- json
- lige
- KDnuggets
- Nøgle
- nøgler
- Kicks
- Kend
- kendt
- landskab
- Sprog
- stor
- førende
- læring
- til venstre
- Leverage
- Livet
- ligesom
- linjer
- LINK
- levende
- Llama
- Lang
- maskine
- machine learning
- Main
- lave
- maerker
- administrere
- lykkedes
- styring
- manipuleret
- mange
- Marketing
- Kan..
- midler
- mekanisme
- mekanismer
- blot
- Metadata
- metode
- måske
- mobilitet
- model
- modeller
- modulær
- modul
- Moduler
- mere
- mest
- my
- Som hedder
- indfødte
- Natural
- Naturligt sprog
- Natural Language Processing
- nødvendig
- Behov
- behov
- Ny
- nyheder
- nexus
- rart
- NLP
- nu
- of
- tilbyde
- tit
- on
- engang
- open source
- OpenAI
- drift
- Produktion
- Option
- or
- OS
- Andet
- vores
- Disposition
- output
- udgange
- udestående
- parameter
- del
- særlig
- dele
- mønstre
- Mennesker
- udføre
- udfører
- personale
- Personlige computere
- sætninger
- Fysik
- stykker
- perron
- plato
- Platon Data Intelligence
- PlatoData
- Leg
- Poetry
- positioner
- potentiale
- præcist
- foretrækkes
- Prime
- Problem
- problemer
- behandle
- forarbejdning
- producere
- Programmering
- prompter
- prototyper
- give
- udbydere
- giver
- leverer
- Python
- spørgsmål
- hurtigt
- helt
- Raw
- rige
- modtagende
- nylige
- refererer
- Relationer
- relevant
- repetitiv
- svar
- repræsentation
- anmodninger
- kræver
- krav
- Krav
- Kræver
- Ressourcer
- Svar
- svar
- reaktioner
- ansvarlige
- bevaret
- afkast
- afkast
- Revolutionerende
- højre
- roller
- s
- samme
- scenarier
- Videnskab
- Videnskab og Teknologi
- scripts
- Søg
- søgninger
- Sektorer
- synes
- afsendelse
- stemningen
- Sequence
- tjener
- sæt
- sæt
- indstilling
- signifikant
- lignende
- forenkler
- forenkle
- ganske enkelt
- situationer
- So
- Software
- løsninger
- Løsninger
- nogle
- sofistikeret
- Space
- specialiserede
- specialiseret
- specifikke
- specificeret
- Stage
- etaper
- standardisering
- påbegyndt
- Stadig
- opbevaring
- butik
- forhandler
- strømline
- strømlining
- String
- struktur
- struktureret
- strukturer
- efterfølgende
- væsentligt
- sådan
- egnede
- leverer
- sikker
- bølge
- systemet
- Systemer
- bord
- skræddersyet
- Tag
- tager
- taler
- Opgaver
- opgaver
- teknologisk
- Teknologier
- skabeloner
- midlertidig
- tendens
- tekst
- tekstmæssige
- end
- at
- deres
- Them
- derefter
- Der.
- Disse
- de
- ting
- denne
- dem
- selvom?
- Gennem
- Dermed
- til
- i dag
- sammen
- værktøjer
- Kurser
- Transform
- transformationer
- transformers
- Oversættelse
- tutorial
- to
- typisk
- forstå
- forståelse
- uudnyttet
- us
- brugbar
- brug
- anvendte
- Bruger
- brugere
- ved brug af
- forsyningsselskaber
- udnytte
- Værdier
- variabel
- række
- forskellige
- Vast
- alsidighed
- meget
- via
- ønsker
- Vej..
- måder
- we
- Hvad
- Hvad er
- hvornår
- som
- Hele
- bred
- med
- inden for
- spekulerer
- ord
- workflow
- arbejdsgange
- arbejder
- endnu
- dig
- Din
- zephyrnet