Skip to content

Instantly share code, notes, and snippets.

View kzinmr's full-sized avatar

Kazuki Inamura kzinmr

  • Tokyo, Japan
  • 18:04 (UTC +09:00)
View GitHub Profile
import pickle
from pathlib import Path
import modal
lancedb_image = modal.Image.debian_slim().pip_install(
"lancedb",
"langchain_core",
"langchain_community",
"langchain_openai",

LLMを数分でファインチューニング (ft. Mixtral, LLaMA, Mistral)

このガイドでは、modalaxolotlを使って、任意のLLMを素早くファインチューニングする方法を紹介します。

サーバーレスなaxolotl

Modalは、人気のあるaxolotl LLMファインチューニングライブラリにサーバーレスの機能を提供します。 Modalのクラウドインフラストラクチャでファインチューニングジョブを実行すると、Dockerイメージの扱いや高価なGPU VMのアイドル状態を気にすることなく、モデルをトレーニングできます。

また、Modalで書かれたアプリケーションは、複数のGPUに簡単にスケールできます。

@kzinmr
kzinmr / vecs.py
Last active December 31, 2023 17:16
Simplify the [supabase/vecs](https://github.com/supabase/vecs) library
import uuid
from collections.abc import Iterable
from dataclasses import dataclass
from enum import Enum
from typing import Any, Self
from typing import cast as typing_cast
from pgvector.sqlalchemy import Vector
from sqlalchemy import (
BinaryExpression,
import multiprocessing
import kenlm
import MeCab
lm_model = None
def to_punct_between_texts(
text_l, text_r, l_model, tokenizer, threshold=0.0, punct="。", print_score=False,
import os
from dataclasses import dataclass
from typing import Optional
import fugashi
import unidic_lite
@dataclass
class Token:
from textdistance import damerau_levenshtein
import mojimoji
import regex as re
def partial_ratio(s1, s2, levenshtein_ratio=damerau_levenshtein.normalized_similarity):
def _preprocess(s):
s = mojimoji.zen_to_han(s, kana=False, ascii=True, digit=True)
s = s.lower()
s = re.sub('\s+', '', s)
return s
import math
from collections import Counter
from dataclasses import dataclass
from itertools import tee, zip_longest
from typing import List
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import regex as re
# https://pypi.org/project/stop-words/
from stop_words import get_stop_words
from nltk.corpus import stopwords
stop_words = list(get_stop_words('en')) #About 900 stopwords
nltk_words = list(stopwords.words('english')) #About 150 stopwords
@kzinmr
kzinmr / kwdlc2camphr.py
Created February 12, 2021 10:02
Convert KWDLC to camphr NER format using https://github.com/ku-nlp/kyoto-reader
import os
import kyoto_reader #import KyotoReader, Document
def convert_camphr_dataset(doc: kyoto_reader.Document) -> list:
mrphs = doc.mrph_list()
named_entities = [ent for ent in doc.named_entities]
entities = []
midasis = [mrph.midasi for mrph in mrphs]
text = ''.join(midasis)