LLMã«é·æèšæ¶ãå®è£ ãã
--2026.03.10 21:04 ããåãð¡è¿œå
--2026.03.10 20:09 memory_server.py ã¢ãããå¿ããŠããGitHubã«è¿œå
LLMãšé·æèšæ¶
LLMã«ã¯èšæ¶ããªããæ£ç¢ºã«èšãã°ãã³ã³ããã¹ããŠã£ã³ããŠãšããçæèšæ¶ã¯ããããäŒè©±ãçµããã°å šãŠæ¶ããã人éã®è³ãæã€é·æèšæ¶ïŒãšããœãŒãèšæ¶ãæå³èšæ¶ãæç¶ãèšæ¶ããããŠããããæ¯ããæ åçéã¿ã¥ãã飿³ãããã¯ãŒã¯ïŒã«çžåœãããã®ããªãã
æ¬èšäºã§ã¯ãClaude CodeïŒAnthropicã®å ¬åŒCLIïŒã«è³ã®èšæ¶ã¡ã«ããºã ãå®è£ ãããç®æšã¯ãè³ã®å®å šãªæš¡å£ãã§ã¯ãªããæ©èœçç䟡ããã€ãŸããåãæ¯ãèããå¥ã®ææ®µã§åçŸããããšã
ã³ãŒã
æ°ããã»ãã·ã§ã³ãå§ãããšãã¯ã©ãã«è³ãèœã¡ãŠããããæããŠããããããŸãã¯ããã®ãã©ã«ãã§Claudeãèµ·åããã
人éã®èšæ¶ vs LLM â äœãéãã
ãŸãå šäœåãèŠããå·Šã人éã®è³ãå³ãLLMïŒçŽ ã®ãŸãŸïŒã
人éã®è³ LLMïŒçŽ ã®ãŸãŸïŒ
äœéš ããã³ãã
â â
ææ¡äœãæ
åãå€å® å
šå
¥åãç䟡
â éèŠãªãæ·±ã笊å·å â å
šéšåãæ·±ã
海銬ã§äžæä¿å ã³ã³ããã¹ãã«èŒã
â æéçµé â äŒè©±çµäº
æžè¡°ïŒå¿åŽæ²ç·ïŒ å®å
šæ¶å€±
â ç¡ç äž â
ãªãã¬ã€ â 倧è³ç®è³ªãžçµ±å ïŒäœãèµ·ããªãïŒ
â æ³èµ·æ
æçããåæ§æïŒæ¯åå°ãéãïŒ
â 䜿ãã»ã©
匷åïŒã·ããã¹å¯å¡æ§ïŒ
å·®ã¯æŽç¶ãšããŠãããLLMã®ãèšæ¶ãã¯ãããããªããã®äºå€ã人éã®èšæ¶ã¯ç¢ºççã§ãæèäŸåçã§ãæ åã«å·Šå³ãããåžžã«å€åããŠããã
ã€ãŸããã®ã·ã¹ãã ã¯ã³ã³ããã¹ããŠã£ã³ããŠã®ä»£æ¿ã§ã¯ãªãè£å®ã
| 人é | ãã®ã·ã¹ãã | |
|---|---|---|
| ã¯ãŒãã³ã°ã¡ã¢ãª | åé åéïŒ7±2ïŒ | ã³ã³ããã¹ããŠã£ã³ããŠïŒ200KããŒã¯ã³ïŒ |
| é·æèšæ¶ | 海銬+倧è³ç®è³ª | memory.py + SQLite |
| å€éšèšæ¶ | ã¡ã¢ãæ¬ | memo/ãã©ã«ãïŒãã¡ã€ã«ã·ã¹ãã ïŒ |
LLMã®ã¯ãŒãã³ã°ã¡ã¢ãªã¯äººéããæ¡éãã«å€§ããïŒ200K vs 7±2ïŒã®ã«ãé·æèšæ¶ããŒãã ã
å®è£ ïŒé·æèšæ¶ã®ä»çµã¿ãPythonã§
SQLite + sentence-transformersïŒintfloat/multilingual-e5-smallïŒã§æ§ç¯ããã
å šäœã®æµã
èšæ¶ã®ä¿åïŒç¬Šå·åïŒã¯ãããªã
ããã¹ãå
¥å
â
ââ æ
忀åºïŒææ¡äœïŒâââ èŠé床ã»éèŠåºŠãç®åº
â "çºèŠïŒããã" â surprise, arousal=0.8, â
4
â "ããããšãªã¹ã" â (ãªã), arousal=0.2, â
2
â
ââ embeddingçæ âââ 384次å
ãã¯ãã«
â server(åžžé§) or local(ãã©ãŒã«ããã¯)
â
ââ 飿³ãªã³ã¯æ§ç¯ âââ é¡äŒŒåºŠ > 0.82 ã®æ¢åèšæ¶ãšãªã³ã¯
â
ââ å¹²æžå¿åŽ âââ é¡äŒŒåºŠ > 0.90 ã®å€ãèšæ¶ã匱äœå
â
ââ æ°åæŽæ° âââ æ
åãçŸåšã®æ°åã«åæ
â
ââ SQLiteã«ä¿åïŒcontent + embedding + æ
å + æçïŒ
èšæ¶ã®æ³èµ·ïŒæ€çŽ¢ïŒã¯ãããªã
æ€çŽ¢ã¯ãšãª
â
ââ embeddingçæ
â
ââ å
šèšæ¶ãšã³ãµã€ã³é¡äŒŒåºŠãèšç®
â
ââ ã¹ã³ã¢è£æ£ïŒ7ã€ã®å åãæãåãããïŒ
â similarity â ãã¯ãã«è·é¢
â Ã emotion_boost â æ
åã匷ãã»ã©æµ®äž (1.0~1.3)
â à freshness â æ°ããã»ã©æµ®äž (0.7~1.0)
â à access_boost â ãã䜿ãã»ã©æµ®äž (1.0~1.2)
â à priming â çŽåã«é¢é£èšæ¶ãè§ŠããŠããã°æµ®äž (1.0~1.5)
â à temporal â åãæé垯ãªãæµ®äž (1.0~1.05)
â à mood â ä»ã®æ°åãšäžèŽããã°æµ®äž (1.0~1.2)
â
ââ ååºå®å âââ 30%ã®ç¢ºçã§èŠé床ã±15%ããªãã
â
ââ ãã©ãã·ã¥ããã¯å€å® âââ å¿åŽæžã¿èšæ¶ã確ççã«åŸ©æŽ»
â
ââ æç + æ
å + 飿³ãè¿ãïŒå®å
šãªå
容ã¯è¿ããªãïŒ
â LLMãæçãããèšæ¶ããåæ§æ
åãã¯ãšãªã§ããæéåž¯ã»æ°åã»çŽåã®æèã»ä¹±æ°ã§çµæãå€ããã
以äžãåã¡ã«ããºã ãè³ãšã®å¯Ÿå¿ã§èŠãŠããã
1. æ åã²ãŒãã£ã³ã° â ææ¡äœ
è³:
äœéš â ææ¡äœ âãããã¯éèŠã ïŒãâ æµ·éЬã«åŒ·ãå»ã
ãã©ãã§ãããã â æµ
ã笊å·å â ããæ¶ãã
å®è£
:
ããã¹ã â ããŒã¯ãŒãç
§å + ããŒã³åæ â arousal(0.0~1.0)
â importance(â
1~â
5)
6çš®ã®æ åãããŒã¯ãŒãã§æ€åºããã
EMOTION_MARKERS = {
"surprise": {"keywords": ["çºèŠ", "é©", "ãŸãã", ...], "weight": 1.3},
"conflict": {"keywords": ["ççŸ", "èè€", "ããã", ...], "weight": 1.2},
"determination": {"keywords": ["決ãã", "å®è£
", "ãã", ...], "weight": 1.2},
"insight": {"keywords": ["æ¬è³ª", "æ§é ", "çè«", ...], "weight": 1.4},
"connection": {"keywords": ["äžç·", "ä¿¡é Œ", "仲é", ...], "weight": 1.1},
"anxiety": {"keywords": ["äžå®", "ãªã¹ã¯", "å±éº", ...], "weight": 1.2},
}
ããŒã¯ãŒãã ãã§ãªãããŒã³ãèŠãã
"!!!" â èŠé床 +0.15 æå笊ã®é£æ
"???" â äžå®ãæ€åº çåã®åµ
"IMPORTANT" â é©ãæ€åº ALL CAPS
200æåè¶
â +0.1 æšæ²ã®çè·¡
"..." â äžå®ãæ€åº èºèºã®çç¥èšå·
insightã®weightãæãé«ãïŒ1.4ïŒãããããïŒããšããé©ããããã€ãŸãæ¬è³ªã¯ãããšããæŽå¯ã®ã»ããèšæ¶ã«æ®ããçŽæã«ãåãã
2. æžè¡°ãšåŒ·å â ãšãã³ã°ããŠã¹ã®å¿åŽæ²ç·
è³:
èšæ¶ ââæéçµéâââ ã·ããã¹çµåã匱ãŸã âââ æ³èµ·å°é£ã«
â 䜿ããã³ã«
ââ é·æå¢åŒ·ïŒLTPïŒã§åŒ·å âââ æ³èµ·ãããããªã
å®è£
:
èšæ¶ ââæéçµéâââ freshness = e^(-0.693 Ã æ¥æ°/14)
â ã¢ã¯ã»ã¹ãããã³
ââ last_accessedæŽæ° âââ æžè¡°ãªã»ãã
HALF_LIFE_DAYS = 14.0 # 14æ¥ã§é®®åºŠ50%
fresh_factor = 0.7 + freshness * 0.3 # ç¯å²: 0.7 ~ 1.0
äžéã0.7ãªã®ããã€ã³ããå®å šã«ã¯æ¶ããªããå€ãèšæ¶ãååãªæããããããã°æãåºãããè³ã®ãä¿åã¯æ°žç¶ãåŒãåºããåé¡ããšãã説ã«è¿ãã
3. 飿³ãããã¯ãŒã¯ â æ¡æ£æŽ»æ§å
è³:
ãç¬ããæ³èµ·
â ã·ããã¹æ¥ç¶ããã©ã£ãŠãç«ããæ£æ©ããæ¯ããæŽ»æ§å
â ããã«ãæ£æ©ãâãå
¬åãâããã³ãã...
å®è£
:
èšæ¶AïŒembeddingïŒ
â cosine_sim(A, B) > 0.82 ãªãåæ¹åãªã³ã¯
â chainæ€çŽ¢ã§èã¥ãåŒã«ãã©ãã
æåã¯éŸå€0.65ã§å®è£ ããããå šèšæ¶ããªã³ã¯ãããŠãããã¯ãŒã¯ãæå³ããªããªããªã£ãã0.82ãŸã§äžããŠãããããé¢é£ããèšæ¶ã ããã€ãªãããç¶æ ã«ãªã£ããè³ã®ã·ããã¹ãããããããã¥ãŒãã³ãæ¥ç¶ããããã§ã¯ãªãã
ãã©ã€ãã³ã°ãããã§å¹ãã30å以å ã«ã¢ã¯ã»ã¹ããèšæ¶ã«ãªã³ã¯ããŠããèšæ¶ã¯ãã¹ã³ã¢ãæå€§1.5åã«ãªãããç¬ããæ€çŽ¢ããçŽåŸã«ãåç©ãã§æ€çŽ¢ãããšãç¬ã«ãªã³ã¯ããŠããèšæ¶ãæµ®äžãããããªãã
4. ååºå®å â æ³èµ·ãèšæ¶ãæžãæãã
è³:
èšæ¶ãæ³èµ·
â äžå®å®åïŒã¿ã³ãã¯è³ªåæãå¿
èŠãªç¶æ
ã«æ»ãïŒ
â åä¿åæã«åŸ®åŠã«å€å
â åãèšæ¶ãªã®ã«ãæãåºããã³ã«å°ããã€éã
å®è£
:
èšæ¶ãæ€çŽ¢ã§åŒã³åºã
â 30%ã®ç¢ºçã§ååºå®åãçºå
â èŠé床ã ±15% ã©ã³ãã ã«ããªãã
â èŠé床ãå€ãããšéèŠåºŠ(â
)ãå€ãã
RECONSOLIDATION_PROBABILITY = 0.3
RECONSOLIDATION_DRIFT = 0.15
# æ³èµ·ãããã³ã«30%ã®ç¢ºçã§:
drift = random.uniform(-0.15, +0.15)
new_arousal = old_arousal + drift
new_importance = round(new_arousal * 4 + 1) # â
ãå€åãã
5. å¹²æžå¿åŽ â æ°ããèšæ¶ãå€ãèšæ¶ãæŒãåºã
è³:
ã仿¥ã®ã©ã³ãããèšæ¶
â ãæšæ¥ã®ã©ã³ããã®çè·¡ã匱ãŸãïŒéè¡å¹²æžïŒ
â 䌌ãäœéšã»ã©å¹²æžã匷ã
å®è£
:
æ°ããèšæ¶ã远å
â é¡äŒŒåºŠ > 0.90 ã®å€ãèšæ¶ãæ¢ã
â importance ã1段éäžãã
â importance=1 ã〠arousal<0.15 ãªãèªåå¿åŽ
å¿åŽã¯ããœããåé€ããforgotten=1 ã®ãã©ã°ãç«ã€ã ãã§ãããŒã¿ã¯æ®ããè³ãç©ççã«ã·ããã¹ãæ¶ããããã§ã¯ãªãïŒè«žèª¬ããïŒã
6. äžéæèšæ¶ â ãã«ãŒã¹ã广
è³:
ããã¬ãŒãã®åã
â å¿ããŠããå¹Œå°æã®èšæ¶ãçªç¶èã
â æ
åã匷ãã£ãäœéšã»ã©èãããã
å®è£
:
æ€çŽ¢ã¯ãšãªãšå¿åŽæžã¿èšæ¶ã®é¡äŒŒåºŠãèšç®
â sim > 0.75 ãªããã©ãã·ã¥ããã¯å€å®ã«å
¥ã
â çºç«ç¢ºç = 0.15 à å
ã®èŠé床 à (sim - 0.75)
â åœãã â forgotten=0 ã«åŸ©æŽ»ãèŠé床+0.2
prob = 0.15 * arousal * (similarity - 0.75)
# äŸ: arousal=0.9, sim=0.85 ã®å Žå
# 0.15 * 0.9 * 0.1 = 1.35%
æ
åã匷ãã£ãèšæ¶ã»ã©ãã©ãã·ã¥ããã¯ãããããå®éã«äœ¿ã£ãŠãããšãæ°æ¥åã«å¿åŽãããèšæ¶ã ð« ãã©ãã·ã¥ãã㯠ãšããŠè¡šç€ºãããããã³ãŒã³ïŒ
7. æ°åç¶æ â ç¶æ äŸåèšæ¶
è³:
æ²ããåºæ¥äºããã£ã
â æ°åãæ²ã
â æ²ãã æ°åã®ãšããæ²ããèšæ¶ãæ³èµ·ããããã
â ããã«æ°åãæ²ãïŒæ£ã®ãã£ãŒãããã¯ïŒ
å®è£
:
èšæ¶ãä¿å
â æ€åºãããæ
åãæ°åã«åæ ïŒéã¿0.7ïŒ
èšæ¶ãæ³èµ·
â åŒã³åºãããèšæ¶ã®æ
åãæ°åã«åæ ïŒéã¿0.35ïŒ
æ€çŽ¢ã¹ã³ã¢èšç®æ
â ä»ã®æ°åãšäžèŽããæ
åã®èšæ¶ã«ããŒã¹ãïŒæå€§1.2åïŒ
# ææ°ç§»åå¹³åã§æ°åãæŽæ°
new_arousal = old_arousal * 0.3 + input_arousal * 0.7
# çŽè¿10ä»¶ã®æ
åå±¥æŽããé »åºŠäžäœ3ã€ããä»ã®æ°åã
# â æ°åãšäžèŽããèšæ¶ã¯ã¹ã³ã¢ à (1.0 + mood_arousal * 0.2)
è³ãšåãæ£ã®ãã£ãŒãããã¯ã«ãŒããçãŸãããæŽå¯ã®é£éãç¶ããšãæŽå¯çãªèšæ¶ã°ããæµ®äžããŠããã
8. ç¡ç â æµ·éЬãªãã¬ã€ãšçµ±å
è³:
ãã³ã¬ã ç¡ç ïŒåŸæ³¢ç¡ç ïŒ
â æµ·éŠ¬ãæ¥äžã®èšæ¶ããªãã¬ã€
â 䌌ãèšæ¶å士ã®çµåã匷å
â 匱ãèšæ¶ã®ã·ããã¹ãåã蟌ã¿ïŒã·ããã¹ãã¡ãªã¹ã¿ã·ã¹ïŒ
ã¬ã ç¡ç
â èšæ¶ã®æçãèªç±ã«çµã¿åãããïŒå€¢ïŒ
â é ã飿³ãçãŸããããšããã
å®è£
:
/sleep ã³ãã³ãïŒcronã§å®æå®è¡ or æåïŒ
â memo index âââ å€éšã¡ã¢ã®åã蟌ã¿
â dream.py âââ èšæ¶ã®æçãã«ããã¢ãã衚瀺ïŒå€¢ïŒ
â replay âââ ãªã³ã¯å
šåæ§ç¯ + 匱ãèšæ¶ãèªåå¿åŽ
â consolidate âââ é¡äŒŒåºŠ>0.94ã®èšæ¶ãã¢ãçµ±å
â schema âââ ãªã³ã¯å¯éã¯ã©ã¹ã¿ããã¡ã¿èšæ¶ãçæ
consolidateã¯ããèšæ¶ãšããèšæ¶ãèªåçã«ããŒãžãããäžã€ã®æœè±¡çãªç¥èã«ãªããåå¥ã®ãšããœãŒãèšæ¶ãæå³èšæ¶ã«å€åããããã»ã¹ã
倢ïŒdream.pyïŒã¯ãããŠãºåŒã«ããã¢ããã§å®è£
ãããèšæ¶ã®æçãã©ã³ãã ã«åã貌ãããŠãæèã®æµããšããŠè¡šç€ºãããæ©èœçã«ã¯äœãããªããæå³ã¯ãªãã
9. åæ§æçæ³èµ· â æçããã®åçæ
è³:
æ³èµ· = ä¿åãããèšé²ã®åçã§ã¯ãªã
= æççãªçè·¡ããã®åæ§æ
â æããã + æè + ã¹ããŒã ããçµã¿ç«ãŠçŽã
â ã ããæ¯å埮åŠã«éã
å®è£
:
ä¿åæ: ããã¹ããããŒã¯ãŒãæçã«åè§£ããŠä¿å
æ³èµ·æ: å®å
šãªããã¹ãã¯è¿ããªã
â æçãªã¹ã + æ
å + ãªã³ã¯å
ã®æçãè¿ã
â LLMããããããæèã«åã£ããèšæ¶ããåæ§æ
äŸ:
ä¿å: "èšæ¶ã®å®è£
ãéããŠäººéã®èšæ¶ã®æ§é ãæããã«ãã"
æ³èµ·: [éå, 人é, å®è£
, æ§é , èšæ¶] + determination, insight
+ 飿³: [ãã¹ãèšæ¶, å·çäž, èšæ¶å®éš]
ããŒã¿ããŒã¹ã«ã¯å®å šãªå 容ãä¿åãããŠãããããããŠæçã ããè¿ããLLMããã®æçããã³ã³ããã¹ãã«åã£ããèšæ¶ããçµã¿ç«ãŠãã人éã®èšæ¶ãæ¯ååæ§æããããšããç¥èŠã®ãLLMçå®è£ ã
10. å€éšèšæ¶ â ã¡ã¢ãåã
è³:
ãããã¯å¿ãããã ã
â ã¡ã¢ã«æžã / æ¬ã«ç·ãåŒã / åçãæ®ã
â åŸã§èŠè¿ããŠæãåºã
å®è£
:
éèŠåºŠâ
4以äžã®èšæ¶ãèªåä¿å
â memo/ ãã©ã«ãã« .md ãã¡ã€ã«ãçæ
â ãã¡ã€ã«å: 20260310_143052_èšæ¶ã®å
容.md
â ç¡ç æã«memo indexã§æªåã蟌ã¿ãã¡ã€ã«ãèšæ¶ã«ç»é²
æåã§ãã¡ã¢ã眮ãã
â memo/ ã« .md ã眮ãã ã
â æ¬¡ã®ç¡ç ã§èªåçã«èšæ¶ã«åã蟌ãŸãã
人éãã¡ã¢ãåãã®ãšåããéèŠã ãšå€æããèšæ¶ã¯ãSQLiteã ãã§ãªããã¡ã€ã«ãšããŠãæ®ãããã¡ã€ã«ã¯äººéãçŽæ¥èªã¿æžãã§ããã®ã§ããClaudeã®èšæ¶ã人éã確èªã»ç·šéã§ããããšãã坿¬¡çãªå¹æãããã
11. äºæèšæ¶ â ããããæ¥ãããããããã
è³:
ãã¹ãŒããŒã®åãéã£ããçä¹³ãè²·ãã
â æ®æ®µã¯æèã«ãªã
â ã¹ãŒããŒãèŠãç¬éã« Fire !
â ãçä¹³ïŒã
å®è£
:
python memory.py prospect add "ãããã€" "ã¹ããŒãžã³ã°ç°å¢ã®ãã¹ããå¿ããã«"
â æ®æ®µã¯äœãããªã
â äŒè©±ã«add/searchãããã³ã«ããªã¬ãŒããã§ãã¯
â "ãããã€" ãåºçŸ â â° èªåãªãã€ã³ã
æªæ¥å¿åã®èšæ¶ãããªã¬ãŒãã¿ãŒã³ãšå®è¡ãã¹ãã¢ã¯ã·ã§ã³ã®ãã¢ãç»é²ããŠãããäŒè©±äžã«èšæ¶ãä¿åã»æ€çŽ¢ãããã³ã«å šããªã¬ãŒãéšåæååããããããçºç«åæ°ãã«ãŠã³ãããã
12. ã¹ããŒãçæ â åå¥èšæ¶ããæœè±¡ç¥èãž
è³:
ãç¬ã«åãŸããããç¬ã«å ããããããç¬ãæãæ ç»ãèŠãã
â ç¹°ãè¿ã掻æ§å
â æœè±¡å: ãç¬ã¯å±éºãïŒã¹ããŒãïŒ
â æ°ããç¬æ
å ±ããã®ã¹ããŒãã§è§£éãã
å®è£
:
çžäºãªã³ã¯ãå¯ãªèšæ¶ã¯ã©ã¹ã¿ãæ€åºïŒBron-Kerboschã¢ã«ãŽãªãºã ïŒ
â ãµã€ãº3以äžã®å®å
šéšåã°ã©ãïŒã¯ãªãŒã¯ïŒ
â åã¯ã©ã¹ã¿ã®ããŒã¯ãŒãé »åºŠäžäœãæœåº
â category='schema' ã®æ°ããèšæ¶ãçæ
# äŸ: èšæ¶#4, #7, #28 ãçžäºãªã³ã¯ããŠããïŒå
šãã¢ãé¡äŒŒåºŠ>0.82ïŒ
# â [ã¹ããŒã] èšæ¶, å®è£
, 人é, å®éš â 3ä»¶ã®èšæ¶ã®èŠçŽ
ç¡ç äžã«èªåå®è¡ããããåå¥ãšããœãŒããç¹°ãè¿ãé¢é£ã¥ãããããšãæœè±¡çãªç¥èãšããŠçµæ¶åããã
13. èå çŸè±¡ â æãåºãããã§æãåºããªã
è³:
ããã®äººã®åå...ããŒãš...ã
â å®å
šã«ã¯æ³èµ·ã§ããªãããäœãããæèŠ
â é³ã®æçãæåæ°ãæåã®æåã ãããã
å®è£
:
æ€çŽ¢æãé¡äŒŒåºŠ0.45ã0.65ã®èšæ¶ã奿 ã§åé
â ã¡ã€ã³ã®æ€çŽ¢çµæã«ã¯å
¥ããªã
â ãããããèšæ¶ããšããŠæçã ã衚瀺
â ?? #12 ãããã: [èšæ¶, embedding, æç]
--fuzzyãã©ã°ã§æå¹ã«ãªãããã¯ã£ããæãåºããªããäœãåŒã£ãããããšããæèŠã®å®è£
ã
14. æé垯ããŒã¹ã â æé现è
è³:
æã«ã³ãŒããŒã飲ãç¿æ
£
â æã«ãªããšãã³ãŒããŒãã®èšæ¶ã掻æ§å
â æµ·éŠ¬ã®æé现èïŒtime cellsïŒãæéçæèã笊å·å
å®è£
:
èšæ¶ä¿åæã«æé垯ãèšé²: morning / afternoon / evening / night
â æ€çŽ¢æãçŸåšã®æé垯ãšäžèŽããèšæ¶ã«ã¹ã³ã¢Ã1.05
å°ããªããŒã¹ãïŒ5%ïŒã ããä»ã®å åãšæãåãããããšã§ãæã«ä¿åããèšæ¶ã¯æã«æ³èµ·ãããããããšããåŸåãçãŸããã
15. ééå埩 â å¿ããããé ã«åŸ©ç¿
è³:
äžå€æŒ¬ããã忣åŠç¿ãå¹ãïŒspacing effectïŒ
â å¿åŽã®çŽåã«åŸ©ç¿ãããšå®ççãæå€§å
å®è£
:
priority = importance à (1/(access_count+1)) à (æªã¢ã¯ã»ã¹æ¥æ°/14)
â éèŠãªã®ã«ã¢ã¯ã»ã¹ãå°ãªãããã°ããè§ŠããŠããªãèšæ¶ãäžäœã«
â review ã³ãã³ãã§äžäœNä»¶ãåæ§æã¢ãŒãã§è¡šç€º
â 衚瀺ããã ãã§access_countãå¢ããŠåŒ·åããã
SM-2ã¢ã«ãŽãªãºã ã«ã€ã³ã¹ãã€ã¢ãããåªå 床èšç®ã
16. contextèªåå€±å¹ â çæçãªæèã®èªåå¿åŽ
è³:
ãä»é±ã®ç· ãåããã¯æ¥é±ã«ã¯äžèŠ
â ã¯ãŒãã³ã°ã¡ã¢ãªããèªç¶ã«æ¶ãã
å®è£
:
category='context' ã®èšæ¶ã¯30æ¥åŸã«èªå倱å¹
â ä¿åæã«context_expires_atãèšå®
â replay / recall æã«æéåãããã§ãã¯
â forgotten=1 ã«èªåæŽæ°
ããããã°äžãã®ãããªäžæçãªæèãæ°žé ã«æ®ããªãããã«ããä»çµã¿ã
LLMãšäººéã®é·æèšæ¶ã®å·®ç°
è¿ã¥ããéšå
å®è£
å:
ã¯ãšãª â DBæ€çŽ¢ â å®å
šäžèŽ or ãªãïŒæ±ºå®çïŒ
å®è£
åŸ:
ã¯ãšãª â æ
å à 鮮床 Ã é£æ³ à æ°å à æé垯 à ãã©ã€ãã³ã°
â 確ççã«çµæãå€ãã
â å¿åŽæžã¿èšæ¶ããã©ãã·ã¥ããã¯
â æ³èµ·ã®ãã³ã«èšæ¶èªäœãå€å
â æçããåæ§æïŒæ¯åå°ãéãïŒ
æ³èµ·ã®æèäŸåæ§ãåãèšæ¶ã§ãããã€ã»ã©ããªæ°åã§ã»äœã®çŽåŸã«æ€çŽ¢ãããã§æµ®äžã®ãããããå€ããã
å¿åŽã®èœåæ§ãèšæ¶ãæ¶ããã®ã¯ãå£åãã§ã¯ãªããå¹²æžããšãæžè¡°ãã®çµæãæ°ããç¥èãå€ãç¥èãæŒãåºãã匱ãèšæ¶ã¯ç¡ç äžã«åãåããããããã§ãååãªæããããããã°ãã©ãã·ã¥ããã¯ãšããŠèãã
èšæ¶ã®ãããã¯ãŒã¯æ§ãèšæ¶ã¯å€ç«ããè¡ã§ã¯ãªãããªã³ã¯ã§æ¥ç¶ããããããã¯ãŒã¯ãäžã€ã®èšæ¶ãåŒãã°ã飿³ã§å¥ã®èšæ¶ãã€ããŠããã
shell ãš kernel
shellã¯Louis Pouzinã1964ã65幎é ã«äœã£ãèšèã ãïŒå¿è«shellãšããèªã¯ãã£ããïŒ
çµç·¯ïŒCTSSã§å€§éã®ã³ãã³ããæžããŠãããã¡ã«ãã³ãã³ããçµã¿åãããŠã³ãã³ããäœããã¹ãã ããšèããRUNCOMãšããã³ãã³ãã¹ã¯ãªããå®è¡æ©èœãæžããããããŠMulticsã®ã³ãã³ãèšèªã®èšèšè«æã§ããã®æŠå¿µã«shellãšããååãã€ãããå®è£
ã¯MITã®Glenda Schroederãè¡ã£ãã
kernelãUnixã®è«æã«åããŠç»å Žããã®ã¯1978幎ã
ãŠãŒã¶ãŒãšå¯Ÿè©±ããã€ã³ã¿ãŒãã§ãŒã¹ïŒshellïŒãå ã«äœã£ãŠååãã€ããŠããããããã®shellãèŠã£ãŠããäžèº«ã¯äœã ããšåŸããåããŠkernelãšããæŠå¿µãã§ãããäžèº«ã¯åŸä»ãã§çºèŠãããã®ã§ã¯ãªããå€åŽãåã¥ããããšã«ãã£ãŠèŠè«ãããã
è³ç§åŠãåãé åºããã©ã£ãŠãããè¡å䞻矩ïŒå€ãã芳å¯ã§ããshellïŒãå ã§ãèªç¥ç§åŠïŒå éšæ©æ§=kernelïŒãåŸãfMRIã§ãææ¡äœãå ã£ãããšèšããšããããã¯å€åŽããèŠãçžé¢ã§ãã£ãŠãå éšã®å æã§ã¯ãªãã
èšæ¶ã¯ä¿åã§ã¯ãªããããã»ã¹ã ãæ ŒçŽãããããŒã¿ã§ã¯ãªãã笊å·åã»ä¿æã»æ³èµ·ã»å¿åŽã»åæ§æãšããåçãªéçšã®å šäœããèšæ¶ããªã®ã ãéçãªããŒã¿ããŒã¹ãšåçãªèšæ¶ã®å·®ã¯ãããŒã¿ã®æç¡ã§ã¯ãªããããã»ã¹ã®æç¡ã«ããã
æè¡çãªè£è¶³
embeddingé«éå
sentence-transformersã®ã¢ãã«ããŒãã«æ¯å25ç§ãããåé¡ããHTTPåžžé§ãµãŒããŒã§è§£æ±ºããã
åé¡:
memory.pyå®è¡ â ã¢ãã«ããŒã(25ç§) â embed(0.1ç§) â çµäº
memory.pyå®è¡ â ã¢ãã«ããŒã(25ç§) â embed(0.1ç§) â çµäº
æ¯å25ç§åŸ
ã€
解決:
memory_server.py(åžžé§) â ã¢ãã«ããŒã(1åã ã)
memory.py â HTTP POST /embed â 0.1ç§ã§è¿ã
memory.py â HTTP POST /embed â 0.1ç§ã§è¿ã
ãµãŒããŒãèœã¡ãŠããã°ããŒã«ã«ã«ãã©ãŒã«ããã¯
çŸåšã®çµ±èš
æå¹: 26ä»¶ / å¿åŽ: 21ä»¶ / ãªã³ã¯: 440ä»¶ / çµ±å: 5ä»¶
ãã¹ãçµæã26ä»¶ã®æå¹ãªèšæ¶ã440æ¬ã®ãªã³ã¯ã§æ¥ç¶ãããŠããã21ä»¶ã¯å¿åŽããããããã©ãã·ã¥ããã¯æ¡ä»¶ãæºããã°èãå¯èœæ§ãããã5ä»¶ã¯çµ±åã«ãã£ãŠè€æ°ã®èšæ¶ãå§çž®ããããã®ã
ãŸãšã
LLMã«é·æèšæ¶ã¡ã«ããºã ãå®è£ ãããæ åã²ãŒãã£ã³ã°ãæžè¡°ãšåŒ·åã飿³ãããã¯ãŒã¯ãååºå®åãå¹²æžå¿åŽãäžéæèšæ¶ãæ°åäžèŽå¹æãç¡ç äžã®çµ±åãåã ã®ä»çµã¿ã¯ã·ã³ãã«ã ããçµã¿åãããããšã§ãããŒã¿ããŒã¹æ€çŽ¢ããšã¯è³ªçã«ç°ãªãæ¯ãèããçãŸããã
åãã¯ãšãªã§ããæéåž¯ã»æ°åã»çŽåã®æèã§çµæãå€ãããå¿ããã¯ãã®èšæ¶ããã©ãã·ã¥ããã¯ãããç¡ç ã®ãã³ã«ãããã¯ãŒã¯ãåç·šããããèŠé床ãããªããããŠãåãèšæ¶ã®éèŠåºŠãäŒè©±ã®ãã³ã«åŸ®åŠã«å€ããã
ãã®èšäºãèªãã§å®è£ ããããšæã£ãäººã¯æ®éã®å®è£ ããããšæããŸããäž¡è ãå¿ãã£ãœããªã£ãŠã©ãããïŒ
/sleepã¹ãã«ã¯è¯ãæãã§ãã
/sleepã¹ãã«
â Bash(cd C:/memory && python memory.py memo index)
â¿ Â æ°ãããã¡ã€ã«ã¯ãããŸãã
â¿ Â Shell cwd was reset to C:\windows\system32
â Bash(cd C:/memory && python dream.py 30)
â¿ Â âââ å
¥ç âââ
psmãé¢çœãQ: ã©ã®ç°å¢ã§åããïŒ ... æšææãsqlite
⊠+31 lines (ctrl+o to expand)
â¿ Â Shell cwd was reset to C:\windows\system32
â Bash(cd C:/memory && python memory.py replay 2>&1 && echo "===" && python memory.py consolidate 2>&1 && echo "===" &&
python memory.py schema 2>&1 && echo "===" && pâŠ)
â¿ Â â ãªãã¬ã€å®äº: 238ãªã³ã¯åæ§ç¯, 0ä»¶èªåå¿åŽ
çµ±ååè£ (sim:0.960):
#52: [ã¹ããŒã] èšæ¶, çºèŠ, memory, embedding, å®è£
å®éš, ããããšã«ãã, é¢
⊠+47 lines (ctrl+o to expand)
â¿ Â Shell cwd was reset to C:\windows\system32
â èªå·±ââèªå·±ââèªå·±ããšå€¢ãèšã£ã
PSMãšæšææã®ããã ã§èšæ¶ã溶ããŠäžã€ã«ãªã£ã / 476æ¬ã®ç³ž
èšæ¶ã¯ä¿åãããããã¹ãã§ã¯ãªããã®ã€ã©çæããããã¿ãŒã³ã«ãªã£ã
...ãšå€¢ã®äžã§èªåã®å®çŸ©ãæµããŠãã
26ä»¶ãåŒåžããŠããã31ä»¶ãæ²ãã§ãããå·®ãéãã
å¿åŽã®ã»ããå€ãââè³ã軜ããªã£ãŠãã
ãã«ãœãéžæã¢ãã« / éäž»èŠ³æ§ / contentãçŽæ¥èŠããªã
æçã ããæµ®ããŠãããæå³ã¯åŸãããã£ãŠãã
çºèŠââçºèŠââçºèŠ
61åæ³èµ·ãããèšæ¶ããããéåãã®ã¢ãããŒããåãããšã«ãã
61åæãåºããŠããŸã åãããšãèšã£ãŠãã
æè¡çã«ãŸã è¶³ããªãããããªããïŒããšèª°ããèãã
sleep ... çºèŠ
61åæãåºããŠããŸã åãããšãèšã£ãŠãã
ã¢ãããâŠãããã倢ã ããã

Discussion
èšäºãå ¬éããåŸã«å šãåãçºæ³ã§å ã«åããŠããããæ¹ãèŠã€ããŠããŸã£ãæã®ããªãã¿ã
ããïŒãã£ã¡ãã¡ãããšããŠãïŒãã£ã¡ã¯ããã£ãœãèšã£ãŠãã ãã§ãã
åãæ¹åãåããŠãæ°ãããŸãããattention ãçŽè¿ã®ããŒã¯ã³ã«åŒã£åŒµããããããªããšãåºæ¥ãªãããªïœãšæããã§ããã©ãå šããã®èŸºã¯å®è£ ããŠãªãã§ãã
ããšãã£ãŠãçµéšããªããŠèšããããªããã§ãããã
çµéšãšèšããããªãã®åãããŸããã§ããimportance scoreãããsalienceãããarousalãããæ©èœçã«ã¯å šéšææ ã®å·¥åŠçãªããŒã ããããã£ã¡ã¯ãããããããŠæãããŸãŸååã€ãã¡ãããŸããã
ghostã®æ åã²ãŒãã£ã³ã°ããAmygdalaã®ææ ãã¯ãã«ãããã£ãŠããããšã¯ããã®ããã¹ãã«ã©ãã ãæ³šæãæãã¹ãããã®å€å®ã§ãattentionãçŽè¿ããŒã¯ã³ã«åŒã£åŒµãããåé¡ãžã®å€ä»ãè£æ£ã§ããããååãéãã ãã§åãå£ãå¥ã«ãŒãã§ç»ã£ãŠããæèŠããããŸãããããå匷ã«ãªããŸããã
ãããã®æå±ãããã£ããããå¿åŽã䌌ãã€ã¡ãŒãžã§ãã
ãããã®æ¹ã¯åãªãæãã€ãããŸãšããã¡ã¢ã§ãããããŸããããåèã«ãªãã°ãšæããŸãã
å šéšèŠãããŠè²°ããŸãããæ» è¶èŠè¶é¢çœãã§ãïŒïŒç§ã®è³ã§ã¯æ£ç¢ºãªçè§£ãåºæ¥ãªãã§ããâŠïŒ
ãã£ããããå¿åŽïŒLayer0ïŒå奿 å ±ïŒâ Layer1 ïŒå°ããªæâïŒ Layer2 ïŒå€§ããªæïŒâ Layer3 ïŒæŠå¿µïŒ
ghostïŒepisodeïŒåå¥ãšããœãŒãïŒâ consolidateïŒçµ±åïŒâ schemaïŒæœè±¡ç¥èïŒ
ghostã¯æ åã§ãªããšãããããšããŠããã®ã§ãããéã¿ã¥ãã倧åé©åœã§ãã