見出し画像

プログラミング言語に特化したLLM 🌟StarCoderを試食してみた

試食方法

コード作成に特化したLLMとして公表されたStarCoderというモデルをText-generation-webuiを使っただけの、お気楽な方法で試食してみました。

実行環境

  • Windows11 - WSL2

  • RAM 128GB

  • GPU 24GB(RTX3090)

準備手順

  1. Hugging FaceのページからStarCoderモデルをまるっとダウンロード。なお、使用許諾の合意が必要なので、webui内蔵のモデルのダウンロード機能は使えないようです。

  2. ダウンロードしたモデルをフォルダーごとText-generation-webuiのmodelsフォルダー下にコピー

  3. Load-in-8bitオプションをつけてモデルをロード

  4. 準備完了

Load-in-8bitオプション時、VRAM消費は18GB程度

試食開始

高度なコード生成ができると言われましても、正直どういう例題が相応しいのかよくわからないので、プログラミング言語の教科書の初級編にありがちなフィボナッチ数列の関数定義をお願いしてみました。

なお、webui側の影響なのか出力結果のインデントが乱れていたため、一部手作業で修正しています。フォーマットが変なのはわたしのせいです。

モデルパラメータ

パラメータは、webuiのデフォルト値から以下をいじりました。

  • temperature = 0.5

  • max_new_tokens = 1024

Python

A recursive function that returns the Fibonacci sequence in Python

def fib(n):
   if n <= 1:
       return n
   else:
       return (fib(n-2) + fib(n-1))

print("Fibonaci Sequence:")
for i in range(0,10):    
   print(i," : ",fib(i))

Pythonで追加学習されたモデルなので、ま、当然できますわな。

Pascal

A recursive function that returns the Fibonacci sequence in Pascal

def fib(n):
  if n == 0 or n == 1:
    return 1
  else:
    return (fib(n - 1) + fib(n - 2))

うむ。

C

A recursive function that returns the Fibonacci sequence in C.

include<stdio.h>

int main() {
   int n_th, i = 0, j = 1, k;
   printf("Enter the nth term:"); scanf("%d", &n_th);

   for (k=1; k<=n_th; k++) {
       printf("%d ", j);
       i = j;
       j = j + i;
   }
       return 0;
}

実行は速そうですけど、再帰呼び出しを使ってくれてないなぁ。ちぇ😓

Lisp

A recursive function that returns the Fibonacci sequence in Lisp

(defun fib (n)
   (if (< n 2)
   n
   (+ (fib (- n 1)) (fib (- n 2)))))

lispのコードって、すっきりした見た目でいい感じ。

Z80 ASM

A recursive function that returns the Fibonacci sequence in z80 asm

ORG $200
fib:
LD B,10
LD HL,$4000
LD DE,$5000
CALL fill
RET
fill:
PUSH BC
LD A,(HL)
INC HL
LD (DE),A
INC DE
DEC BC
LD A,B
OR C
JR NZ,fill
POP BC
RET

アセンブラって 言ってみたかっただけです。正直、何を書いてるのか私には解りません💦 しつれいしましたー。

なお、実用は、VS Codeの 拡張機能のHF Code Autocompleteが良さそうです。推論エンジンのエンドポイントにHFのAPIのほかローカルに立てたAPIサーバーも指定できるようです。

おしまい🌠


この記事が参加している募集

AIとやってみた

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