Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn

Callista medarbetare Patrik Blommaskog

Köra stora språkmodeller lokalt – hur gör man och vad får man? Presentation

// Patrik Blommaskog

Presentation från Cadec 2025 Göteborg

Presentation från Cadec 2025 Stockholm

Sedan ChatGPT släpptes till allmänheten för två år sedan så har bruket av stora språkmodeller, LLM:er, blivit vardagsmat för de flesta av oss. Genom olika förpackningar använder vi dem för personligt bruk, som arbetsredskap, och ibland som aktiva delar av produkter och tjänster.

Idag finns det många modeller som går att köra på egna datorer utan att man behöver anförtro sig till leverantörer i molnet. Det är ett snabbt framåtskridande område där man ständigt lyckas klämma in bättre prestanda och mer funktionalitet i hårdvara som fortsätter att bli både billigare och kraftfullare.

Men - man klämmer knappast in ett helt moln i en laptop utan kompromisser. I detta föredrag tittar vi på vad det innebär att köra en språkmodell lokalt. När och varför skulle man vilja välja en lokal modell framför en molnbaserad kommersiell dito? Vi tittar på modellval, anpassningar, egna erfarenheter, och andra saker att ta i beaktande när man väljer och arbetar med sina modeller. Under presentationen kommer vi att använda modellerna både som utvecklingsverktyg och som lösningskomponent..




Frågor och svar

Med immutability kan du köra samma fråga två gånger och alltid förvänta dig samma svar?

Ja, genom att seeda slumpgeneratorn i sin förfrågan mot modellen genom parametern “seed”. Det sägs att man inte kan förlita sig på att man får samma svar, speciellt med högre temperatur, men de gånger jag har provat så har det fungerat fläckfritt. I Ollamas chat kan man sätta parametern såhär:

/set parameter seed 123

Får man använda modellerna i kommersiellt syfte?

Jag är inte juridiskt bevandrad så ta mina ord med en hälsosam nypa försiktighet. Med det sagt så ja, som jag läst dem verkar de stora kända modellerna ha väldigt tillåtande licensvillkor för kommersiellt bruk. Det finns dock lite finstilt att läsa. Llama 3.3 slutar t.ex. vara fritt tillåten om man har över 700 miljoner användare per månad, och även om den är tillåten för kommersiellt bruk så har de en lång lista av användningsområden man inte får använda den inom.

Kan man ge utförligare information hur verktygen kan/får användas i bakgrunsdsprompten?

Javisst! Det är en interaktion mellan modellen, vad man skriver i systemmeddelandet, i promten, och hur man beskriver verktygen. Jag belyste inte det på presentationen, men om man tittar på videon så kan man se ett stycke där jag försöker styra verktygsinteraktionen i systemmeddelandet. Med begränsad framgång får väl erkännas. Min erfarenhet är att interaktionen kan vara bångstyrig att kontrollera, och att det antagligen är en färdighet som faller under det populära uttrycket “prompt engineering”.

Hur funkar det att köra modeller som är större än ett grafikkorts VRAM, dvs dela upp modellen på flera grafikkort och även i RAM? Vad får det för påverkan på prestanda?

Ollama är bra på att dela upp modeller så att det som inte får plats i VRAM hamnar i vanligt RAM och drivs av CPU:n. Det är tekniskt helt transparent för användaren men så fort man passerar en sådan här minnesgräns så flyger prestanda ut genom fönstret. Det finns en aktiv community kring att koppla ihop flera grafikkort. Då får man mer VRAM att stoppa modellen i, men fortfarande ett litet minneshopp som verkar kosta en hel del prestanda. I det här fallet kan man dock utnyttja resurserna genom att parallellisera flera inferens-sessioner. Då kan varje session få en viss hastighet medan den totala genomströmningen blir högre.

Bonus: Stig Vildmarks Hawaiipizza

För den hungrige följer här receptet på Stig Vildmarks Hawaiipizza. Skicka gärna en bild ifall du bakar den.

A pineapple pizza recipe using European measurements

Here’s a recipe for a delicious pineapple pizza using European measurements: Ingredients:

  • 500g strong white flour
  • 10g salt
  • 15g sugar
  • 20g active dry yeast
  • 350ml lukewarm water
  • 50g extra virgin olive oil
  • 200g tomato sauce (homemade or store-bought)
  • 150g mozzarella cheese, shredded
  • 120g ham or other cured meats (optional)
  • 80g pineapple chunks (fresh or canned in juice)
  • Fresh basil leaves, chopped (optional) Instructions:
    1. In a large mixing bowl, combine the flour, salt, sugar, and yeast.
    2. Gradually add the lukewarm water to the dry ingredients and mix until a dough forms.
    3. Add the olive oil and continue kneading the dough for 5-10 minutes until it becomes smooth and elastic.
    4. Place the dough in a lightly oiled bowl, cover it with plastic wrap or a damp cloth, and let it rise in a warm place for about 1 hour, or until it has doubled in size.
    5. Preheat your oven to 220°C (425°F) with a baking stone or baking sheet inside.
    6. Punch down the dough and shape it into a circle or rectangle, depending on your preference.
    7. Transfer the dough to a lightly floured surface or a piece of parchment paper.
    8. Spread the tomato sauce over the dough, leaving a 1-2 cm border around the edges.
    9. Sprinkle the mozzarella cheese evenly over the sauce.
    10. Add the ham or other cured meats, if using.
    11. Arrange the pineapple chunks on top of the cheese and meats.
    12. Bake the pizza in the preheated oven for 15-20 minutes, or until the crust is golden brown and the cheese is melted and bubbly.
    13. Remove the pizza from the oven and sprinkle with chopped fresh basil leaves, if desired.
    14. Slice the pizza into wedges and serve hot. Note: European measurements are often more precise than US measurements, so you may need to adjust the quantities of ingredients based on your personal preference for texture and flavor.
Ladda ner presentation
Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer