2 Valg av tilbyder
Et av de første valgene man må foreta seg er hvilke tilbyder(e) man ønsker å benytte for systemet. Som nevnt tidligere har vi i Nav i hovedsak mulighet til å bruke Azure OpenAI Services (Definisjon D.1) eller Vertex AI (Definisjon D.12).
Når vi beskriver sky-plattformen til Nav kommer vi til å bruke NAIS D.6 som forkortelse.
Selv om man kan blande tilbyder av språkmodell, embedding modell og vektordatabase vil det i de fleste tilfeller falle naturlig å velge én tilbyder av alle tre. Det er derfor viktig å være bevist dette valget og tenke på helheten av applikasjonen.
2.1 Bruk av no/low-code løsninger
Både Azure OpenAI og Vertex AI tilbyr i dag no/low-code løsninger for å komme i gang med et KBS system. Disse løsningene gjør det raskt å komme i gang med utvikling og tilbyr ekstra funksjonalitet utover bare språkmodellen, vektordatabase og embedding modell. Bakdelen med disse no/low-code løsningene er selvsagt at man mister litt av kontrollen og låser seg helt til en tilbyder.
| Organisering | Fordeler | Ulemper |
|---|---|---|
| No/low-code |
|
|
| Selvlaget |
|
|
Det er selvsagt mange alternativer man kan utforske når man ikke går for en av no/low-code løsningene til Azure OpenAI eller Vertex AI og vi kommer ikke til å liste opp alle her, men kanskje forslagene kan være et sted å starte å se på alternativer:
LangChain- Et rammeverk for å skape språkmodell-baserte applikasjoner.- Har støtte for de fleste tilbydere og man kan gjennom dette rammeverket kalle på Azure OpenAI og Vertex AI modeller.
LlamaIndex- Et rammeverk for å skape språkmodell-baserte applikasjoner.- API direkte - Et godt valg hvis man vet at man ikke kommer til å bytte mellom tilbydere.
Hvilken løsning man ønsker å gå for bestemmes i stor grad av produktet som skal utvikles og hvem som er med å utvikle produktet. På samme måte som ellers i produktutvikling for Nav anbefales det at teamet tar en bevist avgjørelse med de fordeler og ulemper som følger med.
2.2 Valg av språkmodell
Det er vanskelig å gi en sterke anbefalinger den ene eller den andre veien for hvilken språkmodell man burde foretrekke. Her vil det komme ned til utprøving av begge modeller og preferanser utover selve modellen. Husk også at modellene forbedres hele tiden så egen erfaring og testing burde veie tungt sammenlignet med tidsbestemte anbefalinger, som denne tabellen.
På kort sikt er det fornuftig å velge en språkmodell som gir gode svar fra første stund. Men i et lengre perspektiv burde produktutviklingen i Nav ta stilling til lokale modeller som kan ytterligere tilpasses den enkeltes bruksområde.
| Språkmodell | Fordeler | Ulemper |
|---|---|---|
| Azure OpenAI |
|
|
| Vertex AI |
|
|
Selv om GPT modellene fra Azure OpenAI i dag kanskje gir bedre svar vil det på sikt jevne seg ut1. Gemeni-1.5 Pro har for eksempel et veldig mye større kontekstvindu som kan være attraktivt.
2.3 Valg av embedding modell
Embedding modell kanskje enda mer enn språkmodell må testes grundig før endelig valg faller. Siden embedding modellen vil styre hvor godt vektordatabasen klarer å hente ut relevante dokumenter og siden vi er avhengig av en modell som forstår Norsk godt.
| Embedding modell | Egenskaper |
|---|---|
| Azure OpenAI |
|
| Vertex AI |
|
Det finnes flere benchmark-er som sammenligner forskjellige modeller som gir et godt utgangspunkt før man velger modell.
2.4 Valg av vektordatabase
Det mest interessante valget kommer når man skal vurdere vektordatabase. For vektordatabase har man både mulighet til å velge fra en av tilbydere som allerede er nevnt, Azure AI Search og Vertex AI Search, men man har også mulighet for å velge en “self-hosted” løsning med PostgreSQL.
På NAIS D.6 plattformen vil det være Cloud SQL med støtte for pgvector som vil være ekvivalent med en “self-hosted” løsning.
Det som man må være observant på og teste selv er hvor mye ekstra verdi hybridløsningene fra Azure OpenAI og Vertex AI gir utover en ren vektordatabase som Postgres. Siden Azure AI Search og Vertex AI Search har støtte for hybridsøk kan de i teorien gi bedre sensitivitet når det søkes i kunnskapsbasen, men med forståelsen av at man mister litt kontroll over søket. Som i de andre anbefalingene så må man teste og vurdere på bakgrunn av kunnskapsbasen man ønsker å søke i.
| Vektordatabase | Fordeler | Ulemper |
|---|---|---|
| Azure AI Search |
|
|
| Vertex AI Search |
|
|
PostgreSQL (pgvector) |
|
|
| BigQuery |
|
|