Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Improve search parameters on trial detail page #3651

Merged
merged 9 commits into from
May 26, 2021

Conversation

Lijiaoa
Copy link
Contributor

@Lijiaoa Lijiaoa commented May 18, 2021

final design: https://www.figma.com/file/HX8Og03m2rwNU1TS6rMTF1/0416-Fluent-Web-NNI-Filter?node-id=40047%3A6959

related issue: #3621
related user issue: #3024
related design issue: #3099 (no use this design)

support:

  1. support search Trial id, Trial No., Tiral status, Trial parameters at the same time

Tiral id:o // id 包含字母 o 的所有 trial
Trial No.:3 // Trial No. 等于 3 的 trial
Status:[SUCCEEDED] // status 是 SUCCEEDED 的所有 trial
Status:[SUCCEEDED,RUNNING] // status 等于 SUCCEEDED 和 RUNNING
Status≠[SUCCEEDED] // status 不是 SUCCEEDED 的所有 trial

  1. nested experiment still could only search Trial id, Trial No. and status
  2. search parameters support these format:

如果conv_size的类型不等于 choice
conv_size>5 // 大于5
conv_size:5 // 等于
conv_size<5 // 小于5
conv_size:[1,5] // 取 1-5 之间的值,不含 1-5

如果conv_size的类型等于 choice
conv_size:[1] // 筛选 conv_size 值为 1 的 trial
conv_size:[1,5] // 筛选 conv_size 值为 1 和 5 的 trial
conv_size≠[1] // 筛选 conv_size 不是 1 的 trial
conv_size≠[1,5] // 筛选 conv_size 不是 1 也不是 5 的 trial

  1. you could input these rules in the search box, and then hit Enter to search trial, Please use semicolons to separate conditions
    look like:

conv_size:[1,7]; hidden_size>11; Trial id:o; Status≠RUNNING;

  • if parameter type is choice, show dropdown and could select many value
  • 第一个input 没填,提示,第二个不填按最大值算
  • test

next release:在 searchBox 里更方便的删除词条

比如,一次退格删以分号为界的一个条件

@ultmaster ultmaster linked an issue May 19, 2021 that may be closed by this pull request
interface SearchItems {
name: string;
operator: string;
value1: string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are value1 and value2

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

value1 is to store firstInput val(user input), it maybe Trial id, Trial No. and parameter value
value2 is to strore secondInput val(user input), it is parameter seconde value, it's operator is between

@@ -2,7 +2,7 @@
const METRIC_GROUP_UPDATE_THRESHOLD = 100;
const METRIC_GROUP_UPDATE_SIZE = 20;

const MANAGER_IP = `/api/v1/nni`;
const MANAGER_IP = `http://13.77.78.63:8080/api/v1/nni`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok.

const [trialStatusOperator, setTrialStatusOperator] = useState(getInputsVal()[1]);
const [firstInputVal, setFirstInputVal] = useState(getInputsVal()[1]);
const [secondInputVal, setSecondInputVal] = useState(getInputsVal()[2]);
const operatorList = isStatus ? ['=', '≠'] : ['between', '>', '<', '=', '≠'];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this check should be by type.

  • In case of string: equal, not equal.
  • In case of number: between, less, greater, equal, ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

think about user could input values to search trials, so only parse data type on searching trial function.
search filter list only store origin user input

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So what's the current support for string?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please refer to learning_rate:(demo link: http://13.77.78.63:8000/detail)
image
image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh. This looks awful. Can we make this unsupported if it's too hard to implement.

(I mean directly removing learning_rate from the dropdown menu)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete the support of choice parameter is easy to do...
I'll demo the latest progress in the meeting to confirm the final version!

} else {
// operator is 'between'
result = result.filter(trial => trial[parameter] > element.value1 && trial[parameter] < element.value2);
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't filter by metrics now, can we?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe next release:)

@ultmaster ultmaster requested a review from liuzhe-lz May 20, 2021 08:30
@Lijiaoa
Copy link
Contributor Author

Lijiaoa commented May 21, 2021

will push next commit on Sunday~

@ultmaster ultmaster merged commit 4ccc940 into microsoft:master May 26, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve search parameters on trial detail page
3 participants