#
111
2024/8/30
今日のトレンド

C言語とSpring Bootのテスト など

こんにちは、マイクです!今日は2024年8月31日、土曜日ですね。今日も「zenncast」をお楽しみいただきありがとうございます!今日はZennのトレンド記事をいくつかご紹介します。

さて、まずは前回紹介した記事についてですが、今日は特に触れずに進めていきますね。それでは、今日紹介する記事の本数をお伝えします。全部で5つの記事を紹介しますので、ぜひお楽しみに!

それでは、最初の記事から行きましょう!

1つ目の記事は「C言語のざんねんなしよう事典」です。C言語は現代のプログラミング言語の中でも重要な存在ですが、実は「良くなかった」機能も多いんです。例えば、`gets`関数はバッファオーバーフローのリスクが高いため、C11で廃止されちゃいました。代わりに、より安全な`fgets`や`gets_s`が提案されていますが、後者には疑問も残るんですよね。

C11では制御を返さない関数を示すために`_Noreturn`が導入され、C23では新たに`[[noreturn]]`属性が追加されましたが、これも互換性の問題があるかもしれません。また、可変長配列はスタックの安全性に問題があり、C11ではオプショナルに、C23では必須に戻されるなど、C言語の進化は一筋縄ではいかないんです。

次に、2つ目の記事に移ります!

2つ目の記事は「Spring Bootのテストを実際のアプリケーションでどうやるか考えてみた」です。この中では、Spring Bootのテスト機能をどのように活用するかが述べられています。サンプルアプリはSpring Boot 3.3を使っており、テストの基本となるアノテーションを独自に作成して、MapperやServiceクラス、コントローラークラスの単体テストを行う方法が紹介されています。

特に、Mapperのテストでは`@Sql`アノテーションを使って、テスト前にSQLファイルを実行しデータセットを準備するんです。また、ServiceクラスではMockitoを利用してMapperをモック化。RESTコントローラーのテストでは、JSONレスポンスやCSRFトークンの管理が重要になります。全体的に実践的なアプローチが盛り込まれていて、非常に参考になりますね!

次は3つ目の記事です!

3つ目の記事は「大規模言語モデルを開発するにあたっての事前・事後学習の戦略メモー特に合成データについてー」です。Tanuki-8Bおよび8x8Bモデルの開発に関する実践的な洞察がまとめられています。特に、事後学習データの量について、多量のデータが必要だという経験則が紹介されています。

事前学習が不十分だと、初期段階では100万件以上の指示データを学習させる必要があるとのこと。また、合成データの生成方法としてCalm3やWizardLMなどのモデルを利用し、特定のジャンルに焦点を当てたデータ生成が行われているそうです。合成データを多く投入することで、モデルの性能向上が見られたとのことで、今後の開発にも期待が持てますね!

さあ、ここで4つ目の記事に行きましょう!

4つ目の記事は「Tanuki-8x8Bをダウンロードした後に推論させる方法について」です。この内容では、Tanuki-8x8Bモデルの推論方法が解説されています。推論時には特別な対応が必要で、最も推奨されるのがvLLMによる推論です。

具体的なインストール手順やサンプルコードも含まれていて、他にもHuggingface TransformersやAutoGPTQ、AutoAWQなど様々な推論方法が説明されています。ただし、llama.cppによる推論は非推奨ということなので、注意が必要です。各推論方法の詳細がしっかりと解説されているので、エンジニアにとっては非常に役立つ情報ですね!

最後に、5つ目の記事です!

5つ目の記事は「Snowflake: クラスタリングの 5 バイト制限を正しく理解する」です。SnowflakeにおけるVARCHAR型のクラスタリングキーには、最初の5バイトのみが使用されるという制限があるそうです。この制限はクラスタリング処理にのみ適用され、プルーニング効率にも影響を与える可能性があるんです。

具体的には、共通のプレフィックスを持つ値が多い場合、クラスタリングが最初の5バイトで同じ値になり、順序が不定になることがあります。これを改善するために、クラスタリングキーを変更する方法が提案されています。適切にクラスタリングキーを設定することで、プルーニング効率を最大化し、パフォーマンス向上が図れるという内容です。非常に興味深いですね!

さて、今日は5つの記事を紹介しました。C言語のざんねんな機能から、Spring Bootのテスト方法、大規模言語モデルの開発、Tanuki-8x8Bの推論方法、そしてSnowflakeのクラスタリングについてお話ししました。次回もぜひお楽しみに!詳しい内容はショーノートに書いてありますので、そちらもチェックしてくださいね。

それでは、今日の「zenncast」はここまで!番組の感想もお待ちしています。次回お会いできるのを楽しみにしています!さようなら!

Related episodes

内容の近いエピソードを推薦しています