# Google Colab

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-4d1b1778f3c8bde62a40130d7b4395b8bb1ce90f%2FColab%20Options.png?alt=media" alt=""><figcaption></figcaption></figure>

Colabノートブックを使ったことがない場合、ノートブック自体の簡単な説明：

1. **各「セル」の再生ボタン。** これをクリックするとそのセルのコードが実行されます。セルをスキップしてはいけませんし、すべてのセルを時系列に沿って実行する必要があります。エラーが発生した場合は、実行していないセルを再度実行してください。再生ボタンをクリックしたくない場合は、CTRL + ENTER を押すという選択肢もあります。
2. **上部ツールバーの Runtime ボタン。** このボタンを使って「Run all」をクリックすると、ノートブック全体を一度に実行できます。これによりすべてのカスタマイズ手順はスキップされますが、最初の試みとしては良い方法です。
3. **Connect / Reconnect T4 ボタン。** T4 は Google が提供している無料の GPU です。かなり強力です！

最初のインストール用セルは以下のようになっています：角かっこ \[ ] 内の再生ボタンをクリックするのを忘れないでください。オープンソースのGithubパッケージを取得し、いくつかの他のパッケージをインストールします。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-135cd796b01420cc4d5ce3ca243e9065154070a5%2Fimage%20(13)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

### Colab のサンプルコード

gpt-oss-20b をファインチューニングする Unsloth のサンプルコード：

```python
from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
max_seq_length = 2048 # 内部で RoPE スケーリングをサポートしているので、任意の値を選んでください！
# LAION データセットを取得
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")

# 4bit 事前量子化モデルはダウンロードが4倍高速で OOM を防ぎます。
fourbit_models = [
    "unsloth/gpt-oss-20b-unsloth-bnb-4bit", # または任意のモデルを選択

] # 詳細は https://huggingface.co/unsloth を参照

model, tokenizer = FastModel.from_pretrained(
    model_name = "unsloth/gpt-oss-20b",
    max_seq_length = 2048, # 長いコンテキストには任意の値を選択！
    load_in_4bit = True,  # 4ビット量子化。False = 16ビットLoRA。
    load_in_8bit = False, # 8ビット量子化
    load_in_16bit = False, # [新機能！] 16 ビット LoRA
    full_finetuning = False, # フルファインチューニングに使用します。
    # token = "hf_...", # ゲート付きモデルを使う場合は指定してください
)

# モデルパッチ適用と高速LoRA重みの追加を行う
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout = 0, # 任意をサポートしますが = 0 が最適化されています
    bias = "none",    # 任意をサポートしますが = "none" が最適化されています
    # [NEW] "unsloth" は VRAM を30%節約し、2倍大きなバッチサイズに対応します！
    use_gradient_checkpointing = "unsloth", # 非常に長いコンテキストには True または "unsloth"
    random_state = 3407,
    max_seq_length = max_seq_length,
    use_rslora = False,  # ランク安定化LoRAをサポートします
    loftq_config = None, # および LoftQ
)

trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    args = SFTConfig(
        max_seq_length = max_seq_length,
        per_device_train_batch_size = 2,
        gradient_accumulation_steps = 4,
        warmup_steps = 10,
        max_steps = 60,
        logging_steps = 1,
        output_dir = "outputs",
        optim = "adamw_8bit",
        seed = 3407,
    ),
)
trainer.train()

# 詳細なヒントは https://docs.unsloth.ai を参照してください。例えば
# (1) GGUF に保存 / vLLM 用に 16bit にマージする方法
# (2) 保存した LoRA アダプターからの継続トレーニング
# (3) 評価ループの追加 / OOM（メモリ不足）対策
# (4) カスタマイズされたチャットテンプレート
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/meru/install/google-colab.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
