gpt-oss-20bをRAGツールに組み込んでみた

背景や目的


以前の記事でOpenAIのOSS版モデルであるgpt-oss-20bを試し、良い印象を持ちました。
そこで今回は、自社のRAGツールに組み込んで実運用に近い形で検証してみます。
(ご参考:以前の記事「OpenAIのOSSモデルgpt-oss-20bを試した」)

具体的には、そのツールの処理で使っているGPT-4.1をOSSモデルに置き換え、両者を比較して評価します。

本記事では、その構築手順と試験結果を紹介します。

自社のRAGツールはどういうツール?


社内ナレッジの質問に答えるRAG型チャットボットで、AWS上で稼働しています。下図が参考イメージです。具体的な構成は過去記事で紹介しています。
(ご参考:以前の記事「RAG型社内チャットボットのVPC構築例」)

置き換えのイメージ


下図の赤枠の「回答生成モデル(OpenAI GPT-4.1)」の部分を OSS モデルに差し替えたいと考えています。そのため、OSSモデルを動かすためのAPIを新たに構築します。

構築手順


具体的な手順です。

  1. API作成:コンテナイメージの作成
  2. API作成:コンテナイメージのローカル試験
  3. API作成: ECRのリポジトリ作成
  4. API作成:コンテナイメージをECRへプッシュ
  5. API作成:モデルファイル準備とS3へアップ
  6. API作成:SageMakerAIでの操作
  7. RAGツールの微修正

1.API作成:コンテナイメージの作成


ローカルWindows 環境で、WSL2(Ubuntu)上に開発環境を用意し、Dockerfileとapp.pyに処理をまとめてビルドします。

1) Docker環境の準備
ローカルで使えるようにします。ここは必要に応じて以前の記事をご参照下さい。
 →性能の良さそうなローカルLLM3つを動作確認しました
  (この記事内の「インストール:WSL2」の欄に記載してあります)
・適当な作業用ディレクトリを作成しておきます。

Ubuntu
v-hegde@PC999:~$ mkdir rag_use_container_gpt-oss-20b
v-hegde@PC999:~$ cd rag_use_container_gpt-oss-20b/
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$

2) Dockerfileとrequirements.txtを作成
コンテナに必要なファイルを作成しますが、まずDockerfileを作成します。
・作業用ディレクトリで、vi等でコードを作成します。以下はDockerfileです。

Dockerfile
# ベースイメージを指定
FROM python:3.11

# SageMaker のワークディレクトリを指定
WORKDIR /opt/ml/code

# requirementsファイルをコピー
COPY requirements.txt .

# pipのインストール
RUN pip install --no-cache-dir pip==25.2

# 必要なパッケージをインストール
RUN pip install --no-cache-dir -r requirements.txt

# 処理部のファイルをコピー
COPY app.py .

# ポート8080を開放(SageMaker の仕様)
EXPOSE 8080

# エントリーポイントを指定(SageMakerの docker run <image> serve に対応)
ENTRYPOINT ["python", "app.py"]

・同様にvi等でrequirements.txtコードを書きます。以下はrequirements.txtです。

requirements.txt
https://download.pytorch.org/whl/cu124/torch-2.6.0%2Bcu124-cp311-cp311-linux_x86_64.whl

transformers==4.55.4
accelerate==1.10.1
sentencepiece
Flask
sagemaker-inference
numpy<2

3) app.pyを作成
推論処理のapp.pyを用意します。
・同様にvi等でコードを書きます。内容は以下の通りです。

app.py
from flask import Flask, request, jsonify, Response
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer,TextIteratorStreamer
import os
import threading
import sys

app = Flask(__name__)

IS_SAGEMAKER = True

if IS_SAGEMAKER:
    MODEL_DIR = "/opt/ml/model"  # SageMaker 環境では S3 から展開されたモデルを使用
else:
    MODEL_DIR = "openai/gpt-oss-20b"  # ローカル環境(試験時)では Hugging Face からダウンロード

os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True" #Out of Memory対策で追加
print(f"Loading model from {MODEL_DIR} ...")
tokenizer = AutoTokenizer.from_pretrained(MODEL_DIR, use_fast=True)
model = AutoModelForCausalLM.from_pretrained(
    MODEL_DIR,
    torch_dtype="auto", # MXFP4量子化を自動で利用
    device_map="auto",
    trust_remote_code=True, # Qwen系の特殊ロジック利用時に必要な場合あり
    low_cpu_mem_usage=True,
    use_safetensors=True,
)

@app.route("/ping", methods=["GET"])
def ping():
    """ヘルスチェック用エンドポイント"""
    return jsonify({"status": "healthy"}), 200
def generate_text(system_prompt,question):
    # トークン化
    if system_prompt == "":
        system_prompt = "あなたは日本語の有能なアシスタントです。簡潔かつ正確に答えてください。"
    messages = [
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": question}
    ]
    prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
    streamer = TextIteratorStreamer(tokenizer, skip_special_tokens=True,skip_prompt=True) #回答文だけ返却する
    generation_kwargs = {
        "input_ids": inputs["input_ids"],
        "attention_mask": inputs["attention_mask"],
        "max_new_tokens": 5000,
        "do_sample": True,
        "temperature": 0.6,
        "streamer": streamer,  # 逐次出力を有効化
    }
    thread = threading.Thread(target=model.generate, kwargs=generation_kwargs) #別スレッドで生成を実行
    thread.start()

    for new_text in streamer: #逐次出力
        yield new_text
    yield "\n"

@app.route("/invocations", methods=["POST"])
def invocations():
    data = request.json
    system_prompt = data.get("system_prompt", "")
    question = data.get("question", "")
    return Response(generate_text(system_prompt,question), content_type="text/plain", status=200)

if __name__ == "__main__":
    if len(sys.argv) > 1 and sys.argv[1] == "serve": #SageMakerの docker run <image> serve を受け、その引数が入る
        app.run(host="0.0.0.0", port=8080, threaded=True)
    else:
        print("This container is for SageMaker! (atd)")

4)コンテナイメージを作成
最後にコンテナイメージを作成します。
・ファイルの存在確認をし、よければビルドします。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ls
Dockerfile app.py requirements.txt
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ docker build -t gpt-oss-20b .
Sending build context to Docker daemon  8.704kB
Step 1/8 : FROM python:3.11
 ---> 8525c6094d2b
Step 2/8 : WORKDIR /opt/ml/code
 ---> Using cache
 ---> a74f9fbdf627
Step 3/8 : COPY requirements.txt .
 ---> e3ecfc96f0a6
Step 4/8 : COPY app.py .
 ---> eb6a231e80a7
(・・途中省略・・)
Successfully tagged gpt-oss-20b:latest
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$

・念のため作成後の状況を確認しておきます。以下のようにimageが増えたはずです。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ docker images
REPOSITORY                       TAG         IMAGE ID       CREATED        SIZE
gpt-oss-20b                      latest      ************   ************   **GB

コンテナイメージが作成できました。次に進みます。

2.API作成:コンテナイメージのローカル試験


ローカルで作成したコンテナイメージを起動し、動作確認します。

・上記でビルド出来てimageを作成したので、先にsyntaxエラーがないか軽く確認しておきます。(後で発覚するとやり直しがとても手間なので。)以下のコマンドで確認します。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ docker run -p 8080:8080 gpt-oss-20b

Syntaxエラーではなく、「No such file or directory: ‘/opt/ml/model’」のエラーで止まればOKです。
サーバ上で動作させる前提の処理がローカルで動作できないのでエラーになっています。なので、その状態でOKです。
それ以外の凡ミスレベルのエラーはここで修正しておきましょう。
次へ進みます。

3.API作成: ECRのリポジトリ作成


クラウド側で利用するコンテナイメージの置き場所として、AWSコンソール上ECR(Amazon Elastic Container Registry)でプライベートリポジトリを作成します。

・AWSコンソールでECRメニューからプライベートリポジトリの画面を開き、右上部でリージョンは「us-east-2(オハイオ)」を選択します。
(後でGPUインスタンスを設定する時にオハイオが必要になります。)

・画面内右側にある「リポジトリを作成」を押します。

・表示された作成用の画面では、下表の値で登録をします。

設定項目
リポジトリ名rag-use-api-gpt-oss-20b ※お好きな名称で
イメージタグのミュータビリティMutable
暗号化設定AES-256
その他全てデフォルト

・作成ボタンを押すと、そのリポジトリが追加されます。

これでECRのリポジトリ作成は完了です。

4.API作成:コンテナイメージをECRへプッシュ


権限付きIAMユーザーを用意し、ローカルPCでAWS CLIからECRにログインして、作成したコンテナをリポジトリへプッシュします。

・ECRアクセスの権限を持つIAMユーザとそのアクセスキーを用意します。許可ポリシーAmazonEC2ContainerRegistryFullAccessがアタッチされたユーザであればOKです。作成の手順は、以前の記事をご参照下さい(「ユーザーの作成」で検索できます)。

・作成したリポジトリの画面内で「プッシュコマンドを表示」を押します。

・押下時、その手順が表示されます。

これを参考にして、自分の環境に合わせて順番に実行します。

・ローカルPCに戻り、AWS CLIをインストールします。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ sudo apt update
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ sudo apt install unzip curl -y
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ unzip awscliv2.zip
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$  sudo ./aws/install
(・・途中省略・・)
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$  aws --version
aws-cli/2.18.15 Python/3.12.6 Linux/6.6.87.2-microsoft-standard-WSL2 exe/x86_64.ubuntu.22

・許可されたIAMユーザのアクセスキーをローカル環境へ登録します。aws configureコマンドで、用意したアクセスキーを以下のように対話式で入力すればOKです。

・IAMユーザが登録されたか以下コマンド確認しておきます。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ aws sts get-caller-identity
{
    "UserId": "***",
    "Account": "****",
    "Arn": "arn:aws:iam::***:user/***ここにユーザ名が表示されます"
}
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$

・ユーザの準備を終えたので、ECRの認証に進みます。コンソール上で実行します。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin ***以降省略 AMC画面で表示された認証コマンドのコピーでOK
(・・途中省略・・)
Login Succeeded
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$

・次は、前の章でビルドしたコンテナにタグを付けます。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ docker tag gpt-oss-20b:latest **(これ以降はAWS画面で表示されたタグ付けコマンドの内容と同じ)
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ docker images
REPOSITORY                                       TAG         IMAGE ID       CREATED        SIZE
***.dkr.ecr.ap-northeast-1.amazonaws.com/gpt-oss-20b     latest      ************   ************   **GB
gpt-oss-20b                                      latest      ************   ************   **GB

docker imagesコマンドで上の1行目(***~)があればOKです。タグ付けで1個増えました。

・準備が全て完了したので、プッシュします。これもコンソール上で実行します。

Ubuntu
v-hegde@PC999:~/rag_use_container_gpt-oss-20b$ docker push ..(以降省略 AWS画面で表示されたpushコマンドのコピーでOK)
The push refers to repository [***.dkr.ecr.ap-northeast-1.amazonaws.com/gpt-oss-20b]
************: Pushed
(・・途中省略・・)
************: Pushed
latest: digest: sha256:*** size: ***

上記のように latest: digest~ が表示されたらOKです。

・AWS上リポジトリの画面内見ると、プッシュ出来ているイメージがあれば完了です。

5.API作成:モデルファイル準備とS3へアップ


モデルファイルをダウンロードし、適当なバケット、フォルダを作成し、作成済のモデルファイルを圧縮せずにそこへアップロードします。

1.量子化されたモデルを用意
HuggingFaceからモデルファイル(openai/gpt-oss-20b)を手元にダウンロードします。
以下の13個ファイルを用意しておきます(他のファイルやフォルダは使いません)。

モデルは量子化済(MXFP4量子化)なので、量子化は不要。(サイズも14GBで小さいです)

2.Amazon S3の準備
オハイオAWSリージョンでバケットを用意します。
・AWSコンソールを開き、リージョンをオハイオにします。※前述の通りGPU設定に関わるので重要です。
・S3メニューを開き、「バケットの作成」を押します。

・作成画面では、下表の値を入力し「バケットを作成」を押します。

設定項目
S3バケット名rag-use-api2 ※お好きな名称で
(その他)(全てデフォルト)

・そして、そのバケット内にモデルのフォルダを作成しておきます。私は以下を作成しました。

設定項目
S3バケット名gpt-oss-20b ※お好きな名称で

これで、S3の準備は完了です。

3.S3へモデルファイルをアップロード
手元でダウンロードしたモデルファイルを上記で用意したので、それを作成したバケットにアップロードします。以下はGoogle colabターゲットでアップしたコードです。
(手動でも良いのですが遅いです。)

Colab
/content# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
/content# unzip awscliv2.zip
/content# ./aws/install
/content# aws --version
/content# aws configure
AWS Access Key ID [None]: ***アクセスするIAMユーザのアクセスキー
AWS Secret Access Key [None]: ***アクセスするIAMユーザのシークレットアクセスキー
Default region name [None]: us-east-2
Default output format [None]:
/content# 
aws s3 cp --recursive \
/content/drive/MyDrive/model/gpt-oss-20b/ \
s3://rag-use-api2/gpt-oss-20b/

アクセス可能なユーザでcopyされるので、適当なIAMユーザで実行しています。
また、手元ファイルはgoogle driveに事前にセットしておきました。
・完了したらS3メニューで13個ファイルを確認しておきます。

これでS3へのアップロードは完了です。

6.API作成:SageMakerAIでの操作


SageMakerAI上で、ECRとS3のモデルファイルを指定してモデルを作成し、GPUインスタンスなどの設定を行い、エンドポイントを作成します。

1.モデルを作成
「SageMakerのモデル」が必要なので、それを作成します。
・AWSコンソールでSageMakerAIメニューを開き、オハイオAWSリージョンを選択し、「Deployments & inference」→「Deployable models」(モデル)を選択します。

・そこで「モデルの作成」を押し、作成画面では下表の値を入力し、最後に「モデルの作成」を押します。

設定項目
モデル名gpt-oss-20b ※お好きな名称で
IAMロールAmazonSage*** ※自動作成をお勧めします
コンテナ入力オプションモデルアーティファクトと推論イメージの場所を指定します。
モデル圧縮タイプUncompressedModel ※S3側と合わせる
S3 データタイプS3Prefix ※S3側と合わせる
推論コードイメージの場所***.dkr.ecr.ap-northeast-1.amazonaws.com/rag-use-api-gpt-oss-20b:latest
*ECRにセットしたイメージのURIです。
アーティファクトの場所s3://rag-use-api2/gpt-oss-20b/
*作成したモデルファイルのS3 URIです。
(その他)(全てデフォルト)

・作成後は、一覧画面で確認しておきます。(直ぐ作成されるはずです。)

これで、SageMakerのモデル作成は完了です。

2.エンドポイント設定の作成
エンドポイントを作るための情報を登録する箇所となります。
・同様にSageMaker AIメニューで、「Deployments & inference」→エンドポイント設定を選択します。

・そこで「エンドポイント設定の作成」を押し、作成画面では下表の値を入力し、最後に一番下の「エンドポイント設定の作成」を押します。

設定項目
エンドポイント設定名gpt-oss-20b-endpoint1 ※お好きな名称で
エンドポイントのタイププロビジョン済み
暗号化キー – オプションカスタム暗号無し
非同期呼び出し設定オフ (デフォルト)
データキャプチャを有効にするオフ (デフォルト)
本番稼働用バリアントを作成/モデルの追加gpt-oss-20b ※上で作成したモデル
[バリアント編集モーダル/バリアント名]variant1 ※お好きな名称で
[バリアント編集モーダル/インスタンスタイプ]ml.g6e.xlarge
※NVIDIA L40S GPUメモリ:48GB
[バリアント編集モーダル/初期インスタンス数]1 ※複数起動が可能そうだが、まずは1
[バリアント編集モーダル/初期重量]1 ※複数起動の振り分けらしい。自動的に1
[バリアント編集モーダル/モデルデータのダウンロードタイムアウト](空欄) ※Default 60分のまま
[バリアント編集モーダル/コンテナの起動タイムアウト]1200 ※20分にした(Default 300秒)

まずまず高速なインスタンスタイプを使いたくてml.g6e.xlarge(L40S)を選びました。東京リージョンでは選べなかったため、前述の通り各所をオハイオで構築しています。
※注意点:ml.g6系はデフォルトでは使えず、AWS コンソールの Service Quotasから「Amazon SageMaker → ml.g6e.xlarge for endpoint usage」を申請すると利用可能になりました。

・一覧画面を表示させると、作成されたか確認できます。


3.エンドポイントの作成
準備は終わったので、あとは起動するだけです。
・同様にメニューから、「Deployments & inference」→エンドポイントを選択します。

・そこで「エンドポイントの作成」を押し、作成画面では下表の値を入力し、下にある「エンドポイントの作成」を押します。

設定項目
エンドポイント名gpt-oss-20b-endpoint1-exec2 ※お好きな名称で
エンドポイント設定のアタッチ既存のエンドポイント設定の使用
エンドポイント設定gpt-oss-20b-endpoint1
※上で作成したものを選択し「エンドポイント設定の選択」を押す

・作成後一覧画面で作成したエンドポイントのステータスがCreatingからInserviceに変わります。(7,8分かかります)

Inserviceになったら全て完了です。アクセス可能な状態になりました。

7.RAGツールの微修正


RAGツール(サーバ側Lambda関数)のRAG推論部分に、作成したエンドポイント名を指定して保存・デプロイします。

RAGツールのRAG推論部分はサーバ側のLambda関数のlambda_function.pyに書いています。
具体的には、コードはこれです。(OPENAI API部分のみ抜粋)

lambda_function.py
    #OPENAI API 部分
    resp = openai_client.chat.completions.create(
        model="gpt-4.1",
        messages=[
            {"role":"system","content":system_prompt},
            {"role":"user","content":user_prompt}
        ]
    )
    answer = resp.choices[0].message.content + view_use_id
    return answer, system_prompt

gpt-oss-20bで動作するため上で作成したエンドポイント名を指定して、思考型(CoT)のモデルなので、生成文中の思考情報もカットする必要があります。
具体的には、上記推論コードを以下のコードに差し替えます。

lambda_function.py(OSS部分の差し替え)
        print("Generating response using GPT OSS Sagemaker Endpoint model")
        #アカウントクレデンシャル
        atd_aws_access_key = os.environ.get('atd_aws_access_key') # 実際のユーザ名
        atd_aws_secret_key = os.environ.get('atd_aws_secret_key')
        region = "us-east-2" #Set to Ohio this time
        # boto3 セッション作成
        atd_session = boto3.Session(aws_access_key_id=atd_aws_access_key,aws_secret_access_key=atd_aws_secret_key,region_name=region)

        client = atd_session.client("sagemaker-runtime")
        payload = {
            "system_prompt": system_prompt,
            "question": question
        }
        response = client.invoke_endpoint_with_response_stream(
            EndpointName="gpt-oss-20b-endpoint1-exec2", #上で作成したエンドポイント名
            ContentType="application/json",
            Body=json.dumps(payload).encode("utf-8")
        )
        answer_bytes = b""
        for event in response['Body']:
            if 'PayloadPart' in event:
                answer_bytes += event['PayloadPart']['Bytes']
        decoded_text = answer_bytes.decode("utf-8", errors="ignore")

        # Keep only part after 'assistantfinal'
        if "assistantfinal" in decoded_text:
            answer = decoded_text.split("assistantfinal", 1)[1]
        else:
            answer = decoded_text
        answer += view_use_id

        return answer,system_prompt
    except Exception as e:
        print(f"Error in exec_rag: {e}")
        raise

関数内コードを上記に修正し、関数をデプロイしたら完了です。

試すためのRAGツールの全コードはお示しできませんが、
上で作成したAPIは以下のコードでお試し頂けます。Google Colab等でどうぞ。

Google Colab
#インストール
!pip install boto3
!pip install requests-aws4auth

import boto3
import json

# IAMユーザーの認証情報(ハードコード、Colab上だけで使用)
aws_access_key = "*****" # 実際のユーザ名
aws_secret_key = "*****"
region = "us-east-2"
# boto3 セッション作成
session = boto3.Session(aws_access_key_id=aws_access_key,aws_secret_access_key=aws_secret_key,region_name=region)

# SageMaker Runtime クライアント作成
client = session.client("sagemaker-runtime")
#API
payload = {
    "system_prompt": "あなたは日本語が得意なアシスタントです。事実に基づき簡潔に回答してください。",
    "question": "東京都の説明をしてください。短文で結構です。" #質問例です。
}

response = client.invoke_endpoint_with_response_stream(
    EndpointName="gpt-oss-20b-endpoint1-exec2",#上で作成したエンドポイント名
    ContentType="application/json",
    Body=json.dumps(payload).encode("utf-8")
)

for event in response['Body']:
    if 'PayloadPart' in event:
        print(event['PayloadPart']['Bytes'].decode("utf-8"), end="", flush=True)

Colabのセルで shift+enter を押すと、gpt-ossが生成した文が表示されてきます。

gpt-oss-20bの評価結果


gpt-oss-20bを組み込んだRAGツールを使って、試験してみました。
結果は以下の通りです。比較用にGPT 4.1の模範回答の結果も付記しました。

No質問文GPT4.1
結果   
gpt-oss-20b   
結果
理由 
1個人情報保護に関する調査票(毎年恒例)が届いた。ワークフロー申請が必要ですか?情報なしと判定した
2アルバイトしていた新入社員はテレワーク勤務許可の再申請が必要か?情報なしと判定した
3物理破壊のルールってありますでしょうか?一般論を出した
4管理者アカウントにユーザーを追加する時何か申請が必要か?情報なしと判定した
5TSHの社用PCやスマホからOutlookを利用してお客様先のメールを送受信することは可能か?情報なしと判定した

結果は上の通りで、いずれもNGとなり残念でした。
どちらのモデルも、参照したい情報が検索結果に入っていて、同じシステムプロンプトにもかかわらず、gpt-ossは4/5件で「情報なし」と判断し、残り1件も一般論に留まりました。
それから、推論速度は0.21 秒/文字とやや遅い印象でした。

まとめ


自社のRAGツールのAPI部分をgpt-ossに置き換え、評価をしました。

GPT4.1で正答していた5件をgpt-ossで試験して、分かった事は以下の通りです。
・結果は残念ながらNG。
・コンテキスト内(検索結果内)に情報はあるのに何故か拾われず、コンテキストの下の方にあるためなのか、あるいはoss-gptにはコンテキストが長すぎるのかもしれません。
・試験前に軽く試した時、異常に長考する事がありました。不要な思考(CoT)が入ることで待ち時間が増えるリスクがありそうです。そのため、表示し終えるまでの時間が増えてしまい、試験では4倍遅くなった例もありました。
・コストは、GPU分で1時間あたり約$2.6かかります。ご参考まで。

なお、他でELYZA-Shortcut-32BのOSSモデルも試しましたが、結果は同様にNGでした。現状ではRAG用LLMとしてOSSモデルの採用はまだ難しそうですね。RAGのLLMはGPT4.1が良さそうです。

今後は、RAG向けにOSSモデルを追加学習するなどの工夫も試してみたいと考えています。
その頃までに、OpenAIからCoTを抑えたOSSモデルが提供されればとてもありがたいですね。

AI ವ್ಯವಸ್ಥೆಯನ್ನು ನವೀಕರಿಸುತ್ತಲೇ ಇರೋಣ
(AIシステムをどんどん更新しましょう)

ご連絡フォーム


フィードバックを是非お願いします。
本記事の方法での問題点や、よりよい方法のアイデアを頂けると大変助かります。

この記事に関して

その他のご連絡

DevAIsをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む