エビデンスで教育を考えた

頭が良くなる科学論文を紹介していきます。お勧め商品は楽天ルームで!https://room.rakuten.co.jp/room_12b7a40f6d/items

コンペメモ(次元512を超えてしまうので、、)〜The Learning Agency Lab - PII Data Detection⑤〜

Transformerモデルの概要と仕組み的にはTransformerモデルが512トークンの制限を持つ場合、テキストの長さがその制限を超える場合には、テキストを複数の部分に分割する必要があります。これを行う一般的な方法の1つは、テキストを重複しないようにオーバーラップしながら512トークンごとに分割することです。以下のコードは分割するためのコード。

# テキストを512トークンごとに分割する関数
def split_text(text, max_tokens=512):
    # テキストの長さ
    text_length = len(text)
    # 分割されたテキストのリスト
    split_texts = []
    
    # テキストが512トークンより長い場合
    if text_length > max_tokens:
        # オーバーラップしながらテキストを分割
        start = 0
        while start < text_length:
            end = start + max_tokens
            # 最後の部分が512トークン未満の場合はそれを使用
            if end > text_length:
                end = text_length
            # テキストを分割してリストに追加
            split_texts.append(text[start:end])
            start = end
    else:
        # テキストが512トークン以下の場合はそのまま返す
        split_texts.append(text)
    
    return split_texts

# テスト用の長いテキスト
long_text = "長いテキストの例..."  # ここに長いテキストを入力

# テキストを512トークンごとに分割
split_texts = split_text(long_text)

# 分割されたテキストを表示
for i, text in enumerate(split_texts):
    print(f"Part {i+1}: {text}")


これをそのまま使ったわけではありませんが、訓練データではうまくいっているっぽいのである程度はお勧めできます。