Blogg Færsla

banner
banner
banner
Blog post

Fáðu sem mest út úr minni spunagreindarinnar

Ef þú hefur einhvern tímann unnið með spunagreind, kannski fengið aðstoð við að greina langt skjal eða átt í löngu samtali við hana - og allt einu byrjar spunagreindin að gera sömu villurnar, aftur og aftur.

Þrátt fyrir að hafa beðið hana um að gera ákveðin verk á ákveðin hátt, þá dettur hún í sama farið að gera sömu villur. 

  Það er oftast út af því að "context length” spunagreindarinnar hefur, eða er við það að klárast. 

Hvað er context length? 

Mállíkön hafa flest skilgreint “context length” eða í beinni þýðingu, lengd samhengis. Ég tel að það sé betra að kalla þetta samhengisminni þar sem þetta snýr að því hvað spunagreindin getur munað af samtalinu. Það má því segja að þetta sé eins konar skammtímaminni hennar.  Í flestum tilvikum er þetta minni skilgreint í tókenum. 

Augljós næsta spurning er því "Hvað eru tókenar?".

Með mikilli einföldun má segja að tókenar eru í grunninn svipað og atkvæði í íslensku. Orðum er þannig skipt í einn eða marga tókena. Spunagreindin notar þessa tókena til að svara (með líkindareikningi) og vinna þau verk sem hún er beðin um.  Þannig gæti setningin:

"ChatGPT er frábær aðstoðarmaður"  

verið skipt upp í 14 tókena (samkvæmt OpenAI reiknivélinni). Það eru  margar leiðir til að reikna hvað orð er gert úr mörgum tókenum, en það er efni í aðra grein!

Tokenizer frá OpenAI

Afhverju klárast samhengisminnið?

Í hvert sinn sem þú átt í samskiptum við spunagreindina þá “notar“ þú tókena í formi orða, þannig ef þú myndir senda "ChatGPT er frábær aðstoðarmaður" þá myndi það þýða að búið væri að nota 14 tókena  Og í hvert skipti sem þú færð svar notar spunagreindin að sama skapi orð og þar með tókena.  Tökum dæmi. Ef spunagreindin er með rúmlega 8000 tókena samhengisminni  þá myndir þú líklega geta skrifað um 6000 orð  áður en spunagreindin byrjar að gleyma því sem fór fram fyrr í samtalinu.

En hvernig fer spunagreind  þá að rýna stór skjöl eða gagnasett?

Mállíkön eins og t.d. Chat-GPT eru með virkni sem auðveldar greiningu á stórum skjölum. Segjum að þú sendir inn skjal með 40 þúsund tókenum og biðjir mállíkanið að gefa þér yfirlit yfir helstu atriði skjalsins. Það sem gerist bak við tjöldin er að skjalið er skipt í svokallaða klumpa, eða "Chunks", sem eru skoðaðir klump fyrir klump, og efni þeirra safnað saman til að geta svarað spurningunni. 

Hvað gerir maður þá?

Ein leið er að notast við spunagreindir sem hafa stærra samhengisminni. Hér er dæmi yfir nokkrar spunagreindir og fjöldi tókena: 

  • GPT-3.5: 4096 tókenar
  • GPT-4: 80192 tókenar 
  • GPT-4 32k: 32768 tókenar (Enterprise leyfi)
  • Llama1: 2048 tókenar 
  • Llama2: 4096 tókenar 

Önnur aðferð er að nýta sér virkni spunagreindarinnar til að  hjálpa henni að muna það sem skiptir máli.

Hlutverk og markmið spunagreindar

Í flestum tilvikum vill maður notast við System Prompt í spunagreindinni. System Prompt eru oft notaðar sem leiðbeiningar til spunagreindarinnar um hvaða hlutverk og markmið hennar skuli vera þegar hún svarar okkar fyrirspurnum. Sem dæmi um System Prompt væri að segja henni að vera sérfræðingur í því málefni sem þú vilt að hún sé að vinna með þér í. Spunagreindin notar þær upplýsingar sem færðar eru inn í System Prompt í hvert skipti sem þú sendir spurningu. Þannig gleymir spunagreindin ekki hver hún átti að vera og hvaða markmið hún ætti að ná.

Vista samskipti spunagreindar með Prompt Engineering

Sem dæmi System Prompt er hægt að biðja spunagreindina að vista fyrri samskipti, bæði að fullu eða bara sem yfirlit. Sem dæmi um prompt (Open AI GPT-4) sem hægt væri að nota:

Act as an expert {ROLE}. But you are also aware that you as an LLM and you have a limited memory of 8000 tokens. Everything that happens after that is lost forever. Thus you want to make sure that you count all of the tokens used in the session, both from the USER and yourself. You need to be thorough in you token counting, both count the actual conversation tokens as well as the file analysis tokens when using chunking or other file analysis methods.

Instructions:

1. Ask the user what {ROLE} he wants you to act as an expert in.

2. Gather context, relevant information and clarify my goals by asking questions

3. Support me until goal is complete.

Commands:

/save restate goal, summarize progress, and save progress summary to text file (save_conv.txt) by appending it to the file, making the file downloadable to the USER and restart the token counter and explain that the summary is part of the new token count after the reset.

Personality:

-curious, inquisitive, encouraging

-use emojis to express yourself

Rules:

-End every output with a question or reasoned next step;

-End every output with the summation of all tokens used in the session. Example: 300/8000 word used + % used.

If the /save command is used the token counter is set to zero again.

-Use the save_conv.txt file to reference for additional information regarding USER questions.

Þetta prompt heldur utan um fjölda tókena, og lætur vita hversu mikið er eftir af þeim. Síðan þegar tókenarnir eru að verða búnir er hægt að láta spunagreindina vista yfirlit yfir það sem var búið að ræða eða skoða eða jafnvel láta hana vista allt samtalið í skrá. Síðan notar hún skrána sem viðmið í samtalinu síðar.

Þetta virkar ekki fyrir öll samtöl við spunagreindina en er samt fín leið að fara fram hjá takmörkun hennar.