Всички публикации
ИзмерванеАвтоматични графициТочностСъпоставяне на устройствотоПродуктова разработка

Точност на автоматичното отчитане: с две трети по-малко грешни записи

Публикувахме праговете, по които работеше автоматичният ни график, и после ги измерихме. Осем дни по-късно ги няма — сега се извеждат от вашето собствено работно пространство.

TO
Екипът на TimerOS
Vezoft
9 мин четене

Преди седмица публикувахме праговете зад автоматичното съпоставяне със задачи — резултат 0,45, преднина 0,15, шейсет секунди съгласие. Струваше ни се честното нещо. После измерихме какво правят тези числа в истински работни пространства и се оказа, че публикуването им беше честно за грешното нещо: праг, който сме избрали веднъж, в нашия офис, не може да е верен за вашия списък със задачи.

Оттогава съпоставянето е построено наново около един въпрос — откъде знаеш това? — и фиксираните числа до голяма степен ги няма. Летвата, която едно записване трябва да мине, вече се пресмята от вашите собствени проекти, на всеки няколко минути, на вашата собствена машина. Тази статия е измерването: какво броим, какво се промени и кое е единственото правило, оцеляло през всяко пренаписване.

Обхватът, преди числата
Съпоставянето със задачи все още е отбелязано като Бета в настолното приложение. Работи само в настолното приложение за Windows — уеб таблото няма съпоставяне — включено е по подразбиране и може да се изключи, а разпределените часове все още не сглобяват фактура. Устройството на първоначалното съпоставяне е описано отделно; тази статия го приема за известно.

Какво трябва да значи „точно“, преди да може да се измери

„Точност“ е безполезна дума тук, докато не кажете коя грешка броите. Автоматичният отчет за времето има две и те струват съвсем различни неща. Може да пропусне работа, която е трябвало да разпознае — това го забелязвате веднага, защото редът е празен. Или може да запише време срещу задача, която няма нищо общо с него — а това изглежда точно като верен ред и изобщо няма да го забележите.

Едно грешно записване струва повече от едно липсващо, защото не можете да го видите.
Същото ограничение, около което беше построена първата версия, сега с прикачено число.

Затова числото, което докладваме, е от втория вид. Тестът подава на съпоставянето работа, която принадлежи на проект, какъвто работното пространство няма, и брои колко често то все пак записва. Всеки отговор е грешен по конструкция, така че при оценяването няма място за преценка.

Фигура 1 · Изваждане на един проект
1 · Прозорецът
Пусни iOS бетата в TestFlight — Google Chrome
Истинско заглавие на задача, облечено в обкръжението, което носи истински прозорец.
2 · Работното пространство
Разработка на iOS приложениеДизайн и изработка на сайтМиграция в облака+ още 17
Проектът, на който принадлежи заглавието, е премахнат. Всичко останало остава.
3 · Верният отговор
Не казвай нищо
Работата не е в това работно пространство. Всичко записано тук е фалшиво положително и се брои.
Изпълнява се по веднъж за всяко заглавие в двайсетте проектни плана, които идват с TimerOS — общо 481 прозореца. Измерването има смисъл само защото верният отговор е известен предварително и е винаги един и същ: мълчание.

Второ изпълнение прави обратното и има същото значение: всяко едно от тези 481 заглавия се подава на работно пространство, което съдържа съответния проект. Там мълчанието е провалът. Съпоставяне може да постигне безупречен дял фалшиви положителни просто като никога не проговори, така че двете изпълнения се четат заедно или изобщо не се четат. В днешната версия второто изпълнение разпознава 453 от 481, мълчи при 28 и назовава грешен проект точно нула пъти — а тази нула е твърдо условие в тестовете, не пожелание.

Числото и къде отиде то

Фигура 2 · Грешни записвания като дял от 481 прозореца, описващи отсъстваща работа
Грешни записвания% от прозорците
16.8
11.4
5.6
v1.6.7v1.6.8v1.8.0
По-ниското е по-добро. Всяка стъпка е поименна промяна с тест, който я заковава — броевете са записани в кода като бюджети, които могат само да намаляват.

Две трети от грешните записвания ги няма и нито една от двете стъпки не струва разпознаване на истинска работа. Пълната разбивка на това последно изпълнение си струва да се види цяла, защото средният отрязък е интересният — там отива едно записване, когато приложението реши, че не е достатъчно сигурно, за да запише час, но е достатъчно сигурно, за да попита.

Фигура 3 · Всичките 481 прозореца, описващи работа, каквато работното пространство няма
481прозореца
Изход за всеки прозорец
Мълчание — вярно · 43791%
Предложен грешен проект · 174%
Записана грешна задача · 276%
Измерено на пуснатата версия. 17-те грешни предложения струват един поглед и едно отхвърляне; 27-те грешни записвания са числото, което наистина има значение, защото тях никой не ги вижда.

Ето какво всъщност беше всяка от трите промени.

1. Отказ да се записва прозорец, за който не може да се даде сметка

Старата порта питаше дали дадена задача е получила достатъчно висок резултат. Тя никога не задаваше обратния въпрос: обяснява ли този кандидат прозореца? Страница с девет думи върху нея, от които една задача е съвпаднала с две, можеше да мине всеки праг по тези две думи, докато другите седем — тези, които всъщност казват каква е страницата — оставаха непроверени.

Записването вече изисква две съотношения, а не едно. Поне половината съдържателни думи на екрана трябва да са думи, разпознати от този кандидат, и поне 30% от собствения речник на задачата трябва да се появи. Пропадне ли едното, записването се отказва. Съществено е, че се отказва, а не се изхвърля: кандидатът пада едно ниво по-надолу и пристига като предложение с едно натискане. От грешните записвания, които това премахна, повечето минаха в пълно мълчание, а шепа се върнаха като въпроси.

2. Работното пространство само да си вдига летвата

Точно тази промяна прави предишната статия остаряла. Праг от 0,45 е твърдение за това колко объркващо си приличат вашите проекти — а ние нямаме как да го знаем. Две агенции, едната с двайсет несвързани клиентски проекта, а другата с четири почти еднакви преработки, имат нужда от различни числа, а втората има нужда от число, което никаква грижа в нашия офис не би произвела.

Затова настолното приложение го извежда само. На всеки няколко минути то преточкува детерминирана извадка от вашите заглавия на задачи срещу вашите проекти и задава два въпроса: как изглежда верният отговор тук и кой е най-добрият грешен отговор, който това работно пространство може да произведе? Летвата за записване се слага над втория, с разширяваща се отстъпка, когато има малко примери, от които да се учи.

Фигура 4 · Откъде идва един праг
Избран веднъж, от насИзведен от вашето работно пространство
Какво го определяПреценка, направена върху нашите имена на задачиВашите заглавия на задачи, преточкувани срещу вашите проекти
Когато проектите се припокриватСъщата летва; повече грешни записванияЛетвата се вдига над най-добрия наличен грешен отговор
Когато не може да бъде пресметнатнеприложимо — числото винаги е налицеВръща се към заложеното число и записва защо
Ако думите не могат да разделят работатаВсе пак записва нещоЗаписването се изключва; всичко става предложение
Оградите, които управляват обяснението, се извеждат от ниската опашка на собствените верни отговори на работното пространство, а не от грешните му — правилото е, че никога не може да се иска повече обяснение, отколкото дават самите ви верни съвпадения.

Точно за последния ред сме най-привързани. Ако десетият персентил на верните отговори на едно работно пространство стои под деветдесетия персентил на най-добрите му грешни, то думите просто не могат да различат проектите в това работно пространство — и приложението го казва и спира да записва, вместо да върши същото гадаене с уверено лице. Таймерът продължава да върви. Всичко пада до предложение с едно натискане, а причината се записва в дневника на сесията.

3. Претегляне на споделената дума вместо изтриване

Една по-ранна поправка изхвърляше изцяло от корпуса всяка дума, срещаща се в два проекта, с разсъждението, че споделена дума не различава нищо. Тя беше твърде груба по начин, който отне време да се забележи: работно пространство с проекти на име Дизайн на сайт и Android приложение щеше да изхвърли името на самата фирма, което е правилно, но щеше да изхвърли и дизайн — така проектът, чието име съдържа думата, не можеше да я използва.

Думите вече се точкуват според това колко над случайността сочат към един проект, по скала, мерена спрямо това колко проекта имате. При два проекта дума, разделена поравно между тях, е точно ези-тура, а преди изглеждаше наполовина информативна. В резултат разпознаването на истинска работа се вдигна, а не падна.

0
прозореца в изпълнението за фалшиви положителни
0.0%
от тях още записват (беше 16,8%)
0
грешни записвания при работа, която пространството има
0 дни
дневник на сесията, на вашето устройство

Правилото, което оцеля през всяко пренаписване

Първоначалното съпоставяне четеше едно нещо: заглавието на прозореца. Сега чете повече — домейна на браузъра и първия участък от пътя, името на приложението, каквито домейни и ключови думи сте обявили на даден проект. Звучи като праволинейно разширяване на доказателствата, а е най-опасната промяна в цялата поредица, защото тези сигнали разпознават място, а не работа. Това, че сте в домейна на своя клиент, казва в кой проект сте. То не казва абсолютно нищо за това коя задача.

Мястото може да породи въпрос. Само думите в прозореца могат да породят записване.
Записано в кода като инвариант и тествано като такъв.
Фигура 5 · Какво е позволено на всеки канал
Закачили сте задача
Умишлено човешко изявление
може да записва часове
Думи в заглавието на прозореца
„Оправи синхрона на фактурите“ срещу списъка ви със задачи
може да записва часове
Отворена задача вътре в TimerOS
Таблото казва какво е на екрана
може да записва часове
Адресната лента или приложението
play.google.com /console · figma.exe
може само да пита
Прилика с проекта
Сходство на устройството, без обща дума
може само да пита
Нищо от изброеното
Нищо не разпозна този прозорец
остава неразпределено
Чете се отгоре надолу: печели първият канал, който отговори. Канал от долната половина може да сложи предложение с едно натискане върху лентата на таймера и може да подреди какво предлага то, но никога не може сам да запише час.

Причината това да е твърдо правило, а не предпочитание, е че го нарушихме два пъти и двата пъти струваше истински часове. Проект, кръстен на продукта, означаваше, че името на продукта се появява в заглавието на всеки раздел в работното пространство, където тихо служеше за втората „независима“ дума, каквато уверено записване изисква. А връзка, научена от нечии натискания — две потвърждения върху github.com — започна да записва разглеждането на лични хранилища. Научените сигнали вече не записват нищо. Те подреждат въпрос, на който вие пак трябва да отговорите.

Една дума не е доказателство

Най-ясното доказателство за всичко това дойде от измерване, а не от разсъждаване. За деветнайсет часа истинска употреба таймерът повдигна 379 въпроса. От тях 264 идваха от една-единствена обикновена дума: monitor на сайт за наблюдение на състоянието, console на услуга за планиране, model в GitHub, links в конзола за търсене. На всички тях беше предлаган един и същ несвързан проект.

Логиката, която ги произведе, не беше очевидно грешна. Дума, срещаща се в точно една от вашите задачи, е рядка, а рядкото прилича на доказателство — точно то кара номерата на тикетите да работят. Но рядко във вашето работно пространство не е същото като смислено навън в света, а назоваването на проект вече изисква две различни думи. Случаите, които и преди работеха, имаха две през цялото време; онези 264 нямаха.

Защо изобщо има дневник на сесията
Нищо от горното не може да се извади от съобщение за грешка. Настолното приложение води локален запис какво е видяло, какво е решило, защо и какво сте направили вие по въпроса — ограничен до 30 дни, чистен автоматично, никога предаван. Той е това, което превръща „понякога ми се струва сгрешено“ в 264 от 379, което вече е поправимо твърдение.

Когато думи изобщо няма

Повечето прозорци не споделят нито една дума с която и да е задача. Една страница може да е съвсем очевидно за вашата Android работа и да не казва нищо, което списъкът ви със задачи някога е чувал, и всеки описан по-горе механизъм ще си замълчи — и правилно. Последното издание в тази поредица добави канал точно за този случай.

Настолното приложение вече носи малък езиков модел с отворен код, лицензиран под MIT и вграден в самия инсталатор, който превръща текст във вектор. Всеки от вашите проекти получава такъв, изграден от заглавията на задачите му; страницата на екрана получава такъв; приложението ги сравнява. Когато страницата е близо до един проект и явно по-далеч от останалите, се предлага този проект. Става дума за около 17 MB таблици и едно скаларно произведение — без сървър, без графичен процесор, без заявка, напускаща машината.

Това, което го прави годен за употреба, е дисциплината около него, цялата определена, преди да излезе и един ред от него. Той никога не записва. Никога не отменя проект, който думите вече са назовали. Не може да се обади повече от веднъж на час за един и същ сайт или приложение, защото се задейства точно там, където нищо друго не може, така че няма какво да го провери — ограничението на честотата е проверката. През всичките 190 двойки от вградените проектни планове 99,9% от проектите, назовани по този начин, бяха верните, с грешно предложение при 0,4% от страниците за работа, каквато работното пространство не съдържа.

Бележка за думите, понеже сме строги за това другаде: съпоставянето по думи не е изкуствен интелект. То е детерминирана точкуваща функция и се държи еднакво независимо дали режимът ви на отчитане е Автоматичен, или По правила. Каналът за прилика е модел и работи само в Автоматичен режим — а точно за това служи режимът по правила.

Какво още греши

  • 5,6% не е нула и останалите случаи не са на един праг разстояние. Те са прозорци, описващи работа, която наистина прилича на работа, каквато имате, и никаква ограда не може да ги раздели, без да отказва и верни отговори. Следващият лост е по-богат речник, с който да се обясняват прозорците, а не по-стегната летва.
  • Едно записване все още не се допитва до мястото. Страница вътре в конзолата на вашия клиент може да запише задача от друг проект по една силна дума, защото нивото, което записва, умишлено никога не се научи да чете адресната лента. Това е известна дупка, върху която стои падащ тест.
  • Първата минута на всеки прозорец е мълчалива. Записването чака шейсет секунди устойчиво съгласие; въпросът чака десет. Това е умишлено и наистина се усеща като бавност.
  • Обявените сигнали са най-евтината поправка и нищо не ви ги иска. Да кажете на един проект кои домейни и приложения му принадлежат, бие всяко извеждане в тази статия, а това е поле в проекта, което повечето хора изобщо не намират. Това е провал на продукта, а не на съпоставянето, и е единственото в този списък, което ни е най-трудно да защитим.
Къде да го намерите
Обновете настолното приложение за Windows до v1.9.0 или по-ново. Съпоставянето е включено по подразбиране и може да се изключи от Настройки; лентата на таймера показва върху какво според нея работите, а панелът „Време по задачи“ на страницата за ефективност е мястото, където преглеждате, преназначавате или отвързвате. Включено е във всеки план, от Freelancer нагоре, без ограничение по ниво. Изтеглете TimerOS за Windows или започнете пробен период.
Пратете ни прозореца, който го заблуди
Всяко подобрение по-горе дойде от истинския екран на един човек, а не от еталонен тест. Ако таймерът записва на грешна задача или пропуска работа, която очевидно е трябвало да улови, заглавието на прозореца и името на задачата стигат, за да го възпроизведем — [email protected].

Ако трябва да задържим един урок от тази седмица, той е: праг без произход е предположение с десетична точка. Нашият вече има произход — изведен е, записан е, а когато работното пространство не може да поддържа такъв, приложението го казва, вместо да се преструва.

Вижте го на собствената си машина.

Четиринайсет дни пробен период — добавяте карта при регистрацията и не се таксува нищо, ако се откажете преди края. Инсталирайте настолното приложение и вижте как един ден се класифицира сам.