Google Gemma 2
Google の OPEN LLM です。
今回は 90億(9B)と270億(27B)の2つが公開されました。
27Bの方は、量子化してもサイズが大きすぎて私の手持ちのマシンでは動かないようです。
具体的には、Q4_K_Mで、VRAM 22GB 必要とするようです。
そこで、9Bを使用します。
9B gguf ラインナップ
こちらから gguf ファイルを頂戴します。
https://huggingface.co/bartowski/gemma-2-9b-it-GGUF
※2024-08-09 現在
Filename | Quant type | File Size | Split | Description |
---|---|---|---|---|
gemma-2-9b-it-f32.gguf | f32 | 36.97GB | false | Full F32 weights. |
gemma-2-9b-it-Q8_0.gguf | Q8_0 | 9.83GB | false | Extremely high quality, generally unneeded but max available quant. |
gemma-2-9b-it-Q6_K_L.gguf | Q6_K_L | 7.81GB | false | Uses Q8_0 for embed and output weights. Very high quality, near perfect, recommended. |
gemma-2-9b-it-Q6_K.gguf | Q6_K | 7.59GB | false | Very high quality, near perfect, recommended. |
gemma-2-9b-it-Q5_K_L.gguf | Q5_K_L | 6.87GB | false | Uses Q8_0 for embed and output weights. High quality, recommended. |
gemma-2-9b-it-Q5_K_M.gguf | Q5_K_M | 6.65GB | false | High quality, recommended. |
gemma-2-9b-it-Q5_K_S.gguf | Q5_K_S | 6.48GB | false | High quality, recommended. |
gemma-2-9b-it-Q4_K_L.gguf | Q4_K_L | 5.98GB | false | Uses Q8_0 for embed and output weights. Good quality, recommended. |
gemma-2-9b-it-Q4_K_M.gguf | Q4_K_M | 5.76GB | false | Good quality, default size for must use cases, recommended. |
gemma-2-9b-it-Q4_K_S.gguf | Q4_K_S | 5.48GB | false | Slightly lower quality with more space savings, recommended. |
gemma-2-9b-it-IQ4_XS.gguf | IQ4_XS | 5.18GB | false | Decent quality, smaller than Q4_K_S with similar performance, recommended. |
gemma-2-9b-it-Q3_K_L.gguf | Q3_K_L | 5.13GB | false | Lower quality but usable, good for low RAM availability. |
gemma-2-9b-it-Q3_K_M.gguf | Q3_K_M | 4.76GB | false | Low quality. |
gemma-2-9b-it-IQ3_M.gguf | IQ3_M | 4.49GB | false | Medium-low quality, new method with decent performance comparable to Q3_K_M. |
gemma-2-9b-it-Q3_K_S.gguf | Q3_K_S | 4.34GB | false | Low quality, not recommended. |
gemma-2-9b-it-IQ3_XS.gguf | IQ3_XS | 4.14GB | false | Lower quality, new method with decent performance, slightly better than Q3_K_S. |
gemma-2-9b-it-Q2_K_L.gguf | Q2_K_L | 4.03GB | false | Uses Q8_0 for embed and output weights. Very low quality but surprisingly usable. |
gemma-2-9b-it-Q2_K.gguf | Q2_K | 3.81GB | false | Very low quality but surprisingly usable. |
gemma-2-9b-it-IQ3_XXS.gguf | IQ3_XXS | 3.80GB | false | Lower quality, new method with decent performance, comparable to Q3 quants. |
gemma-2-9b-it-IQ2_M.gguf | IQ2_M | 3.43GB | false | Relatively low quality, uses SOTA techniques to be surprisingly usable. |
ということなので、gemma-2-9b-it-Q6_K.gguf
を使わせていただきます。
テスト
今回も Llamafile からお手軽テストです。
あいさつ
User: おはよう
Llama: おはようございます! 今日も良い一日になりますように。<end_of_turn>
コーディングの依頼
User: BS4 を使用して、cli 引数に url, CSS セレクター を受取り、text を全て返す python code を書いて。
Llama:
import bs4 as soup
import argparse
def scrape_text(url, selector):
"""URL と CSS セロクタからテキストを抽出する関数
Args:
url (str): スクレイピング対象の URL
selector (str): テキストを抽出したい要素に対する CSS セレクター
Returns:
str: 抽出したテキスト
"""
response = requests.get(url)
response.raise_for_status() # エラー発生時の処理を追加
soup = soup.BeautifulSoup(response.content, 'html.parser')
elements = soup.select(selector)
text = ''.join([element.text for element in elements])
return text
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("url", help="スクレイピング対象の URL")
parser.add_argument("selector", help="テキストを抽出したい要素に対する CSS セレクタ")
args = parser.parse_args()
text = scrape_text(args.url, args.selector)
print(text)
使い方:
1. 上記のコードを scrape.py などに保存します。
2. ターミナルで以下のように実行します。
python scrape.py https://www.example.com "h1"
- https://www.example.com: スクレイピング対象の URL を指定します。
- "h1": <h1> タグ内のテキストを抽出する CSS セレクタです。
注意:
* このコードは、基本的なスクレイピングを行うためのものです。複雑なウェブサイトやデータを取得する場合には、追加処理が必要になる場合があります。
<end_of_turn>
見事書き切りました!