CrewAI меморија: 1.536 и 3.072 димензии не се мешаат

|Автор: Уредувачки тим на QUASA|5 мин. читање| 1
CrewAI меморија: 1.536 и 3.072 димензии не се мешаат

Во CrewAI Memory, стандардниот OpenAI embedder создава вектори со 3.072 димензии, а постојно складиште со вектори од 1.536 димензии може да предизвика грешка при промена на моделот, како што наведува документацијата за CrewAI Memory. Ако старите записи ви требаат, не ја ресетирајте меморијата веднаш: утврдете со кој embedder е создадена, направете копија и изберете дали ќе го задржите моделот или ќе изградите нов индекс од содржината.

Грешката покажува дека должината на новите вектори не одговара на постојното складиште. Таа сама по себе не го открива името на стариот модел, ниту кажува дали текстот од кој се создадени векторите сè уште е достапен. Токму тие две информации одредуваат дали е можно реиндексирање без губење на меморијата.

Пронајдете го стариот embedder и активното складиште

Почнете од конфигурацијата со која биле запишани постојните податоци, а не само од тековниот код. Проверете дали embedder бил зададен директно во Memory, преку конфигурацијата на Crew со memory=True или преку поставките на провајдерот. Кај Azure проверете и кој embedding модел стои зад користениот deployment. Ако моделот не бил зададен експлицитно, утврдете која верзија и конфигурација на CrewAI ја создале меморијата, наместо да претпоставите дека тогашниот стандард бил ист како сегашниот.

Потоа проверете ја патеката што навистина ја отвора апликацијата. Според документацијата за складирање во CrewAI, Memory стандардно користи LanceDB во ./.crewai/memory, додека CREWAI_STORAGE_DIR или параметарот storage можат да ја сменат локацијата. Ако апликацијата користи сопствен backend, постапката мора да се однесува на него. Запишете ја активната патека пред какво било копирање или ресетирање: промена во погрешна директорија ќе ја остави грешката недопрена.

Зачувајте ја содржината пред да ја менувате меморијата

За меморија што треба да се задржи, запрете ги процесите што запишуваат и направете копија од целото активно складиште. Забележете ги верзијата на CrewAI, конфигурацијата на стариот embedder, патеката и планираниот нов модел. Копијата чува можност за враќање на старата состојба; сместете ја одвоено од патеката што ќе ја користи новата инстанца.

За нов индекс е потребна и содржината од која ќе се создадат нови вектори. Утврдете дали оригиналниот текст постои во апликацијата што го внесла или може да се прочита од старата Memory инстанца со претходниот embedder. При инвентарот зачувајте ги опсезите, категориите, метаподатоците и ознаките за извор и приватност што влијаат врз повикувањето. Ако имате само копија од векторската база, не претпоставувајте дека таа автоматски претставува подготвен извоз за нов модел.

Изберете меѓу задржување, реиндексирање и reset

Одлуката зависи од вредноста на старите записи и од тоа дали нивната текстуална содржина е достапна:

  1. Задржете го стариот embedder кога записите мора веднаш да останат достапни, а миграцијата може да почека. Поставете го претходниот модел експлицитно во конфигурацијата и проверете читање и ново запишување во постојното складиште. Ова го враќа користењето на старата меморија, но не ја префрла на новиот модел.
  2. Реиндексирајте кога сакате нов модел и можете да го добиете текстот на записите. Создајте празно складиште на посебна патека и внесете ја зачуваната содржина со новиот embedder. Старите нумерички вектори не се замена за вектори создадени од новиот модел.
  3. Ресетирајте кога меморијата е локален тест или записите смеат да се изгубат. Командата crewai reset-memories -m е документирана за унифицираната меморија. Пред да ја извршите, потврдете ја активната патека и дека од неа не ви требаат податоци.

Ако оригиналниот текст не е достапен, задржувањето на стариот embedder е најнепосредниот начин записите да останат употребливи додека ја истражувате можноста за извоз. Reset е одлука за губење на тие записи, а не начин да се претворат во нов формат. За продукциска меморија, проверете ја копијата пред да започнете каква било постапка што ја менува активната база.

Изградете нов индекс на одделна патека

Отворете ја старата меморија со нејзината претходна конфигурација и направете инвентар по опсег. Методите tree(), info() и list_records() помагаат да се видат структурата, бројот и содржината на записите. Проверете колку записи враќа конкретниот повик во вашата инсталирана верзија; краток приказ на еден опсег не значи дека сте ја извезле целата меморија. Кога оригиналните текстови се зачувани и надвор од CrewAI, споредете ги со инвентарот пред повторно внесување.

Насочете нова Memory инстанца кон празна storage патека и задајте го избраниот embedder. Внесете ја текстуалната содржина со потребните опсези, категории и ознаки, па почекајте да завршат запишувањата пред проверката. При повторно внесување, анализата и спојувањето слични записи можат да влијаат врз структурата и бројот на резултатите; затоа споредувајте и содржина, а не само вкупен број.

Упатството на OpenAI за embeddings наведува стандардни должини од 1.536 за text-embedding-3-small и 3.072 за text-embedding-3-large, како и параметар dimensions за скратување на излезот. Иста должина сама по себе не значи дека векторите од различни модели се заменливи за пребарување. При промена на моделот, создавајте ги складираните вектори и векторите на новите прашања со истата избрана конфигурација.

Проверете го повикувањето пред префрлање

Изберете мал контролен сет од дозволени, реални записи за кои однапред знаете што треба да се пронајде. Поставете соодветни прашања преку recall() во нивните опсези и проверете дали резултатите ја содржат очекуваната информација. Вклучете и прашање во опсег каде што таа информација не треба да се појави: така ќе откриете погрешно пренесени или прешироко достапни записи.

Споредете ги опсезите и пренесената содржина со инвентарот, направете едно ново запишување и повторете го повикувањето откако повторно ќе го отворите новото складиште. Потоа префрлете ја продукциската патека. Задржете ги копијата и старата конфигурација додека не потврдите дека вообичаените задачи ја користат новата меморија и дека пристапот до приватните записи останал правилен.

Прочитајте и:

Сподели:

Претплатете се на нашиот билтен

Добивајте ги најновите вести за Web3, AI и крипто директно во вашето сандаче.

0