第1位:英語で質問する。第2位:必要十分なモデルを選定する。第3位:質問文を冗長にしない。番外編:利用制限のかけ方この記事では、エンジニア向けに「OpenAIのAPI料金の節約方法」を解説しています。この記事を読むことで、「どうしたら文章生成におけるAPI利用料金を節約できるか?」を知ることができます。出費を抑えるという観点でも重要ですが、同時に計算量を減らして、電力消費量を抑えて、環境にやさしいシステムをつくる上でも重要です。!もしも文字よりも「動画の方が理解しやすい」という方はこちらをご覧ください◎https://youtu.be/w9yvBsbDZR4第1位:英語で質問する。英語での質問にすることが、一番インパクトが大きい上、現実的な節約方法だなと思いました。1つ前の記事で紹介したトークン数の比較を見ても一目瞭然で、「英語の方がトークン数は少ない」ことは明らかです。日本語よりも英語で質問した方がより正確な情報をもらえるという話もあります。英語の方が潤沢な学習データを使っているからでしょう。第2位:必要十分なモデルを選定する。OpenAIのAPIでは、モデルを選択できます。Davinci」があります。現時点(2023年2月)の価格表は次のとおりです。tokens上記の表からわかるとおり、わざわざDavinciを使う必要がない質問(簡単な知識ベースの質問など)を一部Curieに任せることで、コストを1/10まで抑えられます。実際に、モデルごとにどれほど回答のレベルに違いがあるか観察してみようと思います。JapanDavinciは、よしなに日本語で返してくれた。CurieとBabbageは、正しいが英語で回答した。Adaは、誤った回答をした。テストなどを行う専門家のことです。エンジニアは、コンピューターやネットワーク、機械、電子回路などの技術を使用して、製品やシステムを開発し、実装し、保守します。活動を行うための人材です。エンジニアは、エンジンを切り出す際に、エンジンの中に、コーナーを置き、コーナーの上にあるものを組み合わせて、コーナーの元にあるものを運動的にすることで、エンジンの有効期限を確保することができるようになるDavinciは、とても的確に回答をした、Curieは、Babbageよりかは的確な答えを日本語で回答した。若干データサイエンティストっぽいエンジニアを回答した。Babbageは、間違いとも言えないが、かなり抽象的な上、英語で回答した。Adaは、誤った回答をした。「エンジニアの学習方法」というタイトルのブログ記事の見出しを5つ作成してください。インドネシアDavinciは、とても的確に回答をした、Curieは、Babbageよりかは的確な答えを日本語で回答した。若干データサイエンティストっぽいエンジニアを回答した。Babbageは、間違いとも言えないが、かなり抽象的な上、英語で回答した。Adaは、誤った回答をした。実験への所感CurieとDavinciの間には、クリエイティビティと回答精度に大きな差がある。Google検索して、上位に出てくる当たり前な知識(短文回答)であれば、Curieでも解決できそう。BabbageとAdaは、利用できる用途が現状思い当たらない。第3位:質問文を冗長にしない。入力した言葉のトークン数が多いほど、APIの課金料は高くなります。そのため、質問文の中で「繰り返し同じことを言っていないか」を確認しましょう。以下のように文章を短縮できます(冗長を無くしているというよりも、この場合は情報の圧縮に近いですが)。実際に実務でAPIを用いる場合、APIの想定外の高額請求は避けたいと思います。そこで、「ソフトリミット」と「ハードリミット」という2つの方法があります。ソフトリミット:利用量が一定量を超えたら「メールで通知」。ハードリミット:利用量が一定量を超えたら「APIの利用停止」。limits」をクリックすると確認できます。APIを実行するときに、「max_tokens」というパラメータを設定することで、それ以上のトークン数の出力はされないように制限をかけられます。