mirror of
https://github.com/exo-explore/exo.git
synced 2026-01-20 11:58:57 -05:00
Compare commits
1 Commits
new-bridge
...
revert-glm
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0bbc4103c |
9
dashboard/package-lock.json
generated
9
dashboard/package-lock.json
generated
@@ -863,6 +863,7 @@
|
||||
"integrity": "sha512-oH8tXw7EZnie8FdOWYrF7Yn4IKrqTFHhXvl8YxXxbKwTMcD/5NNCryUSEXRk2ZR4ojnub0P8rNrsVGHXWqIDtA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@standard-schema/spec": "^1.0.0",
|
||||
"@sveltejs/acorn-typescript": "^1.0.5",
|
||||
@@ -902,6 +903,7 @@
|
||||
"integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@sveltejs/vite-plugin-svelte-inspector": "^4.0.1",
|
||||
"debug": "^4.4.1",
|
||||
@@ -1518,6 +1520,7 @@
|
||||
"integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
}
|
||||
@@ -1527,6 +1530,7 @@
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
|
||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -1939,6 +1943,7 @@
|
||||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@@ -2646,6 +2651,7 @@
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -2833,6 +2839,7 @@
|
||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.45.3.tgz",
|
||||
"integrity": "sha512-ngKXNhNvwPzF43QqEhDOue7TQTrG09em1sd4HBxVF0Wr2gopAmdEWan+rgbdgK4fhBtSOTJO8bYU4chUG7VXZQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/remapping": "^2.3.4",
|
||||
"@jridgewell/sourcemap-codec": "^1.5.0",
|
||||
@@ -2977,6 +2984,7 @@
|
||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -2998,6 +3006,7 @@
|
||||
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.25.0",
|
||||
"fdir": "^6.4.4",
|
||||
|
||||
@@ -17,8 +17,8 @@ dependencies = [
|
||||
"loguru>=0.7.3",
|
||||
"exo_pyo3_bindings", # rust bindings
|
||||
"anyio==4.11.0",
|
||||
"mlx==0.30.3; sys_platform == 'darwin'",
|
||||
"mlx[cpu]==0.30.3; sys_platform == 'linux'",
|
||||
"mlx==0.30.1; sys_platform == 'darwin'",
|
||||
"mlx[cpu]==0.30.1; sys_platform == 'linux'",
|
||||
"mlx-lm @ git+https://github.com/AlexCheema/mlx-lm.git@fix-transformers-5.0.0rc2",
|
||||
"tiktoken>=0.12.0", # required for kimi k2 tokenizer
|
||||
"hypercorn>=0.18.0",
|
||||
|
||||
@@ -566,7 +566,7 @@ class MiniMaxShardingStrategy(TensorParallelShardingStrategy):
|
||||
layer.block_sparse_moe.switch_mlp.up_proj
|
||||
)
|
||||
layer.block_sparse_moe = ShardedQwenMoE(layer.block_sparse_moe) # pyright: ignore[reportAttributeAccessIssue, reportArgumentType]
|
||||
layer.block_sparse_moe.sharding_group = self.group # pyright: ignore[reportAttributeAccessIssue]
|
||||
layer.block_sparse_moe.sharding_group = self.group
|
||||
|
||||
return model
|
||||
|
||||
@@ -661,7 +661,7 @@ class GptOssShardingStrategy(TensorParallelShardingStrategy):
|
||||
self.all_to_sharded_linear_in_place(layer.mlp.experts.up_proj)
|
||||
|
||||
layer.mlp = ShardedGptOssMoE(layer.mlp) # type: ignore
|
||||
layer.mlp.sharding_group = self.group # pyright: ignore[reportAttributeAccessIssue]
|
||||
layer.mlp.sharding_group = self.group
|
||||
|
||||
return model
|
||||
|
||||
|
||||
@@ -169,10 +169,10 @@ def mlx_distributed_init(
|
||||
|
||||
# TODO: update once upstream fixes
|
||||
logger.info(
|
||||
f"rank {rank} MLX_JACCL_DEVICES: {coordination_file} with devices: {jaccl_devices_json}"
|
||||
f"rank {rank} MLX_IBV_DEVICES: {coordination_file} with devices: {jaccl_devices_json}"
|
||||
)
|
||||
logger.info(f"rank {rank} MLX_JACCL_COORDINATOR: {jaccl_coordinator}")
|
||||
os.environ["MLX_JACCL_DEVICES"] = coordination_file
|
||||
os.environ["MLX_IBV_DEVICES"] = coordination_file
|
||||
os.environ["MLX_RANK"] = str(rank)
|
||||
os.environ["MLX_JACCL_COORDINATOR"] = jaccl_coordinator
|
||||
group = mx.distributed.init(backend="jaccl", strict=True)
|
||||
@@ -312,9 +312,6 @@ def get_eos_token_ids_for_model(model_id: str) -> list[int] | None:
|
||||
model_id_lower = model_id.lower()
|
||||
if "kimi-k2" in model_id_lower:
|
||||
return [163586]
|
||||
elif "glm-4.7-flash" in model_id_lower:
|
||||
# 154820: <|endoftext|>, 154827: <|user|>, 154829: <|observation|>
|
||||
return [154820, 154827, 154829]
|
||||
elif "glm" in model_id_lower:
|
||||
return [151336, 151329, 151338]
|
||||
return None
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PREFS="${PREFS:-/Library/Preferences/SystemConfiguration/preferences.plist}"
|
||||
|
||||
tmpdir="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmpdir"' EXIT
|
||||
injson="$tmpdir/in.json"
|
||||
outjson="$tmpdir/out.json"
|
||||
plutil -convert json -o "$injson" "$PREFS"
|
||||
|
||||
perl -Mstrict -Mwarnings -MJSON::PP -e '
|
||||
my ($in, $out) = @ARGV;
|
||||
|
||||
open my $fh, "<", $in or die "open $in: $!";
|
||||
local $/;
|
||||
my $txt = <$fh>;
|
||||
close $fh;
|
||||
|
||||
my $json = JSON::PP->new->utf8->relaxed(1);
|
||||
my $d = $json->decode($txt);
|
||||
|
||||
if (ref($d->{VirtualNetworkInterfaces}) eq "HASH"
|
||||
&& ref($d->{VirtualNetworkInterfaces}{Bridge}) eq "HASH") {
|
||||
delete $d->{VirtualNetworkInterfaces}{Bridge}{bridge0};
|
||||
}
|
||||
|
||||
my @bridge_svcs;
|
||||
if (ref($d->{NetworkServices}) eq "HASH") {
|
||||
for my $k (keys %{ $d->{NetworkServices} }) {
|
||||
my $svc = $d->{NetworkServices}{$k};
|
||||
next unless ref($svc) eq "HASH";
|
||||
my $iface = $svc->{Interface};
|
||||
next unless ref($iface) eq "HASH";
|
||||
my $dev = $iface->{DeviceName};
|
||||
if (defined $dev && $dev eq "bridge0") {
|
||||
push @bridge_svcs, $k;
|
||||
}
|
||||
}
|
||||
delete @{ $d->{NetworkServices} }{ @bridge_svcs } if @bridge_svcs;
|
||||
}
|
||||
|
||||
my %is_bridge = map { $_ => 1 } @bridge_svcs;
|
||||
|
||||
if (ref($d->{Sets}) eq "HASH") {
|
||||
for my $setk (keys %{ $d->{Sets} }) {
|
||||
my $set = $d->{Sets}{$setk};
|
||||
next unless ref($set) eq "HASH";
|
||||
my $net = $set->{Network};
|
||||
next unless ref($net) eq "HASH";
|
||||
|
||||
if (ref($net->{Interface}) eq "HASH") {
|
||||
delete $net->{Interface}{bridge0};
|
||||
}
|
||||
|
||||
if (ref($net->{Service}) eq "HASH" && @bridge_svcs) {
|
||||
for my $svc (@bridge_svcs) {
|
||||
delete $net->{Service}{$svc};
|
||||
}
|
||||
}
|
||||
|
||||
my $g = $net->{Global};
|
||||
if (ref($g) eq "HASH"
|
||||
&& ref($g->{IPv4}) eq "HASH"
|
||||
&& ref($g->{IPv4}{ServiceOrder}) eq "ARRAY"
|
||||
&& @bridge_svcs) {
|
||||
|
||||
my @so = @{ $g->{IPv4}{ServiceOrder} };
|
||||
@so = grep { !defined($_) || !$is_bridge{$_} } @so;
|
||||
$g->{IPv4}{ServiceOrder} = \@so;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open my $oh, ">", $out or die "open $out: $!";
|
||||
print $oh JSON::PP->new->utf8->canonical(1)->pretty(1)->encode($d);
|
||||
close $oh;
|
||||
' "$injson" "$outjson"
|
||||
|
||||
# Convert JSON -> plist (write back as binary1; change to xml1 if you prefer)
|
||||
plutil -convert xml1 -o "$PREFS" "$outjson"
|
||||
|
||||
# Ask configd to reload SystemConfiguration state
|
||||
killall -HUP configd 2>/dev/null || true
|
||||
Reference in New Issue
Block a user