mcpField
T
tinker

tinker

github.com/sundial-org開発15369 回インストール15 週間前に更新
リポジトリ

tinker について

Tinkerは、Thinking Machines Labが提供するLLMトレーニングAPIで、ファインチューニングや独自の学習フローを構築する開発者や研究者向けです。高レベルのCookbookパターンと低レベルAPIを備え、教師あり学習、強化学習、LoRAに対応します。

主な機能

  1. 01教師ありファインチューニングと強化学習
  2. 02パラメータ効率のよいLoRA学習
  3. 03高レベルのCookbook学習ループ
  4. 04独自ロジック向けの低レベルAPI
  5. 05マルチモーダルモデルの学習

活用シーン

  1. 01指示・補完データによるファインチューニング
  2. 02強化学習ワークフローの構築
  3. 03独自のモデル学習ループの実装
  4. 04視覚・音声対応モデルの学習

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sundial-org/skills --skill tinker

インストール後、Claude Code で/tinkerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-reference.md
getting-started.md
inkling.md
loss-functions.md
models-and-lora.md
recipes.md
reinforcement-learning.md
rendering.md
supervised-learning.md

詳細

Tinker API - LLM ファインチューニング

概要

Tinker は、Thinking Machines Lab が提供する大規模言語モデル向けのトレーニング API です。以下の機能を提供します。

  • 教師ありファインチューニング(SFT):指示と応答のペアを使ってモデルをトレーニングします
  • 強化学習(RL):PPO と方策勾配損失に対応します。Cookbook のパターンには、GRPO のようなグループロールアウトとアドバンテージのセンタリングが含まれます
  • マルチモーダルモデル:Qwen3.5/3.6 と Kimi K2.x によるビジョン、Inkling によるビジョンとオーディオ
  • Inkling:Thinking Machines 独自のオープンウェイト MoE モデル(975B/アクティブパラメーター41B、2026年7月リリース)で、テキスト/画像/オーディオ入力と調整可能な思考強度に対応します
  • LoRA トレーニング:効率的なパラメーター効率の高いファインチューニング

2 つの抽象化レベルがあります。

  • Tinker Cookbook:トレーニングループを自動化する高レベルのパターン
  • 低レベル API:カスタムトレーニングロジックを手動で制御します

クイックリファレンス

トピックリファレンス
セットアップと基本概念はじめに
API クラスと型API リファレンス
教師あり学習教師あり学習
RL トレーニング強化学習
損失関数損失関数
チャットテンプレートレンダリング
モデルと LoRAモデルと LoRA
Inkling(マルチモーダル、思考強度)Inkling
スクリプトの例レシピ

インストール

pip install tinker tinker-cookbook
export TINKER_API_KEY=your_api_key_here

最小限の例

import numpy as np
import tinker
from tinker import types

# Create clients
service_client = tinker.ServiceClient()
training_client = service_client.create_lora_training_client(
    base_model="Qwen/Qwen3.6-35B-A3B", rank=32
)
tokenizer = training_client.get_tokenizer()

# Prepare data
prompt = "English: hello\nPig Latin:"
completion = " ello-hay\n"
prompt_tokens = tokenizer.encode(prompt, add_special_tokens=True)
completion_tokens = tokenizer.encode(completion, add_special_tokens=False)
tokens = prompt_tokens + completion_tokens
weights = np.array(([0] * len(prompt_tokens)) + ([1] * len(completion_tokens)), dtype=np.float32)
target_tokens = np.array(tokens[1:], dtype=np.int64)

datum = types.Datum(
    model_input=types.ModelInput.from_ints(tokens=tokens[:-1]),
    loss_fn_inputs={
        "target_tokens": target_tokens,
        "weights": weights[1:]
    }
)

# Train
fwdbwd = training_client.forward_backward([datum], "cross_entropy")
optim = training_client.optim_step(types.AdamParams(learning_rate=1e-4))
fwdbwd.result(); optim.result()

# Sample
sampling_client = training_client.save_weights_and_get_sampling_client(name="v1")
result = sampling_client.sample(
    prompt=types.ModelInput.from_ints(tokens=tokenizer.encode("English: world\nPig Latin:", add_special_tokens=True)),
    sampling_params=types.SamplingParams(max_tokens=20),
    num_samples=1
).result()
print(tokenizer.decode(result.sequences[0].tokens))

よく使うインポート

# Low-level API
import tinker
from tinker import types
from tinker.types import Datum, ModelInput, TensorData, AdamParams, SamplingParams

# Cookbook (high-level)
import chz
import asyncio
from tinker_cookbook.supervised import train
from tinker_cookbook.supervised.types import ChatDatasetBuilder, ChatDatasetBuilderCommonConfig
from tinker_cookbook.supervised.data import (
    SupervisedDatasetFromHFDataset,
    StreamingSupervisedDatasetFromHFDataset,
    FromConversationFileBuilder,
    conversation_to_datum,
)
from tinker_cookbook.renderers import get_renderer, TrainOnWhat
from tinker_cookbook.model_info import get_recommended_renderer_name
from tinker_cookbook.tokenizer_utils import get_tokenizer

用途に応じた選択

シナリオ方法
HF/JSONL データを使った標準的な SFTCookbook の ChatDatasetBuilder + tinker_cookbook.supervised.train.main()
カスタムの前処理カスタム SupervisedDataset クラス
大規模データセット(>1M)StreamingSupervisedDatasetFromHFDataset
RL / GRPOCookbook の RL パターン
研究/カスタムループ低レベルの forward_backward() + optim_step()
ビジョンと言語Inkling または Qwen3.5/3.6 ビジョンモデル
オーディオ/思考強度の制御Inkling + tml-renderers(Inkling)

外部リソース

コメント