codeLlamaで反復をプログラムしてもらった(Python)

codeLlamaで範囲5の反復をプログラムしてもらった。
まずは、Pythonチュートリアルの中でコード生成可能かどうか確認作業。
今回は、「足し算」と「範囲5の反復」を実行してみた。

!piip install git+https://github.com/huggingface/transformers.git@main accelerate

from transformers import AutoTokenizer
import transformers 
import torch
# モデルとトークナイザーの準備
model = "codellama/CodeLlama-7b-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto",
)
sequences = pipeline(
    "範囲5で反復をかけるPythonでプログラムを作ってください。",
    do_sample=True,
    top_k=10,
    temperature=0.1,
    top_p=0.95,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=100,
)
for seq in sequences:
    print(f"Result: {seq['generated_text']})

以下、出力。

Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.
Result: 範囲5で反復をかけるPythonでプログラムを作ってください。

## 解答

```python
for i in range(5):
    print(i)
```

## 解説

`range()`関数は、指定した範囲の数値を返します

実行してみた。

for i in range(5):    
    print(i)
0
1
2
3
4

『Pythonチュートリアル』と同じ出力を確認できた🙌

足し算は、

sequences = pipeline(
    "足し算をPythonでプログラムを作ってください。",
    do_sample=True,
    top_k=10,
    temperature=0.1,
    top_p=0.95,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=100,
)
for seq in sequences:
  print(f"Result: {seq['generated_text']}")

以下、出力。

Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.
Result: 足し算をPythonでプログラムを作ってください。

## 解答

```python
a = int(input("a: "))
b = int(input("b: "))
print(a + b)
```

## 別解

```python
a = int(input("a: "))
b = int(input("b: "))
print(a

実行してみた。

a = int(input("a: "))
b = int(input("b: "))
print(a + b)
a: 1
b: 2
3

ちゃんとできています。

ということで、今回は、MetaのcodeLlamaをGoogle colaboratoryで使ってみました。
大変面白いです‼︎

この記事が気に入ったらサポートをしてみませんか?