Merge pull request #320 from unslothai/fix/stale-dataset-split-on-switch
Fix/stale dataset split on switch
This commit is contained in:
commit
2c879bf4a4
2 changed files with 22 additions and 13 deletions
|
|
@ -48,33 +48,34 @@ export function HfDatasetSubsetSplitSelectors({
|
|||
const {
|
||||
subsets: hfSubsets,
|
||||
splits: hfSplits,
|
||||
hasMultipleSubsets,
|
||||
isLoading,
|
||||
error,
|
||||
} = useHfDatasetSplits(enabled ? datasetName : null, datasetSubset, {
|
||||
accessToken,
|
||||
});
|
||||
|
||||
// Auto-select subset and split in one pass to avoid racing effects
|
||||
useEffect(() => {
|
||||
if (hfSubsets.length === 1 && datasetSubset !== hfSubsets[0]) {
|
||||
setDatasetSubset(hfSubsets[0]);
|
||||
}
|
||||
}, [hfSubsets, datasetSubset, setDatasetSubset]);
|
||||
if (hfSubsets.length === 0) return;
|
||||
|
||||
useEffect(() => {
|
||||
// --- subset ---
|
||||
if (!datasetSubset || !hfSubsets.includes(datasetSubset)) {
|
||||
const pick = hfSubsets.includes("default") ? "default" : hfSubsets[0];
|
||||
setDatasetSubset(pick);
|
||||
return;
|
||||
}
|
||||
|
||||
// --- split (only once subset is settled) ---
|
||||
if (hfSplits.length === 0) return;
|
||||
if (hasMultipleSubsets && !datasetSubset) return;
|
||||
if (hfSplits.length === 1 && datasetSplit !== hfSplits[0]) {
|
||||
setDatasetSplit(hfSplits[0]);
|
||||
} else if (!datasetSplit && hfSplits.includes("train")) {
|
||||
setDatasetSplit("train");
|
||||
} else if (!datasetSplit) {
|
||||
setDatasetSplit(hfSplits[0]);
|
||||
if (!datasetSplit || !hfSplits.includes(datasetSplit)) {
|
||||
const pick = hfSplits.includes("train") ? "train" : hfSplits[0];
|
||||
setDatasetSplit(pick);
|
||||
}
|
||||
}, [
|
||||
hfSubsets,
|
||||
hfSplits,
|
||||
hasMultipleSubsets,
|
||||
datasetSubset,
|
||||
setDatasetSubset,
|
||||
datasetSplit,
|
||||
setDatasetSplit,
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -86,6 +86,14 @@ export function useHfDatasetSplits(
|
|||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
|
||||
const [prevDatasetName, setPrevDatasetName] = useState(datasetName);
|
||||
if (datasetName !== prevDatasetName) {
|
||||
setPrevDatasetName(datasetName);
|
||||
setEntries([]);
|
||||
setError(null);
|
||||
}
|
||||
|
||||
const accessToken = options?.accessToken;
|
||||
|
||||
const fetchSplits = useCallback(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue