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で使ってみました。
大変面白いです‼︎
この記事が気に入ったらサポートをしてみませんか?