> ## Documentation Index
> Fetch the complete documentation index at: https://arkor-92aeef0e-eng-353.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# クイックスタート

> Arkor プロジェクトを生成し、小さなオープンウェイト LLM をファインチューニングして、ローカル Studio からチャットしてみる。

数分でゼロからスタートし、ローカル Playground でチャットできるファインチューン済みモデルが得られます。学習自体は 7〜12 分。セットアップ時間は回線と既存のインストール状況に左右されます。

## 前提条件

* **Node.js 22.6 以降。** Node 24 を推奨します。
* **pnpm。** 他のパッケージマネージャー（npm、yarn、bun）でも動きます。以下の例は pnpm を使います。
* 動作するインターネット接続。学習は Arkor のマネージド GPU で実行されます。

アカウントもクレジットカードも、自分のマシーンの GPU も不要です。

## 1. プロジェクトを生成する

```bash theme={null}
pnpm create arkor my-arkor-app
cd my-arkor-app
```

プロジェクト生成ツール（`pnpm create arkor`）がどのテンプレートを使うか尋ねてきます。最終的に作りたいものに最も近いものを選んでください:

| テンプレート      | タスク        | 出力の形                                         | 推定学習時間 |
| ----------- | ---------- | -------------------------------------------- | ------ |
| `triage`    | サポートのトリアージ | `{ category, urgency, summary, nextAction }` | 約 7 分  |
| `translate` | 9 言語の翻訳    | `{ translation, detectedLanguage }`          | 約 7 分  |
| `redaction` | 個人情報のマスク   | `{ redactedText, redactedCount, tags }`      | 約 12 分 |

いずれも同じ小型のオープンウェイトベース（`unsloth/gemma-4-E4B-it`）と、HuggingFace 上の厳選された公開データセットを組み合わせたものです。学習は本物で、数分で終わるので、ループ全体をエンドツーエンドで体験できます。

プロンプトをスキップしたいとき:

```bash theme={null}
pnpm create arkor my-arkor-app --template triage
```

## 2. 生成されたものを眺める

```
my-arkor-app/
├── src/arkor/
│   ├── index.ts        # createArkor({ trainer })
│   └── trainer.ts      # createTrainer({ ... })
├── arkor.config.ts
├── .arkor/             # 状態 + ビルド成果物（gitignore 済み）
└── package.json        # dev / build / start
```

当面重要なのはこの 2 ファイルです:

* **`src/arkor/trainer.ts`** にトレーナー定義を置きます。モデル、データセット、LoRA 設定、ハイパーパラメーター（学習率や学習ステップ数など、学習の進み方を決める設定値。データから機械的には決められず、人が事前に与える必要があります）、ライフサイクルコールバックがすべてここに集まります。
* **`src/arkor/index.ts`** はエントリーポイントです。`createArkor({ trainer })` を呼ぶことで、CLI と Studio が何を実行すべきか発見できるようにします。

`trainer.ts` を開いてみてください。形はテンプレート間で同じで、データセット、出力スキーマ、サンプルプロンプトだけが異なります。

## 3. Studio を開いて学習を始める

```bash theme={null}
pnpm dev
```

これは `arkor dev` を実行し、Studio を `http://localhost:4000` で起動します。Studio は UI で、`arkor dev` 自体は学習を開始することも、トレーナーファイルを監視することもしません。

ブラウザーで **Run training** をクリック。Studio はバックグラウンドでマネージドバックエンドにジョブを投入し、出力をページにストリーム表示します。何かを最初にトリガーした時に匿名ワークスペースが自動作成されます。サインアップもクレジットカードも不要です。

学習が進行中に重要なビューは 3 つあります:

* **Jobs。** 学習ジョブの一覧。クリックするとライブステータスが見られます。
* **Loss チャートとイベントログ。** マネージド GPU から進捗がストリームされるにつれて、Loss（学習中のモデルの誤差を示す数値で、低いほどモデルが正解に近づいているサイン）の曲線が更新され、ログのテールに学習イベントが表示されます。最初の学習はテンプレートにより 7〜12 分かかります。
* **Playground。** ジョブが完了したら、最終アダプタをセレクタから選んでチャット。モード切替でベースモデルとアダプタを行き来できます。学習中に中間チェックポイントで推論を走らせたい場合は Studio ではなく `onCheckpoint` コールバックを使ってください。

学習の合間に `src/arkor/` を編集した場合は、Run training ページをリロード（または `pnpm exec arkor build` を実行）してから次のクリックをすると、新しいコードが動きます。

## 4. アカウントに紐づける（任意）

匿名ワークスペースは試行に便利ですが、作業はそのローカルマシーン上の匿名トークンに紐づき、別のマシーンや別のアカウントからは見えません。学習をアカウントの下に残したいなら、**次の学習を始める前に** OAuth でサインインしてください。

```bash theme={null}
pnpm exec arkor login --oauth
```

これでループバックポート上で Arkor Cloud の OAuth（PKCE）フローが走り、ローカルの認証情報がアカウントに紐づきます。以降、このマシーンからの学習はどのデバイスからも当該アカウントの下に表示されます。

生成されたプロジェクトは `arkor` をローカル devDependency としてインストールするので、CLI をグローバルにインストールしていない限り、素の `arkor` ではなく利用しているパッケージマネージャーのローカル bin 実行コマンド（例: `pnpm exec arkor <command>`、`npx arkor <command>`、`yarn arkor <command>`、`bunx arkor <command>`）を使ってください。生成される README には npm / pnpm / yarn / bun の各パッケージマネージャーでのセットアップ手順が並列で書かれています。

注意点として、`pnpm exec arkor login` をフラグなしで実行すると初期選択が `Anonymous` の対話ピッカーが出ます。これを受け入れると新しい匿名トークンが発行されて認証情報ファイルが上書きされ、それまでの匿名ワークスペースのジョブとは別の identity になります（OAuth に切り替えても同様で、過去の匿名作業はアカウント側へ自動で移行されません）。匿名で先に始めてしまった作業をあとからアカウントに統合する機能は将来的にサポート予定です。それまでは、アカウントに残したい学習はサインインを済ませてから開始してください。

## 5. 次に読むもの

* **コンセプト。** [Concepts](/ja/concepts/overview) を読み、`createArkor`、`createTrainer`、ライフサイクルコールバック、Studio のメンタルモデルを構築してください。
* **トレーナーをカスタマイズ。** `src/arkor/trainer.ts` を開き、`lora.r` や `maxSteps` を調整したり、コールバックを追加したり。Run training ページをリロード（または `pnpm exec arkor build`）してから次のクリックで反映されます。
* **別のテンプレートを試す。** `pnpm create arkor` を別の `--template` で再実行して比較してみてください。
