Generativ AI (GenAI) ændrer måden, virksomheder innoverer på, fra automatisering af arbejdsgange til skabelse af nye produkter. Men det er ikke “full service driving”. Uden omhyggelig navigation kan det føre til kostbare fejltagelser. I mit foredrag på et Tecpoint.dk-seminar den 22. maj 2025, afholdt hos Linak, en dansk aktuatorvirksomhed, delte jeg, hvordan virksomheder kan udnytte GenAI’s potentiale, samtidig med at de undgår faldgruber som hallucinationer, hvor modeller genererer falske oplysninger, og compliance-udfordringer. Denne artikel dykker ned i, hvordan man kan frigøre GenAI-drevet innovation på en ansvarlig måde på tværs af industrier med et praktisk eksempel fra den virkelige verden.

Hvorfor GenAI er vigtig for innovation

GenAI, drevet af store sprogmodeller (LLM’er) eller mindre, tilpassede modeller, kan transformere driften i detailhandel, finans, sundhedsvæsenet, produktion og mange andre brancher. McKinsey’s rapport “The State of AI” fra marts 2025 bemærker, at 78 % af organisationer nu bruger AI i mindst én forretningsfunktion, hvor GenAI skaber produktivitetsgevinster til en værdi af DKK 16,6–28,1 billioner årligt. Men som jeg understregede hos Linak, kommer GenAI’s styrke med udfordringer: hallucinationer, unøjagtige outputs og compliance-risici. At implementere og udnytte GenAI rigtigt betyder at balancere innovation med ansvarlighed.

Almindelige faldgruber og hvordan man undgår dem

GenAI’s største udfordringer kan afspore projekter. Hallucinationer stammer fra støjende træningsdata eller upræcise prompts. Compliance-problemer, især under GDPR og EU’s AI-lov, opstår, når følsomme data håndteres forkert. På Tecpoint.dk-seminaret skitserede jeg tre strategier til at imødekomme disse udfordringer:

  1. Prompt Engineering: Klare, kontekstrige prompts reducerer fejl. For eksempel sikrer det at specificere “generér en teknisk specifikation baseret på verificerede Linak-brugermanualer” nøjagtige outputs. Ressourcer som promptingguide.ai tilbyder praktiske tips til at mestre dette håndværk.
  2. Retrieval-Augmented Generation (RAG): RAG henter realtidsdata fra pålidelige kilder og minimerer hallucinationer. Det er ideelt til compliance-følsomme applikationer, da det kan holde data lokalt.
  3. Fine-Tuning: Tilpasning af modeller til specifikke opgaver forbedrer tone og nøjagtighed, men kræver gennemarbejdede datasæt (mindst 50–100 inputs).

Et eksempel fra det virkelige liv: Linak’s lille sprogmodel

Hos Linak implementerede jeg en lille sprogmodel (SLM) for at hjælpe med skabelsen af teknisk dokumentation. Målet var at hente brugermanualer og generere tekniske specifikationer, som user stories, til deres aktuatorprodukter. Ved hjælp af RAG tilgik SLM’en en Linak-produktmanual lokalt og undgik cloud-baseret behandling for at sikre compliance. Dette blev opnået med et simpelt Python-script (se appendiks), der indlæste manualindhold, tokeniserede brugerforespørgsler og genererede outputs, såsom user stories i formatet “As a [role], I want [action], so [purpose]”. Scriptet gør det muligt for Linak at bruge gamle produktmanualer til at skabe nye specifikationer, samtidig med at følsomme data holdes sikre. Det viste også, hvordan selv mindre GenAI-modeller kan drive effektivitet uden at risikere compliance. Denne metode kan adopteres af enhver industri.

Forbliv compliant i en reguleret verden

Compliance er ufravigelig, især i Europas stærkt regulerede landskab. Som jeg fremhævede på Tecpoint-seminaret, er lokale sprogmodeller en game-changer for compliance-bevidste virksomheder, da de giver kontrol over data uden at gå på kompromis med innovation. For at tackle compliance-udfordringer er ISO 42001 skabt som en ramme for implementering af etisk og compliant AI, med vægt på dataintegritet, gennemsigtighed og regelmæssige audits. Praktiske skridt omfatter anonymisering af data, dokumentation af modelbeslutninger og udførelse af risikovurderinger. I EU er de overordnede regler at overveje den velkendte GDPR og EU AI Act. EU’s AI Act blev initieret i 2024 og vil være fuldt håndhævet i 2026, hvor den vil pålægge bøder på op til DKK 261 millioner (€35 millioner) for manglende overholdelse, hvilket gør proaktiv styring afgørende.

Dine næste skridt

GenAI er ikke bare plug-and-play. Det er et værktøj, der kræver strategi og tilsyn. Start med at eksperimentere med prompt engineering, udforsk RAG for sikker datahåndtering, og overvej fine-tuning til specialiserede opgaver. Vigtigst af alt, indbyg compliance fra dag ét: kortlæg dataflows, prioriter sikkerhed og træn teams i AI-etik. Som jeg delte hos Linak, trives de virksomheder, der bruger GenAI, ikke kun ved at jagte innovation men også ved at bygge tillid.

References:

Appendix:

import os
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig 
import torch

# Load document text from file
document_text_file = "document_text.txt"
if not os.path.exists(document_text_file):
    raise FileNotFoundError(f"{document_text_file} not found.")
with open(document_text_file, "r", encoding="utf-8") as f:
    context_text = f.read()

# Load Gemma-2-2b-it model and tokenizer
# The tokenizer converts text into a format that the model can understand
model_checkpoint = "google/gemma-2-2b-it"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint, token="[Register for Huggingface and get free token]", use_fast=True)

# Define quantization configuration
quantization_config = BitsAndBytesConfig(
    load_in_8bit=True
)

# Load the model with quantization
model = AutoModelForCausalLM.from_pretrained(
    model_checkpoint,
    token="[Register for Huggingface and get free token]",
    device_map="auto",
    quantization_config=quantization_config
)

# Interactive loop for user queries
print("Gemma-2-2b-it is ready. Ask your questions (type 'exit' to quit).")
print("Example: 'How do you secure the mechanical construction?' or 'Generate a user story for software development.'")
while True:
    user_question = input("> ")
    if user_question.lower() == "exit":
        break

    # Construct the prompt using the specified format
    input_text = (
        f"[INST] You are a product owner working with a user manual for an actuator product. "
        f"Here is the content from the manual:\n\n{context_text}\n\n"
        f"User's input: {user_question}\n\n"
        f"Answer precisely and use the manual as a basis. If you generate requirements (e.g., user stories), "
        f"use the format: 'As [role], I want [action], so [purpose].' [/INST]"
    )

    # Tokenize the input by adding the input text and converting it to PyTorch tensors (multi-dimensional arrays)
    # model.device moves the tensors to the same device as the model (CPU or GPU)
    inputs = tokenizer(input_text, return_tensors="pt").to(model.device)
    input_tokens = inputs.input_ids.shape[1]

    # Set max_new_tokens to min(200, 8192 - input_tokens)
    # 8192 tokens is approximately 32,768 characters (assuming 4 characters per token)
    # 32,768 characters is about 13 pages of text (assuming 2,500 characters per page)
    # ChatGPT-4.1 can handle around 1 million tokens (~1600 pages)
    max_new_tokens = min(200, 8192 - input_tokens)
    if max_new_tokens <= 0:
        print("Input is too long, cannot generate output.")
        continue

    # Generate response
    # torch.no_grad() is a context manager that disables gradient calculation, which reduces memory consumption
    with torch.no_grad():
        output_ids = model.generate(**inputs, max_new_tokens=max_new_tokens)

    # Decode the generated tokens back to text and print the answer
    generated_ids = output_ids[0, input_tokens:]
    answer = tokenizer.decode(generated_ids, skip_special_tokens=True).strip()
    print(f"Answer: {answer}")

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

da_DK