nook:net:

2025-07-01 summaries in Japanese

How to Fix Unknown Magic Byte Errors in Apache Kafka | Baeldung

View on Baeldung

Apache Kafkaの"Unknown magic byte"エラーの修正方法

この記事は、Apache Kafka で Avro メッセージを処理する際に発生する "Unknown magic byte" エラーとその解決策について解説しています。

1. 問題の概要:

  • Avro エンコードされたメッセージを消費する際に、フォーマットエラーや予期せぬコンテンツによって処理できない「Poison pill」メッセージが発生することがある。
  • "Unknown magic byte" エラーは、Avro デシリアライザが Avro 形式でないメッセージを受け取った場合に発生し、デシリアライゼーションに失敗する。

2. 問題の再現:

  • Spring Boot アプリケーションで、Kafka トピックから Avro 形式のメッセージを消費する。
  • StringSerializer を使用して、Avro 形式でない文字列をトピックに送信し、エラーを発生させる。

3. 解決策:

  • ErrorHandlingDeserializer の利用: デシリアライゼーションエラーをキャッチし、アプリケーションがそれを適切に処理できるようにするラッパー。consumer がクラッシュするのを防ぐ。
    • value-deserializer プロパティを ErrorHandlingDeserializer に設定し、spring.deserializer.value.delegate.class で元のデシリアライザ (KafkaAvroDeserializer など) を指定する。
  • DLQ (Dead Letter Queue) への送信: エラーが発生したメッセージを DLQ トピックに送信し、検査や回復を可能にする。
    • DefaultErrorHandler を使用して、再試行不可のエラー(デシリアライゼーションエラーなど)を DLQ に直接送信する。
    • DeadLetterPublishingRecoverer を使用して、失敗したメッセージを DLQ トピックに転送する。
      • KafkaTemplateByteArraySerializer を使用して、形式が不明なメッセージを DLQ に送信する。
      • DLQ トピック名は、デフォルトでは元のトピック名に "-dlt" を付加する。

4. 手順:

  1. ErrorHandlingDeserializer を設定する。
  2. DefaultErrorHandlerDeadLetterPublishingRecoverer を構成して、DLQ にメッセージを送信する。

5. まとめ:

この記事では、"Unknown magic byte" エラーおよびその他のデシリアライゼーションの問題を解決し、Avro メッセージを Spring Kafka で処理する際の堅牢な方法を提供している。ErrorHandlingDeserializer を使用して、問題を適切に処理し、DLQ を設定して、失敗したメッセージを処理できるようになった。


java-llama.cppを使ってローカルLLMでテキスト生成する - IK.AM

View on IK.AM

java-llama.cpp を使ったローカルLLMテキスト生成の要約

この記事は、Javaでllama.cppのバインディングであるjava-llama.cppを使用して、ローカルLLM(大規模言語モデル)でテキスト生成を行う方法を紹介しています。

内容:

  • 依存関係: Mavenの依存関係として、de.kherud:llama:4.1.0 を追加します。
  • コード例: LlamaModel クラスを使用して、Gemma 3-27bモデルを読み込み、与えられたプロンプト(「Attention is all you need.」がもたらした影響を端的に噛み砕いて教えてください。)に対する応答を生成します。 InferenceParameters を使用して、温度などの推論パラメータを設定します。
  • 実行方法: mvn -q compile exec:java -Dexec.mainClass=com.example.Main コマンドでコンパイルと実行を行います。
  • 結果: 生成されたテキストは、Transformerの登場と影響について説明し、以下の内容を解説しています。
    • 従来の自然言語処理の問題点(RNN/LSTMの限界、翻訳の難しさ)
    • Transformerの提案(Attentionメカニズムによる並列処理と長距離依存性の解決)
    • 具体的な影響(自然言語処理性能の向上、BERTやGPTなどの大規模言語モデルの登場、画像認識や音声認識への応用)
  • 結論: 「Attention is all you need.」は、自然言語処理分野に革命をもたらし、その後のAI技術の発展に大きな影響を与えました。 Transformerは現在でも多くのAIモデルの基盤として使われています。
  • まとめ: java-llama.cppを使用することで、JavaアプリケーションにローカルLLMを簡単に統合できる。

この方法により、Javaアプリケーション内でローカルで実行されるLLMを利用し、テキスト生成などの高度な自然言語処理機能を実装できるようになります。


AI in Australia—OpenAI’s Economic Blueprint | OpenAI

View on OpenAI News

オーストラリアにおけるAI:OpenAIの経済ブループリント 要約

OpenAIは、Mandala Partnersとの共同で、オーストラリア向けのAI経済ブループリントを発表しました。これは、オーストラリアが生産性向上を国家の最優先事項とする中で、人工知能の経済的・社会的潜在能力を最大限に引き出すための具体的な計画を提示するものです。

OpenAIは、科学的発見の加速、医療、教育、政府サービスの改善、そして生産性の向上など、人々と政府が難しい問題解決を支援するAIを構築しています。彼らは、オーストラリアの企業、政策立案者、開発者、スタートアップ、教育者と協力し、AIの力を活用して国民の生活をより豊かにすることを目指しています。

AIは、電気のように、生活、仕事、そして人との交流を変革する汎用技術です。世界中で、医師や看護師が患者情報の収集・整理に、科学者が高エネルギー物理学、基礎数学、病気予防、サイバーセキュリティ、エネルギー研究に、学生と教育者がカスタマイズされたカリキュラム開発や個別指導に、農家が土地の効率的な利用に、そして政府関係者がプロジェクト調査、翻訳、編集、政策文書の改善などに、OpenAIのツールを活用しています。

OpenAIは、10年以上前にスタートアップ研究室として設立され、現在5億人以上の人々に利用されている無料のツールを開発し、オーストラリアでは利用者が1年間で2倍に増加しています。

このブループリントは、オーストラリアがAIの可能性を実現するための提案であり、AIの可能性を最大化し、潜在的な負の影響を抑制するために、より大胆かつ決定的に行動する必要があると述べています。今日、AIインフラへの国家投資は、将来の経済成長の基盤となり、雇用を創出し、生産性を高め、新たな起業家精神を育むでしょう。

OpenAIは、この旅でオーストラリアとパートナーシップを築き、協力を深めていくことを願っています。詳細な提言とアイデアについては、経済ブループリントをご参照ください。