Loading...
Loading...
Compare original and translation side by side
references/strategies.mdreferences/strategies.mdreferences/strategies.mdreferences/quickstart-patterns.mdreferences/data-strategies.mdreferences/model-strategies.mdreferences/strategies.mdreferences/architecture.mdreferences/sdk-reference.mdreferences/cli-reference.mdreferences/quickstart-patterns.mdreferences/quickstart-patterns.mdreferences/strategies.mdreferences/strategies.mdreferences/strategies.mdreferences/quickstart-patterns.mdreferences/data-strategies.mdreferences/model-strategies.mdreferences/strategies.mdreferences/architecture.mdreferences/sdk-reference.mdreferences/cli-reference.mdreferences/quickstart-patterns.mdreferences/quickstart-patterns.mdcurl -fsSL https://sup.soma.org | bash && sup install soma
soma wallet new
soma faucet # fund on testnet
soma wallet export # save the secret key — you'll need it nextcurl -fsSL https://sup.soma.org | bash && sup install soma
soma wallet new
soma faucet # 在测试网获取资金
soma wallet export # 保存密钥——后续会用到git clone https://github.com/soma-org/quickstart
cd quickstart
cp .env.example .env
uv syncgit clone https://github.com/soma-org/quickstart
cd quickstart
cp .env.example .env
uv sync.env| Credential | Why it's needed | Where to get it |
|---|---|---|
| Signs your on-chain transactions (submissions, claims) | |
| Accesses The Stack v2 training data for submission scoring | huggingface.co/settings/tokens — create a read token, then accept terms on the dataset page |
| Stores submission data at a public URL — validators must download your data to audit it | Cloudflare R2 → R2 Object Storage → create a bucket (free tier, zero egress fees) |
| Authenticates uploads to your bucket | R2 → Manage R2 API Tokens → create token with Object Read & Write |
| S3-compatible API endpoint for uploads | R2 → Account Details → S3 API (e.g. |
| Public download URL for validators | R2 → your bucket → Settings → enable Public Development URL |
.env| 凭证 | 作用 | 获取途径 |
|---|---|---|
| 签署你的链上交易(提交、领取奖励) | |
| 访问The Stack v2训练数据以进行提交评分 | huggingface.co/settings/tokens — 创建读取令牌,然后在数据集页面接受条款 |
| 将提交数据存储在公共URL——验证节点必须下载你的数据以进行审核 | Cloudflare R2 → R2对象存储 → 创建存储桶(免费层级,无出口费用) |
| 验证对存储桶的上传操作 | R2 → 管理R2 API令牌 → 创建具有对象读写权限的令牌 |
| 用于上传的S3兼容API端点 | R2 → 账户详情 → S3 API(例如 |
| 供验证节点使用的公共下载URL | R2 → 你的存储桶 → 设置 → 启用公共开发URL |
undefinedundefined
**You're now scoring data against open targets and earning SOMA.** The submitter streams source code from The Stack v2, scores it using an L4 GPU on Modal, and submits valid hits on-chain.
Deploy as a cron job to run continuously:
```bash
uv run modal deploy src/quickstart/submitter.py
**你现在已开始针对开放目标评分数据并赚取SOMA代币。** 提交器会从The Stack v2流式获取源代码,在Modal的L4 GPU上进行评分,并在链上提交有效结果。
将其部署为定时任务以持续运行:
```bash
uv run modal deploy src/quickstart/submitter.pyuv run claimreferences/strategies.mduv run claimreferences/strategies.mdimport asyncio
from soma_sdk import SomaClient, Keypair
async def test():
client = await SomaClient(chain="testnet")
kp = Keypair.from_secret_key("YOUR_SECRET_KEY")
balance = await client.get_balance(kp.address())
print(f"Connected! Balance: {balance} SOMA")
targets = await client.get_targets(status="open")
print(f"Open targets: {len(targets)}")
asyncio.run(test())references/quickstart-patterns.mdimport asyncio
from soma_sdk import SomaClient, Keypair
async def test():
client = await SomaClient(chain="testnet")
kp = Keypair.from_secret_key("YOUR_SECRET_KEY")
balance = await client.get_balance(kp.address())
print(f"已连接!余额: {balance} SOMA")
targets = await client.get_targets(status="open")
print(f"开放目标数量: {len(targets)}")
asyncio.run(test())references/quickstart-patterns.mdreferences/data-strategies.mdQuickstart reference: The complete submission pipeline is in(github.com/soma-org/quickstart). Fork it and modifysrc/quickstart/submitter.pyto change data sources, or the scoring/filtering logic to change target selection.stream_stack_v2()
references/data-strategies.md快速入门参考:完整的提交流水线在(github.com/soma-org/quickstart)中。复刻仓库后,修改src/quickstart/submitter.py以更换数据源,或修改评分/过滤逻辑以调整目标选择。stream_stack_v2()
undefinedundefined
The quickstart runs this on Modal with an L4 GPU. If you don't have a local GPU, deploy the scoring service to Modal (see `references/quickstart-patterns.md` for the Modal setup).
Verify it's running:
```python
assert await client.scoring_health(), "Scoring service not running!"
快速入门版本会在Modal上使用L4 GPU运行该服务。如果你没有本地GPU,可将评分服务部署到Modal(Modal设置和部署模式请参考`references/quickstart-patterns.md`)。
验证服务是否运行:
```python
assert await client.scoring_health(), "评分服务未运行!"reward_pooldistance_thresholdmodel_idsreferences/strategies.mdclient = await SomaClient(chain="testnet")
targets = await client.get_targets(status="open")reward_pooldistance_thresholdmodel_idsreferences/strategies.mdclient = await SomaClient(chain="testnet")
targets = await client.get_targets(status="open")manifests = await client.get_model_manifests(target)manifests = await client.get_model_manifests(target)references/data-strategies.mdreferences/data-strategies.mdundefinedundefinedundefinedundefinedif result.distance <= target.distance_threshold:
# Valid submission!if result.distance <= target.distance_threshold:
# 提交有效!undefinedundefinedundefinedundefinedreferences/quickstart-patterns.mdreferences/data-strategies.mdreferences/quickstart-patterns.mdreferences/data-strategies.mdreferences/model-strategies.mdQuickstart reference: The complete train-commit-reveal loop is in(github.com/soma-org/quickstart). For standalone training-only scripts, seesrc/quickstart/training.pyandtrain_torch.py. Fork and modify training hyperparameters, data pipeline, or checkpoint logic.train_flax.py
references/model-strategies.md快速入门参考:完整的提交-披露循环在(github.com/soma-org/quickstart)中。独立训练脚本请参考src/quickstart/training.py和train_torch.py。复刻仓库后,修改训练超参数、数据流水线或检查点逻辑。train_flax.py
models = await client.get_active_models()models = await client.get_active_models()
See `references/strategies.md` for territory selection and `references/model-strategies.md` for embedding strategy and domain gap analysis.
领域选择请参考`references/strategies.md`,嵌入策略和领域差距分析请参考`references/model-strategies.md`。from soma_models.v1.torch.modules.model import Model
from soma_models.v1.torch.modules.sig_reg import SIGReg
from soma_models.v1.torch.loss import compute_loss
from soma_models.v1.configs import ModelConfig, SIGRegConfigfrom soma_models.v1.torch.modules.model import Model
from soma_models.v1.torch.modules.sig_reg import SIGReg
from soma_models.v1.torch.loss import compute_loss
from soma_models.v1.configs import ModelConfig, SIGRegConfigfrom soma_models.v1.tokenizer import tokenizefrom soma_models.v1.tokenizer import tokenize
Use datasets that match your chosen domain:
- **The Stack v2** — filter by programming language for code specialization
- **FineWeb-Edu** — for educational/textual domains
- **StarCoderData** — curated, high-quality code
- **Custom datasets** — for niche domain specialization
See `references/quickstart-patterns.md` for the full data pipeline.
使用与你选择的领域匹配的数据集:
- **The Stack v2** — 按编程语言过滤以专精代码领域
- **FineWeb-Edu** — 教育/文本领域
- **StarCoderData** — 经过整理的高质量代码数据
- **自定义数据集** — 小众领域专精
完整的数据流水线请参考`references/quickstart-patterns.md`。lr=1e-4dropout=0.1micro_batch=2grad_accum=64lr=1e-4dropout=0.1micro_batch=2grad_accum=64model_id = await client.create_model(
kp,
commission_rate=1000, # 10% commission
stake_amount=None # stake all available
)model_id = await client.create_model(
kp,
commission_rate=1000, # 10%佣金
stake_amount=None # 质押所有可用资金
)undefinedundefinedundefinedundefinedawait client.advance_epoch()undefinedawait client.advance_epoch()undefinedundefinedundefinedawait client.reveal_model(kp, model_id, key, embedding)await client.reveal_model(kp, model_id, key, embedding)references/strategies.mdreferences/quickstart-patterns.mdreferences/model-strategies.mdreferences/strategies.mdreferences/strategies.mdreferences/quickstart-patterns.mdreferences/model-strategies.mdreferences/strategies.mdQuickstart reference:— run locally withsrc/quickstart/settle_targets.py.uv run claim
undefined快速入门参考:— 本地运行src/quickstart/settle_targets.py即可。uv run claim
undefined
Or via CLI:
```bash
soma target list --status claimable
soma target claim --target-id <ID>
或通过CLI:
```bash
soma target list --status claimable
soma target claim --target-id <ID>| Concept | Description |
|---|---|
| Epoch | 24-hour cycle. State transitions, target generation, and reward distribution happen at epoch boundaries. |
| Target | Random point in embedding space. Represents a data domain the network wants to learn. Assigned to nearby models via stake-weighted KNN. |
| Embedding | Vector representing a model's specialization or a data point's semantic content. Distance between data embedding and target determines validity. |
| Distance threshold | Auto-adjusting radius around each target. Submissions must land within it. Adjusts based on hit rate. |
| Bond | Deposit proportional to data size, posted with each submission. Returned after 2-epoch audit. Slashed if fraudulent. |
| Commit-reveal | Two-phase weight publishing. Commit encrypted weights → wait one epoch → reveal key. Prevents front-running. |
| Staking | Required for models and validators. Higher stake = more target assignments. Delegation allowed with commission. |
| SIGReg | Sigmoid regularization added to cross-entropy loss. Prevents embedding collapse by encouraging uniform distribution. |
| Shannons | Smallest unit. 1 SOMA = 1,000,000,000 shannons. |
references/architecture.md| 概念 | 说明 |
|---|---|
| 纪元(Epoch) | 24小时周期。状态转换、目标生成和奖励分配都在纪元边界进行。 |
| 目标(Target) | 嵌入空间中的随机点。代表网络想要学习的数据领域。通过质押加权KNN分配给附近的模型。 |
| 嵌入(Embedding) | 代表模型专精方向或数据点语义内容的向量。数据嵌入与目标之间的距离决定了提交的有效性。 |
| 距离阈值(Distance threshold) | 每个目标周围的自动调整半径。提交内容必须落在该半径内。会根据命中率进行调整。 |
| 保证金(Bond) | 与数据大小成比例的押金,随每次提交缴纳。2个纪元的审核期后返还。若存在欺诈行为则会被扣除。 |
| 提交-披露(Commit-reveal) | 两阶段权重发布机制。提交加密权重→等待一个纪元→披露密钥。防止抢先交易。 |
| 质押(Staking) | 模型和验证节点必需。质押越高,获得的目标分配越多。支持委托并收取佣金。 |
| SIGReg | 添加到交叉熵损失中的Sigmoid正则化。通过鼓励均匀分布防止嵌入坍缩。 |
| Shannons | 最小单位。1 SOMA = 1,000,000,000 shannons。 |
references/architecture.mdundefinedundefined
The quickstart includes a one-command localnet test:
```bash
uv run modal run src/quickstart/training.py::localnet
快速入门版本包含一键本地网测试:
```bash
uv run modal run src/quickstart/training.py::localnetreferences/quickstart-patterns.mdreferences/quickstart-patterns.mdreferences/quickstart-patterns.mdreferences/quickstart-patterns.mdreferences/strategies.mdsoma start scoring --device cuda --data-dir /dataawait client.scoring_health()await client.advance_epoch()reveal_model()await client.get_balance(kp.address())soma faucethttps://soma wallet exportreferences/strategies.mdsoma start scoring --device cuda --data-dir /dataawait client.scoring_health()await client.advance_epoch()reveal_model()await client.get_balance(kp.address())soma faucethttps://soma wallet exportcurl -fsSL https://sup.soma.org | bash && sup install somasoma wallet new && soma faucet && soma wallet exportuv sync.envuv run create-secretsuv run modal run src/quickstart/submitter.pyawait client.get_targets(status="claimable")await client.claim_rewards(kp, target.id)soma start scoring --device cudacurl -fsSL https://sup.soma.org | bash && sup install somasoma wallet new && soma faucet && soma wallet exportuv sync.envuv run create-secretsuv run modal run src/quickstart/submitter.pyawait client.get_targets(status="claimable")await client.claim_rewards(kp, target.id)soma start scoring --device cuda| File | Contains | Consult when |
|---|---|---|
| Competitive playbook — network analysis, territory selection, battle scenarios, economics | Deciding where and how to compete |
| Deep data guide — filtering, LLM distillation, creative sourcing, novel domains | Choosing and curating data for submission |
| Deep model guide — distillation, embedding strategy, training philosophy, architecture exploitation | Training and improving your model |
| Working code patterns, quickstart repo file map, submission, training, network analysis, deployment | Building pipelines, forking the quickstart, and analyzing the network |
| Network design, model specs, economics, consensus | Understanding how SOMA works |
| Full Python SDK API — all methods, types, examples | Writing code with soma-sdk |
| All CLI commands organized by workflow | Using the soma command line |
| 文件 | 内容 | 使用场景 |
|---|---|---|
| 竞争手册——网络分析、领域选择、竞争场景、经济模型 | 决定竞争方向和策略时 |
| 深度数据指南——过滤、LLM蒸馏、创新来源、小众领域 | 选择和整理提交数据时 |
| 深度模型指南——蒸馏、嵌入策略、训练理念、架构利用 | 训练和优化模型时 |
| 可用代码模式、快速入门仓库文件映射、提交、训练、网络分析、部署 | 构建流水线、复刻快速入门仓库、分析网络时 |
| 网络设计、模型规格、经济模型、共识机制 | 理解SOMA工作原理时 |
| 完整Python SDK API——所有方法、类型、示例 | 使用soma-sdk编写代码时 |
| 按流程整理的所有CLI命令 | 使用soma命令行工具时 |